Dzisiaj z okazji tego że mnie cholera strzeliła wziełem się w końcu za instalowanie Gentoo na laptopie. Owszem, byłoby to trywialne zadanie, gdyby nie fakt, iż laptop ma niesprawny CD-ROM i nie może bootować z USB. A, no i się pozbyłem przypadkiem poprzedniego systemu. Czyli jakby nie patrzeć ogólne miodzio. No ale nie o tym miałem pisać.
Najpierw najważniejsze, czyli co to jest ten bootstrap. Otóż jest to proces w którym Gentoo przebudowuje samo siebie od nowa. Startujemy tutaj nie z gotowej bazy systemu (czyli tzw. stage3) ale z podstwowego zestawu narzędzi (Binutils, GCC itp.) czyli kochanego stage1. Ciekaw byłem co się stało ze stage2, które też było dostępne do ściągnięcia, no ale znowu odbiegam.
Jeżeli chodzi o większość dystrybucji Linux’a bootstrap jest niemożliwy (no dobra, jest, ale nie ma on sensu). A dlaczego bootstrap się wykonuje? Są dwa główne powody: cross-kompilacja na nieobsługiwaną platformę oraz przyśpieszenie systemu. Dla mnie ważny jest ten drugi powód. Zwykle gdy używamy dystrybucji Linux’a jest ona przeznaczona (teraz) na procesory i586, czyli okolice Pentium. Od tamtej pory trochę się jednak pozmieniało, mamy MMX, SSE, SSE2, 3DNow! i masę innych optymalizacji. GCC je obsługuje, możemy je wprowadzać do instalacji Gentoo, ale tak naprawdę toolchain, czyli m.in. GCC nie korzysta z ich dobrodziejstw, tak samo jak biblioteka Glibc (tak, ta główna od każdego programu w C/C++ itd.).
Czyli tak naprawdę dopalamy sobie tylko dalsze elementy systemu podczas gdy wnętrze dalej jest ociężałe. Dlatego też wymyślono bootstrap, dzięki którymu to my decydujemy na jakich flagach zostanie zbudowany system (najważniejsza jest tutaj -march=). No tak, darmowa prędkość, trochę więcej czasu spędzimy przy instalacji, ale czy są jakieś tego wady?
Okazuje się niestety że tak. Podstawowy i z tego co wiem jedyny duży problem z tak przygotowanym systemem jest jego niekompatybilność z Gentoo. No nie z całym oczywiście, ale z pakietami binarnymi. Niestety (tutaj wiele osób stwierdzi, że się mylę) Gentoo wprowadziło pakiety binarne, żeby użytkownicy mogli szybcie instalować programy. Ja z tego nigdy nie korzystałem, mimo że przygotowanie do działania KDE3 zajmuje ok. 24h (!!).
A nie robię tego dlatego, że to niszczy całą ideę używanie Gentoo – pełną optymalizację pod względem funkcji i prędkości. W wypadku innych systemów często wpadałem w szał, gdy widziałem, że nie wiem z jakiego powodu np. kdepim chce instalować mi oprogramowanie od Bluetooth. Nie mam dongla, nie używam tego, więc po co mi to?
No ale czas już na podsumowanie. A jest ono proste – jeśli zależy ci na maksymalnej prędkości, a nie na szybkiej instalacji, wykonaj bootstrap od stage1. Jeśli jednak chcesz mieć system teraz, zaraz, już i przeżyjesz niewielkie spowolnienie jego działania, nie rób tego. Dla ciebie są pakiety binarne (i inne dystrybucje…).
Więcej o bootstrapie można przeczytać tutaj.