Ich habe Lust gerne ein eigenes Betriebssystem zu machen, aber wie?

6 Antworten

Ein eigenes Betriebssystem zu erstellen kann relativ komplex werden und viel Zeit verschlingen. Mithilfe von systemnahen Programmiersprachen C, Assembler, etc. Betriebssysteme erstellen.

Hier ein interessantes Video dazu:

https://www.youtube.com/watch?v=YbXHU7W7Its

Waldelb3  21.03.2024, 10:11

Das hat aber wenig mit Programmieren zu tun.

1
Mirko Marek  21.03.2024, 13:38
@Waldelb3

Sorry, ich hab ein falsches Video hochgepackt. Betriebsysteme werden tradtionell mit C geschrieben, aber Rust ist eine coole Alternative und es gibt schon in Rust ein OS. Redox OS. Aber man kann auch Embedded Systems damit erstellen. Ist auch für 8-Bit und 16-Bit geeignet: https://news.ycombinator.com/item?id=15270502

1
Von Experte mchawk777 bestätigt

Ich würde klassisch herangehen und zuerst recherchieren:

  1. Wofür ist ein Betriebssystem da
  2. Welche Kernfunktionen sind entscheidend
  3. Welche Funktionen sind optional (Multitasking...)
  4. Was gibt es für reale Mini-Betriebssysteme (für Mikrocontroller/ kleine Prozessore sehr viele RTOS= Real Time Operating Systems)
  5. Was gibt es bereits für Hobbyprojekte
  6. Welche Abstraktionsebenen/ verschiedene Ansätze gibt es? Betriebssystem ist zunächst unabhängig vom Prozessor, auch wenn es einen Teil gibt, der auf den Prozessor angepasst sein muss. Der Bau eines eigenen Prozessors ist noch mal etwas ganz anderes und erfordert andere Themengebiete... Beim Betriebssystem wäre Entscheidung über Programmiersprache, in welcher Art ggf. Programme geladen werden, welche Interaktion mit der Hardware du unterstützen/abstrahieren möchtest...
mchawk777  24.03.2024, 20:46

...und immer daran denken:
Von Windows über Linux bis MacOS: An allen diesen Betriebssystemen arbeiten eine Menge Leute - und das über viele Jahre hinweg.

Man sollte also die eigenen Ansprüche als "One-Man-Show" nicht so hoch schrauben, dass man es mit diesen Kandidaten aufnehmen könnte.

Dennoch ein schönes Projekt! Viel Erfolg - und nicht entmutigen lassen!
Auch Linus Torvald hat mal klein angefangen. Man weis ja nie. 😉

2
ProgrammFrage 
Fragesteller
 24.03.2024, 20:47
@mchawk777

Ich kenn die Linux Geschichte schon. Ich will das nur als Spaß und soll kein ernst gemeintes Projekt werden.

1
SchakKlusoh  25.03.2024, 18:56
@mchawk777

Ein einfaches Monitorprogramm kann ein Informatik-Student wahrscheinlich an einem Wochenende schreiben.

0
SchakKlusoh  24.03.2024, 21:50

Das erscheint mir viel zu aufwendig.

0

Als die Microcontroller erfunden wurden, gab es Elektronikzeitschriften, die damit sogenannte Einplatinen-Computer bauten.

https://de.wikipedia.org/wiki/Junior-Computer

Diese hatten ein Betriebssystem, das in Assembler geschrieben war und lediglich Tasten einlesen konnte und etwas auf einem einfachen Display ausgeben konnte.

https://www.youtube.com/watch?v=wI82V9meKnY

Hier wird die Hardware und das OS beschrieben:

https://archive.org/details/elektor-junior-book-1-en/mode/2up

Wenn Du etwas Ähnliches bauen möchtest, ist das nicht sehr schwer. Die Bücher dazu müßte man als PDF finden können oder antiquarisch.

Du mußt überlegen, welche Peripherie das OS bedienen soll. Und dann überlegen, wie man diese ansteuert. Wie Waldelb3 schreibt: Man fängt immer mit einer Schleife an und tastet sich dann langsam vor.

Manche implementieren auf der vorgesehenen Hardware in Assembler zunächst Forth und bauen damit ihre Anwendung oder, falls gewünscht, ihr Betriebssystem.

Nimm dir einen einfachen, gut dokumentierten Microcontroller, für den es einen Compiler für C gibt, und lies die Dokumentation gut durch. Das Wichtigste sind die Register. Dann fängst du an, eine Endlos-Schleife zu schreiben (in der Schleife passiert alles, was das System macht), und mal die Pins anzusteuern und auszulesen. Wenn du verstanden hast, wie das geht, kannst du anfangen, einen Treiber für die Pins zu schreiben. Effektiv ist das einfach eine Methode, die dir das manuelle Auslesen/Setzen der Pins abnimmt. Damit kannst du mal eine LED blinken lassen, wenn du einen Knopf drückst, oder so. Dann kannst du anfangen einen Scheduler zu schreiben, dich um Memory kümmern, ein Display anschließen und einen Treiber dafür schreiben, irgendwelche einfachen Programme schreiben und laufen lassen, etc.

Woher ich das weiß:Studium / Ausbildung – Informatik
ProgrammFrage 
Fragesteller
 20.03.2024, 23:06

Du meinst ein Microcontroller wie den Arduino?

0
Waldelb3  20.03.2024, 23:08
@ProgrammFrage

Ja, so was in der Richtung. Es ist wichtig, dass die CPU nicht zu komplex ist, das wird sonst schnell unübersichtlich.

2
ProgrammFrage 
Fragesteller
 20.03.2024, 23:21
@Waldelb3

Deswegen meinte ich auch in der Frage, mit einem 8 oder 16 Bit CPUs gerne anzufangen.

0