Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Betriebssystem :X (https://www.delphipraxis.net/110146-betriebssystem-x.html)

Neutral General 13. Mär 2008 16:37


Betriebssystem :X
 
Hi^^

Also mir ist gerade langweilig und deswegen will ich ein Betriebssystem programmieren.
..
...
....
:mrgreen:

Ok so naiv bin ich mittlerweile nicht mehr (war ich glaube ich auch noch nie :stupid: ) aber trotzdem :P

Im Prinzip stimmt der erste Satz dieses Threads sogar. :duck:
Aber der zweite stimmt auch :corky:

Ok genug um den heißen Brei drumrum geredet :wink:

Letztens habe ich mich etwas "aufgeregt" als ich meine C:\ Festplatte mal untersucht habe und mich oft gefragt habe: "Was ist denn das bitte gut?". Windows ist so groß und mach im Hintergrund sooo viel, von dem man erstmal gar nichts mitbekommt. Und da dachte ich mir: So ein kleines "einfaches" Betriebssystem wo man als nicht total-DAU weiß, was das Betriebssystem macht und wofür dieses und jenes ist, wäre doch mal nicht schlecht.

Heutzutage hat man Gigabytes von Daten auf seinem PC aber selbst als Programmierer weiß man nicht genau was da überhaupt alles vorgeht. 1000nde von Programmen, DLLs oder sonstige Daten die irgendwelche seltsamen Namen tragen und deren Funktion wohl Gott alleine kennt.

Letztendlich hat das bei mir dazu geführt das ich mir dachte: "Da gab es doch mal so ein Tutorial mit dem man "Betriebssystem" programmieren konnte" (oder besser gesagt ein bootfähiges "Etwas" :mrgreen: )

Aber was habe ich davon wenn ich ein paar Zeilen/Seiten ASM ausm Internet abschreibe? Würde das ganze schon gerne son bisschen verstehen. Wie ist so ein Betriebssystem aufgebaut? Wie arbeitet ein Betriebssystem intern? Na gut, man kennt z.B. sowas wie Messages von Windows aber Messages sind ja im Prinzip schon High-Tech im Gegensatz zu dem, was dadrunter verborgen ist.

Also ich habe hier nicht die Absicht ein richtiges OS (erst recht nicht eins, das mit irgendeinem anderen vernünftigen mithalten kann ;) ) zu programmieren aber mich interessiert das ganze doch mal und ich würde einfach gerne mal sehen was dahinter steckt und wie weit man da als Neutral General alleine kommt. (Ja ich weiß: Wahrscheinlich nicht weit, aber ich wills selbst mal probieren :) )

Gruß
Neutral General

igel457 13. Mär 2008 16:49

Re: Betriebssystem :X
 
Meiner Meinung nach ist das komplizierteste der Bootloader - aber den gibt es auch schon fertig. Danach kannst du eigentlich sogar ganz normal mit Delphi weiter programmieren.

Siehe auch hier: http://www.homix-online.de/homixos/

Leider ist sein Tutorial, wie man selbst Betriebsysteme mit Delphi schreiben kann gerade nicht Online.

Larsi 13. Mär 2008 17:05

Re: Betriebssystem :X
 
Kann man dann nur Konsolenbasierend in Delphi arbeiten oder auch richtig mit fenstern und so? Aber delphi verwendet doch exe dateien, oder? Wie soll man dafür ein Betriebssystem machen, das ist doch voll schwer oder macht genau das son botloader?

Chewie 13. Mär 2008 17:11

Re: Betriebssystem :X
 
Mach dich zunächst mit der Hardware in deinem Rechner vetraut.

Wenn du weißt, welche Bauteile sich so alles in der CPU und "Umgebung" befinden, dann weißt du auch ungefähr, was ein Betriebssystem grundlegend leisten muss.

Klaus01 13. Mär 2008 17:12

Re: Betriebssystem :X
 
Zitat:

Zitat von Larsi
Kann man dann nur Konsolenbasierend in Delphi arbeiten oder auch richtig mit fenstern und so? Aber delphi verwendet doch exe dateien, oder? Wie soll man dafür ein Betriebssystem machen, das ist doch voll schwer oder macht genau das son botloader?

Ob Konsole oder nicht, Delphi Programme benötigen
ein Win32 kompatibeles Betriebsystem.

Grüße
Klaus

igel457 13. Mär 2008 17:13

Re: Betriebssystem :X
 
Nicht wenn du die System.pas umschreibst.

EDIT: Du kannst dann weder VCL- noch Konsolenprogramme, sondern einfach nur Programme schreiben - das ist das selbe wie wenn du einen Mikrocontroller programmierst.

BUG 13. Mär 2008 17:29

Re: Betriebssystem :X
 
Ich verweisen da gerne auf LowLevel,
die haben viele interessante Sachen zum Thema OS-Entwicklung,
besonders die Magazine sind lesenswert.

MfG,
Bug

Neutral General 13. Mär 2008 17:33

Re: Betriebssystem :X
 
Hi,

Danke schonmal für die Antworten. Gibt es irgendwo eine Liste mit konkreten grundlegenden "Features" die ein OS haben muss. Also irgendwas, einen Ansatz, was überhaupt vor mir liegt und wie ich das ungefähr machen muss/müsste.

Kann im Moment keine guten Fragen stellen, weil man auch ein gewisses Wissen braucht um Fragen stellen zu können und das besitze ich leider nicht :|


EDIT: Danke BUG! Das sieht doch schonmal vielversprechend aus!


Gruß
Neutral General

bluesbear 13. Mär 2008 17:38

Re: Betriebssystem :X
 
Zitat:

Zitat von igel457
Du kannst dann weder VCL- noch Konsolenprogramme, sondern einfach nur Programme schreiben - das ist das selbe wie wenn du einen Mikrocontroller programmierst.

Ja, das war auch mein erster Gedanke. Man muss erstmal die Hardware vollständig kennen. Bei einem modernem PC ist das für mich eine Horrorvorstellung! Ein Filesystem programmieren, Treiber für verschiedene Komponenten... Hölle!
Microcontroller sind cool, das macht Spaß. Ich hab sogar ein LEGO Minstorms :-D Aber auch dafür benutze ich lieber vorhandene Betriebssysteme. NQC oder so.

stefan2005 13. Mär 2008 17:40

Re: Betriebssystem :X
 
Hi,
Bootloader ist sicherlich kompliziert, weil er in Assembler geschrieben werden muss und bis auf die BIOS-Funktionen auf nichts zugreifen kann, aber es gibt auch viele fertige und freie Bootloader, wie z.B. GRUB, den man auch auf Diskette installieren kann. Dieser würde am Anfang lästiges Zeug abnehmen. (z.B.: Laden weitere Dateien von einer FAT Diskette, wechseln in den 32-Bit Protected-Mode, ...)

Um zu verstehen was ein Betriebssystem macht, muss man sicherlich viel Zeit haben und viel lesen und rumprobieren. Einige Ansatzstellen kannst du sicherlich auf der deutschsprachigen Seite Lowlevel (keines Wiki, einige ältere kleine Magazine, IRC-Channel, Forum) finden!

Wenn du eine "HighLevel" Programmiersprache wie z.B. Pascal oder C/C++ verwenden willst, musst du dir natürlich auch einen Compiler raussuchen. Theoretisch eignet sich dafür auch ein Delphi Compiler (du benötigst lediglich einen kleinen PE-Zwischenloader nach dem Bootloader) mit einer eigenen System.pas. Somit stehen natürlich keine Delphi-üblichen Funktionen parat, sondern nur die Sprache an sich. Jedoch muss man auch für FreePascal oder diversen C/C++ Compilern eine eigene RTL bzw c-lib schreiben (und auch Inline-Assembler verwenden) und hier steht natürlich dann genauso nur die Sprache und keine Bibliothek an Funktionen bereit. Ich bevorzuge in letzter Zeit FreePascal, einzig allein aus dem Grund, da hier "erkennbare" Ansätze einer 64-Bit Variante inzwischen zur Verfügung stehen.

Was für Features ein OS braucht lässt sich schwer sagen, weil man von Grund auf etwas eigenes designen kann. Erst im Verlauf der Entwicklung wirst du merken was du als nächstes haben willst oder brauchst.

Grüsse,
Stefan

3_of_8 13. Mär 2008 17:41

Re: Betriebssystem :X
 
NQC ist ein Betriebssystem? Für mich ist das ein ganz normaler Compiler. Der RCX hat nicht wirklich ein Betriebssystem, soweit ich weiß. Er braucht auch keins, die Hardware ist fest und ändert sich nicht.

bluesbear 13. Mär 2008 17:50

Re: Betriebssystem :X
 
Zitat:

Zitat von 3_of_8
NQC ist ein Betriebssystem? Für mich ist das ein ganz normaler Compiler. Der RCX hat nicht wirklich ein Betriebssystem, soweit ich weiß. Er braucht auch keins, die Hardware ist fest und ändert sich nicht.

Jain. Da heißt das "Firmware". Jemand hat Vorarbeit geleistet, und grundlegende Funktionen zur Verfügung gestellt. Einen PIC Microcontroller z.B. (ok, auch antik inzwischen <seufz>) programmiert man direkt auf der Hardware.
Mein Punkt war: wenn man auf irgendwas vorhandenem aufsetzt, programmiert man nicht ein Betriebssystem, sondern eine Benutzeroberfläche. Das ist ungefähr so, wie das erste Windows auf DOS aufgesetzt hat.

Nils_13 13. Mär 2008 18:05

Re: Betriebssystem :X
 
Hi,

den Delphicompiler zu nehmen oder die System.pas ANPASSEN ist totaler Schwachsinn. An FreePascal führt hierbei kaum ein Weg vorbei, vorallem weil du damit viel spezifischer kompilieren kannst. Außerdem kann man bei FreePascal nach den Funktionen suchen, diese kurz kopieren und dadurch hinzukommende Funktionen auch noch reinnehmen. Bootloader selbst zu programmieren ist, wenn man nicht gerade den ganzen Tag Zeit hat eine Aktion die, wenn er gut werden soll, bei einigen schon zwei Jahre gedauert haben. Du wirst andauernd Sachen erlenen müssen, also nachforschen usw. (kann teilweise Wochen dauern) und diese dann auch noch in deinen Kernel integrieren. Gerade das integrieren ist die dreckigste Sauarbeit die es gibt. Du wirst im Laufe der Zeit dich immer mehr fragen, ob es überhaupt sinnvoll ist. Wenn du da schnell die Erfahrung im Negativen sammelst, hast du wenigstens nicht viel Zeit verloren.

Fazit:
Lass es, ich habe dabei auch sau viel Zeit VERLOREN für NICHTS. Selbst wenn du einen Kernel hast, bringt der dir fast nichts. Und alleine ist das imho unmöglich. Habe da eigene Erfahrung mit gesammelt, sogar was geschafft, aber fast für nichts.

Neutral General 13. Mär 2008 18:09

Re: Betriebssystem :X
 
Naja man lernt was bei. Man lernt ASM und man lernt vielleicht den Computer besser verstehen und die Funktionsweise eines OS ;)

stefan2005 13. Mär 2008 18:18

Re: Betriebssystem :X
 
Hi,

viel Zeit verloren für "nichts" ?
Um es mal kurz zu sagen: wenn man schnell irgendwas großartiges erreichen will, besser als ein OS sein will, oder es verkaufen will ohne irgendein Interesse an dem Thema zu haben, sollte man es lassen, aber sobald man Interesse daran hat oder es einem Spaß macht, denke ich nicht, dass es verlorene Zeit ist.

Ob Delphi Compiler total sinnlos ist oder nicht, sei mal dahingestellt, Fakt ist dass man sowohl bei Delphi als auch bei FreePascal eine eigene system.pas braucht (teils reichen auch nur 5 Funktionen). Natürlich ist der Delphi Compiler an sich nicht dafür gemacht worden, aber er lässt sich sicherlich genauso gut benutzten (ein einziger kleiner Hack war afaik notwendig und die Koppelung an das PE-Dateiformat, was mich aber nie störte, wobei für Windows-ähnliche Betriebssysteme FreePascal sicherlich aufwendiger sein dürfte).

Grüsse,
Stefan

Nils_13 13. Mär 2008 19:12

Re: Betriebssystem :X
 
FreePascal zieht man sich und benutzt ihn und dann soll ein kleiner Hack weniger Arbeit machen ? FreePascal hat mit Windows keine Probleme, wieso sollte er auch ? Mit nichts meine ich, dass man in der Zeit viel besseres hätte tun können. Ich habe sehr viel gelernt, aber hätte besseres tun können. Es ist nicht leicht so ein Projekt am Ende fallen zu lassen, ich habe es immer noch nicht komplett aufgegeben, ich bring es nicht übers Herz so viel Arbeit wegzuschmeißen. Das ist durchaus bei jedem größeren Projekt so, aber bei vielen Projekten weiß ich, dass es nur eine Frage der Zeit und des Aufwands ist, bis es fertig wird.

inherited 13. Mär 2008 19:54

Re: Betriebssystem :X
 
Als Einstieg empfiehlt sich http://www.osdever.net/
Da gibt es unter anderem Tutorials, aber auch Artikel über die Grundgedanken von Betriebssystemen.
Noch ein paar interessante Links:
http://lowlevel.net.tc/ - Das wohl berühmteste Magazin für dieses Thema
http://www.nondot.org/sabre/os/articles Ein paar weitere interessante Artikel

Das hab ich aus meinen alten Bookmarks zum Thema gekramt, mir war auch mal langweilig :duck:
Ach ja, vor kurzem hat auch irgendjemand den Linuxkernel 0.01 "modernisiert" sodass er wieder kompilierbar ist, da findet man sehr interessante Denkanstöße (such mal bei heise)
Und es gibt/gab glaube ich auch noch ein Google-Verzeichnis zu dem Thema, das finde ich gerade aber nicht.


Zitat:

So ein kleines "einfaches" Betriebssystem wo man als nicht total-DAU weiß, was das Betriebssystem macht und wofür dieses und jenes ist, wäre doch mal nicht schlecht.
Linux? :mrgreen: :duck:

phXql 13. Mär 2008 20:16

Re: Betriebssystem :X
 
Zitat:

Zitat von Nils_13
Fazit:
Lass es, ich habe dabei auch sau viel Zeit VERLOREN für NICHTS. Selbst wenn du einen Kernel hast, bringt der dir fast nichts. Und alleine ist das imho unmöglich. Habe da eigene Erfahrung mit gesammelt, sogar was geschafft, aber fast für nichts.

Hätte sich das der Linus damals auch gedacht, könnte ich dir heute diesen Text nich von meinem Linux-System aus schreiben :)

DeddyH 13. Mär 2008 20:20

Re: Betriebssystem :X
 
Andererseits, hätte der Linus nicht sehr zeitig seine Arbeit als OpenSource veröffentlicht, hättest Du diesen Text vermutlich mit vi schreiben müssen :mrgreen:

phXql 13. Mär 2008 21:10

Re: Betriebssystem :X
 
NEEEEEEEEEEEEEEIN![esc]:wq

DeddyH 13. Mär 2008 21:12

Re: Betriebssystem :X
 
Gib' s auf [ESC]:q! :lol:

inherited 13. Mär 2008 21:33

Re: Betriebssystem :X
 
killall -9 vi und ruhe im Katon!

Christian Seehase 13. Mär 2008 21:45

Re: Betriebssystem :X
 
Moin Michael,

ich hab's mir noch nicht angesehen, aber vielleicht wäre das was für Dich:

Singularity


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz