Modularna budowa systemów uniksowych
Jeden z bardziej charakterystycznych wyróżników Linuksa od systemów Windows/Mac OS. Poszczególne podsystemy, składające się na jeden działający system zwany dystrybucją, są tworzone niezależnie od siebie. Nikt nie sprawuje kontroli nad wszystkim. Twój system to zlepek wielu różnych programów, technologii i podsystemów. Mimo to autorzy tych programów potrafią się ze sobą dogadać i stworzyć działające rozwiązania (pamiętaj, że wywodzą się oni często z różnych kultur, a w domu niekonicznie używają angielskiego). Jak widać jakoś to funkcjonuje, czasem lepiej czasem gorzej, ale z korzyścią dla innowacyjności. Poniższa tabela jest jak kostka rubika. Kolumny w niej można dowolnie przestawiać, ale zawsze wyjdzie nam działający system operacyjny (przy założeniu, że puste komórki nie istnieją):
| Program graficzny #1 | Program graficzny #2 | Programy działające w środowisku graficznym | |||
|---|---|---|---|---|---|
| KDE | GNOME | Xfce | TWM | Fluxbox | Środowiska graficzne i menedżery okien |
| KDM | GDM | XDM | Brak | Menedżery logowania | |
| X.org | Xfree | X serwery | |||
| GNU | BSD | Programy podstawowe | |||
| w stylu System V | w stylu BSD | Całkiem inne | Skrypty startowe | ||
| Linux | Solaris | *BSD | Jądra systemowe | ||
| initrd | initramfs | Brak | Ramdysk do wykonania czynności inicjujących | ||
| LILO | GRUB | Program ładujący jądro systemu (bootloader) | |||
| AMI | Award | BIOS - uruchamia bootloader |
Oczywiście ta tabela jest tylko poglądowa. Nie gwarantuję jakiejkolwiek przydatności w jakimkolwiek zastosowaniu, ani dokładności przedstawionych informacji.
Z powyższej tabeli możemy prześledzić proces uruchamiania typowej dystrybucji Linuksa. Zaczynamy od dołu:
- Uruchomienie komputera
- Załadowanie BIOS-u. BIOS zgodnie z konfiguracją zapisaną w pamięci CMOS próbuje uruchomić system z twardego dysku
- BIOS uruchamia GRUB-a, który wyświetla menu wyboru systemu
- Po wybraniu systemu z listy, GRUB ładuje ramdysk initrd
- initrd przygotowuje środowisko do pracy jądra systemu (ładuje między innymi podstawowe sterowniki urządzeń)
- Jądro linuksa rozpoczyna uruchamianie skryptów startowych
- Skrypty startowe zakładają istnienie zestawu podstawowych programów takich jak modprobe, chmod, powłoka bash, powłoka sh
- W skryptach startowych jest zapisane uruchomienie menedżera logowania
- Uruchamiany jest GDM, który uruchamia X.orga.
- GDM loguje automatycznie użytkownika do środowiska GNOME
Zamiast uruchomienia GDM moglibyśmy w ogóle nie uruchamiać środowiska graficznego. Moglibyśmy też uruchomić środowisko graficzne bez menedżera logowania.
