Í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: