Próbuję przeprowadzić eksperymenty z Linuksem i znaleźć najmniejszą dystrybucję według rozmiaru instalacji. (RAM, procesor tak naprawdę nie ma znaczenia)
size
small-distribution
Qohelet
źródło
źródło
Odpowiedzi:
Aktualizacja: ttylinux jest obecnie nieobsługiwany! Jeśli nadal jesteś zainteresowany, zacznij tutaj lub tutaj .
W zależności od platformy ttylinux może być dla Ciebie czymś:
Rozpoczęty w 2001 r., A najnowsze wydanie z 2015-03-05, więc nadal jest utrzymywane.
źródło
Mała dystrybucja, która przychodzi mi na myśl, to „Damn Small Linux” o wielkości 50 MB ( link , wiki )
Ale jest też jeszcze mniejsza dystrybucja „Tiny Core Linux”, która ma około 15 MB ( link , wiki )
źródło
OpenWrt jest również jednym z najmniejszych.
źródło
Konstruktor
Jeśli chcesz przejść proces kompilacji i ograniczyć funkcje, możesz spróbować buildroot . Stworzyłem bardzo podstawową instalację Linuksa (zasadniczo tylko jądro, minimalne narzędzia Busybox i jedną dodatkową aplikację), które pasują do obrazu ISO 6 MB.
Kluczem tutaj jest zmniejszenie konfiguracji jądra i Busyboksa („make linux-nconfig” i „make busybox-menuconfig”) do niezbędnego minimum, a następnie włączenie kompresji XZ na początkowym ramdysku jądra. Zmniejszenie wszystkiego, czego nie potrzebowałem, pozwoliło mi zmniejszyć cały obraz ISO do około 9 MB, a po włączeniu kompresji XZ do 6 MB.
W przypadku jądra po prostu sprawdziłem każdą opcję w menu konfiguracji i wyłączyłem ją, chyba że jej potrzebowałem. Możesz wyłączyć wszystkie sterowniki sieciowe, dla których nie masz odpowiedniej karty sieciowej, wyłączyć inny, mniej powszechny sprzęt, którego nie planujesz używać (karty szeregowe z wieloma portami, joysticki, urządzenia wielofunkcyjne ...) i tak dalej na. Możesz także pozostawić wiele podsystemów na podstawowych implementacjach zamiast bardziej zaawansowanych (np. Podstawowe stany bezczynności procesora ACPI zamiast stanów bezczynności procesora Intel / AMD), co może oznaczać, że zmniejszysz wydajność energetyczną i pełne wsparcie sprzętowe dla wielkości jądra. Możesz także wyłączyć całe podsystemy, takie jak hibernacja / obsługa snu i system dźwiękowy, jeśli nie musisz ich używać.
Dzięki temu możesz zaoszczędzić dużo miejsca. Na przykład moduły obsługujące KVM (wirtualizacja) i btrfs (które postanowiłem umieścić poza jądrem jako moduły ładowalne na wypadek, gdyby były potrzebne w przyszłości) same zajmują 1,1 MB. Usuwając te pliki modułów, możesz dostać się do około 4,9 MB. Możliwe, że zajmują mniej miejsca zintegrowanego z plikiem binarnym jądra, ale zauważyłem, że inne, mniejsze moduły mają rozmiar 20-100 kilobajtów, więc przebieg może się różnić.
Busybox
Busybox to pojedynczy plik binarny, który zachowuje się jak różne pliki binarne w zależności od tego, jak jest wywoływany z wiersza poleceń, co pozwala zaoszczędzić miejsce. Domyślnie jest on zawarty w Buildroot. Może zachowywać się jak ls, df, dd, cat, nc, bash i wiele innych. Wygląda to na dobry zamiennik dla prawie całej przestrzeni użytkownika * nix, chyba że potrzebujesz konkretnych rozszerzeń narzędzi, które można znaleźć tylko w bardziej funkcjonalnych / tradycyjnych wersjach (np. GNU, BSD) tych narzędzi. Busybox jest podobny do jądra pod względem wyłączania funkcji - wyłącz wszystko oprócz potrzebnych plików binarnych (apletów AKA), a rozmiar zostanie zmniejszony. Dynamicznie kompilowana wersja binarna Busybox zajmuje 512 kilobajtów w Buildroot i około 2,1 MB w Ubuntu 14.10. Większa wersja Ubuntu obsługuje o wiele więcej niż moja wersja Buildroot i „
Ekstremalne metody zmniejszania rozmiaru systemu
Możesz wypróbować niektóre z poniższych rzeczy, aby jeszcze bardziej zmniejszyć rozmiar, ale często wykonuj kopie zapasowe katalogu roboczego, ponieważ możesz przerwać instalację Buildroot, nad którą pracujesz i być może będziesz musiał odbudować niektóre pliki binarne.
Kompresuj wszystkie pliki wykonywalne (w tym jądro) za pomocą kompresora UPX. Ponieważ UPX został zaprojektowany specjalnie do wykonywania kompresji wykonywalnej, powoduje to, że powstałe pliki wykonywalne są znacznie mniejsze. Ale upewnij się, że później przetestujesz wszystkie pliki wykonywalne i że działają one poprawnie.
Użyj innej biblioteki libc. Używam uClibc, ale słyszałem, że musl i dietlib są znacznie mniejsze i dają mniejsze pliki wykonywalne. Tym razem miałem problemy z budowaniem musla, ale może działać lepiej.
Zamień niektóre lub wszystkie narzędzia użytkowe na asmutils . Te narzędzia implementują niektóre typowe narzędzia * nix w czystym asemblerze (zamiast w C lub innych językach), co teoretycznie pozwala na znacznie bardziej kompaktowy kod. Niektóre z nich działają dobrze, ale niektórych można używać tylko w bardzo podstawowy sposób (np. „Mount” pobiera parametry tylko w określonej kolejności i nie są zaimplementowane żadne opcje montowania specyficzne dla FS). Z drugiej strony są bardzo małe (większość z nich jest skompilowana poniżej 1 KB, a małe około 139 bajtów). Możesz wybrać, z których chcesz korzystać, dzięki czemu możesz używać tych zamienników tylko dla poleceń, na których chcesz zaoszczędzić miejsce i zachować bardziej bogate w funkcje wersje jako aplety Busybox.
źródło
Tomsrtbt to kilka megabajtów; mieści się na dyskietce.
źródło