kennt irgendjemand ein gutes Buch um zu lernen wie man einen Kernel schreibt
kennt irgendjemand ein gutes Buch um zu lernen wie man einen Kernel schreibt
Naja, Linus hat ja den Tanenbaum benutzt (Operating Systems Design and Implementation) - also wird der wohl nicht all zu schlecht sein.
Aber ich glaube du unterschätzt das gewaltigstens. Noch einen Kernel der nicht läuft und zuwenig Treiber hat und erst noch nicht innovativ ist braucht die Welt nicht.
MfG Peschmä
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
peschmae, du hast natuerlich insofern Recht, als dass es Unsinn ist, einen neuen Kernel "ins Rennen schicken zu wollen".
Allerdings kann es sehr viel Spass machen und ist zudem wohl eine gute Uebung. Dass ein Eigenbau nicht die Masse eines Linux oder Darwin annehmen kann, ist dem Ersteller hoffentlich bekannt...
Hab vor Ewigkeiten mal was minimalistisches geschrieben. War sehr interessant, aber es gibt -- zugegeben -- Wichtigeres.
Gruss,
dra
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook
Klar ist es interessant. Nur die Person die das will und der das was bringt fragt nicht nach einer Anleitung "wie schreibe ich einen Kernel" - weil man das schlussendlich selber machen muss. Ich meine es gibt ja auch nicht Howtos "wie schreibe ich mein office-Programm" und so.
Und schlussendlich sind alle Threads die mir hier untergekommen sind zu diesem Thema in diese Richtung abgedriftet.
Ich fände es da sinnvoller sich mit einem bestehenden Lehr-OS zu befassen (Minix z.B. (jetzt nur gerade weils da eine aktuelle Version ist und das das einzige LehrOS ist das ich kenne))
MfG Peschmä
Geändert von peschmae (28-01-2006 um 21:51 Uhr)
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
es kann durchaus sinn machen einen neuen zu schriben.
was denkst du auf was laufen unsere embedded-systeme? =)
okok ich gebs zu.. is eher ein abspecken als ein neuschreiben.. grz
/* -->
RTFM
<-- */
Hallo,
ich muss peschmea recht geben die leute die fragen "wo gibt es ein how to zum schreiben eines kernels" sind einfach noch nicht soweit einen selber zu schreiben. ich zähle mich übrigens auch dazu da ich vor etwas längere zeit die selbe frage gestellt habe.
Aber ich habe dann erkannt dass das der falsche weg ist, und habe mich nun auf meinen hintern gesetzt und erstmal richtig C gelernt (wobei ich sagen muss dass ich immer noch jeden Tag was neues lerne). Ich glaube aber das bei mir das Problem war ich wollte besser C schreiben und hatte gedacht das ich dass durch das schreiben von irgendeinem gewaltigen Projekt schaffe.
Nun ist aber (mit einigen Aussnahmen die ich in "Die Software Rebellen" gelesen habe. Nun genau umgekehrt man sollte erst sein Handwerkszeug benutzen können bevor man den David aus dem Stein meisselt
mfg
gsus
C > Java oder wie ?
Also wenn ich etwas schreiben wuerde was es noch nicht gibt, haette ich nichts zu tun.
Gruß
Kai
C, Python, OCaml
ich möchte ihn natürlich nur für meinen eigenen PC verwenden
Das schränkt den Arbeitsaufwand natürlich erheblich ein
Du brauchst nur noch
- die Speicherverwaltung
- die Prozessverwaltung
- den Treiber für deine ATA / SATA Platte
- den Treiber für deine (wahrscheinlich undokumentierte) Grafikkarte
- den Treiber für deine Soundkarte
- den Treiber für PCI
- den Treiber für den LAN Adapter
- ...
Schau dir wirklich erst mal minix an... Oder auch Linux 0.8 oder so, das sind nur ein paar Megabyte Quellcode
mich würde mal interessieren, was nach dem bootloader passiert, wie wird ein kernel compiliert (einfach mit gcc xyz.c reicht doch nicht?) ...
die inhaltlichen dinge kann man im tanenbaum nachlesen!
man ichwillnenkernelbauen ^^
/* -->
RTFM
<-- */
Das hängt von der Architektur ab...Zitat von abcdeef
Auf x86 Architekturen muss noch in den Protected Mode geschaltet werden und von da an dürfen keine BIOS-Funktionen mehr (direkt) aufgerufen werden. Wenn das der Bootloader nicht macht, muss der Kernel einen kleinen Teil in 16-bit Maschinencode enthalten, der in den Protected Mode umschaltet und dann zum wirklichen Einsprungspunkt des Kernels springt. Der Teil kann dann ganz normal mit gcc kompiliert sein, er kann halt nur keine C-Library Funktionen aufrufen.
also muss man z.b. printf() selber implementieren .oO(daten direkt zur graka schicken); nur wie?Zitat von Joghurt
gibt es literatur darüber (minimaler kernel, 16-bit Maschinencode der in protected mode) ?
ich habe eine Radeon 9250 und den Netgear WG111v2, ist eine WLAN-Flashkarte
Die Radeon könntest du, wenn überhaupt, nur über die VESA-Funktionen ansprechen, da die neueren Radeons nicht mehr dokumentiert ist, IIRC.
Bei deiner WLAN-Karte (was soll eine Flashkarte sein) dürfte es ähnlich sein.
Kauf dir doch erstmal den Tanenbaum, dann siehst du schon, wie kompliziert das ist.
Sagen wir mal, dein "BS" soll nichts weiter können, als über die WLAN-Karte Mails abzuholen. Und kein Speichermanagement oder Multitasking können. Da bist du locker ein paar Monate beschäftigt, wenn du gut bist; wenn du noch keine große Programmiererfahrung hast, was ich einfach mal aus deiner ursprünglichen Frage ableite, rechne mit mind. einem Jahr.
Lesezeichen