
- 1
- 2

hypothetische frage zu betriebsystemen
diese frage kam mir gestern abend wie ein geisteblitz auf einmal in den kopf:
stellt euch mal vor ich würde ein betriebssystem schreiben (nein ich habe es nicht vor -> hypothetisch)
in windows sind ja programme immer exe dateien, unter linux oder anderen betriebsystemen kann man diese nicht ausführen.
in c++ kann ja fast alles schreiben und wenn man nichts besonderes benutzt ist es auch meistens platform unabhängig...man muss es dann nur mit dem richtigen tool linken (vorher natürlich compilen, das is ja aber egal mit welchem compiler man das macht)
der linker ist aber ja sozusagen platform abhängig... bei windows macht der linker aus der "bla.obj" eine "bla.exe"...
wie ist das denn bei meinem eigenen betriebsystem? müsste ich dann selber ein format entwerfen und einen linker schreiben damit ich programme ausführen kann?
also das hört sich wahrscheinlich alles total komisch an aber ich hoffe ihr habt verstanden was ich meine
mfg goriki
stellt euch mal vor ich würde ein betriebssystem schreiben (nein ich habe es nicht vor -> hypothetisch)
in windows sind ja programme immer exe dateien, unter linux oder anderen betriebsystemen kann man diese nicht ausführen.
in c++ kann ja fast alles schreiben und wenn man nichts besonderes benutzt ist es auch meistens platform unabhängig...man muss es dann nur mit dem richtigen tool linken (vorher natürlich compilen, das is ja aber egal mit welchem compiler man das macht)
der linker ist aber ja sozusagen platform abhängig... bei windows macht der linker aus der "bla.obj" eine "bla.exe"...
wie ist das denn bei meinem eigenen betriebsystem? müsste ich dann selber ein format entwerfen und einen linker schreiben damit ich programme ausführen kann?
also das hört sich wahrscheinlich alles total komisch an aber ich hoffe ihr habt verstanden was ich meine
mfg goriki
Das wird ganz drauf ankommen, wieviel du von anderen Systemen abguckst und ob du sogar ein eigenen Prozessor erfindest.
Wenn du sogar den Prozessor neuerfindest, dann isses logisch das du eigene Opcodes usw. im ausführbaren Binary unterbringen musst und die folglich mit nichts kompatibel sind. Dann musst du nicht nur ein komplett neues Format für ausführbare Dateien erfinden, sondern noch vieles mehr.
Wenn nur der Prozessor gleich ist, sonst dein Betriebssystem ganz dein Eigen ist, mögen vielleicht die Befehle fürs Plusrechnen oder für einfache Division oder einfaches Rechnen gleichsein, ebenso interne CPU-Befehle, aber das ist alles wo man nichts sieht, also eine "Hallo Welt!"-Ausgabe auf dem Bildschirm kannst du knicken, wenn bei dir alles anders ist und du weil wenn du sagst, das es dein eigenes Betriebssystem ist, ein ganz anderes Zeichensatzsystem verwenden würdest. Das das Format (wann und wie eine Datei aufgebaut ist) folglich anders sein muss (wenn du ein ganz neues Betriebssystem entwickelt) weil sich ja Zeichensatz, API, Libraryverwaltung, OS-Architektur usw. unterscheiden von den Anderen, müsste doch einleuchtend sein.
Wenn du aber genug Teile von Linux oder sonstigem fertigen Resourcen übernimmst und "nur" weiterentwickelst und nicht alles neu machst, kann ich mir gut vorstellen, das einfache Linux-Binaries sich bei dir ohne Probleme ausführen lassen würden wie "Hallo Welt!", Mathematik und je nach dem wieviel du übernimmst auch Drucker/Dateizugriffe oder auch nicht.
Wenn du sogar den Prozessor neuerfindest, dann isses logisch das du eigene Opcodes usw. im ausführbaren Binary unterbringen musst und die folglich mit nichts kompatibel sind. Dann musst du nicht nur ein komplett neues Format für ausführbare Dateien erfinden, sondern noch vieles mehr.
Wenn nur der Prozessor gleich ist, sonst dein Betriebssystem ganz dein Eigen ist, mögen vielleicht die Befehle fürs Plusrechnen oder für einfache Division oder einfaches Rechnen gleichsein, ebenso interne CPU-Befehle, aber das ist alles wo man nichts sieht, also eine "Hallo Welt!"-Ausgabe auf dem Bildschirm kannst du knicken, wenn bei dir alles anders ist und du weil wenn du sagst, das es dein eigenes Betriebssystem ist, ein ganz anderes Zeichensatzsystem verwenden würdest. Das das Format (wann und wie eine Datei aufgebaut ist) folglich anders sein muss (wenn du ein ganz neues Betriebssystem entwickelt) weil sich ja Zeichensatz, API, Libraryverwaltung, OS-Architektur usw. unterscheiden von den Anderen, müsste doch einleuchtend sein.
Wenn du aber genug Teile von Linux oder sonstigem fertigen Resourcen übernimmst und "nur" weiterentwickelst und nicht alles neu machst, kann ich mir gut vorstellen, das einfache Linux-Binaries sich bei dir ohne Probleme ausführen lassen würden wie "Hallo Welt!", Mathematik und je nach dem wieviel du übernimmst auch Drucker/Dateizugriffe oder auch nicht.
...
Zitat
Original von Goriki
bill gates nimm dich in acht!!!
Achtung: Alles nur Theorie ... nimm dir mindestens J=(10000/x) Jahre Zeit (wobei 'x' die Zahl der Mitarbeiter ist, die am Betriebssystem werkeln) und ein guten Anwalt bevor du dein Betriebssystem veröffentlichst, irgendjemand findet immer ein Grund zum Verklagen.
...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »† Luna †« (28. August 2005, 22:21)
mmh.... also wenn ich überhaupt ein betriebsystem machen würde dann folgendermaßen:
-das betriebsystem basiert wie linux nur auf einer shell
-kann aber durch eine gui erweitert werden
-im kernel sind nur die wichtigsten funktionen und vor allem:
-eine 3D-Engine intregiert die nicht auf eine spielart spezialisiert ist, das heisst keine komplette engine sondern nur das was man dafür braucht, wie speicher reservierung texturen-management, prjektion, licht-berechnung, schatten, anti aliasing, anisyptropisches filtering, HDR
es kann sozusagen immer nur ein programm betrieben werden was diese APIs benutzt in sachen 3D, deswegen können vom programm abhängig die eizelnen sachen deaktiviert und gesteuert werden ohne dabei ein anderes programm zu stören
treiber fallen nur minimal aus, am besten nur laufwerke, drucker(vielleicht), usb-geräte, und netzwerk
und die standart sahcen also maus, tastatur, monitor, grafikkarte
tolle idee nich?
mmh wenn ich mir das so anschaue... hab da ein tutorial auf http://www.lowlevel.net.tc gesehen.... hilft mir jemand?
mfg goriki
-das betriebsystem basiert wie linux nur auf einer shell
-kann aber durch eine gui erweitert werden
-im kernel sind nur die wichtigsten funktionen und vor allem:
-eine 3D-Engine intregiert die nicht auf eine spielart spezialisiert ist, das heisst keine komplette engine sondern nur das was man dafür braucht, wie speicher reservierung texturen-management, prjektion, licht-berechnung, schatten, anti aliasing, anisyptropisches filtering, HDR
es kann sozusagen immer nur ein programm betrieben werden was diese APIs benutzt in sachen 3D, deswegen können vom programm abhängig die eizelnen sachen deaktiviert und gesteuert werden ohne dabei ein anderes programm zu stören
treiber fallen nur minimal aus, am besten nur laufwerke, drucker(vielleicht), usb-geräte, und netzwerk
und die standart sahcen also maus, tastatur, monitor, grafikkarte
tolle idee nich?
mmh wenn ich mir das so anschaue... hab da ein tutorial auf http://www.lowlevel.net.tc gesehen.... hilft mir jemand?

mfg goriki
@goriki: du beschreibst grade linux 
@tyode: nimm linux und wine Oo
@goriki (1.post): aufgrund der tatsache das du ne neue api schreiben musst, musst du auch den linker für dein system anpassen
mit anderen worten, nehmt euch ein os was zu euch passt, und passt es so an, das es euch gefällt
ein eigenes os is für ein paar leute viel zu viel arbeit ums einfach mal so in ein paar tagen arbeit zu machen

@tyode: nimm linux und wine Oo
@goriki (1.post): aufgrund der tatsache das du ne neue api schreiben musst, musst du auch den linker für dein system anpassen
mit anderen worten, nehmt euch ein os was zu euch passt, und passt es so an, das es euch gefällt

ein eigenes os is für ein paar leute viel zu viel arbeit ums einfach mal so in ein paar tagen arbeit zu machen
Zitat
-eine 3D-Engine intregiert die nicht auf eine spielart spezialisiert ist, das heisst keine komplette engine sondern nur das was man dafür braucht, wie speicher reservierung texturen-management, prjektion, licht-berechnung, schatten, anti aliasing, anisyptropisches filtering, HDR
es kann sozusagen immer nur ein programm betrieben werden was diese APIs benutzt in sachen 3D, deswegen können vom programm abhängig die eizelnen sachen deaktiviert und gesteuert werden ohne dabei ein anderes programm zu stören
also das sieht mir net nach linux aus.. aber ok
ich hab übrigens was vergessen:
-treiber für soundkarte
-für die spiel-engine:
-3D-Sound
-joystick/pad, lenkrad unterstützung.... UND
-eine einzigartige, unverbesserliche, nahezu realistische physik engine
Zitat
nimm dir mindestens J=(10000/x) Jahre Zeit (wobei 'x' die Zahl der Mitarbeiter ist
ich muss es einfach mal sagen:
\\\\\\\\\|||||||/////////
!!!!!DU HAST RECHT!!!!!
/////////|||||||\\\\\\\\\
mfg goriki
Zitat
Original von pestahacker
mit anderen worten, nehmt euch ein os was zu euch passt, und passt es so an, das es euch gefällt
Bei Windows gibt es da aber nicht wirklich viel zum Anpassen (die GUI vielleicht etwas)
Zitat
ein eigenes os is für ein paar leute viel zu viel arbeit ums einfach mal so in ein paar tagen arbeit zu machen
Ja, 10 Mio. Zeilen werdens bestimmt werden
Aber dafür denk mal an die Sicherheit vor Viren, hossa 
Ich würde ein Betriebssystem auch so bauen wenn ich zu viel Zeit hätte:
- Im Kernel käme eine Routine rein, der sofort aus einem Spezialbereich (ähnlich dem MBR) der Festplatte alle nötigen Treiber lädt die aber optimal sind: Filesystem (ja, damit Bootpartition unkompliziert verschlüsselt werden kann), Tastatur, Monitor, Maus, Netzwerk, CDROM. Im Kernel ist nicht mal Monitor integriert! Weswegen? ZB damit es bei mir möglich wäre, ein Server ohne Grafikkarte oder Tastatur zu betreiben, aber dafür alleine mit Netzwerkkarte. Sollte mal ein Kernel-Treiber "klemmen" oder so, gibts ja ne Knoppix-ähnliche CD, die den 0815-Monitortreiber hat, und die Treiber im MBR Version "mein eigenes" managen kann (löschen, ersetzen, neu erstellen).
- Ob ich die VMM (Virtual Memory Managment) in als Kerneltreiber klassifizieren soll oder in einer höheren Treiberebene, da wäre ich mir nicht sicher, da ich bei beiden Varianten Vor- und Nachteile sehe.
- Sind die nötigen Treiber geladen, so das Filesystemzugriffe möglich sind, Tastatur, Grafikkarte, Netzwerkkarte gehen (was alles erwünscht ist, alles kein Muss), dann geht das Booten richtig los und zwar werden einfach Skripte ausgeführt, die die "Luxustreiber" wie USB, Kamera, TV-Karte, Lenkrad oder auch den vollen funktionsumfang der Grafikkarte aktiviert inklusive 3D. Hakt dort etwas, kann man es einfach durch aus/einkommentieren im Skript debuggen. Achja die GUI wäre dann auch ein Treiber und jeder Treiber bekommt idealerweise ein Verzeichnis zugesprochen, wo er seine Fehlerlogs und Grundeinstellungen speichern kann. Allerdings so "quatsch" und sonstige Blödeleien wie individuelle Farbeinstellungen gehören ins Homeverzeichnis /home/benutzername/prefs/programmname
- Natürlich gibts dann auch Libraries (bei Windows .dll's), wo man per API dann die Hardware indirekt ansprechen kann. So wäre es zB einem Autorennspiel egal, ob man per Joystick oder Lenkrad nach links lenkt.
Fighting for peace is like fucking for virginity
Zitat
Ja, 10 Mio. Zeilen werdens bestimmt werden Aber dafür denk mal an die Sicherheit vor Viren, hossa
wieso viren?
du musst doch keinem verraten wie deine programme aufgebaut sind bzw. einen linker publik machen

wenn du auch andere teilhaben willst, solltest du(als OS-entwickler) dagegen was unternehmen, wie z.B. firewall... im grunde eine ganz einfache...nur programmen zugang zum inet lassen die der user als "OK" abgestempelt hat...
da du der master-chief bist, müsste das eigentlich einfach sein, denn du verwaltest auch mit deinem OS den internet zugang

mfg goriki
Zitat
Original von Goriki
Zitat
Ja, 10 Mio. Zeilen werdens bestimmt werden Aber dafür denk mal an die Sicherheit vor Viren, hossa
wieso viren?
Eher den guten Schutz vor Viren weil erstmal niemand das Betriebssystem kennt und die erste Zeit auch es sich für kein Virenschreiber lohnt, da ein Virus zu schreiben.
Fighting for peace is like fucking for virginity
achso du meintest das mit der sicherheit positiv...
ich dahcte, dass du meintest, dass da direkt sicherheitslöcher aufkommen etc...
so seh ich das nämlich auch
mfg goriki
ich dahcte, dass du meintest, dass da direkt sicherheitslöcher aufkommen etc...
Zitat
Eher den guten Schutz vor Viren weil erstmal niemand das Betriebssystem kennt und die erste Zeit auch es sich für kein Virenschreiber lohnt, da ein Virus zu schreiben.
so seh ich das nämlich auch
mfg goriki
Hi,
also meine Meinung nach müsstest du ,wenn du ein komplett eigenständiges System aufbaust ,alles neu machen ,du musst die Unterstüzung von allen möglichen Sachen ermöglichen.
Du müsstest einen Compiler für deinen PC schreiben
Ach ich habe keine Ahnung.
Aber mein Betriebssystem hätte keine ausführbaren Dateien.
ICh erfinde den Computer neu ,Programme werden in Lochkarten gestantzt .
Das Internet wird revolutioniert .
Es wird alles mechanisch ablaufen .
Oh da kommen meine Freunde in den weißen Mänteln und da is die böse Spritze,aber ihr kriegt mich nich
*PIKS*
also meine Meinung nach müsstest du ,wenn du ein komplett eigenständiges System aufbaust ,alles neu machen ,du musst die Unterstüzung von allen möglichen Sachen ermöglichen.
Du müsstest einen Compiler für deinen PC schreiben
Ach ich habe keine Ahnung.
Aber mein Betriebssystem hätte keine ausführbaren Dateien.
ICh erfinde den Computer neu ,Programme werden in Lochkarten gestantzt .
Das Internet wird revolutioniert .
Es wird alles mechanisch ablaufen .
Oh da kommen meine Freunde in den weißen Mänteln und da is die böse Spritze,aber ihr kriegt mich nich

*PIKS*
dumme festplatten gibt es nicht mehr...
auf dem manboard ist genung platz für 200GB Ram (O.o), der dann als festplatte dient.
einfach, leise und schnell
booten braucht man nimmer, da das system schon im ram drinne steht und ein problem mit zu wenig arbeitsspeicher hat man auch nimmer
alles wird auf 5GB großen 3,5" Disketten gespeichert und CDs/DVDs werden verbrannt (tolles wortspiel), denn wer brauch schon CDs/DVDs
der pc wird mit flüssigem helium gekühlt, damit die normalen leiter zu supraleiter werden und keinen widerstand mehr haben. dadurch wird strom gespart, der dazu genutzt werden kann um das helium auf -270°C zu kühlen...
(Supraleiter)
mfg goriki
auf dem manboard ist genung platz für 200GB Ram (O.o), der dann als festplatte dient.
einfach, leise und schnell
booten braucht man nimmer, da das system schon im ram drinne steht und ein problem mit zu wenig arbeitsspeicher hat man auch nimmer
alles wird auf 5GB großen 3,5" Disketten gespeichert und CDs/DVDs werden verbrannt (tolles wortspiel), denn wer brauch schon CDs/DVDs
der pc wird mit flüssigem helium gekühlt, damit die normalen leiter zu supraleiter werden und keinen widerstand mehr haben. dadurch wird strom gespart, der dazu genutzt werden kann um das helium auf -270°C zu kühlen...
(Supraleiter)
mfg goriki
doch, doch... das is ja sozusagen ein festplatten ersatz... es gibt auch eine batterie wie fürs bios, die dafür sorgt,dass das zeug auf dem ram bleibt...die sieht dann ungefähr so aus wie ne autobatterie...
nein, es ist eine autobatterie, damit man auch über längere zeit den pc auslassen kann
mfg goriki
nein, es ist eine autobatterie, damit man auch über längere zeit den pc auslassen kann
mfg goriki
ja da ist mein system natürlich benutzerfreundlich, es gibt verschiedene möglichkeiten die batterie wieder aufzuladen:
1. wie du sagtest, mit dem auto
2. selber ran gehen und per hand nen dynamo ankurbeln
3. bei der batterie den schalter "bei laufendem system batterie wieder aufladen" bzw. "recharge battery during run-time"
benutzerfreundlichkeit steht bei mir an höchster stelle
mfg goriki
1. wie du sagtest, mit dem auto
2. selber ran gehen und per hand nen dynamo ankurbeln
3. bei der batterie den schalter "bei laufendem system batterie wieder aufladen" bzw. "recharge battery during run-time"
benutzerfreundlichkeit steht bei mir an höchster stelle

mfg goriki
Zitat
Original von Goriki
benutzerfreundlichkeit steht bei mir an höchster stelle
mfg goriki
Viel Spaß

meiner Erfahrung nach nimmt die Oberfläche, die Hilfe, die DAUSicherheit, der Schlagschatten am Menü, die Sicherheitsabfragen und die sonstigen Spielereien für den DAU mindestens doppelt so viel als die eigendliche Programmierung der Fähigkeiten des Programmes ein.

ich würde erstmal die Funktionstüchtigkeit und kompatibilität sicherstellen, also erst alles unbequem per Kommandozeile als Basis und die Oberfläche nebensächlich mit drauf; wenn man alles sofort DAUfreundlich macht, endet das ganze noch, das man programmierte Wergzeuge fürs Betriebssystem (!), die auch andere für nützlich halten, nicht automatisiert gesteuert werden können, weil sich die Menüpunkte nur mit der Maus steuern lassen ... sieht man so schön am Beispiel, das man in der Windows-Suche über die Oberfläche sehr viele Möglichkeiten hat (Dateifilter, Zeichenfolgen, Medien, Sortierung usw.) und in der DOS-Box via "Find" nicht mal möglich ist, unterverzeichnisse zu durchsuchen und schon gar nicht vernünftig via Batch
...
Zitat
Achtung: Alles nur Theorie ... nimm dir mindestens J=(10000/x) Jahre Zeit (wobei 'x' die Zahl der Mitarbeiter ist, die am Betriebssystem werkeln) und ein guten Anwalt bevor du dein Betriebssystem veröffentlichst, irgendjemand findet immer ein Grund zum Verklagen.
x:= Anzahl aller WMW Mitglieder :-)
Dann spuckt mal in die Hände in 2 Jahren sind wir an der macht

mfg
Für die, die es noch nicht kennen. Das Alphabet: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

- 1
- 2



