![]() |
Mini System -- Ein eigenes Betriebssystem?
Hallo
Ich habe mal eine relativ Kritische frage aber dennoch... Also ich muss in der Schule eine Diplomarbeit mache, worüber, das kann ich selber entscheiden. Ich habe mir vorgenommen eine Art betriebssystem zu Programmieren welches im grunde nichts kann sondern nur Booten Kann und vieleicht eine oberfläche mit dem Text Hallo Oder so Darstellt also schon so im Windows stil mit Normalen Farben und so aber eben eigentlich soll es noch nichts können. Ziel ist es das ich den Gesamten hintergrund eines Betriebsystems Dokumentieren kann und dazu ja auch ein kleines Betriebsystem Programieren will.. Nun ist mir bewusst, das ein Computer noch nicht einfach so eine EXE starten kann doch ich dachte mir mann könnte doch die Dll oder was dazu gebraucht wird von Windows (zumindest für den anfang) nehmen um sich diese Arbeit mal vorrüber gehend zu ersparen. Nun binn ich sehr froh über jeden Kommentar sei er auch noch so klein. Liebe grüsse Claudio |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
"Mal eben" ein BS schreiben könnte schwer werden. Und mit Delphi noch schwerer. Was du brauchst ist Assembler. Und sich "mal eben" eine DLL von Windows ausleihen ist auch keine gute Idee, dafür ist der Apparat viel zu verästelt. Hast du schonmal die Forensuche bemüht? |
Re: Mini System -- Ein eigenes Betriebssystem?
Hallo,
warum nicht eine eigenen Shell programmieren? Das ist in Windows die explorer.exe, die du ersetzen kannst(gibts n paar einträge in der registry). Ein eigenes OS wirst du mit Delphi auf jeden Fall nicht auf die Beine stellen können - es gibt aber genügend Ressourcen im Internet, wie du sowas machst. Bootloader, Systemkernel, Runtime-Libs etc. etc. etc. - das is n haufen Arbeit! DU solltest dazu auch hier im Forum einiges finden. |
Re: Mini System -- Ein eigenes Betriebssystem?
|
Re: Mini System -- Ein eigenes Betriebssystem?
Ja hab die suche schonmal bemüht
Hab auch das gleiche Gefunden ![]() Von der zeit her habe ich rund 2 Monate Zeit und es soll ja nicht späktakulär werden nur mal eben ein Hello World genügt, weil man ja danach dadrauf aufbauen kann. Ich habe ein paar mal gelesen das man dazu assembler braucht... Es gibt ja Disasembler die machen ja aus Code Assembler kann man damit nicht auch was anfangen? |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
|
Re: Mini System -- Ein eigenes Betriebssystem?
|
Re: Mini System -- Ein eigenes Betriebssystem?
Nee ich dachte daran das wenn man schneller Programmieren will man vieleicht bestimmte dinge in einer Hochsprache schreiben kann und sie danach
mit dem Dissasembler in Assembler verwandeln kann. Dadurch wäre die Programmierung (dachte ich zumindest) einfacher |
Re: Mini System -- Ein eigenes Betriebssystem?
Moin moin,
dieses Tutorial ist ja fein, aber eine Nachricht auszugeben ist nicht wirklich eine Kunst. Wenn du was ueber Betriebssysteme machen willst, musst du schon was zu Prozess-Scheduling, Resource-Management, usw. machen. Also wirklich harte Brocken, an denen sich viele die Zaehne ausbeissen. Und nichts fuer Ungut, aber du bist 16, schreibst ne Arbeit und nennst das ne "Diplomarbeit"? Und du hast dafuer ganze 2 Monate Zeit? Junge, das ist ein groesseres Referat, wir nennen das an der Uni Proseminar; eine Diplomarbeit ist da ein anderer Brocken. Da brauchst du gar nicht antanzen wenn dein OS nicht mindestens eine Programmierschnittstelle bietet. Just my $0.02. Achja, und noch was: bitte verwende Satzzeichen, manche Texte kann man ja kaum lesen... Greetz alcaeus |
Re: Mini System -- Ein eigenes Betriebssystem?
Ok danke
Aber Diplomarbeit nennen es die Lehrer das war nicht meine idee... Und ich habe den Willen Dazu ein Betriebsystem zu Programmieren und ich versuche es so gut es geht zu machen. Daher wäre ich froh das wenn jemand Ideen dazu hat sie hier schreibt. |
Re: Mini System -- Ein eigenes Betriebssystem?
[trivia]
In der Schweiz kriecht man n "Diplom" nach Abschluss des Gymnasiums (oder heißt das bei euch Oberschule?). Heißt zumindest so. Ergo Diplomarbeit. [/trivia] |
Re: Mini System -- Ein eigenes Betriebssystem?
Ne heist schon Gymnasium
Ich weiss meine lehrer sind etwas beklopt aber was solls... Hatte sowiso schon ein paar mal vor ein OS zu schreiben |
Re: Mini System -- Ein eigenes Betriebssystem?
Dieses Tutorial beschreibt soviel ich von Englisch verstehe wie man ein OS ind C oder C++ schreibt
Ich dachte man kan keine hochsprache benutzen ![]() |
Re: Mini System -- Ein eigenes Betriebssystem?
Nutze in Zukunft die Edit-Funktion (http://www.delphipraxis.net/template.../icon_edit.gif) , wenn dir noch was einfällt. :warn:
|
Re: Mini System -- Ein eigenes Betriebssystem?
Empfehlungen:
- Bochs als Emulator - Assemblerkenntnisse - C sollte man kennen - Grub als Bootloader: COFF oder WIN32 ? - ![]() - Enormes wissen - ![]() Ein Bootprozess wird hier gezeigt: ![]() Die meisten oben genannten Punkte brauchst du vlt. garnicht, aber sobald eine Oberfläche ins Spiel kommt, kann ich dir nur empfehlen, deine Zeit für etwas sinnvolleres zu verwenden, da das enorm in Tiefe geht. |
Re: Mini System -- Ein eigenes Betriebssystem?
Danke vielen dank :D
Ok dan werd ich wohl einen Bogen um eine Oberfläche machen :D |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
Nix fuer Ungut, aber eine "Oberflaeche" ist wichtig, egal ob text-based oder als GUI. Greetz alcaeus |
Re: Mini System -- Ein eigenes Betriebssystem?
Ich meinte die Oberfläche, wie bspw. ein Button, Edit usw. Da hört es dann ganz schnell auf....
Wenn man in einem Delphi-Forum ist, kann man ja wohl davon ausgehen, dass Oberfläche als GUI aufgenommen wird. |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
|
Re: Mini System -- Ein eigenes Betriebssystem?
Na ok, aber dass ich ausdrücken wollte, dass es für zumindest eine einzige Person als Programmierer relativ unmöglich ist, ein OS zu programmieren sollte klar sein ;)
|
Re: Mini System -- Ein eigenes Betriebssystem?
Klar es wird schwierig aber ich habe ja auch keine grossen ansprüche
/////////////////EDIT////////////////// Erster Kernel Läuft schon gut
Code:
mov ax, 1000h
mov ds, ax mov es, ax start: ; Hier fängt unser eigentliches "Betriebssystem" an mov si, nachricht ; Wir zeigen einfach nur einen String an call schreiben ; "schreiben" gibt den String am Bildschirm aus // mov si, nachricht2 ; Wir zeigen einfach nur einen String an // call schreiben ; "schreiben" gibt den String am Bildschirm aus // mov si, nachricht3 ; Wir zeigen einfach nur einen String an // call schreiben ; "schreiben" gibt den String am Bildschirm aus call lesen ; "lesen" wartet bis eine Taste gedrückt wurde jmp reset ; Danach wird die Funktion "reset" aufgerufen nachricht db "Eine Taste drücken, um neu zu starten...",13,10,0 // nachricht2 db "",13,10,0 // nachricht3 db "Druecken sie eine Taste um das System neu zu Starten...",13,10,0 schreiben: lodsb or al, al jz short schreiben_d mov ah, 0x0E mov bx, 0x0007 int 0x10 jmp schreiben schreiben_d: retn lesen: mov ah, 0 int 016h ret reset: db 0Eah dw 0000h dw 0FFFFh Er läuft gut ohne die Eingefügten stellen die ich mit den // markiert habe Mit den eingefügten stellen schreibt er nur PS Z Z auf dem bildschirm Woran liegt das und was mus ich verändern um den code so zum Laufen zu bringen wie ich es gedacht habe? grüsschen |
Re: Mini System -- Ein eigenes Betriebssystem?
Für was stehen die Zeichen zu letzt?
Code:
danke
nachricht db "Eine Taste drücken, um neu zu starten...",13,10,0
güsschen |
Re: Mini System -- Ein eigenes Betriebssystem?
Wow. Und du willst echt so ein Ding schreiben? Ueberleg mal wofuer die Zeichenkette <irgendwas>13<irgendwas>10 stehn koennte. Und was wissen wir ueber Strings z.B. in C? Genau, sie sind nullterminiert. Also bitte....
Greetz alcaeus |
Re: Mini System -- Ein eigenes Betriebssystem?
Vergiss es mal ganz schnell wieder. Ohne Kenntnisse in Assembler kommst du da nicht weit. Außerdem solltest du beachten dass die Bootloader-Datei genau 512 byte groß sein muss. Benutzt du grub oder lilo um deinen kernel aufzurufen, oder wie regelst du das?
|
Re: Mini System -- Ein eigenes Betriebssystem?
Wenn du den Code erklären willst, dann kannst du es erst recht vergessen. Ansonsten wird es ziemlich schwer. Du wirst Assembler zwar (wenn du es geschickt drehst) nur im Bootloader benötigen, aber trotzdem....
|
DP-Maintenance
Dieses Thema wurde von "alcaeus" von "Windows API / MS.NET Framework API" nach "Programmieren allgemein" verschoben.
Es geht nicht wirklich um Delphi |
Re: Mini System -- Ein eigenes Betriebssystem?
Ich benutze für den Kernel Notepad++
Was meinst du mit geschickt drehen? Tipps, Hinweise.. Ales gern gesehen :D |
Re: Mini System -- Ein eigenes Betriebssystem?
Du musst halt zusehen, dass du den Kernel größtenteils in C schreibst. Das ist nicht leicht (gerade vor ein paar Stunden aus Interesse gemacht) und das Hauptproblem wird wohl sein, dass die neuste Version von Bochs irgendwie keine boot.bin mehr ausführen kann (zumindest konnte ich es nicht so konfigurieren). Deshalb will ich dir den Link zu dem Kernel-Tutorial noch nicht schicken, da ich überlege, dir das am Ende mal komplett zu schicken (vorher macht das wenig Sinn, vorallem wenn manche Tutorials Bugs enthalten, die ich zum Glück alle schon kenne). Nicht, dass ich dir hier Hausaufgaben machen würde, aber wenn man auf der Ebene noch viel weniger als wenig Ahnung hat, kann das Jahre dauern und Beispiele helfen da schon weiter.
|
Re: Mini System -- Ein eigenes Betriebssystem?
Endlich mal jemand der über Beispiele gleich denk wie ich :D
Danke.. ich weis deine Mühe sehr zu schätzen.. Ich freue mich schon auf die Sachen :D |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
Zitat:
|
Re: Mini System -- Ein eigenes Betriebssystem?
Also zu _dem_ Thema muss ich mich auch mal melden. :hi:
Hochsprachen können verwendet werden, sobald du in den PM (ProtectedMode, 32-Bit) schaltest bzw. gleich in den LongMode (64-Bit). Allerdings wird es dann schwer (im RM ist relativ einfach, wenn man's in 2 Monaten schaffen will), da für alles selbst Treiber bzw. erstmal Funktionen geschrieben werden müssen. Soll heißen, dass du selbst auf den Speicher nicht so schnell einmal zugreifen kannst, da du erstmal eine Page-Table (mit Directory, etc.) anlegen oder Segmentierung "anschalten" musst. Dann geht's weiter - schließlich muss vom Bootmedium noch was nachgeladen werden (weitere Treiber). Heißt, als einfachstes bräuchtest du einen FDC-Treiber, der sich möglichst an den Standard von Intel hält und auch das ist ganz schöne Arbeit. Da die Diskette aber zunehmendst vom Aussterben bedroht ist, bietet sich gleich auch CD an. Und für CD brauchst du auch noch eine CDFS-Unterstützung, um überhaupt Dateien lesen zu können. ;) Um den Zugriff auf die Medien zu realisieren und einigermaßen Geschwindigkeit zu erhalten und nicht jedes Byte über die CPU laufen zu lassen müsstest du dann noch mit DMA arbeiten... Ich will dich davon jetzt nicht abbringen (da OS-Dev ein interesantes Thema ist :corky:), aber aus deinem bisherigen Erkenntnisstand würd ich sagen, such dir lieber was anderes. :warn: Denn wenn du gefragt wirst, was du für den Kernel benutzt, meint dann zum Beispiel, was für einen Compiler/Linker/Assembler du verwendest und nicht welchen Editor. ;) Greets, Mao PS: Noch viel Glück. :) |
Re: Mini System -- Ein eigenes Betriebssystem?
hi,
ja OS-Dev ist ein *sehr* interessantes Thema, aber die dafür benötigte Zeit ist auch um einiges größer, da man sich in so viele Sachbereiche einarbeiten muss. Um halbwegs das ganze Zeugs zu verstehen (RM,PM, Hardware-Sachen wie Diskette) brauchst du mind. 2 Jahre :roll: Wenn man sich wirklich mit OS-Dev beschäftigen will ist z.B. Lowlevel (eine deutsche Community) eine gute Adresse (kleine Magazine/Tutorials, Forum, IRC-Channel) ![]() Grüsse, Stefan |
Re: Mini System -- Ein eigenes Betriebssystem?
Es gibt da ein Mittelgroßes Freies Betriebssystem das Embeded-Systeme gedacht ist.
Heist "Ethernut" (ja mit u) und da kannst du dann mal alles lernen. Ist in C geschreiben. Alleine ein FAT zugriff oder ein TCP/IP Stack ist ein Arsch voll Arbeit, dann brauchst du noch einen , Zeichengenerator, Tastaturtreiber, Dispklaytreiber, MemoryManager, SHELL, Bootloader,..... Das Schreiben eines OS war vor 20 Jahren die Standard-Diplomarbeit für Informatiker (Unix Klon NR 0xff44) Das ist für dich NICHT NIHIHIHIHIHICHT in 2 Monaten zu bewältigen. Warum eins schreiben wenn es keinen einzigen neuen Aspekt gegenüber anderen OS bietet? Am einfachsten sind Betriebssysteme für Embeded Systeme, weil sie nicht so die Alleskönner sein müssen, blöd nur das man dann noch ne Platine entwerfen muss........... Hey, du hast nie Assembler programmiert. Sie zu das du dir schnell ein anderes projekt ausdenkst. |
Re: Mini System -- Ein eigenes Betriebssystem?
![]() Da findest du sehr viele Tutorials zum OS Developement in englischer Sprache. Für deine "Diplomarbeit" solltest du besser im Real Mode und bei Assembler bleiben. Der Protected Mode ist für Anfänger oft zu schwer, da sie keinen Zugriff mehr auf die Funktionen des Bios haben, und es mit dem Selber Programmieren doch so eine Sache ist. Wenn du deine Diskette standardmäßig mit Fat12 formatierst, sollten einfach I/O Operationen keine Hürde sein. Arbeite die Tutorials durch, versteh sie und versuch sie selber zu kommentieren. In zwei Monaten solltest du dann schon Einiges vorzuweisen haben. |
Re: Mini System -- Ein eigenes Betriebssystem?
Danke vielen dank Echt Klasse eure unterstützung.... :D
@QuickAndDirty Ich habe schon ein paarmal Assembler Programmier für Microcontroller, doch bin ich deswegen noch lange kein Profi. @All Es gibt doch da die Rescue CDs zb von Partition Magic.. Wie machen die das den? Die haben ja sogar ne EXE am laufen und Oberfläche Maus Etc.... schonmal herzliches Danke im voraus |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
|
Re: Mini System -- Ein eigenes Betriebssystem?
Ok Danke
dan wäre das auchmal geklärt :) langsam aber sicher komme ich dem Ziel doch immer ein kleines bisschen näher :D |
Re: Mini System -- Ein eigenes Betriebssystem?
Zitat:
Diesen Bootload mit 2 Calls als Betriebssystem oder Kernel zu bezeichnen ist ja schon ein Witz. Also ein DOS -> Disk-Operating-System brauchte vor mehr als 20 Jahre schon i.d.R. 20-30 KByte. Und so ein DOS konnte dann gerade mal eine Diskette lesen... Selbst so etwas würde ich heute nicht als OS bezeichnen. Selbst für ein "Hello World" wirst Du deutlich länger brauchen... Grüsse Frank :coder: PS.: Ich weiß wovon ich rede. ![]() - Disketten Betriebssystem - Diskeditor - Bootloader - Bildschirm I/O - Keyboard I/O Und das in $1100 bytes... |
Re: Mini System -- Ein eigenes Betriebssystem?
So ein Helloworld sollte man schon in C schreiben, da es 1. interessant, 2. ein guter Einstieg und 3. die Grundlage für den Aufbau des Kernels (meiner Meinung nach zumindest) ist. Da geht es dann schon los.... Wie verbindet man den Bootloader mit dem Kernel (ich meine hier wirklich den richtigen Kernel, welcher wenigstens die Startnötigen Sachen, wie z.B. Tastaturtreiber beinhaltet) ? Wenn ich plattformunabhängig programmieren muss, wie bekomme ich das mit C überhaupt hin ? Diese Fragen beantwortet wenigstens grundlegend das C-Tutorial von lowlevel. Dennoch wird das sau schwer, da du, wenn du die Grundlage geschaffen hast, eine Menge zu tun hast (wenn Arbeit alles wäre, würde das ja jeder schaffen ;)). Außerdem solltest du dir wenigstens im Klaren sein, wofür lowlevel in etwa steht....
@Mavarik: Da kann ich nur zustimmen, aber wenn man sich noch überhaupt nicht auskennt ist dies schonmal ein imho bedeutender Schritt, damit man etwas sieht (viele neigen wahrscheinlich allein bei HelloWorld nach kurzer Zeit zum Aufgeben...). |
Re: Mini System -- Ein eigenes Betriebssystem?
Ich will ja jetzt nicht so pessimistisch klingen und ich weiß auch nicht, wie viel programmiererfahrung du hast, aber mein Tipp ist:
Lass es! An deiner Stelle würde ich lieber irgendetwas anderes versuchen. Da hast du dann nach einer Woche die ersten ergebnisse und kannst dann die restliche Zeit das so weit verbessern, um eine gute Note abzusahnen. Aber wenn du jetzt anfängst ein Betriebssystem zu programmieren und du merkst nach 1 Monat, dass das doch nicht so leicht ist, wie dus dir vorgestellt hast, dann stehst du am Schluss entweder mit leeren Händen da, oder du hast nur noch 1 Monat Zeit, um mit einem völlig neuen Projekt zu beginnen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz