Hilfe zu Grafischenoberfläche

DarkShadow

Grünschnabel
Hy Leute,
kann mir mal einer von euch sagen wie man in C/C++ eine Grafische oberfläche machen kann, jetzt kommt aber das wichtige das auf allen Plattformaen funktioniert?

Ich hab ein Projekt(ein "eigenes Betriebssystem". Ich weiss das es für eine Person das fasst unmöglich ist sowas zu machen, und das man Assabler dazu braucht, ich hab mir auch schon einen bootloader geschrieben der auch funktioniert!*g* und würde manl gerne die oberfläche dazu machen nur das Problem ist ja ich hab fasst keine erfahrung wie man sich eine Oberfläche machen kann, außer bei MFC da kenn ich mich ein wenig aus aber das wird mir nicht sehr viel helfen.)
könnt ihr mir mal helfen oder einige tuts geben wie ich es lösen könnet? Ich wäre euch sehr dankbar!
 
DarkShadow:

sei mir nicht böse, aber lass es.

Denn
"einen bootloader geschrieben der auch funktioniert!"
ist gut und gratuliere, aber das hat mit der komplexität eines OS nicht wirklich viel zu tun.
Auch das Tutorials von Lirion (ein eigenes OS) ist auch eher eine Spiellerei.

MFC VCL usw könntest du eh nicht auf deinem "OS" nutzen, denn das sind nur Wrapper um die WinAPI.
Qt ist die einzige Library welches "fast" Coden für Linux und Windows ermöglicht.
Aber auch QT ist nicht nach dem Prinzip: write one, run anywhere.

Die einzige Möglichkeit Plattformunabhängig zu Programmieren ist Java. Aber eine Java VM wird es für selbstgecodete OS nicht geben, weil diese nicht annähernd die möglichkeit bieten die benötigt werden um eine VM zu betreiben.
 
Auch das Tutorials von Lirion (ein eigenes OS) ist auch eher eine Spiellerei.
Genaugenommen ist die Überschrift "eigenes Betriebssystem" für das Tutorial nicht mal gerechtfertigt, weil darin nur der Bootloader zu finden ist.
Das eigentliche Betriebssystem ist deutlich komplexer: Speicherverwaltung, Prozesse, Shell, usw...
Dazu kommt noch der Umstand, dass Du nicht auf die Standardbibliotheken zugreifen kannst, weil diese selbst wieder auf ein bestimmtes vorinstalliertes Betriebssystem zurückgreifen müssen. Funktionen wie printf() oder scanf() musst Du Dir also erst selber schreiben.

Mit der VCL (bzw. CLX) kannst Du zwar Programme für Windows und Linux schreiben, aber das sind nur Aufsätze für bestehende Plattformen. Java ist zwar plattformunabhängig, muss aber zur Laufzeit interpretiert werden. Also muss vorher schon was vorhanden sein, damit die Programme laufen.

Ein kleines (wirklich kleines!) Betriebssystem ist zwar machbar, aber schon ziemlich umfangreich und der Aufwand lohnt sich nicht wirklich. ;)
 
Die Frage ist nicht unbedingt, wieviele Personen man dazu braucht, sondern eher wieviel Ehrgeiz man besitzt, um den erforderlichen Aufwand zu erbringen. Linus Torvalds hat das ja auch immerhin mehr oder weniger alleine geschafft, zumindest die Ur-Version von Linux. ;)
Die könnte man sich ja auch einfach mal zu Gemüte führen und versuchen, zu verstehen. Der Code davon ist sogar noch relativ überschaubar. Einfach mal bei Google suchen.
 
Original geschrieben von Lirion
Die Frage ist nicht unbedingt, wieviele Personen man dazu braucht, sondern eher wieviel Ehrgeiz man besitzt, um den erforderlichen Aufwand zu erbringen. Linus Torvalds hat das ja auch immerhin mehr oder weniger alleine geschafft, zumindest die Ur-Version von Linux. ;)
Die könnte man sich ja auch einfach mal zu Gemüte führen und versuchen, zu verstehen. Der Code davon ist sogar noch relativ überschaubar. Einfach mal bei Google suchen.

Ja und nein.

Er hat massiv von den GNU Tools profitiert. Wenn du mal die Programme mit --version aufrufst wirst du das erkennen:
zum beispiel ls
ls --version
(C)Free Software Foundation
Richard Stallman und David MacKenzie

Das heisst:
Linus hat den Kernel geschrieben aber konnte sofort (durch die UNIX nähe) die GNU Programme nutzen.
wie eben das besagte ls oder auch z.b mkdir, grep awk und und und.

Ohne diese Tools ist Linux nicht benutzbar, sondern bootet nur :)

Das ist im übrigen auch ein grund weshalb die Free Software Foundation (die GNU - Coder) auch wollen das Linux nicht nur Linux sondern GNU/Linux genannt wird.
Ich finde es ist berechtigt, jedoch zu lang zu tippen ;)
 
Natürlich sind solche Klamotten wie ls, grep, mkdir oder rm notwendig, damit man vernünftig mit dem System arbeiten kann. Aber wie Du selbst schon gesagt hast: Das sind (nur) zusätzliche Tools, die allerdings einfach zum System gehören.
Das Betriebssystem selber ist ja erstmal nur der Kernel, alles andere gehört nicht direkt dazu.
 
Du musst zuerst mal zu den Bootloader einen Kernel programmieren in den Tutorial "Ein eigenes kleines Betriebssystem" steht wie.Nun musst du die wichtigsten header-Datein von c/c++ einbauen (Ein Code kommt noch).Dann kannst du mit Hilfe von QT starten.
 
Zurück