Hallo ich möchte gerne wissen wie man ein

… Betriebssystem programmiert mit richtiger benutzeroberfläsche wie bei Windows 8.mit den Programmiersprachen Basic und Batch Programmierung kenne ich mich gut aus allerding habe ich gehört das man dafür C oder C++ braucht .wo kann man so einen code für ein richtiges Betriebssystem finden?

was brauch ich dafür? (Programme usw…)

Oha, fragst du nur aus Interesse oder weil du das wirklich vor hast??

Das ist genauso, wie wenn du fragst, wie man einen Blockbuster macht a la Herr der Ringe und aber nur mit ner Handykamera umgehen kannst.
Prinzipell brauchst du viel vieel Erfahrung in C, C++ und in Teilen sogar Assembler, sprich Maschinensprache.
Windows ist beispielsweise in diesen Sprachen geschrieben.
Basic ist viel zu langsam und eingeschränkt.
Das reicht aber noch lange nicht: Da du praktisch neben dem Bios auf einer ganz tiefen Hierachie arbeitest, musst du, um komplett ein heutzutage ein eigenes Betriebssystem zu bauen, wissen, wie ein moderner Computer im letzten Detail funktioniert und wie du die verschiedenen Hardwarekomponenten direkt ansprichst, wie z.B. die Grafikkarte, Sound, Peripherie wie Drucker Tastatur, Maus… Und auch verstehen, was die Zahlen bedeuten, die von den Geräten als Input zurück gesendet werden.
Dazu gehört gehöriges Know-How noch neben der reinen Programmierarbeit. Da hilft es auch nicht, indem man versucht einzelne Codeschnipsel im Netz zu suchen.

Bei so ganz einfachen Systemen aus den 80ern, die nicht so komplex waren, ist es durchaus möglich gewesen, ein eigenes alleine und selbst Betriebsystem zu bauen, wir haben das mal als Projekt in der Informatik-AG für den C64 gemacht. Und mit so kleinen System wie dem Rasperry Pi ist das sicher auch heute noch möglich.

Betriebssysteme wie Windows 8 oder MacOSX sind durch eine einzelne Person quasi nicht programmierbar sondern nur in riesigen Teams von Fachleuten mit jahrelanger Erfahrung, auch bei Linus arbeiteten mittlerweile hunderte von freiwilligen Computerexperten mit.

Hoffe das hat ein bisschen die Augen geöffnet.
Grüßle
Vivis

Moin,haste mit dem System ebbes spezielles vor (ála Apple mit seinen Grafikcomputern oder solls ein ganz normales Bs ala windoof werden

Was auch immer: Aber mit Basic kommste da nicht weit. C oder C++ sindst da schon Pflicht.

Lass mal lesen, was Du vorhast.

LG Frank

Ach ganz vergessen, falls dus wirklich trotzdem probieren willst:
Google mal nach Microsoft Visual Studio 2012. Da bekommst du zumindest mal eine C++ Programmierumgebung als Grundlage. Alternativ gibt es noch sowas wie Eclipse.
Und dann deck dich mit Büchern ein…
Mich würd wirklich brennend interessieren was du vor hast… :wink:
Gruß
vivs

Hallo, leider keine Ahnung
Gruß

Jede Menge Zeit und Enthusiasmus :smile:
Linux ist Open-Source. Kann man ja anfangen den Kernel zu studieren…
Viel Spaß

Um ein komplett eigenständiges Betriebssystem mit Bootloader etc zu Programmieren brauchst Du sicher C oder C++, da die Basic- oder Batch-Umgebungen fehlen. Ein Betriebssystem-Kernel und zugehörige Benutzeroberfläche schreibt man auch nicht einfach mal so; Windows 8, Linux oder MacOS X haben etliche Mannjahre Entwicklungszeit verschlungen.

Falls Du mal schauen möchtest, wie ein Betriebssystem-Code aussieht kannst Du den Source-Code vom Linux-Kernel (kein GUI) unter https://www.kernel.org/ herunterladen. Das zugehörige GUI ist nach meinem Wissensstand Gnome, KDE oder Unity (von Ubuntu), die den X-Server benutzen.

Minix ist auch als Source Code verfügbar und wird im zugehörigen Buch (Operating Systems Design and Implementation, ISBN 0-13-638677-6 Buch anschauen) von Andrew S. Tanenbaum beschrieben.

Ich hoffe, Dir damit eine Starthilfe gegeben zu haben.

… Betriebssystem programmiert mit richtiger
benutzeroberfläsche wie bei Windows 8.mit den
Programmiersprachen Basic und Batch Programmierung kenne ich
mich gut aus allerding habe ich gehört das man dafür C oder
C++ braucht .

Man braucht auf jeden Fall eine Programmiersprache, die in Maschinencode übersetzt werden kann – also keinen Interpreter oder eine virtuelle Maschine braucht.

C und C++ sind die gebräuchlichsten Programmiersprachen hierfür. Theoretisch würden z.B. auch Pascal oder compiliertes BASIC gehen. (Nicht aber interpretiertes BASIC oder solches auf .NET-Basis wie VB.NET, zumindest nicht alleine.)

Für einige Teile „ganz unten“ muss man sogar noch näher an die Maschine ran und die in Assembler programmieren. Solche Teile kann man aber auf ein Minimum reduzieren, wenn man möchte.

(Wenn man von der ganz harten Sorte ist, kann man natürlich auch ein gesamtes Betriebssystem in Assembler schreiben, oder sogar direkt in Maschinencode. Hat man früher ja auch so gemacht. Die waren natürlich noch wesentlich simpler und hatten zum Beispiel keine grafische Benutzeroberfläche.)

Theoretisch könntest du natürlich auch gleich deine eigene Programmiersprache erfinden und dann das Betriebssystem in der Sprache schreiben. Dafür müsstest du dann natürlich als Erstes einen Compiler für die Sprache schreiben, der Code in Maschinenensprache übersetzt.

wo kann man so einen code für ein richtiges
Betriebssystem finden?

Für ein Betriebssystem an sich könntest du dir zum Beispiel den Code von Linux anschauen (ftp://ftp.kernel.org/pub/linux/kernel/) – damit kannst du ein System hochfahren, hast aber noch keine grafische Benutzeroberfläche (dafür wird bei Linux meistens X11 benutzt, in der Regel mit einer Desktop-Umgebung wie KDE oder GNOME) und auch keine Hilfsprogramme wie eine Shell/Kommandozeile, die Benutzereingaben annimmt. Selbst simpelste Programme wie die zum Löschen einer Datei oder zum Auflisten des Verzeichnisinhaltes sind nicht dabei. Die kann man sich z.B. vom GNU-Projekt holen.

Hier müsstest du also für ein Betriebssystem inklusive grafischer Benutzeroberfläche und Hilfsprogrammen den Code an mehreren Stellen zusammensuchen.

Alternativ könntest du zum Beispiel eine Linux-Distribution nehmen, die nicht nur das reine Betriebssystem (den Kernel) liefert sondern auch die Benutzeroberfläche und Programme, das Ganze auch im Quellcode. Die haben einam also quasi schon das Zusammensuchen abgenommen und stellen alles an einer Stelle bereit.

An Linux-Distributionen gibt es einige zur Auswahl; als Beispiel Ubuntu, Debian, Gentoo, Linux Mint, openSUSE oder Fedora. Oder du schaust dir „Linux from Scratch“ an, ein Buch und Projekt, das „bei Null anfängt“ und einem zeigt, wie man sich eine Linux-Distribution selber zusammenstellen kann. Das kann sicher recht lehrreich sein.

was brauch ich dafür? (Programme usw…)

Wenn du ein ganz eigenes Betriebssystem inklusive grafischer Benutzeroberfläche und vielleicht noch einem Satz an nützlichen Programmen schreiben möchtest: viele, viele Mitarbeiter; viel, viel Zeit; und viel, viel Erfahrung. Am Besten auch noch gute Kontakte zu Hardware-Herstellern, damit du verschiedene Ein- und Ausgabegeräte unterstützen kannst. (Eine grafische Benutzeroberfläche erfordert zum Beispiel, dass du die Grafikkarte ansprechen kannst. Dafür benötigst du Dokumentation vom Hersteller der Karte/des Chipsatzes, damit du einen entsprechenden Treiber schreiben kannst. Dito für eine Netzwerkkarte, einen USB-Port, ein DVD-Lesegerät usw.)

Theoretisch brauchst du für den Anfang nur einen Editor, einen Compiler und vielleicht einen Debugger. Danach kann man sich dann langsam hochhangeln.

Wenn es zum Beispiel anfängt, grafisch zu werden, könnte man sich ein Programm schreiben, mit dem man einfache Pixelgrafiken zeichnen kann.

Auf jeden Fall ist es ein riesiges Unterfangen, von dem ich bezweifle, dass das eine Person alleine in vertretbarer Zeit schaffen kann.

Viel Erfolg!

Fuer gewoehlich sind Betriebssysteme eher mit systemnahen Sprachen programmiert, C ist eine solche. Ein Bettriebssystem von Grund auf zu programmieren ist sehr umfangreich, deswegen arbeiten auch mehrere Entwickler an solchen Fragestellungen.

Um in C programmieren zu koennen brauchst Du einen C Kompiler (Gnu C) und eine entsprechende Umgebung. Einen kleinen Einblick in die aktuelle Entwicklung des Linux BS als Beispiel erhaelst Du, wenn Du Dir den aktuellen Linux Kernel Code herunterlaedst und versuchst zu compilen.

Eine besser Antwort kann ich aber auf diese allgemeine Frage nicht geben.

moin

  1. auf google nach „realtime operation systems“ suchen
  2. sich die liste auf der englischen wikipedia anschauen

und da hätten wir dann die freie auswahl…

ich kann On Time RTOS-32 für die microsoft-welt empfehlen (schnelle ergebnisse in einer gewohnten welt, falls windows-user), am interessantesten ist aber RTEMS, vor allem weil es kaum eine basis gibt auf der dieses system nicht läuft bzw nicht implementiert wurde.

was die grafische oberfläche angeht, kann ich dir keine sinnvolle hilfe geben. X11 ist zwar opensource, aber so kompliziert, daß es für anfänger kaum zu empfehlen ist. evt. kannst du ja eine source-version von GEM (ATARI, Xerox) auftuen - dürfte die simpelste grafische oberfläche sein, von der man die sources bekommen kann und mit der man etwas anfangen
kann.

eine oberfläche ähnlich windows8 halte ich für ein nicht realisierbares ziel für einen „einzelkämpfer“.

auf jeden fall aber solltest du dich mit c/c++ auseinander setzen. dies sind einfach die sprachen der wahl in der systementwicklung. alternativ wäre noch eine programmierung direkt auf die zielhardware möglich (assembler), nur dürftest du da in diesem leben nicht mehr zu einem ergebnis kommen…

gruß

a.e.göring

Hallo,
um Linux von Grund auf neu zu übersetzen, wurde das Projekt „Linux from Scratch“ gegründet (siehe Wikipedia-Artikel unter „http://de.wikipedia.org/wiki/Linux_From_Scratch“. Die Grundversion enthält aber keine grafische Benutzeroberfläche (X-Windows-System). X-Windows ist erst im darauf aufsetzenden Projekt „Beyond LFS“ enthalten. Dessen Referenz-Handbuch liegt unter „http://www.linuxfromscratch.org/blfs/downloads/svn/“. C-Compiler (normalerweise der gcc) sind in jeder Linux-Distribution enthalten. Ich selbst habe mit LFS keine Erfahrung, aber ein Software-Entwickler-Kollege konnte sich damit erfolgreich in Linux einarbeiten.

Du willst sicher kein Betriebssystem programmieren. Wenn du kein C und kein Assembler kannst, brauchst du mit solchen Ideen gar nicht erst anzufangen.
Ein Betriebssystem verwaltet sämtliche Hardwarezugriffe, muss Prozessen Ausführungszeiten zuordnen, muss Benutzter verwalten, muss ein Dateisystem verwalten, muss Grafikkartentreiber verstehen können, muss virtuellen Speicher anbieten (d.h mehr Speicher anbieten, als existiert durch Auslagerung auf die Platte).
Und grafisch kannst du erst recht knicken. Ein studierter Informatiker kann froh sein, wenn er es schafft nach 3-5 Jahren ein Betriebssystem zu schreiben, dass nur Befehle in Textform entgegennimmt und wiedergibt. An Graphische Oberflächen und Internet etc. ist gar nicht erst zu denken!

Du hast dich mit so einer Aufgabe eindeutig übernommen.
Mit Basic und Batch kommt man heutzutage auch nicht wirklich weit.
Du solltest wirklich eine Sprache, wie C++, C# oder Java lernen. Wenn du diese perfekt beherrscht und ne Ahnung von Assembler hast, dann kannst du versuchen ein Mini-Betriebssystem zu bauen :wink:

Nicht umsonst hat Windows 7 mehrere Millionen Zeilen Code und wurde von vielen hundert Entwicklern über mehrere Jahre entwickelt.

Hi,

ich möchte keine Träume platzen lassen aber

  1. Du brauchst ist ein abgeschlossenes Informatikstudium mit dem Schwerpunkt Programierung!(Treiber, IO, Logik, Datenzugriff, Parser, Kommandozeileninterpreter, …, irgendwo ganz zu letzt Benutzeroberfläche)

  2. Du brauchst eine Entwicklungsumgebung (Comiler usw.) auf Basis Fortran oder irgendeines C Derivates.
    Microsoft versuchen ist nicht ganz schlecht!

  3. Du brauchst nach deinem Studium 3-4 Jahre 8 Stunden am Tag zum Programieren.

nicht zu machen!

Denke auch daran das du ALLES selbst programmieren musst! Das heist keine DLL’s, Librarys, Verweise … alles selbst Progammieren!

Wenn du Spass daran hast kanst du dich mit Linux versuchen, da gibt es den Quellcode und die Werkzeuge zum bearbeiten im Internet.

Kindest Regards
Frank