kernel entwicklung für uC
-
huhu,..
ich habe mich bisweilen mit der kernelentwicklung noch net beschäftigt,..Ich habe einen uC Atmega*,. und ich würde gerne prinzipiell wissen wie ich für dieses ein Linux ähnlichen kernel bastle könnte,...
- genereller aufbau eines kernels
- peripherie verwaltung
2.1) speicher (RAM) ,stack
2.2) Filesysteme
2.3) sonstiges wissenswertes über this *g* - programmaufruf, environments &bla
grüüüße
-
kannst die ja ein beispiel ansehen wie so ein os aufgebaut ist: http://www.ethernut.de/en/software.html
(ist aber nicht linux ähnlich)
-
jo nutos is keen linux,.. kann mir jemand da weiterhelfen 8-bit linux RISC architektur?
-
oder andere frage wodurch zeichnet sich ein linux kernel von anderen OS kernels ab? z.B.: habe ich auch pico]OS mal sooo ins auge gefasst,..
-
zeusosc schrieb:
oder andere frage wodurch zeichnet sich ein linux kernel von anderen OS kernels ab? z.B.: habe ich auch pico]OS mal sooo ins auge gefasst,..
Gegenfrage: Warum willst du einen Linux-Kernel? Gibt es Linux überhaupt für 8 Bit Systeme?
Ansonsten findest du OS-Dev Links hier http://www.c-plusplus.net/forum/viewtopic-var-t-is-39771.html
Hier findest du Dokumente zum Linux-Kernel
http://www.tldp.org/LDP/lkmpg/
http://www.softwarerevolution.com/jeneral/
http://ezs.kr.hsnr.de/TreiberBuch/html/
http://www.xml.com/ldd/chapter/book/index.html
http://www.kroah.com/lkn/
-
Ich habe die links zwar noch nicht durchgearbeitet aber danke erstmal,. *g*
-
jo hi,.. bei der ausführung zweier programme auf einer single unit werden die progs ja in kleinere häppchen zerstückelt,.. wie ist die blocksize bestimmung? wie erkennt der kernel das 'ende' eines befehls? nicht noch das aus
ldi r12,0x10010011010 -> ldi r12,0x01 wird,...
gibts dabei auch irgendwelche sources,..http://ezs.kr.hsnr.de/TreiberBuch/html/x220.html#FIG.ZEITABSCHNITTE
ist ein netter link, sehr schön (grob) beschrieben,.. finde ich gut,..mfg
-
zeusosc schrieb:
jo hi,.. bei der ausführung zweier programme auf einer single unit werden die progs ja in kleinere häppchen zerstückelt,.. wie ist die blocksize bestimmung? wie erkennt der kernel das 'ende' eines befehls? nicht noch das aus
ldi r12,0x10010011010 -> ldi r12,0x01 wird,...multitasking betriebssysteme benutzten für gewöhnlich timer-interrupts, um das task switching zu realisieren. dabei wird in festen zeitabständen eine interrupt routine aufgerufen, die die aktuelle task unterbricht und registerinhalte, stackpointer und instruction counter für eine andere task einstellt.
damit werden quasi mehrere cpus simuliert.
einzelne maschinencodes werden dabei nicht unterbrochen d.h. bevor eine umschaltung stattfinden kann, wird die letzte instruction auf jeden fall bis zu ende ausgeführt. dafür sorgt aber schon die interne interrupt-logik des prozessors...zeusosc schrieb:
gibts dabei auch irgendwelche sources,..
hier hast ein beispiel für einen multitasking kernel (auch auch auf 8-bittern lauffähig): http://www.nilsenelektronikk.no/neproc.html