Adresy zasobów
- ‘bootloader’
- ‘kernel’
- “elf2oux”
- ‟linux-ouxfs-tools” zawierające “mksfs.oux”
- ‘Kernel’ Linuksa
Opis
Rozpocząłem tworzenie własnego systemu operacyjnego mającego nową architekturę. Obecnie został utworzony ‘bootloader’ UEFI dostosowany do uruchamiania ‘kernela’ tego konkretnego systemu opracyjnego oraz początkowy program ‘kernela’. W przyszłości planuję przenieść jak najwięcej funcjonalności startowych ‘kernela’ do ‘bootloadera’ (np. może interpretator ACPI➪AML), by w ‘kernelu’ pozostały tylko programy wymagane do późniejszej pracy.
Architektura
‘Kernel’ działa w środowisku pamięci ‘przemapowanej’ przez ‘bootloader’ tak, by pozostawić jak najwięcej ciągłych obszarów niezarezerwowanych stron pamięci. Pamięć jest ułożona od dołu przestrzeni adresowej (pomijając stronę pamięci o zerowym adresie) aż do maksymalnego rozmiaru pamięci. Powyżej tego rozmiaru w przestrzeni adresów wirtualnych znajdują się ‘zmapowane’ i rozrzucone stosy ‹zadań›.
‹Zadania› wykonują się w pojedynczej przestrzeni adresowej i mają dostęp do procedur eksportowanych przez ‘kernel’ bez potrzeby użycia instrukcji przełączających proces (tj. analogicznie jak w dawno powstałym projekcie programu OUX/C+ pracującego w systemie uniksopodobnym). Rozmiar dostępnej do przydzielenia pamięci nie przekracza rozmiaru pamięci rzeczywistej dostępnej w systemie.
Jest używany własny system plików OUXFS.
Środowisko pracy i realizacji
Obecnie system operacyjny jest instalowany w pliku obrazu dysku i uruchamiany w maszynie wirtualnej. Jest tworzona tablica dwóch partycji: ‘bootloadera’ UEFI oraz systemu plików OUXFS, na której umieszczany jest ‘kernel’.
Programy są budowane przez natywny ‘kompilator’ systemu Linux, a następnie konwertowane programem “elf2oux” do formatu wczytywanego przez ‘bootloader’ oraz ‘kernel’.
Do obsługi systemu plików OUXFS jest wykorzystywany ‘kernel’ Linuksa rozszerzony o menedżer tego systemu plików.