Implementace jádra - část 1.
( MAKRA.H, PROC_PUB.H, PROC.H, PROC.C )

Jádro plní dvě základní funkce: implementuje mechanismus doručovánízpráv a řídí plánování procesů. Mimo to obsahuje nejnižší úroveň obslužných rutin přerušení a zajišťuje převod hardwarového přerušení na zaslání zprávy příslušnému tasku.

K předávání zpráv slouží primitiva SEND, RECEIVE a SENDREC. Jejich skutečná implementace je realizována pomocí maker, jež jsou využívána ostatními vrstvami systému, včetně systémových knihoven. Makro se rozvine na vyvolání softwarového přerušení, které je nasměrováno na rutinu jádra s_call. Parametry volání se předávají v registrech. Jde zejména o informaci o typu primitiva(SEND/RECEIVE/SENDREC), identifikace procesu, kterému se má zpráva předat, resp. od kterého se má zpráva převzít a pointer na buffer se zprávou (nearpointer, v rámci adresového prostoru právě běžícího procesu). Pro určení odesílatele zprávy a přepočet virtuální adresy bufferu se zprávou potřebujeme určit proces, který primitivu zavolal. Tímto procesem však může být jedině právě běžící proces, jehož identifikaci v podobě pozice v tabulce procesů najdeme v proměnné cur_proc.

Kernel sestává ze zdrojových souborů: MAKRA.H, PROC_PUB.H, PROC.H, PROC.C,MPX88.C a KERNEL88.C. Poslední dva jsou napsány v assembleru, PROC.C je stejně jako zbytek systému v C.

Jako služba OS bylo zvoleno přerušení INT 31h (např. v MS-DOS je toINT 21h)
Konstanty představující jednotlivé služby jádra OS (INT 31h):
#define SEND 1
#define RECEIVE 2
#define BOTH 3       /* send & receive */
#define TRAP 4
#define DIE_TRAP 8

Zprávy pro makra musí byt globálními proměnnými příslušných modulů.Viditelnost těchto zpráv bude omezena modifikátorem static. Makra se nebudou volat stylem receive(x,&m), ale receive(x,m)! Struktura se zprávou nesmí být lokální!

Veřejná část vyčleněná speciálně pro ostatní ze souboru PROC.H. Tento hlavičkový soubor je includován z hlavičkového souboru PROC.H.

Neveřejná část pro hlavičkový soubor PROC.C.

Vyšší úroveň obsluhy přerušení (převod na zprávy), mechanismus doručování zpráv, plánovač

Obsluha přerušení

Rutiny plánovače