Betriebssystem
-
wer sich wirklich für osdev interessiert sollte mal beim lowlevel-magazin vorbeischauen, http://lowlevel.brainsware.org/
-
oder, wenn man schlau ist, schaut man einfach mal in den linux kernel!
-
Ein einfaches os schreiben das hello world ausgibt ist wirklich simpel.
http://www.osdever.net/tutorials.php?cat=0&sort=1
Einfach tutorial abschreiben und fertig. Hab ich auch schon gemacht, aber kein wort kapiert
-
Autsch!
Das ist nicht gut, in einem Turtorial kein Wort verstanden zu haben.
Man sollte sich schon für das, was man macht interessieren!Aber jedem das Seine
MfG Red
-
Ich werde mir das Tutorial gleich mal angucken,
danke
-
Ich weiss jetzt nicht, ob das ihr schon genannt wurde, weil ich hier alles nur kurz überflogen hab.
-
Hallo
Ich hab zwar keine Ahnung von Assembler-Sprache und im Programmieren auch nicht so viel aber vielleicht müsstest du für deinen C/C++ Code den du nur über den Prozessor ausführen willst einen eigenen Compiler oder Linker bauen (programmieren). Ich weis nicht ob das so richtig ist. Sollte nur so ne Art Denkanstoss sein.
SteveO.
-
Steve O. schrieb:
Ich hab zwar keine Ahnung von Assembler-Sprache und im Programmieren auch nicht so viel aber vielleicht müsstest du für deinen C/C++ Code den du nur über den Prozessor ausführen willst einen eigenen Compiler oder Linker bauen. Ich weis nicht ob das so richtig ist.[...]
Ähm warum? Den code den jeder C/C++ Compiler für x86 Prozessoren ausspuckt ist ohne umwege vom Prozessor lesbar. Der Binärcode muss lediglich erst einmal in den Arbeitsspeicher geleden werden. Aus bestimmten gründen nimmt man dafür Assembly und meistens für den Rest C.
-
leo aka qsch schrieb:
ehrlichgesagt ist es gar nicht so schwer ein os zu schreiben das hallo welt ausgibt ... aber mehr ist auch schon nur eine Illusion
Also mehr als Hello World ist sicher nicht illusorisch. Wenn du mit "mehr" "viel viel mehr" meintest gebe ich dir Recht
.
-
ProgChild schrieb:
Steve O. schrieb:
Ich hab zwar keine Ahnung von Assembler-Sprache und im Programmieren auch nicht so viel aber vielleicht müsstest du für deinen C/C++ Code den du nur über den Prozessor ausführen willst einen eigenen Compiler oder Linker bauen. Ich weis nicht ob das so richtig ist.[...]
Ähm warum? Den code den jeder C/C++ Compiler für x86 Prozessoren ausspuckt ist ohne umwege vom Prozessor lesbar. Der Binärcode muss lediglich erst einmal in den Arbeitsspeicher geleden werden. Aus bestimmten gründen nimmt man dafür Assembly und meistens für den Rest C.
Ich hab ja auch bloss gemeint. Ich hab wirklich Null Ahnung auf dem Gebiet aber ich hätte gedacht das es vieleicht funktioniert. Danke das du mich eines Besseren belehrt hast.
Steve O.
-
@UnwissendUNDDumm
falls du fragen hast oder so, könntest du dich bei mir mit icq melden: 54419178.björn
-
Hi!
Also ein OS coden ist nicht unbedingt illusion. Zudem muss man nicht unbedingt der ASM Guru sein. In der Regel besteht nur der Bootsektor aus ASM Code und evtl. ein paar Treiber, wobei die auch grösstenteils aus C bestehen. Das schwirige an einem OS ist dann das programmieren des Compilers/Linkers der entsprechenden Code zum OS erzeugt. Dazu sollte man dann wirklich gute ASM Kenntnisse haben.
Für das kleine OS was Du vorhast kommst Du mit einem Bootsektor und C recht gut klar, solang nicht mehr willst
Mfg xerox
-
hi,
Ich empfehle dir allerdings keinen eigenen Bootsektor zu schreiben sondern GRUB (oder andere Bootloader) zu benutzen, um deinen Kernel zu laden. Ich hab relativ schlechte Erfahrungen mit eigenen Bootloadern gemacht, da ich nicht wirklich der Assemblerguru bin und da es m.E. wenig Sinn hat seine Zeit/Motivation an einem Bootloader zu verschwenden.
Ansonsten brauchst du nur (reinen) Assembler für ein bisschen Startupcode, der dann die main()-Funktion deines Kernels aufruft. Die meisten anderen Sachen (z.B. inb(), outb(), usw.) kannst du mittels inline-Assembler machen.
Ein OS zu programmieren ist keine Illusion, obwohl es manchmal äußerst frustrierend ist (v.a. am Anfang).
-
irgendwer muss mir irgendwann mal erklären, warum jeder assembler anfänger (und andere auch) unbedingt ein os schreiben will (zumal beides nur bedingt miteinander zu tun hat). :p
-
Das liegt vieleicht daran dass die meisten glauben das os proggen sehr leicht ist. Vom programmtechnischen ist es ja wirklich nicht so schwer weils von jeder Teilbereich schon irgendwann implemtiert wurde unter der source frei herumliegt. und manchen denken sich halt sie nehmen von überall das beste und es wird super os.
Aber die schwirigkeit am os proggen ist ein durchgehent design plan zu haben der absolut keine sicherheits und andere lücken (Wahrscheinlich ist es gar nicht möglich ein perfektes os zu schreiben) aber BSD hat es fast geschaft (zummindest ist das meine Meinung)
-
erwähnenswert ist noch http://lowlevel.brainsware.org
asm rulez!!!
-
Lowlevel wurde schon genannt, Seite 2.
Ein HelloWorld-OS wird auch in diesem Tutorial geschrieben. Es ist imho schön übersichtlich. Mehr als Text ausgeben, auf Taste warten und neustarten kann es aber nicht. Ich denke wenn man etwas Asm-Erfahrung hat, kann man schon ein kleines (natürlich textbasiertes) OS schreiben. Aber ich würde schon erstmal nur mit Assembler arbeiten. C-Programmierung zu ermöglichen ist doch ne Menge Arbeit. Und das wird man alleine (wenn man keinen Code klaut) auch nicht hinbekommen. Und sich ein OS zusammen zu klauen ist auch nicht das Wahre.
-
Wenn man keine C Standard-Library braucht, sollte es eigentlich kein Problem sein.
Man kann u.U. manche Linker dazu bekommen, ein absolut addressiertes Executable (ggf. ohne OS dependencies) zu erzeugen.
Andernfalls muss man einen Konverter fuer das executable-Format schreiben.
Fuer ein eigenes kleines OS reicht es auch aus, einfach ein Programm an eine bestimmte Adresse zu relozieren und als Speicherdump in eine Datei zu schreiben. Dann kann man das Programm einfach einladen und aufrufen.
Ich hab das Ganze frueher schonmal auf dem Amiga gemacht, und das war eigentlich ganz einfach.
Und ich hab auch meinen normalen C Compiler dafuer genommen.
-
Hier ist mal ein Link zu einen Mini-OS. Die Sourcen sind ebenfalls auf der Seite.
-
Also ich lad mir das nicht runter.
Aus den einfachen Grund, ich habe keinerlei Eindrücke von der Optik des OS.
Vielleicht solltest du mal als nächstes eine ScreenShot Funktion einbauen.