Hallo alle zusammen.
Ich hab gehört man kann in den Linux Quellcode und es dann um programmieren. Oder gibt es etwas besseres um ein eigenes Betriebssystem zu erstellen/ programmieren. Ich kann bereits C.
Könnte mir da jemand sagen was ich für ein eigenes System brauch?
Danke schon mal.
Hallo,
und dann hat ein er blankes OS, und noch nicht eine Anwendung, die darauf dann auch laufen würde. Für ein anständiges Office-Paket kann er dann die nächsten Jahrzehnte einplanen, …
Gruß vom Wiz
Hi,
Ich hab gehört man kann in den Linux Quellcode und es dann um
programmieren. Oder gibt es etwas besseres um ein eigenes
Betriebssystem zu erstellen/ programmieren.
Probier doch ersteinmal Linux from Scratch oder Gentoo, hier kannst du schon recht
flexibel dein eigenes Betriebssystem, zusammen basteln. Einen Kernel schreiben macht echt kein Spass.
Ich kann bereits C.
Weisst du was long_jump, set_jump, semaphoren sind? Bischen C wird nicht reichen, nebenbei brauchst auch solides Wissen in Assembler.
Könnte mir da jemand sagen was ich für ein eigenes System
brauch?
Grob: Ein Bootloader (Assembler) -> welcher den Kernel aufruft, im Kernel (Assembler-Code), welcher den späteren C-Code aufruft (zum Kernel gehörig) -> Schnittstelle zu externen Resourcen -> Interrupt Descripter Table (wieder Assembler), IRS, IRQ (teils Assembler, teils C), Keyboard, Sound, Global Descripter Table usw… Wenn du das alle hast, hast du gerade mal eine bootbare Shell, die Hallo World ausgibt.
Also, versuch es lieber mit Linux Scratch.
Gruß XXD
Das Betriebssystem ist etwas, mit dem ein Computerbenutzer i. d. R. nie in Berührung kommt. Das regelt Prozesse auf unterster Ebene, von denen du bzw. ein normaler Benutzer nicht einmal etwas ahnst. Die Schnittstellen, mit denen der Benutzer in Berührung kommt, Maus, Tastatur, Bildschirm, Drucker… bzw. die Regelung, welche Interaktionen des Anwenders zu welchem Ergebnis führen, finden auf sehr viel höherer Ebene statt.
Wenn du ein eigenes System erstellen willst, so wie z. B. Android ein anderes System als Windows oder IOS ist, bist du beim Betriebssystem eher falsch. Dann solltest du beim Display- und beim Windowmanager ansetzen. Und auch die brauchst du nicht selbst neu zu entwickeln. Wenn du z. B. fvwm unter Linux als Windowmanager einsetzt, bist du in der Lage, eine Oberfläche und ein Bedienkonzept zu entwickeln, das sich von jeder anderen Linux-Oberfläche, von jedem anderen Bedienkonzept unterscheidet. Und das ohne sonderlich grossen Aufwand.
Das Ergebnis ist dann vielleicht noch nicht so weit von Linux weg, wie Android oder BSD. Aber es ist dann mindestens so weit von z. B. Ubuntu oder Suse entfernt, wie Redhead oder Gentoo.
Ein Problem, das Wiz schon angesprochen hat, bleibt aber immer noch: Die Software, die auf deinem System dann läuft, wird sich nicht nach deinen Konzepten richten. Das, was z. B. Android von Ubuntu unterscheidet. ist, dass sämtliche Anwendersoftware unter Android sich dem von Google auferlegten Regelkanon unterwirft. Um für dein System einen ähnlichen Status zu erreichen fehlt es dir, fürchte ich, nicht an Programmierkenntnissen in C, sondern an Marktmacht.
Gruß
Hallo XXD,
Grob: Ein Bootloader (Assembler) -> welcher den Kernel
aufruft, im Kernel (Assembler-Code), welcher den späteren
C-Code aufruft (zum Kernel gehörig) -> Schnittstelle zu
externen Resourcen -> Interrupt Descripter Table (wieder
Assembler), IRS, IRQ (teils Assembler, teils C), Keyboard,
Sound, Global Descripter Table usw… Wenn du das alle hast,
hast du gerade mal eine bootbare Shell, die Hallo World
ausgibt.
Nur cstartup und das Register-Tauschen des Schedulers musst du in Assembler schreiben.
Wenn der Compiler nicht direkt Interrupt-Funktionen unterstützt, braucht es noch eine kleines Framework um die Register zu Retten.
Den ganzen Rest kann man problemlos in C scheiben.
Aber wie gesagt, es braucht Zeit, Gehirnschmalz und jede Menge Hardware-Kenntnisse!
MfG Peter(TOO)
Danke an alle, aber ihr habt irgend was vielleicht nicht verstanden.
Ich möchte nicht bei null beginnen.
Dann brauch ich auch keine „1.200“ Jahre.
Soll ich jetzt einfach ein paar Einstellungen ändern oder meine C Kenntnisse verbessern?
Hallo,
C/C++ schadet mich Sicherheit nicht. Aber wenn Du wirklich auf die Systemebene willst, z.B. Kernelmodule verändern oder selbst entwerfen, dann brauchst Du in aller erster Linie jeder Menge Wissen darüber, wie Betriebssystem, z.B. Linux, das ist quelloffen und gut dokumentiert, überhaupt aufgebaut sind und wie auch schon von den anderen erwähnt, wie die Hardware funktioniert.
In erster Linie hast Du also erstmal jede Menge Lektüre vor Dir. Du könntest Dich auch einer Linux-Community anschließen. Es gibt jede Menge Projekte, die in Arbeit sind und wo Du eventuell Erfahrungen sammeln und lernen könntest.
Viel Erfolg.
LG
Petra
stimmt, du brauchst länger, überleg doch einfach mal, wie lange es allein dauert den code von z.b. linux zu lesen und zu verstehen.
os sind nicht umsonst projekte mit sehr vielen leuten.
Hallo nochmal,
das Problem ist, dass Du nicht schreibst, was Du überhaupt konkret zu welchem Zweck machen willst! Ein wirklich eigenes OS kannst Du Dir abschminken, wenn wir von einem OS im Sinne Linux, Windows, Mac OS, … reden.
Ein solches zu verändern ist bei Linux theoretisch recht einfach möglich, allerdings sollte man dann schon genau wissen, was man ändern will, und warum, und was für Konsequenzen das hat. Ansonsten ist das, wie einen Schraubendreher in einen Fernseher zu werfen, und zu hoffen, dass der dadurch plötzlich auch noch Spiegeleier braten kann (dafür aber ggf. kein Bild mehr anzeigt).
Wenn es einfach nur um „dicke Hose“ geht, dann kann man sich mit eigenen Boot-Logos, veränderten Icons, … recht gefahrlos austoben. Aber auch dafür braucht es nicht unerhebliche Einarbeitungszeit in Konzepte, Abhängigkeiten, … Nicht umsonst taugen von 1000den von Skins für diverse Programme, … nur die wenigsten, um damit dann noch sinnvoll arbeiten zu können. Denn auch da haben Leute wie Du „einfach mal angefangen“, ohne Sinn und Verstand zu haben/zu gebrauchen, haben dann Dinge veröffentlicht, die den ersten „geilen Effekt“ zeigten, und sind dann schon bei der ersten kleinen Schwierigkeit gescheitert, und haben die Sache dann nicht konsequent zu Ende bringen können.
Geht es um Dinge, die tiefer „unter der Haube“ liegen, wird es um so komplexer und gefährlicher. Da langst Du ggf. mal ausgerechnet da hin, wo es monatelang nicht auffällt, und plötzlich mit einem Mausklick der ganze Rechner steht, die Festplatte mit allen Daten ruiniert ist, …
Gruß vom Wiz