Ich habe jetzt noch eine Frage: Wie lange dauert es wohl, bis ich genug wissen habe umanzufangen. Ist es mit 16 Jahren noch viel zu früh, oder kann man sich dort einarbeiten, auch wenn man nur so wenig Erfahrung hat wie ich ? (Ich habe mal die Überschriften des Wiki's überflogen, von GDT und IDT z.B habe ich noch nie etwas gehört.)
Also erst einmal: Dein Alter spielt eine absolut untergeordnete Rolle. Was zählt, ist Programmiererfahrung. Und davon abgesehen bist du ohnehin nicht wesentlich jünger als der Durchschnitt hier in der Community, was den OS-Dev-Einstieg angeht.
Davon, dass du noch nie etwas von GDT und IDT gehört hast, solltest du dich auch nicht entmutigen lassen. Das sind Dinge, mit denen man in der Regel keine Berührung hat, wenn man nicht gerade einen Kernel schreibt. Das ist also kein Wissen das du mitbringen musst, sondern das jedes OS-Dev-Tutorial erklärt. Wenn du mal anfängst, wirst du sehr bald wissen, was das ist.
Vier Jahre Programmiererfahrung könnte reichen oder auch nicht, je nachdem wie intensiv du das in dieser Zeit betrieben hast und ob das C/C++ einen signifikanten Anteil hatte oder ob es doch hauptsächlich Java war. Im Zweifelsfall probier es einfach aus, kostet ja nichts.
Wir empfehlen natürlich immer unser eigenes Tutorial im Wiki:
http://www.lowlevel.eu/wiki/OS-Dev_für_Einsteiger - es gibt auch einige andere, aber die leisten sich gern mal gröbere Schnitzer, weswegen wir uns irgendwann entschieden haben, dass wir lieber ein eigenes schreiben.
Dazu musste ich mich durch das AMD64 Manual durchwühlen. Ich lese sogar heute noch manchmal im Manual nach, weil mir einige Sachen nicht klar sind.
Das ist kein Makel, kaum jemand weiß das alles auswendig. Man muss nur mit dem Manual umgehen können. Eine der wichtigsten Fähigkeiten, die man beim OS-Dev lernt (lernen sollte), ist deswegen auch, Spezifikationen zu lesen. Ich habe heute auch schon was im C-Standard nachgeblättert.