Autor Thema: Eigenes OS in 4 Monaten?  (Gelesen 13635 mal)

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« am: 13. May 2005, 17:01 »
Hi, (hoffe ich bin im richtigen Bereich für das Thema)

wollte Nachfragen , bevor ich mich an die Arbeit begebe, ob es realistisch wär ein Single User / Single Tasking  OS in 4 Monaten zu schreiben ?
Das OS sollte von Diskette Booten und aus einer Shell bestehen , also keine Graphische Oberfläche, einen Assembler Bootloader und einen C bzw. C++ Kernel haben und vom Umfang  praktisch ein ganz einfaches DOS-Like Betriebssystem . Es würden 2 leute daran arbeiten die Grundkenntnise in C/C++ haben jedoch noch keine in Assembler.  
Würdet ihr es nun für Realistisch einschätzen das in 4 Monaten zu schaffen unter der berücksichtigung sich in Assembler und in die Materie einzuarbeiten ?

EDIT: Ich sollte vieleicht noch dazu sagen das es eigentlich nur eine Tastatur und eine VGA Ausgabe unterstützen sollte, also besteht für Sound , Netzwerk usw. keine Notwendigkeit.

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 13. May 2005, 17:11 »
Pmode? oder RealMode?
Wieviel Zeit würdet ihr pro Tag einsetzen?

und mal ganz nebenbei: Warum gerade 4 Monate? :D

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 13. May 2005, 17:16 »
Nimm dir doch vielleicht FreeDOS (www.freedos.org) als Beispiel. Da waren sicher mehr als 2 Coder am Werk. Das Projekt wurde schon lange gestartet. Aber ich nehme an, sie hatten mehr als 4 Monate, bis sie das grundlegende hatten, aber eigentlich finde ich das gar nicht so unrealistisch.

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 13. May 2005, 17:17 »
Also soweit ich mich eingearbeitet habe steht Pmode sicher für Protected Mode oda ? :)  
Ich weiß nicht was von beiden wär empfehlenswerter?

Aber wie gesagt in die Materie muss ich mich noch einarbeiten ^^


die 4 Monate deswegen weil es eine Facharbeit für die Schule wird, und sich nun deswegen die Frege stellt ob sowas in diesem Zeitraum überhaupt zu realisieren wär, da es sehr schlecht für die Note wär wenn das nicht einigermassen läuft. Es muss ja nicht sehr schnell oder stabil sein nur die wirklich grundlegensten Funktionen eines OS erfüllen.

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 13. May 2005, 17:20 »
Naja wie gesagt ich hab sowas noch nie gemacht und kann deswegen nur schlecht einschätzen wie viel Zeit das ganze beansprucht, deswegen die Frage ^^


EDIT: Um vieleicht was Konkreter zu werden , wie lange würde es den ungefähr dauern ein OS zu coden das von Diskette Bootet , eine Shell besitzt die einem die Dateien und Ordner auf der Diskette anzeigen kann und beispielsweise ein HelloWorld Programm starten kann ? So damit ich mal ein Einblick bekomme über die Zeitlichen Dimensionen die soein OS beansprucht ^^

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #5 am: 13. May 2005, 17:40 »
Also machbar ist es. Aber es kommt drauf an wie viel Zeit du täglich reinsteckst, wie gut deine Auffassungsgabe ist und wie viel du vom Programmieren ansich verstehst.

Solltest du von OS Dev so gut wie keine Ahnung haben und auch in ASM nit fit sein, dann hast du ein gutes Stück arbeit vor dir.
----------------------
Redakteur bei LowLevel

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 13. May 2005, 18:29 »
Also nen Bootloader macht man an 1-3 Tagen wenn man sich mit ASM auskennt und sich auch mit den Hintergründen auskennt. Das OS ist schwieriger einzuschätzen. Ich würds so aufteilen:
o Grundlegende Sachen (ports, pm, ...): 1 Tag
o Floppy-Treiber: Kann in ner Woche gehen, kann aber auch Monate dauern
o FS (Fat12): Ähnlich wie Floppy
o Textausgabe: 2-3 Tage
o Tastatur: 1-2 Tage
o Memory Manager: 1 Woche vlt.
o ...
Also die Liste ist überhaupt nicht vollständig, und ist auch nicht so genau, sondern eher meine spontane Einschätzung. Wenn ihr euch wirklich bemüht, schnell lernt und die eine oder andere Zeile Code klaut schafft ihr das. Ansonsten noch ein paar Tipps:
o Floppy-Treiber macht oft Probleme, HDD ist VIEL einfacher (1 Tag max)
o Monolitischer Kernel ist hier besser geeignet (also alles zusammen, keine Module)
o PMode ist empfehlenswert, aber es dauert alles ein wenig länger

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 13. May 2005, 19:18 »
Zitat von: DarkThing
Ansonsten noch ein paar Tipps:
o Floppy-Treiber macht oft Probleme, HDD ist VIEL einfacher (1 Tag max)
o Monolitischer Kernel ist hier besser geeignet (also alles zusammen, keine Module)
o PMode ist empfehlenswert, aber es dauert alles ein wenig länger



Danke für die Tipps, das ist für den Anfang schon mal sehr Hilfreich, da man schonmal weiß was man sich genau angucken muss, aber ich seh schon das wird nen hartes Stück arbeit ^^  aber egal wir sind hoch motiviert ^^

Zu der Sache mit dem Floppy Treiber, wegen der HDD soll das OS dann auch von der Festplatte Booten oder nur von ihr lesen ?`


Ich danke allen die mir hier weiter geholfen haben , und denke man wird mich in Zukunf öfter hier im Forum sehen ^^  danke schonmal an alle im voraus die mir weiterhelfen werden  :D

mastermesh

  • Beiträge: 341
    • Profil anzeigen
    • http://www.kostenloser-laptop.de/
Gespeichert
« Antwort #8 am: 13. May 2005, 19:29 »
Meine Tipps, wenn du in diesen 4 Monaten wirklich etwas zu stande bringen willst:

- Real Mode. Protected Mode ist für Anfänger sehr schwer zu implementieren.

- Monolithischer Kernel. Ein Microkernel mag zwar designtechnisch besser sein, ist aber auch komplizierter.

- Verschwende keine Zeit, einen eigenen Bootloader zu bauen. Konzentriere dich auf den Kernel.

- Vergiss Ports und das direkte Ansprechen von Hardware. Im Realmode hast du BIOS-Interrupts, die das für dich erledigen - benutze sie!

- Vergiss die Festplatte. Partitionen sind nicht einfach und die Gefahr, dass du deine Daten verlierst, hoch.

Allgemein: konzentriere dich aufs Wesentliche. Ich denke mal, wenn du meine Tipps befolgst, wäre dein Projekt realistisch. Sonst nicht.

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 13. May 2005, 20:36 »
Was ist denn nun einfacher und schneller zu realisieren , floppy oder HDD ?
mögliche Datei Verluste , stabilität und schnelligkeit sollten keine rolle spielen... es muss nur funktionieren  ^^

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #10 am: 13. May 2005, 20:41 »
Wenn du im RM bleibst ist beides gleich da du die BIOS Ints nutzen kannst
im PM ist HDD sicherlich schneller zu machen
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

SPTH

  • Beiträge: 79
    • Profil anzeigen
    • http://www.spth.de.vu
Gespeichert
« Antwort #11 am: 13. May 2005, 20:44 »
Zitat von: Masen

Zu der Sache mit dem Floppy Treiber, wegen der HDD soll das OS dann auch von der Festplatte Booten oder nur von ihr lesen ?


Wie mastermesh schon völlig richtig geschrieben hat, solltest du unbedingt auf FAT32 oder andere HD-FSs verzichten. ich brauchte alleine zum verstehen von FAT32 einige wochen.

Die MS-tuts über dieses Thema sind zum Teil wirklich schwer zu verstehen, und es gibt nur eine ganz kleine Anzahl von leuten, die dir echt dabei helfen können (zB hier hat mir leider niemand helfen können - erst im MenuetOS forum haben mir 2 leute vieles genau erklären können)

Zitat von: Masen
Es würden 2 leute daran arbeiten die Grundkenntnise in C/C++ haben jedoch noch keine in Assembler.


Das ist dann nochmal eine eher schlechte ausgangsposition. Um die ganze Materie zu verstehen, muss man schon auf einem bestimmten wissenslevel bei ASM sein. Und diese Sprache versteht man nicht nach einem monat. das braucht viele (!) monate. und trotzdem wird man immer wieder rießige probleme vor sich haben!

Ich will dir das jetzt nicht ausreden, aber wenn ich an deiner Stelle wäre, ich würds nciht riskieren :)

grüsse, ...
'Imagine all the people living life in peace!' (Imagine by John Lennon)

http://www.spth.de.vu <- Meine Codes und Artikel
Freier Schreiber für LowLevel

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 13. May 2005, 20:56 »
Zitat von: SPTH


Das ist dann nochmal eine eher schlechte ausgangsposition. Um die ganze Materie zu verstehen, muss man schon auf einem bestimmten wissenslevel bei ASM sein. Und diese Sprache versteht man nicht nach einem monat. das braucht viele (!) monate. und trotzdem wird man immer wieder rießige probleme vor sich haben!

Ich will dir das jetzt nicht ausreden, aber wenn ich an deiner Stelle wäre, ich würds nciht riskieren :)

grüsse, ...



Hmm.... und wenn man den Kernel nun in C realisiert ? den Bootloader könnte man doch auch sicher von jemanden übernehmen und anhand von Tut´s und Assembler Grundkenntnisen seinen Bedürfnissen Anpassen ?!?

Ich muss das noch genau mit meinem Betreungslehrer absprechen wie stark wir auf OpenSource Sachen zurückgreifen können.

Leider hab ich auch noch größere Zweifel , aber das Projekt sollte für uns nur als Einstieg in OS Dev dienen , es muss nicht richtig gut und groß werden. Sollte uns das einigermassen glücken , werden ich und mein freund danach noch eigenständig einem bischen umfangreicheren Arbeiten, aber das für dieses muss wirklich nur minimal sein .

Naja ich guck mir übers wochende alles mal was genauer an und sprech das dann mal mit meinem Team Kollegen und Betreuungslehrer ab ^^

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #13 am: 13. May 2005, 23:43 »
Jo,

ich halte 4 Monate sicherlich für angemessen. als ich angefangen hab, hatte ich 0 asm und hab für ein multitasking os mit paging und fs und dem ganzen klimbim (shell, testprogramm) 1 1/2 jahre gebraucht. allerdings is einiges davon verschwendete zeit gewesen (etwa die hälfte hab ich an stage 1 gehockt, die mit sektoren statt datein gearbeitet hat) und wenn man asm kann, dann is das auf jeden fall zu schaffen. ich hab da unter der woche ~1 std pro tag und am wochenende 5 std pro tag reingestopft => pro woche = 1*5+2*5 = 15 std...

J!N
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 14. May 2005, 11:15 »
@Floppy vs. HD: Wenn du HD einbaust, dann von Diskette booten und auf HD lesen und schreiben. In meinem PM Kernel hat der (eher simple aber voll funktionsfähige) HDD-Treiber 118 Zeilen Code. Der Floppy-Treiber (der immer noch Probleme macht) hat schon 698 Zeilen.

@PM vs RM: Mit dem RM macht mans sich sicherlich viel leichter aber vom PM hat man im Endeffekt mehr. Du solltest einfach mal einen kleinen PM-Kernel mit einem kleinen RM-Kernel vergleichen.

@Bootloader: Wenn keiner von euch wirklich ASM kann, solltet ihr erst gar nicht versuchen einen eigenen Bootloader zu schreiben. Verwendet stattdessen am besten GRUB. Da kann man auch von HD booten.

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 14. May 2005, 14:09 »
joa dank dir ^^

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 15. May 2005, 16:42 »
Kein Problem  :wink:

Noch was: Du solltest dir überlegen ein eigenes FS zu designen. Oder eins von nem anderen User hier. Das hat zwar auch viele Nachteile aber es ist um  einiges einfacher einzubauen.

Masen

  • Beiträge: 31
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 15. May 2005, 17:24 »
^^

Also bisher hab ich mir folgendes Überlegt:

Single User
Single Tasking
ASM Bootloader
C Kernel
Real Mode
FAT12
Floppy Treiber
Tastatur Treiber
und eine kleine Shell

kann ich dich vieleicht ICQ adden für kleine Fragen die sich während des entwickelns ergeben ? wär für kleinigkeiten sicher schneller und effektiver als übers forum.

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #18 am: 15. May 2005, 17:39 »
Da du im RM bleiben willst brauchste keine Floppy/Tastaturtreiber im eigentlich Sinne, die liefert dir das BIOS^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 16. May 2005, 12:11 »
Aber man muss sich Funktionen schreiben, die die BIOS-Funktionen verwenden. Im Prinzip sind das dann die Treiber.

Zitat
kann ich dich vieleicht ICQ adden für kleine Fragen die sich während des entwickelns ergeben ?

Kein Problem. ICQ-# steht im Profil

 

Einloggen