Mini-OS programmieren

Hallo Leute :)

Ich hab mich vor kurzem eingelesen in das Thema OS selbst basteln...
In einem Artikel wurde geraten mit bestehenden Basis-Betriebssystemen zu arbeiten und nur noch auszuführende Programme hinzuzufügen...
Vorgeschlagen wurde eine Basis-Version von Windows die allerdings nicht verlinkt war und wenn ich Google benutzt habe bin ich bei Möchtegern-Youtubern und Foren gelandet die mir kein bisschen weitergeholfen haben...
Könnt ihr mir vllt sagen wo ich sowas herkrieg?

Danke schonmal :)
MCStreetguy
 
Klar gibts eine Basis Version von Windows. Nennt sich Windows CE und ist OEM-only. Oder via DS.

Man kann aber auch recht schnell was eigenes auf Basis von Linux basteln.
 
Ohne Dich (Themen Starter) zu sehr demoralisieren zu wollen:

http://www.iaik.tugraz.at/content/t...eme/practicals/downloads/the-book-of-sweb.pdf

Dieses Dokument muss jemand bis ins Detail verstehen, der ein OS Programmieren will.

Kannst Du das nicht, kannst Du auch kein OS programmieren.

Ich würde dir auch empfehlen, erst mal mit Linix-from-Scratch zu beginnen. Das ist schon frickelig genug aber du wirst dadurch viel über die Struktur eines (wenn auch minderwertigen) Betriebssystems lernen.
 
Und wenn ich auf einer Linux-Basis was eigenes basteln will, muss das dann welche Programmier-Sprache sein?

Irgendwas, was ne ELF-Binary erzeugt. Oder ein anderes direkt vom Kernel ausführbares Format. Aber meistens ELF.


Also so ungefähr jede kompilierbare Sprache. Oft baut man auch einfach nur eine Mini-Init, die ne kleine Shell ein Skript ausführen lässt, was weitere KOs und Programme lädt und startet. Sehr einfach in der Sache.


Ich würde dir auch empfehlen, erst mal mit Linix-from-Scratch zu beginnen. Das ist schon frickelig genug aber du wirst dadurch viel über die Struktur eines (wenn auch minderwertigen) Betriebssystems lernen.
Natürlich wäre es viel besser, wenn er mit MfS (Mac from Scratch) anfangen würde... facepalm...
 
ich merk schon so einfach hochfahren lassen und ein programm ausführen geht nicht ^^
Ok ich versuch mal das was ihr mir vorgeschlagen habt :)
Danke nochmal :)
 
Hö!? Doch... klar genau das tut der Linuxkernel. Er initialisiert das System und führt die Datei /init aus.

Bei einem normalen OS ist das meistens ein Stub der sowas wie systemd anhaut, der dann viele weitere Programme und Daemons startet.

Im Embedded-Bereich ist das meistens ein Stub, der ne Shell anwirft, um ein einfaches Init-Skript auszuführen, was bspw. die Netzwerkschnittstellen konfiguriert und meistens einen kleinen Webserver für ein Webinterface startet sowie das eigentliche Programm startet, was die Funktionalität des Geräts bereitstellt. Also bei einer IP-Kamera z.B. ein Streamingserver.
 
@MCStreetguy

Zum allgemeinen Wissen um Betriebssysteme ist noch anzuraten:

- Modern Operating Systems von Tanenbaum
- The Design and The Implementation of the 4.4 BSD Operating System
- Für TCP Stacks: Internetworking with TCP/IP (volume x-y) von Comer und Stevens

Die ersten beiden Bücher liefern kaum bis gar keinen Code. Da geht es primär um Grundlagenwissen und Konzepte, die ein OS Programmieren berücksichtigen muss.

Und lass dich von dem Alter der Bücher nicht abschrecken. Das meiste davon ist immer noch aktuell ;)
 
Ich glaube nicht, dass er seinen eigenen Kernel entwickeln will. Viel eher scheint es hier um eine Embedded-ähnliche Situation zu gehen, wo er lediglich eine minimale Umgebung haben möchte, um seine Anwendung auszuführen.
 
Möglicherweise bin ich da etwas altmodisch, aber m.E. ist es durchaus Sinnvoll sich auch mit den Hintergründen zu beschäftigen, wenn ich mit OS Komponenten herumspiele. Sonst erschöpft es sich oftmals darin, sich durch ein Tutorial geklickt zu haben ohne viel dabei gelernt zu haben.
 
Möglicherweise bin ich da etwas altmodisch, aber m.E. ist es durchaus Sinnvoll sich auch mit den Hintergründen zu beschäftigen, wenn ich mit OS Komponenten herumspiele. Sonst erschöpft es sich oftmals darin, sich durch ein Tutorial geklickt zu haben ohne viel dabei gelernt zu haben.

Aha, soso, also soll ich mich, bevor ich ein Programm schreibe, also auch erstmal mit den Grundlagen der OS- und Kernelentwicklung beschäftigen? Denn genau nichts anderes muss MCStreetguy hier tun.
 
Das ich ohne Kenntnisse nich klarkomme war mir schon klar...
Aber enkore hat das schon richtig formuliert...
Alles was ich vorhatte war ein simples Programm das anstelle des normalen OS gebootet wird... Als LiveCD z.B. ...
Nix großes... Leerer Bildschirm mit CMD ähnlicher ausführung eines Programms...
 
Zurück
Oben