Laden...

Betriebssystem von Null weg

Erstellt von Chaoscoder vor 16 Jahren Letzter Beitrag vor 16 Jahren 11.226 Views
C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren
Betriebssystem von Null weg

Hallo Community.

Weil mich immer wieder gewisse Dinge an Betriebsystemen wie z.b. Windows stören habe ich mir überlegt wie mein eigenes Betriebssystem aussehen würde. Dinge die mich an Windows stören sind z.b. das Windows ein absoluter Ramfresser ist und beim Hochfahren sehr stark an der Festplatte arbeitet, das liegt wohl an der Registry, an den ganzen Hintergrunddiensten, dynamische Programme (COM und was es da alles gibt) usw.

An Linux, das ich zurzeit am anlernen bin, gefällt mir, dass es schnell hochfährt und wenig RAM beansprucht was wohl daran liegt, dass alles in Dateien existiert und es standardmäßig keine Registry oder soetwas braucht.

Aber nun zu meinen eigenen Ideen:

Mein Betriebssystem würde sich auszeichnen durch:

  1. verschiedene Betriebsmodi: z.b. einen Anwendungsmodus und einen Spiele-Modus. Im Spiele-Modus fährt das Betriebssystem ähnlich wie eine Konsole hoch (z.b. X-Box) und kann auf viele Dienste verzichten, außerdem bieten sich da viele Optimierungen an, die natürlich auf Kosten der Flexibilität zwischen Anwendungen, die man bei Spielen nicht braucht, kommen.

  2. das Betriebssystem teilt jedem größeren Programm eine sogenannte "Domain" zu, das umfasst einen eigenen Speicherbereich für Programmcode (Executeable) und einen dynamischen Speicherbereich für Programmdaten. Der Vorteil von Domains ist, dass sie parallel laufen können, also in einem echten parallel-processing, die dafür nötige Hardware muss wahrscheinlich erst geschaffen werden. Dies ist dadurch möglich, dass Domains sogenannte "Gates" besitzen, dass sind Schnittstellen wo in Domains laufende Programme Daten abladen oder aufnehmen können. Das verschieben der Daten von einer Domain zur anderen übernimmt das Betriebssystem. Der Vorteil dieser Aufspaltung liegt z.b. darin, dass es nicht zu solch lächerlichen Rucklern kommen kann wie bei Windows, wenn man z.b. ein Programm ladet, oder ein Programm sehr prozessorlastig ist, dass dann auf einmal die Maus ruckelt, oder andere Programme dadurch geblockt werden. Außerdem werden Festplattenaktivitäten gleichmäßig aufgeteilt, so wie alle anderen Ressourcen.

Das Verhalten der Domains, sowie die Prozessorzuteilung, Speicherzuteilung usw. soll während des Betriebs einstellbar sein.

Ich bin mir sicher, dass durch obengenannte Optimierungen noch sehr viel mehr aus älteren Computersystemen rauszuholen ist.

Weiß jemand ob es virtuelle Maschinen gibt, mit denen ich ein eigenes Betriebssystem testen kann? Falls nicht hol ich mir einen alten PC und nimm den als Versuchsobjekt.

Falls sich jemand mit Betriebssystemprogrammierung auskennt und/oder Internetseiten kennt die als Einführung in das Thema dienen wäre das sehr hilfreich.

Würd mich interessieren, ob ihr die obengenannten Umrisse für umsetzbar/praktikabel haltet oder vielleicht noch Vorschläge hättet.

mfG, Chaoscoder

4.221 Beiträge seit 2005
vor 16 Jahren

Die bekanntesten Emulationen:

Virtual PC 2007 gratis erhältlich bei Microsoft http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx
VMWare erhältlich gegen Kohle bei VMWare http://www.vmware.com/download/ws/

Nachtrag: Installier mal BeOS oder ZETA dann siehst Du wie schnell ein PC starten könnte 🙂

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Chaoscoder,

wenn ich mich recht entsinne hat Linus Torvalds gesagt, dass er mit Linux nicht angefangen hätte, wenn er gewusst hätte, wie viel Arbeit das wird. Ich halte es für vollkommen unrealistisch ein eigenes Betriebssystem zu schreiben und auch für sinnlos, weil es ja mit dem Betriebssystem ja nicht getan ist. Man braucht ja auch Programme, die unter dem Betriebssystem laufen. Und da man kaum damit rechnen kann, dass das eigene Betriebsystem eine größere Verbreitung findet, muss man auch da alles selber schreiben. Vor der ganzen Treiberproblematik mal ganz abgesehen. Insgesamt vermutlich eine sehr frustrierende Erfahrung.

herbivore

664 Beiträge seit 2005
vor 16 Jahren

Hi,

ich kann herbivore nur zustimmen. Ein Betriebssystem schüttelt man nicht so schnell aus dem Ärmel. Wenn du Interesse an dem Thema hast könntest du dich z.B. ReactOS anschließen.

btw: wieso regt man sich eigentlich auf, wenn der RAM eines Rechners genutzt wird? Leerer RAM ist unnütz - egal ob Windows, Unix(e), oder andere BS

C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren

Hallo Herbivore,

ja die Treiberproblematik ist eigentlich auch das was mich am meisten abschreckt.
Ich muß mich mal umsehen wie es mit Linux so aussieht, denn da ist ja alles Open-Source, und ein Linux basierendes System auf meinen Vorstellungen zu entwerfen ist verglichen damit ein komplett neues Ding zu machen ja tausendmal leichter, obwohl immer noch unglaublich aufwändig. Aber die Treiberproblematik wäre damit beseitigt. Naja und das mit den Programmen ist auch Mist, die einzige Möglichkeit heute noch ein Betriebssystem zu etablieren ist es kompatibel mit Windows-Programmen zu machen.

@Programmierhans: Danke für die Links.

Naja ich träum mal weiter von meinem Betriebssystem und lerne daweil Linux kennen.

Ich habe irgendwie den unheimlichen Drang irgendetwas zu programmieren.

C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren

Zum RAM: Mich stört nur wenn der RAM voll ist und das Windows anfängt auf der Festplatte auszulagern. Also ich hab so an die 480 MB RAM und wenn Windows fertig geladen ist (mit ein paar Antivirus Diensten usw.) dann hab ich noch gerade 180 MB frei. Und dann immer diese komischen Laderuckler bei Windows. Wenn ich einen Ordner erstellen will, dann klicke ich mit der rechten Maustaste - dann rattert ca. 5 sekunden lang die festplatte - NEU - wieder 2 bis 3 sekunden rattern - dann ORDNER - wieder rattern - und dann ist der Ordner mal fertig. Das ist doch Irre! Und liegt wohl daran dass Windows die Context-Menü einträge aus der Registry lädt, aber das allein kann es nicht sein.

Edit: Danke für den Links auf ReactOS, das ist genau das richtige für mich.

4.221 Beiträge seit 2005
vor 16 Jahren

Kauf Dir mal ein wenig RAM dazu...

XP mit weniger als 1 GB halte ich eh für eine Zumutung...

Aber wie gesagt installier mal BeOS oder ZETA (ein BeOS-Derivat).... das geht mit 480 MB bereits ab wie eine Rakete....

Aber viele sinnvolle Programme gibt es nicht dazu...

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

F
171 Beiträge seit 2006
vor 16 Jahren

Hallo Programmierhans,

VMWare erhältlich gegen Kohle bei VMWare....

mittlerweile gibt es auch eine kostenlose Variante. Nennt sich VMWare Server.

Ich habe den bei mir hier laufen und konnte bisher noch keinen Unterschied zur kostenpflichtigen VMWARE Workstation feststellen. Wobei auch meine Anforderung an die virtuelle Maschine sehr gering sind. Läuft halt nur ein XUbuntu, mehr nicht.

Gruß falangkinjau

2.187 Beiträge seit 2005
vor 16 Jahren

*träum* Ein eigenes OS. seuftz
Meine Anforderungen wären:

  • Objektorientierung
  • Modularität
  • ALLES über Streams (RAM-Stream, CPU-Stream, Monitor-Stream, ...)
  • Direkte Unterstützung von Programmiersprachen in der Konsole (Konsolenbefehle sind nur "maskierter" Programmcode)
  • Direkte Unterstützung von Frameworks
  • Alle UNIXE/WIN/Jave/.NET/PHP/... Befehle werden auf EINEN Befehlssatz umgelengt (g natürlich .NET)
  • Volle Systemkonfiguration über einen Texteditor!

Von UIs hab ich keine Ahnung, daher: Schulterzucken

Aber es wird wohl ein Traum bleiben . seuftz

4.221 Beiträge seit 2005
vor 16 Jahren

Im übrigen gibt es auch eine gratis - Version welche die VMWare-Files laufen lassen kann.... dann kann man aber keine neuen Workstations anlegen.... aber um solche Files anzulegen gibt es gratis (Freeware) Tools im Internet.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

243 Beiträge seit 2005
vor 16 Jahren

Original von JuyJuka
*träum* Ein eigenes OS. seuftz
Meine Anforderungen wären:

  • Objektorientierung
  • Modularität
  • ALLES über Streams (RAM-Stream, CPU-Stream, Monitor-Stream, ...)
  • Direkte Unterstützung von Programmiersprachen in der Konsole (Konsolenbefehle sind nur "maskierter" Programmcode)
  • Direkte Unterstützung von Frameworks
  • Alle UNIXE/WIN/Jave/.NET/PHP/... Befehle werden auf EINEN Befehlssatz umgelengt (g natürlich .NET)
  • Volle Systemkonfiguration über einen Texteditor!

Von UIs hab ich keine Ahnung, daher: Schulterzucken

Aber es wird wohl ein Traum bleiben . seuftz

Die gleichen Ideen hatte ich vor langer Zeit auch. Aber das ist sehr utopisch.

0
767 Beiträge seit 2005
vor 16 Jahren

Original von JuyJuka

  • ALLES über Streams (RAM-Stream, CPU-Stream, Monitor-Stream, ...)

grundsätzlich guter ansatz, nur brauchts dafür auch hardware, die das unterstützt.

loop:
btst #6,$bfe001
bne.s loop
rts

L
333 Beiträge seit 2007
vor 16 Jahren

Zum ersten Beitrag kann ich nur soviel anmerken:

Früher, in der Schule, hatte ich durchaus auch so meine Ideen, ein eigenes Betriebssystem zu schreiben. Es sollte "Universe" heißen, mit 64 oder besser 128 Bit arbeiten, und über eine dreidimensionale grafische Oberfläche verfügen, in der Verbindungen zu anderen Rechnern durch "Wurmlöcher" (natürlich inklusive der bekannten Visualisierung eines solchen) dargestellt werden. Man merkt schon, woher die Idee kommt... Von Betriebssystementwicklung hatten ich und mein Mitdenker noch überhaupt keine Ahnung.

Im Informatik-Studium hab ich dann u.a. die Vorlesung Betriebssysteme besucht. In der Übung war es dann unsere Aufgabe, in 2-3er-Teams nahezu von Grund auf (also ab direkt nach dem Bootloader-Assembler-Code) ein eigenes Betriebssystem zu entwerfen und implementieren. Gut, den Entwurf hat man uns mit der Aufgabenstellung weitgehend abgenommen, damit auch jeder das gleiche macht. Aber im Grunde war es unsere Aufgabe, C++-Klassen zu schreiben, die eine Coroutine, einen Thread oder einen Scheduler umsetzen. Das ganze lief dann zum Test auf einem alten 486er, gebootet von Diskette; während der Entwicklung wurde das System in Bochs auf dem Sun-Server getestet.

Es war ein riesiger Aufwand! In einem Semester, also etwa 3 Monaten und ca. 3-10 Stunden Arbeit pro Woche, sind wir dann soweit gekommen, dass man Texte auf dem Bildschirm ausgeben, mehrere Threads parallel laufen lassen (mit ganz einfachem Zeitscheiben-Scheduler) und auf Tastatureingaben reagieren konnte. Keine Speichermedien und Dateisysteme, keine Speicherverwaltung und Adressräume, keine Hardware außer Video-RAM und Tastatur, keine Grafikausgabe, kein Netzwerk, also eigentlich fast überhaupt nichts. Und auf dem Weg dorthin gab es bald mehr Fehlschläge als Erfolge, da man einen Betriebssystem-Kernal nunmal ganz schlecht debuggen kann. Wenn der PC einfach hängen bleibt, ist es oft kaum möglich herauszufinden warum. An "Universe" hab ich dann schon nicht mehr gedacht.

In den Semesterferien im Anschluss hab ich noch versucht, einen einfachen prioritätenbasierenden Scheduler zu schreiben, das hat dann aber nicht mehr funktioniert.

Was mich am allermeisten an Microsoft Windows XP stört, ist der IO-Scheduler. Der ist meiner subjektiven Erfahrung nach so grottenschlecht... Wenn ein Programm läuft, das 100% CPU macht und ein bisschen Platte, dann bleibt das sofort nahezu stehen (CPU-Last < 20%), wenn ein anderes Programm die Platte stark nutzt, z.B. beim Starten von VS.NET oder was ähnlich großem oder beim Kopieren großer Dateien. Hier hat glaub ich Linux eindeutig die Nase vorn. Zigtausend kleine Webseitendateien durchsucht man da in fast keiner Zeit (mit grep). An Linux wurde in den letzten Jahren aber auch sehr viel gemacht, was wohl zu großen Verbesserungen geführt hat. Von Microsoft kann ich das jetzt nicht behaupten. Es gab wohl einige Detailverbesserungen in Vista, aber viel wurde wieder gestrichen und verschoben. Die sind trotz ihrer Marktmacht einfach zu langsam. Ob der Scheduler in Vista deutlich besser ist, kann ich mangels Erfahrung nicht sagen, aber ich kann es mir auch nicht vorstellen. Wenn du dich also unbedingt an etwas sinnvollem betätigen willst, dann lern Computer 😁 (also v.a. auch von innen), dann lern Betriebssysteme, dann Assembler und dann geh zu Microsoft und mach denen einen ordentlichen Scheduler. Allein das wird vermutlich ein Jahr dauern, bis es stabil läuft, aber wir werden es dir danken! 🙂

3.971 Beiträge seit 2006
vor 16 Jahren

Original von LonelyPixel

Was mich am allermeisten an Microsoft Windows XP stört, ist der IO-Scheduler.

Da kann ich dir nur Recht geben. Es bringt leider nix in Windows die Prioritäten eines Prozesses/Threads zu ändern, wenn diese zusätzlich sehr gerätelastig sind.

Ich bin aber ansonsten kein Freund von Linux. Mehrmals probiert dort "reinzukommen" und fuß zu fassen, ist aber immerwieder fehl geschlagen (trotz der Einfachheit von bsp. Ubuntu)

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

4.221 Beiträge seit 2005
vor 16 Jahren

Die ganze Sache hat sich seit der Einführung von DualCore-Prozessoren wenigstens entschärft

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren

Also in Sachen Programme und Kompatibilität ist Linux ja wirklich am aufholen, und in den nächsten Jahren halte ich es sogar für möglich, dass Linux Microsoft früher oder später aus dem Betriebssystem-Markt rausschmeißt, spätestens dann wenn der Linux-Kernel einen standardmäßige Win32/Win64 Interpreter installiert hat (oder optional). Aber dafür gibt es eh schon Wine, was allerdings für den 0815 User noch zu kompliziert ist so finde ich.

In Sachen Performance hat Linux klar die Nase vorn, vorallem was Dateien kopieren angeht, das hab ich schon bemerkt, das sind auf meinem System sicher geschätzte 30-40% schneller.

Also Seit ich Linux installiert habe verbring ich mehr als 90% meiner Computerzeit im Linux, weil ich dort alles machen kann was ich mit Windows auch kann (außer Windows Spiele spielen aber naja) Ein riesen Vorteil von Linux ist das rasante Hochfahren und Herunterfahren, was wohl teilweise daran liegt das Linux ohne Registry auskommt.

@LonelyPixel: Danke für deine Geschichte, jetz is mir klar wie lang sowas dauert. Ist wohl auch der Grund dafür warum es nur so wenige Betriebssysteme gibt, vorallem für moderne PCs. Allein die Menge an Fehlern die man beim Progammieren machen kann ist ja riesig.

R
494 Beiträge seit 2006
vor 16 Jahren

Original von Chaoscoder

Also Seit ich Linux installiert habe verbring ich mehr als 90% meiner Computerzeit im Linux, weil ich dort alles machen kann was ich mit Windows auch kann (außer Windows Spiele spielen aber naja) Ein riesen Vorteil von Linux ist das rasante Hochfahren und Herunterfahren, was wohl teilweise daran liegt das Linux ohne Registry auskommt.

Du sagst es ja schon selbst, es spielt keine Rolle ob jetzt Linux oder Windows oder sonstwas.

Die Hochfahrzeit ist nicht wirklich ein Argument, der pc läuft sowieso ständig.

C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren

Linux ist mir einfach sympathischer. Ich hab einfach das Gefühl, dass es mit Systemressourcen besser umgeht. Und Windows war immer schon von Version zu Version ressourcenfressender. Und noch ein Punkt warum mir Linux sympathischer ist: OpenSource. Da hat man einfach ein gutes Gefühl wenn man weiß, dass das Betriebssystem das gerade läuft von tausenden Computer-Spezialisten programmiert/debuggt und bewertet wurde.

57 Beiträge seit 2006
vor 16 Jahren

Original von Programmierhans
Die bekanntesten Emulationen:

Virtual PC 2007 gratis erhältlich bei Microsoft
>

VMWare erhältlich gegen Kohle bei VMWare
>

Nachtrag: Installier mal BeOS oder ZETA dann siehst Du wie schnell ein PC starten könnte 🙂

Nochmal ein kleiner Nachtrag - VMWare in der freien Version "VMWare Server" ist unter dem angegebenen Link zu bekommen. Gegenüber der kostenpflichtigen Workstation Version ist eigentlich nur das Anlegen verketteter Snapshots abgeklemmt. Dafür lassen sich VMs übers Netz anlegen und administrieren. Ausserdem wird im Gegensatz zu dem MS-Produkt USB und SCSI unterstützt.

2 + 2 = 5 for large values of 2

3.971 Beiträge seit 2006
vor 16 Jahren

Original von Chaoscoder
Da hat man einfach ein gutes Gefühl wenn man weiß, dass das Betriebssystem das gerade läuft von tausenden Computer-Spezialisten programmiert/debuggt und bewertet wurde.

Ohne jetzt ein Grundsatzdiskussion Linux/Windows anzustoßen, aber das sehe ich eher als Mythos.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo zusammen,

Ohne jetzt ein Grundsatzdiskussion Linux/Windows anzustoßen, ...

die Gefahr, dass es zu einer solchen oder sogar zu einem Glaubenskrieg kommt, habe ich auch schon seit einer Weile gesehen. Bitte lasst es nicht dazu kommen. Solche Diskussionen führen normalerweise zu nichts und sollte es sogar ein Glaubenskrieg werden, dann würde der an sich interessante Thread geschlossen werden. Also noch mal: Bitte lasst es nicht dazu kommen. Es geht hier darum ein Betriebssystem von Null weg zu programmieren. Es geht weder um Windows noch um Linux.

herbivore

C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren

Das Thema hat sich entwickelt, möglicherweise sollte man es verschieben.

Ein Glaubenskrieg ist nicht notwendig, Linux und Windows verhalten sich wie Äpfel zu Birnen.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Chaoscoder,

zum Abteilen sind die Windows/Linux-"Ausflüge" m.E. zu sehr mit Beiträgen zum eigentlichen Thema verwoben. Sonst hätte ich das schon getan. 🙂

Einfach zurück zum Thema "Betriebssystem von Null weg" und gut. 🙂

herbivore

L
333 Beiträge seit 2007
vor 16 Jahren

Schade, hier stehen noch einige Behauptungen im Raum, die ich so nicht stehen lassen wollte. Kurz: Linux ist bei weitem nicht in jeder Disziplin besser als Windows. Ich sag nur: Oberfläche und Bedienbarkeit. Und wenn Microsoft einmal Recht hatte, denn mit der Werbung "alles ist möglich"!

Zurück zum Thema: Ich glaub das mit dem "Betriebssystem von Null weg" hat sich mittlerweile erledigt. 😉

C
Chaoscoder Themenstarter:in
51 Beiträge seit 2006
vor 16 Jahren

Original von LonelyPixel
Zurück zum Thema: Ich glaub das mit dem "Betriebssystem von Null weg" hat sich mittlerweile erledigt. 😉

Ja hat sich erledigt 🙂

Mit Bedienbarkeit Windows stimme ich voll überein. Das ist auch der Grund wieso WIndows immer noch verbreiteter ist (neben Kompatibilität). Schade finde ich nur, dass noch nicht beides vereint wurde, so schnell wie Linux und so bedienerfreundlich und kompatibel wie Windows. Aber mal sehen was die Zukunft bringt.

2.760 Beiträge seit 2006
vor 16 Jahren

Wenn für jemanden das Thema noch nicht gestorben sein sollte habe ich noch einen recht interessanten Link im Angebot:

http://lowlevel.brainsware.org/wiki/index.php/Hauptseite