Zwykłe stabilne jądro 3 * ma teraz około 70 MB. Ale istnieje niewiele dystrybucji Linuksa o wielkości 30-10 mb z oprogramowaniem i innymi rzeczami uruchamianymi po wyjęciu z pudełka.
Jak jądro Linuksa może być tak małe w tych dystrybucjach? Czy usunięcie tylko niepotrzebnych modułów i sterowników może znacznie zmniejszyć rozmiar? Co jeszcze zrobiono, aby zmniejszyć rozmiar jądra?
Odpowiedzi:
Tak. Jeśli je rozebrzesz (skompiluj / zrób moduły tylko to, czego potrzebujesz), skompresuj jądro (zoptymalizuj pod kątem rozmiaru) ... spowoduje to tak małe jądro. Możesz zrobić jeszcze mniejsze, dla systemu docelowego. Tak jak znam swój komputer, znam swoje rzeczy. Więc po prostu skompiluję to, czego potrzebuję. Podobnie jak moje własne sterowniki SATA, sterownik USB itp. Nic więcej. Bez kamery internetowej, bez starych napędów IDE, nic.
Ponadto: większe, z którymi się spotykasz, to CAŁE jądro (którego nigdy nie trzeba używać). Nawet te stacjonarne zawierają (przeważnie jako moduły) Mnóstwo niepotrzebnych rzeczy. Ale początkujący oczekują, że każdy sprzęt, który podłączą, będzie po prostu działał.
(Pamiętaj, że moduły nie zostaną załadowane, dopóki nie będą potrzebne. Istnieją 3 stany:
[ ]
- Nie zostanie skompilowany, nie będzie częścią twojego jądra.[M]
- Zostanie skompilowany jako moduł.(Możesz go sondować , lub twój system automatycznie załaduje go, gdy będzie potrzebny.
Zależy od systemu, przestrzeni użytkownika.)
[X]
- Zostanie skompilowany do jądra ORAZ będzie obecny - zawsze.Distros z małym jądrem:
źródło
Wczesne dystrybucje Linuksa, takie jak Root-Boot Toma , MuLinux , Diet-router , (obecnie nieistniejący) LOAF i wiele innych, które odeszły, wszystkie pasowały do działającego systemu Linux na jednej lub dwóch dyskietkach 1,44 MB.
Jądro Linux urosło, ale nie zapominaj, że jest modułowe, moduły jądra są ładowane w razie potrzeby. Dlatego nadal jest możliwe stworzenie dystrybucji Linuksa o bardzo małej powierzchni.
Patrz: Przewodnik dostrajania rozmiaru jądra - eLinux.org
Jeśli czytasz Linux_tiny.pdf , zobaczysz to
źródło
Domyślna konfiguracja jądra jest skonfigurowana do obsługi jak największej liczby urządzeń. Nieodebrane jądro z domyślną konfiguracją spowodowało rozmiar 1897996 kB (w tym jądro + moduły). Usunięcie wielu niepotrzebnych sterowników i opcji (dlaczego miałbym potrzebować modułu HP, jeśli posiadam notebook Clevo), spowodowało to rozmiar 892892 kB, co oznacza zmniejszenie rozmiaru o 53% w porównaniu do standardowego jądra.
Podczas instalowania modułów jądra dołącz
INSTALL_MOD_STRIP=1
opcję. Spowoduje to usunięcie wszystkich symboli debugowania i zmniejszy rozmiar dla mnie o 92% (z 892892 kB do 69356 kB). Uwaga: wpłynie to tylko na moduły do zainstalowania, a nie na samo jądro (vmlinuz):Z dokumentacji / kbuild / kbuild.txt :
źródło
Większość głównych dystrybucji konfiguruje swoje jądra z maksymalną obsługą sprzętu, dzięki czemu będzie działało od razu z większością komputerów i wszystkim, co podłączysz później. Używają również systemu initrd, który w większości przypadków nie jest potrzebny. Istnieją również opcje konfiguracji jądra, które sprawiają, że proces kompilacji jest optymalizowany pod kątem rozmiaru, a także można wybrać lepszą (choć wolniejszą) metodę kompresji. Na koniec, jeśli patrzysz na rozmiar kodu źródłowego jądra, pamiętaj, że zawiera on także obsługę kilku architektur poza x86 / amd64, protokołów sieciowych, systemów plików i innych funkcji, których prawdopodobnie nigdy nie użyjesz i które mogą być wyłączonym.
źródło
Jest to dość proste, minimalny system potrzebuje tylko bootloadera + jądra, chociaż jest prawie bezużyteczny. Większość poleceń używanych codziennie to opcjonalne pliki binarne dla systemu, takie jak sh, ls itp. Jeśli jesteś zainteresowany wewnętrznymi elementami , Linux From Scratch! jest dobrym punktem wyjścia.
źródło