Írja az operációs rendszer

Írja az operációs rendszer. memória menedzser

Itt az ideje, hogy írjuk be a memória menedzser - kritikus eleme minden operációs rendszer. Ahhoz azonban, hogy végre azt a kódot valamilyen okból nem éri el bármelyike ​​tudok leveleket.

Írunk fejlécfájlba memory_manager.h kijelölt feladat ebben a kérdésben:

Kezdjük egy egyszerű írási memory_manager.c inicializálási funkció:

Ez a funkció elmenti az aktuális érték a változó a CR 3 kernel_page_dir (akkor meg kell hívni map_pages), és értelmezi a memóriakártyát kapott egyszer a BIOS-t. Minden memória blokkok, amelyek fölött az első megabyte, és rendelkezésre állnak a használatra (1. típusú) okozza free_phys_pages funkciót, amelyet meg kell jelölni az említett fizikai memória régió ingyen. Ezzel párhuzamosan init_memory_manager kiszámítja a teljes összeget a rendelkezésre álló memória a globális változó memory_size.

Most írjon egy pár kis funkciók, amelyek közül az egyik hasznos más modulok, a második általában az egyik leggyakrabban használt:

Kezelése fizikai lapok egy külön vitát, és ha a menedzser, hogy leírja a fizikai memória ugyanaz a probléma, hogy túl nagy lesz, amíg mi csak olyan csonk funkciók és a teljes kódot legközelebb:

Most meg tudjuk változtatni a memória kiosztás a megszakításos táblázatot init_interrupts fájlfüggvények interrupts.c sokkal kényelmesebb:

Továbbra is hozzá inicializáló kódot kernel_main (memória menedzser kell adnia az első, mielőtt az összes többi alrendszert a kernel):

Amellett, hogy a memória menedzser inicializálási Ez a kód működését bizonyos funkciók. A képernyő jelenik meg:

A fordításhoz kell befejezni a Makefile:

Ez az! Összefoglalva, a teljes kódot memory_manager.c:

Kapcsolódó cikkek