‟overcq”

Własne programy

System operacyjny OUX/C+

Adresy zasobów

  1. ‘bootloader’
  2. ‘kernel’
  3. “elf2oux”
  4. ‟linux-ouxfs-tools” zawierające “mksfs.oux”
  5. ‘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.