LinuxBIOS



Czym jest LinuxBios?

Linux umieszczony w kości BIOS'u.

LinuxBIOS zastępuje normalny BIOS w komputerach PC, Alpha i innych. Umieszcza się go w specjalnych kościach Disk-on-Chip, które wkłada się w miejsce zwykłej kości BIOS. Linux instalowany w kości zawiera jądro ze specjalnymi patchami.

Linux, który potrafi bootować komputer.

Oprócz  lekko zmienionego linuxowego jądra LinuxBIOS zawiera dodatkowy kod konfigurujący sprzęt. Jest tam ok. 500 lini asemblera i ok. 5000 lini C. Kod ten inicjalizuje sprzęt, aby Linux mógł przejąć kontrolę.

Początek


Do czego potrzebny jest LinuxBIOS?

Po co powstał LinuxBIOS?

Pomysł narodził się w Los Alamos National Laboratories. Są tam rozwiajane nowe technologie. W LANL powstała broń atomowa. Do badań potrzebna jest olbrzymia moc obliczeniowa, którą dostarczają superkomputery lub komputery węzłowe(ang. cluster nodes).  Klastry są to komputery, na ogół bez klawiatury, myszy a nawet dysku, które połączone w sieć dostarczają bardzo dużą moc obliczeniową. W LANL występują nawet 1024-komputerowe klastry. Komputery węzłowe ze względu na cenę są dość często zwykłymi pecetami. Niestety oryginalne BIOS'y zawierają wiele błędów. Aby zainstalować nowy BIOS albo nawet zmienić ustawienia w starym trzeba chodzić z monitorem i klawiaturą od klastra do klastra. Zajmuje to bardzo wiele czasu.

Zmniejsza koszty serwisowania komputerów węzłowych (ang. cluster nodes).

BIOS do bootowania systemu używa urządzeń, na których nie można polegać: dysków twardych, stacji dyskietek itp. Ponadto BIOS nie obsługuje niestandardowych urządzeń, utrudniając pracę eksperymentalną. LinuxBIOS umożliwia bootowanie przez sieć, dzięki czemu klaster może składać się tylko z procesora, płyty głównej i pamięci. Przez sieć można zmienić ustawienia BIOS'a, a nawet zainstalować nową wersję LinuxBIOS'a.

Zmniejsza czas bootowania.

Dzięki pominięciu jednego kroku, czas bootowania skraca się nawet do trzech sekund.

Początek


Jak działa LinuxBIOS?

Przejście w tryb chroniony (ang. protected mode).

Zajmuje 17 instrukcji asemblera. Po koleji: skacze do 0xffff0 - początek BIOS'a. Wyłącza przerwania, ustawia rejestry segmentów kodu i danych na odpowiednie wartości. Ładuje wskaźnik Globalnej Tablicy Deskryptorów. Włącza ochronę pamięci. Dokonuje ostatecznych ustawień trybu chronionego.
Po tych 17 instrucjakch jesteśmy w trybie chronionym, możemy adresować 4 GB pamięci, i działamy jako Pentium a nie 8086.

Konfiguracja DRAM'u.

Najtrudniejsza część konfiguracji. Nie dysponujemy w tym miejscu żadną pamięcią, więc kod nadal musi być w asemblerze. Zależy dość mocno od płyty głównej. Kod ma od 79 do 280 lini.

Przejście do C.

Reszta LinuxBIOS'a jest napisana w C, więc trzeba ustawić stos i wywołać funkcję, ustawiającą resztę sprzętu.

Konfiguracja płyty głównej.

Trzeba w podstawowym stopniu skonfigurować płytę główną.  Linux przed kompilacją jest konfigurowany na danym sprzęcie, dzięki czemu w dużym stopniu sam może skonfigurować płytę główną. Pewne rzeczy muszą jednak zostać zrobione:
Inicjalizacja płyty głównej zajmuje ok 330 lini kodu w C.

Rozpakowanie jądra.

Jest to standardowa procedura. Kod w dużej  mierze pochodzi z jądra Linuxa. Potrzebne są jednak drobne zmiany.

Skok do jądra.

Skaczemy bezpośrednio do początku kodu jądra. W normalnej sytuacji skacze się najpierw do funkcji rozpakowującej dalszą część jądra. My mamy już to zasobą, więc skaczemy od razu do funkcji startup_32.

Początek



Nowe możliwości.

Kontrola procesu bootowania.

Bootowanie przez sieć.

Klater może połączyć się z demonem DHCP na innym komputerze, a tamten może nakazać bootowanie za pomocą LOBOS innego jądra Linuxa.

Bootowanie bezdyskietkowe klastrów(komputerów węzłowych).

Nie trzeba używać żadnych ruchomych urządzeń (CD-ROM, dyskietki). Można przez sieć kontrolować proces bootowania. Dzięki temu wiemy co się popsuło.

Serwisowanie klastrów.

Możliwa jest nie tylko zmiana ustawień na wszystkich komputerach w sieci, ale nawet zdalna zmiana jądra na inne.

Początek



Instalacja LinuxBIOS'a.

Przygotowania.

Pozostałe czynności:

Dokładny opis procesu instalacji.

Powrót do strony głównej prezentacji



©Tomasz Sienkiewicz 17.12.03