Szerintem amit tudsz, az édeskevés bármihez ezen a területen.
Az én véleményem szerint a következő minimum tudás kell ahhoz, hogy egyáltalán érdemes legyen nekiállni:
- nagyon stabil assembly és hozzá kapcsolódó HW tudás: a kiszemelt CPU architektúra alapos ismerete, privilégiumszintek, memóriaszervezés, cache kezelés, interruptok, trapek működése
- nagyon stabil HW chip-szintű tudás, a kiszemelt architektúrán előforduló alapvető chipek programozása: memóriavezérlő, interrupt vezérlő, DMA vezérlő, I/O vezérlők (soros port, USB port, printer port, billentyűzet interfész, videókártya, floppy/IDE/SATA/SCSI/CF/stb. vezérlők, akármi, ami van azon a platformon), modern gépek esetében PCI busz/slot kezelés
- nagyon stabil C tudás (azon a szinten, hogy a compiler az adott forrásból milyen assembly-t fog előállítani!)
Ez szerintem alsó hangon 5 év alatt szedhető össze napi rendszerességű ilyen témákban való foglalatossággal, onnantól, hogy elolvastad az első könyvet az adott nyelvről.
Ezen felül kell valami minimális tudás az operációs rendszerek működéséről (különben azt se fogod tudni, hogy mit kell csinálnia a programnak, amit írsz), de ha bármire szeretnéd is használni az eredményt, akkor minél több létező operációs rendszert fel kéne fedezni, hogy azokon mit hogyan csináltak meg, mert különben menet közben fogsz rájönni, hogy erre meg erre nem gondoltál, és az alapvető architekturális változtatásokhoz a fél rendszert írhatod újra. Ez szintén több év ismerkedés a világ eddigi dolgaival, ha ki is akarod őket próbálni, akkor még több.