PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Betriebssystem in 7 Tagen



Miaaa
24.07.2004, 15:44
Tach.
Ich habe mal wieder was gaaanz einfaches vor: Ich möchte ein Betriebssystem proggen. Geht das, wie geht das, und vor allem: Geht das mit Delphi?
Es wäre schön, wenn miaaa jemand sagen könnte, was man alles beachten muss, was die einzelnen Programme brauchen, die man ausführen will, oder ob sonst irgendetwas zu beachten ist.
Oder ob das ganze eh nicht funzen kann und ich deshalb das ganze sein lassen sollte.
(Ich weiß, dass ich nicht "mal schnell so nebenbei" Windows nachproggen kann... Aber wenns mit etwas Aufwand ginge - warum nicht :D)

MagicMagor
24.07.2004, 16:19
Ein OS mit Delphi?
Das geht meines Wissens nach nicht. Müßtest du auf C++ umsteigen. Davon abgesehen ist ein OS nichts was man mal eben proggt, auch nicht mit etwas Aufwand. Lass die Idee fallen und programmier etwas, das in deiner "Gewichtsklasse" liegt.

Durandal
24.07.2004, 20:47
Ich befürchte, dass du garnicht genau weißt, was ein Betriebssystem eigentlich macht und wie es aufgebaut ist. (natürlich nur eine Vermutung)
Abgesehen davon, sieht es nicht wirklich so aus, als ob du schon größere Erfahrung im Programmieren hättest.

(Ich weiß, dass ich nicht "mal schnell so nebenbei" Windows nachproggen kann... Aber wenns mit etwas Aufwand ginge - warum nicht )
Das wäre für dich auch mit "Aufwand" nicht möglich.
Windows ist nun schon über ein Jahrzent in Arbeit, von einem riesigen Team, mit sehr vielen professionellen (oder nicht professionellen - wie mans sieht hehe) Programmieren - Microsoft.
Merkst du was? :rolleyes:


Du solltest deine utopische Idee "vorerst" auf Eis legen und an kleinen Dingen arbeiten. (Hello World?)

Ynnus
24.07.2004, 21:04
Lass es stecken! Ein OS ist so mit das schwierigste was man machen kann. Das schaffen selbst die erfahrensten Programmierer nicht ohne weiteres.
Außerdem solltest du eine Menge Ahnung von Assembler haben, sonst wird das nichts.

Und was möchtest du da mit Delphi machen? Einfach ne Exe kompilieren welche das OS darstellt? Dann sag mal der CPU, sie soll eine Delphi-compilierte EXE starten, ohne vorher ein OS zu laden. Geht nicht, mit einer Exe kann die nichts anfangen. Das ist ein Windows-Dateiformat womit die CPU nichts machen kann.
Also das solltest du schnell vergessen und lieber zu was gaaaanz einfachem greifen.

Ineluki
24.07.2004, 22:55
Selbst mit C++ kanst du kein OS von Grund auf aufbauen. Die einzige Sprache, die sowas kann, ist Maschienencode, also per hand Hexadezimalcode in den Masterbootrecord schreiben ... selbst fuer Assembler brauchst du schon ein fertiges OS .. zumindest zum compilieren ^^ dann hast du ja auch maschienencode ... dzu musst aber dabei drauf achten, dass du nur biosinterrups ansprechen darfst .. also selbst so nette sachen wie int 21h zum dateizugriff kanst du nicht benutzen, da das schon dosinterrupts sind ...

also alles per lowlevel hard•••••ugriff direkt ueber das bios ...

Dan kannst du zumindest ein OS schreiben, in das man booten kann, was aber noch keine andere funktionalisierung hat .. oder grade mal ein filesystem . wenn du wirklich gut bist ..

programme dadrunter zum laufen zu bringen (am besten noch welche, die auf win oder unix basieren) wirst du wohl in diesem leben alleine nicht mehr hinbekommen ...

Gruss Ineluki

nudelsalat
24.07.2004, 23:25
warez zu zensieren ist wohl doch nicht so das wahre, siehe Inelukis post.

@Miaaa
Selbst wenn du das nötige wissen für die Programmierung hättest, es würde alleine einfach zulange dauern, ein akzeptables Betriebssystem zu programmieren. Betriebssystem in 7 Tagen...
daraus wird nicht... :rolleyes:

Jesus_666
25.07.2004, 05:58
hard•••••ugriffDas ist einfach nur traurig.

Man kann ein komplettes OS schreiben. Mit ein Maschinencodekenntnis geht das tatsächlich. Es reicht schon, wenn man eine Laderoutine in Maschinencode schreibt, die den rest lädt, der in einer Hochsprache verfaßt ist. Nur dauert es extrem lang und ist kaum sinnvoll; etwas wie MS-DOS dürfte für einen erfahrenen Programmierer immer noch ein paar Monate in Anspruch nehmen.

Crash-Override
25.07.2004, 06:33
Als ich letzens in der Bücherei war gab's dort ein Buch "Betriebssystem programmierung mit Ada" oder so ähnlich.
Als ich mich etwas darüber informiert hab hab ich herausgefunden das Ada von den Amerikanern benutzt wurde (Militär etc) um ihre Programme zu schreiben...

Naja ...

Also früher wollt ich auch mal eins schreiben (Beriebssystem und hab mich dort in der Scene mal umgesehen)
Habs dann aber gelassen. Die unterscheiden dort zwischen 2 Betriebssystem arten.
Bios "abhängigen" Bios erledigt Tastatur Treiber etc. oder eigenständige (alle Treiber selbst proggran)

o.O

Sry hab rad keine Links zum Thema aber google hilft sicher....

edit:

http://lowlevel.net.tc/
Ein E-Book Magazin zum Thema...

Miaaa
30.07.2004, 15:07
Na ja...
Muss wohl weiter am DATACOM II 'rumbasteln...
Schade, dass es nicht so einfach geht wie ich dachte :(, aber nicht zu ändern!
Trotzdem Danke! ;)

Jedenfalls les' ich mir das Lowlevel-Magazin jetzt mal durch. Wer weiß, vielleicht wird aus meinem eigenen Betriebssystem ja doch noch was? :D

Silencium
10.08.2004, 07:59
Hmm ein OS mit C++ oder Delphi...nunja, vom Prinzip möglich.

1. Einen Kernel mit ASM schreiben
2. Einen Compiler mit ASM für dein System für z.B. C++ schreiben
3. In C++ weiterprogrammieren.


drei Punkte, ewiger Aufwand.

Crash-Override
10.08.2004, 20:00
Original geschrieben von Silencium
Hmm ein OS mit C++ oder Delphi...nunja, vom Prinzip möglich.


Möglich, C++ geht ja noch aber Delphi - so gut wie unmöglich, da Delphi Exen erzeugt...


Original geschrieben von Silencium
1. Einen Kernel mit ASM schreiben
2. Einen Compiler mit ASM für dein System für z.B. C++ schreiben
3. In C++ weiterprogrammieren.


drei Punkte, ewiger Aufwand. [/


Nöp, falsch nur einen Bootloader mit C (!) Mini-Compiler schreiben, der dann denn Kernel (aus C) aufruft (Vorsicht Bootloader muss in einen Sektor passen, sonst muss man ihn so machen das er den nächsten Aufruft)

Silencium
10.08.2004, 20:12
EDIT: Post kann gelöscht werden, hätte den Post meines Vorgängers genauer lesen sollen ;-)

Dai2kMaster
11.08.2004, 18:27
ne Idee wäre sich den Sourcecode von Linux zuzulegen. Hab aber kA wo und welche Programmiersprache des dann ist (glaub c++ :rolleyes: )

Jesus_666
11.08.2004, 20:48
Original geschrieben von Dai2kMaster
ne Idee wäre sich den Sourcecode von Linux zuzulegen. Hab aber kA wo und welche Programmiersprache des dann ist (glaub c++ :rolleyes: ) Die aktuellen Linux-Sourcen kann man sich grundsätzlich von http://kernel.org besorgen. Allerdings könnte der Linux-Kernel eine etwas unhandliche Vorlage sein - er hat fast sechs Millionen Zeilen Code (Stand 2.6.0).
Vielleicht wäre Minix eine bessere Wahl... Eigentlich war Linux anfangs nichts anderes als ein Minix-Klon.

Linux ist in C (mit einigen GNU-Erweiterungen und etwas Assembler) geschrieben.

Crash-Override
12.08.2004, 01:40
Original geschrieben von Jesus_666
Die aktuellen Linux-Sourcen kann man sich grundsätzlich von http://kernel.org besorgen. Allerdings könnte der Linux-Kernel eine etwas unhandliche Vorlage sein - er hat fast sechs Millionen Zeilen Code (Stand 2.6.0).
Vielleicht wäre Minix eine bessere Wahl... Eigentlich war Linux anfangs nichts anderes als ein Minix-Klon.

Linux ist in C (mit einigen GNU-Erweiterungen und etwas Assembler) geschrieben.

Und wie wärs mit ner alten Linux Edition es gab glaub ich mal 0.0.1 oder so... hatt ich mal alc sourcecode... War recht klein und einfach gemacht...

Jesus_666
12.08.2004, 02:57
Wie gesagt, ein Minix-Klon.

blue lord
12.08.2004, 03:01
Woher bekommt man so ne ganz alte Version vom Linuxcode (die noch einigermaßen überschaubar ist)?

Jesus_666
12.08.2004, 05:37
Hier (http://www.cs.vu.nl/pub/minix/) gibt's Minix. Minix wurde speziell geschrieben, damit man was draus lernen kann und dürfte zum Anschauen ganz gut geeignet sein, die nötigen Grundkenntnisse vorausgesetzt.

Den Linux-Kernel kann man sich von kernel.org (http://kernel.org) herunterladen (Version 0.01 sitzt in diesem Verzeichnis (http://www.kernel.org/pub/linux/kernel/Historic/)). Der Kernel ist in TAR/GZip und TAR/BZip2-Archiven verfügbar; jedes normale Linux- oder BSD Unix-System sollte keine Probleme mit dem Entpacken haben.
Man sollte aber die finnische Tastaturbelegung mögen, die ist fest eingebaut. Außerdem braucht man Minix, um Linux 0.01 booten zu können.

Miaaa
05.01.2005, 22:30
OK, ich hab jetzt (doch schon so schnell :D :D :D ) mit der Programmierung des "DATACOM4" angefangen. Ich werde wahrscheinlich das ganze in Assembler machen (weil ich von Delphi schon genug kenne, um zu wissen, dass es in Delphi eine Sauarbeit ist. Assembler jedoch kenne ich noch kaum, und weiß nicht, was das für eine Sauarbeit in Assembler ist ;) .)
Das erste 'Betriebssystem' ist auch schon fertig: es gibt eine Zeile Text aus (Lädt DATACOM4...) und startet dann einen Kernel, welcher wiederum eine Zeile Text ausgibt. (Neustart mit Tastendruck...) Und wenn man dann eine Taste drückt, wird der Computer neugestartet (Da ich noch nicht einmal weiß, wie ich den Computer herunterfahren kann. Ehrlich gesagt - weiß ich gar nichts... Aber der Mensch wächst mit seinen Aufgaben.)
Falls mir noch irgendjemand KONSTRUKTIVE Tipps geben kann, (wie z. B. die Links [DANKÄÄÄ http://www.multimediaxis.de/images/smilies/old/sm_12.gif ]) solle er einfach hier posten.

kpayne
06.01.2005, 00:25
Hallo Miaaa,
ich will dir deine Arbeit und deinen Spaß nicht verderben, aber wenn du wirklich keine Ahnung von Assembler hast, wieso lernst du das dann nicht, und fängst mit etwas kleinerem an? Ein Betriebssystem ist eine Mordsarbeit, und das wirst du nicht 1 Jahr dransitzen, besonders wenn du nichts davon verstehst!

Besonders alleine daran zu proggen^^ Wenn Microsoft schon im Team mit mehr als 100 Leuten mehr als 2-3 Jahre daran proggt, dann wirst du wohl kaum alleine ein solches Betriebssystem hinkriegen.

Mein Tipp: Lass es, lern das oder beschäftige dich mit ner anderen Prog. Sprache und progg Spiele und Progs die nützlich sind.

cya

P.S: es ist nur ein Tipp von mir, aber lass dich davon nicht abhalten wenn du unbedingt sowas proggen willst !

Miaaa
11.01.2005, 21:23
Keine Angst!
Ich lass' mich nicht abhalten.
Ich habe NIE behauptet, dass mein Betriebssystem großartig 'was machen soll. Wozu Widows nachproggen? - Gibbet ja schon :D .
Ich will einfach ein unabhängiges Computerproggi schreiben, das mal ausnahmsweise nicht wie bei Delphi nur auf meinem Rechner, sondern auch auf dem meiner Mutter, meiner Oma, dem Freund meiner anderen Oma uso. läuft. Wenn's *.exe-Dateien aufrufen kann - gut. Wenn nicht - auch nicht so schlimm. Hauptsache ich bekomm es hin, dass mehr als die jetzigen (ca.) 1512 Byte zu nutzen sind, und dass ich darin mindestens ein Spiel unterbringe (bloß 'was primitives, sowas wie "Errate, ob das nächste verarbeitete Bit den Wert 0 oder 1 hat!").
Alles was dann evntl. noch kommt ist zusätzlich, schön, aber nicht unbedingt nötig. (Wer braucht schon eine GuI? Wer braucht schon farbige Pixel? Wer braucht schon mehr als 320x240? Wer braucht schon einen Copmuter... ;) )

obe
20.01.2005, 13:29
CHallo.

Hier ein Link, den Du dir unbedingt ansehen solltest, dort wird in 6 Ausgaben erklärt, wie man ein BootLoader bis zum OS programmiert.

http://lowlevel.net.tc/

Du wirst es wohl allein nicht schaffen, eine OS zu proggen, das Executables(datei.exe) von Windows ausführen kann, ausser du nimmst dir dafür 10 Jahre zeit ;-)

codec
20.01.2005, 17:36
@obe:

Der Link wurde schon vorher im Thema gepostet.

Ogrim Doomhammer
26.01.2005, 11:52
geht das auch mit c++ ?

mfg Ogrim

Jesus_666
26.01.2005, 14:00
Selbst mit C++ kanst du kein OS von Grund auf aufbauen. Die einzige Sprache, die sowas kann, ist Maschienencode, also per hand Hexadezimalcode in den Masterbootrecord schreiben ... selbst fuer Assembler brauchst du schon ein fertiges OS .. zumindest zum compilieren ^^ dann hast du ja auch maschienencode ... dzu musst aber dabei drauf achten, dass du nur biosinterrups ansprechen darfst .. also selbst so nette sachen wie int 21h zum dateizugriff kanst du nicht benutzen, da das schon dosinterrupts sind ...

also alles per lowlevel hard•••••ugriff direkt ueber das bios ...

Dan kannst du zumindest ein OS schreiben, in das man booten kann, was aber noch keine andere funktionalisierung hat .. oder grade mal ein filesystem . wenn du wirklich gut bist ..

programme dadrunter zum laufen zu bringen (am besten noch welche, die auf win oder unix basieren) wirst du wohl in diesem leben alleine nicht mehr hinbekommen ...Kurz gesagt: Nein.