Autor Thema: Was kann das OS  (Gelesen 16094 mal)

Kobra

  • Beiträge: 9
    • Profil anzeigen
Gespeichert
« am: 30. October 2012, 18:44 »
Hallo,
ich interessiere mich für die Programmirung eines OS.(OS-Dev Tutorial)
Hab aber noch einige Fragen am Anfang:
1. Was kann das OS am ende? Kann hatt es z.B. eine grafische Oberfläche?
2. Lassen sich auf dem Os programme (compiller) installieren?
3. Welches System ist am besten um den Kernel und Co zu compillern? Kann man ein Windows
System mit gcc/g++ verwenden oder besser Linux? Und bei Linux welches(Open Suse, Ubuntu, etc.)

Kobra

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 30. October 2012, 19:41 »
Willkommen im Forum erst einmal. :)

Was das OS am Ende kann, hängt davon ab, wie du es programmierst. Tutorials führen dich zwar die ersten paar Schritte, damit du nicht ganz verloren bist, aber wie man ein vollständiges OS schreibt, wird dir keines vorkauen (schon allein deswegen, weil es ja völlig langweilig wäre, wenn jeder dasselbe OS baut). Irgendwann musst du dich vom Tutorial lösen und selbst ins kalte Wasser springen, wenn dein OS was werden soll. Viel mehr als die grundlegenden Mechanismen (Interrupts, Multitasking, Speicherverwaltung) in groben Zügen beschreiben die Tutorials überhaupt nicht.

Man kann ein Windowssystem zur Entwicklung nehmen, wenn man das unbedingt möchte. Wenn man ein Linux zur Verfügung hat, möchte man aber lieber das Linux nehmen, weil dort vieles einfacher geht und man nicht erst mit der Umgebung kämpfen muss. Die Distribution ist relativ egal, wobei für OS-Dev "nicht Ubuntu" ein guter Anhaltspunkt ist, Ubuntubenutzer haben beim OS-Dev immer mal wieder Überraschungen erlebt.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 30. October 2012, 20:02 »
Ich hatte überhaupt keine Probleme mit Ubuntu 11.10, 12.04, 12.10-proposed und 12.10. Alles läuft glatt. Keine Probleme. (Okay, wenn man den objcopy-Bug im anderen Fred mal ausnimmt, aber diese Magie von tyndur hat es dann doch geschafft)
Außerdem ist Ubuntu die eigentlich am häufigsten verwendete Desktop-Distribution (hab jetzt leider keine Statistik zur Hand, keine Gewähr), die meisten Pakete gibt es auch für Debian/Ubuntu und die GUI ist einfach nur schick.
Mich stört nur, dass Ubuntu (vllt. aber auch Allgemein Linux/X11/fglrx/weiß der Kuckuk) keine Auflösung höher als 1920x1920 kann. Wozu braucht man Auflösungen größer als 1920x1920? Richtig, für mehrere Monitore. Die Folge: Ich kann nur einen Bildschirm benutzen und beim Booten und Loginscreen habe ich die Auflösung des kleineren Monitors, und 1280x1024 gezerrt auf 1680x1050 sieht einfach nur besch***en aus...

Außerdem: Fang bloß nicht auf Windoof an! Wirklich, ich machte diese Erfahrung vor einem Jahr, als ich XAMPP zuerst auf Windows 7 und dann auf Linux installiert habe. Ergebnis:
Windows: GUI-Glitches, irgendeine XAMPP-Bestandteil funktioniert nicht
Linux: GUI wunderbar, alles funktioniert

Fazit:
a) Nimm Linux!
b) Nimm Ubuntu!

FlorianN

  • Beiträge: 50
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 30. October 2012, 20:36 »
Ich benutze auf meinem Rechner beide Systeme (Windows u. Ubuntu). Ja Ubuntu eignet sich wirklich besser. Es geht unter Windows auch, GCC steht dir zur verfügung. Aber nicht empfehlenswert.
Woher ich das weiß? Keine Ahnung.

Kobra

  • Beiträge: 9
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 30. October 2012, 20:41 »
Noch eine Frage: Kann man die erste Assembler-Datei auch
mit gcc compillern? Hab ein virtuelles Ubuntu 10.10 System, habe
aber leider keine möglichkeit nasm zu installieren. Wollte jetzt diesen
Qullcode testen : http://www.lowlevel.eu/wiki/C-Kernel_mit_GRUB

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 30. October 2012, 20:49 »
Unterscheide:
nasm, yasm, fasm, masm: Intel-Syntax (einfach)
gas (GNU assembler): AT/T-Syntax (schwierig, unnötig kompliziert)
d.h. nasm-Code ist nicht mit gas-Code kompatibel.

Mit -masm-intel (oder so ähnlich) kannst du gcc/gas zwar auch Intel-Code annehmen lassen, aber die Syntax unterscheidet sich trotzdem noch ein wenig.

Öhm, und warum hast du Ubuntu 10.10 (veraltet) und kannst kein nasm installieren?

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 30. October 2012, 21:00 »
Ich würde dir eher dieses Tutorial empfehlen: http://www.lowlevel.eu/wiki/OS-Dev_für_Einsteiger (und zufälligerweise benutzt das auch gas statt nasm ;))

Und AT&T-Syntax ist nicht schwieriger oder komplizierter, sondern einfach anders als Intel-Syntax.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 30. October 2012, 21:14 »
Ich denke einfach, dass Intel weniger Schreibaufwand benötigt und auch einfacher zu lernen ist. Das ständige "%" und "$" schreiben ist doch eigentliche reine Zeit- und Geldverschwendung.
AT/T mov $12345, %eax
Intel mov eax, 12345

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 30. October 2012, 22:18 »
AT&T: movl $12345, (%eax)
Intel: mov dword ptr [eax], 12345

Noch Fragen? ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 30. October 2012, 22:21 »
Hallo,

Was kann das OS am ende?
Genau das, was du einprogrammierst. Nicht mehr. Das Tutorial-OS kann sich am Leben halten, A's und B's auf den Bildschirm schreiben und sonst nichts.

Für eine grafische Oberfläche, Compiler u.ä. wirst du eine ganze Menge Infrastruktur bereitstellen müssen, ehe du sowas programmieren kannst. Die wirst du eine relativ lange Zeit nicht haben.

Welches System ist am besten um den Kernel und Co zu compillern?
Nimm Linux, bevorzugt ein Nicht-Ubuntu. Von Windows raten wir ab.

Mich stört nur, dass Ubuntu (vllt. aber auch Allgemein Linux/X11/fglrx/weiß der Kuckuk) keine Auflösung höher als 1920x1920 kann.
Das hängt von der Hardware ab. 3D-Beschleunigung mit mehr als 2048x2048 ist in älteren (ATI-)Grafikkarten nicht gegeben, im 2D-Modus geht das zuverlässig auch auf alten Karten (R300). Da Ubuntu aber aktive 3D-Beschleunigung voraussetzt...

Tipp: Nimm eine andere Oberfläche, die ohne 3D auskommt (z.B. XFCE, LXDE, ...) oder eine andere Distribution.

Gruß,
Svenska

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 30. October 2012, 22:39 »
Nimm Linux, bevorzugt ein Nicht-Ubuntu. Von Windows raten wir ab.
Was habt ihr alle gegen Ubuntu? Ich bin seit einem Jahr wunschlos mit Ubuntu glücklich!
Mich stört nur, dass Ubuntu (vllt. aber auch Allgemein Linux/X11/fglrx/weiß der Kuckuk) keine Auflösung höher als 1920x1920 kann.
Das hängt von der Hardware ab. 3D-Beschleunigung mit mehr als 2048x2048 ist in älteren (ATI-)Grafikkarten nicht gegeben, im 2D-Modus geht das zuverlässig auch auf alten Karten (R300). Da Ubuntu aber aktive 3D-Beschleunigung voraussetzt...

Tipp: Nimm eine andere Oberfläche, die ohne 3D auskommt (z.B. XFCE, LXDE, ...) oder eine andere Distribution.

Gruß,
Svenska
Ich habe eine HD6670. Sooo alt ist die nun auch nun wieder nicht, und an 3D-Beschleunigung mangelts auch nicht. Was mich nur wundert: Unter "Zusätzliche propertiäre Treiber" (weiß nicht genau wie es heißt) gibt es einen Standard-fglrx und ein Paket namens "Update für fglrx [...]". Der Standard-fglrx ist drinnen, aber immer wenn ich den anscheinend neuen installiere, gibt es irgendein Problem. (Weiß nicht mehr welches, habe schon vor langer Zeit aufgegeben und sitzt gerade nicht vor meinem eigentlichen PC)
Und Ubuntu ohne Gnome/Unity? "Ein Leben ohne Unity ist möglich, aber sinnlos"
Wie auch immer, ich wollte sowieso mal awesome ausprobieren.
Mag Linux eigentlich nVidia-Karten eher?
AT&T: movl $12345, (%eax)
Intel: mov dword ptr [eax], 12345

Noch Fragen? ;)

Dich kann man nicht überzeugen, oder? Ich werde solange auf meiner Meinung beharren, bis mir jemand gesagt hat, warum die AT/T-Syntax tausende Sonderzeichen braucht. Damit man auch ein Symbol namens eax erstellen kann?
« Letzte Änderung: 30. October 2012, 22:42 von tiger717 »

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 30. October 2012, 22:57 »
Was habt ihr alle gegen Ubuntu? Ich bin seit einem Jahr wunschlos mit Ubuntu glücklich!
Wir haben seit weit über einem Jahr immer wieder komische Probleme gedebuggt, die nur mit Ubuntu aufgetreten sind. Sonst eigentlich nichts.

Zitat
Dich kann man nicht überzeugen, oder?
Doch, doch, mit Argumenten geht das. Ich verstehe schon, dass du eine Meinung hast und dich da von Fakten nicht irritieren lässt, aber um mich zu überzeugen, bräuchte es mehr.

Gut, mich im konkreten Fall von der absoluten Überlegenheit einer Syntax gegenüber einen anderen zu überzeugen, wird schwierig, wenn sie letztendlich halt doch dieselbe Sprache sind und das gleiche können...

Zitat
Ich werde solange auf meiner Meinung beharren, bis mir jemand gesagt hat, warum die AT/T-Syntax tausende Sonderzeichen braucht. Damit man auch ein Symbol namens eax erstellen kann?
Wäre ein Ansatz.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 30. October 2012, 23:18 »
Hallo,

Nimm Linux, bevorzugt ein Nicht-Ubuntu. Von Windows raten wir ab.
Was habt ihr alle gegen Ubuntu? Ich bin seit einem Jahr wunschlos mit Ubuntu glücklich!
Offensichtlich nicht, sonst hättest du nicht in diesem Thread von deinen Grafikproblemen gerantet. :evil:

Ich habe eine HD6670. Sooo alt ist die nun auch nun wieder nicht, und an 3D-Beschleunigung mangelts auch nicht.
Dann nimm mal den radeon-Treiber und gucke, ob das Problem damit weg ist. Windows (und der NVidia-Treiber mit TwinView) steuern Multimonitoring übrigens anders an und haben damit das Problem nur, wenn ein Bildschirm die Limits sprengt.

Wie auch immer, ich wollte sowieso mal awesome ausprobieren.
Erst Unity vergöttern und dann sogar die Idee eines Desktop Environments verwerfen? Genial. </ironie>

Mag Linux eigentlich nVidia-Karten eher?
Ich hatte bisher nur NVidia, und immer gut abgehangen. Die TNT2 und Geforce 2 MX400 liefen damals mit dem Binärtreiber anständig. Auf meiner aktuellen Geforce 7600 Go mag der allerdings kein Minecraft, daher nutze ich Nouveau.

ATI läuft mit den radeon-Treibern ebenfalls gut. Den Ärger mit fglrx habe ich mir für andere nie angetan.

Gruß,
Svenska

Dimension

  • Beiträge: 155
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 30. October 2012, 23:27 »
Was habt ihr alle gegen Ubuntu? Ich bin seit einem Jahr wunschlos mit Ubuntu glücklich!
Wir haben seit weit über einem Jahr immer wieder komische Probleme gedebuggt, die nur mit Ubuntu aufgetreten sind. Sonst eigentlich nichts.
Das hat evtl. was mit der stärkeren Verbreitung/Verwendung von Ubuntu zu tun.

Kobra

  • Beiträge: 9
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 30. October 2012, 23:30 »
Noch eine Frage: Hab doh das Tutorial von obe (http://www.lowlevel.eu/wiki/C-Kernel_mit_GRUB )
verwendet. Doch wie kann ich den Kernel jetzt testen? Hab Ubuntu 12.04 in einer virtuellen Maschine
(Oracle VM Virtual Box) und die Datei test.img so erzeugt wie angegeben.(Allerdings konnte ich zwei Dateien
für Grub nicht einbinden. Grub wird beim start des Systems nicht angezeigt. Wie kann ich jetzt
den Kernel zum laufen bringen?

Kobra

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 31. October 2012, 10:26 »
Das hat evtl. was mit der stärkeren Verbreitung/Verwendung von Ubuntu zu tun.
Nein. Wenn man ein Problem debuggt und dabei feststellt, dass es nur unter Ubuntu auftritt und alle anderen, die exakt dasselbe auf einer anderen Distribution probieren, kein Problem haben, dann spricht gegen einen Zusammenhang mit der Verbreitung. Wenn man die Sache dann zu Ende debuggt und auf einen eindeutigen Bug z.B. in der Toolchain zurückführt, dann merkt man, dass es viel eher was mit der Kaputtheit von Ubuntu zu tun hat.

Zur stärkeren Verbreitung von Ubuntu in dieser Community haben diese Fälle übrigens nicht beigetragen. ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

juztme

  • Beiträge: 1
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 31. October 2012, 11:43 »
...
Außerdem ist Ubuntu die eigentlich am häufigsten verwendete Desktop-Distribution (hab jetzt leider keine Statistik zur Hand, keine Gewähr), die meisten Pakete gibt es auch für Debian/Ubuntu und die GUI ist einfach nur schick.
Wegen der GUI wählt man Ubuntu ... ist klar!
Mich stört nur, dass Ubuntu (vllt. aber auch Allgemein Linux/X11/fglrx/weiß der Kuckuk) keine Auflösung höher als 1920x1920 kann. Wozu braucht man Auflösungen größer als 1920x1920? Richtig, für mehrere Monitore. Die Folge: Ich kann nur einen Bildschirm benutzen und beim Booten und Loginscreen habe ich die Auflösung des kleineren Monitors, und 1280x1024 gezerrt auf 1680x1050 sieht einfach nur besch***en aus...
Schon mal die XORG konfig durchstöbert?
Ansonsten mit 2tem X-Server versucht?
Außerdem: Fang bloß nicht auf Windoof an! Wirklich, ich machte diese Erfahrung vor einem Jahr, als ich XAMPP zuerst auf Windows 7 und dann auf Linux installiert habe. Ergebnis:
Windows: GUI-Glitches, irgendeine XAMPP-Bestandteil funktioniert nicht
Linux: GUI wunderbar, alles funktioniert
Genau Ubuntu ist für XAMPP User...

Fazit:
a) Nimm Linux!
b) Nimm Ubuntu!
a) Richtig
b) Nimm Debian wenns einfach sein soll/ Fedora/Centos wenns auf Sicherheit ankommt und Gentoo wenn du viel basteln moechtest ;-)

Ein Arbeitskollege hat mal gesagt: "Wer Ubuntu nutzt, schubst auch kleine Kinder..."

Zitat
Mag Linux eigentlich nVidia-Karten eher?
Kennst du Linus Torvalds? ;-)

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 31. October 2012, 12:18 »
Zitat
Mag Linux eigentlich nVidia-Karten eher?
Kennst du Linus Torvalds? ;-)
Du hast den zugehörigen Link vergessen.
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

Kobra

  • Beiträge: 9
    • Profil anzeigen
Gespeichert
« Antwort #18 am: 31. October 2012, 13:26 »
Hab es jetzt geschafft Grub zu starten,
bekomme aber den Kernel nicht geladen. :?
Wen ih in der Grub befehlszeile ahsehen fehlt dort
der Befehl Kernel. Ich hab mir diese Beitrag durchgelesen:
http://forum.lowlevel.eu/index.php?topic=3091.0
Dort ist das gleiche Problem wie bei mir. Ih hab nur de Befehl
xnu_kernel beie Grub. Wen ich diesen Befehl aufrufe kommt dort eine
Fehlermeldung. Was soll ich jetzt mache damit der Kernel startet? :? :? :?

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 31. October 2012, 13:28 »
...
Außerdem ist Ubuntu die eigentlich am häufigsten verwendete Desktop-Distribution (hab jetzt leider keine Statistik zur Hand, keine Gewähr), die meisten Pakete gibt es auch für Debian/Ubuntu und die GUI ist einfach nur schick.
Wegen der GUI wählt man Ubuntu ... ist klar!
Wegen der Einfachheit und der großen Verbreitung, nicht wegen der GUI. Ich finde nur die GUI und Farben, etc. gut aufeinander abgestimmt und Kreativität ist auch nicht jedem Programmierer gegeben.
Mich stört nur, dass Ubuntu (vllt. aber auch Allgemein Linux/X11/fglrx/weiß der Kuckuk) keine Auflösung höher als 1920x1920 kann. Wozu braucht man Auflösungen größer als 1920x1920? Richtig, für mehrere Monitore. Die Folge: Ich kann nur einen Bildschirm benutzen und beim Booten und Loginscreen habe ich die Auflösung des kleineren Monitors, und 1280x1024 gezerrt auf 1680x1050 sieht einfach nur besch***en aus...
Schon mal die XORG konfig durchstöbert?
Ansonsten mit 2tem X-Server versucht?
Ich habe leider nicht allzu viel Erfahrung mit dem Inneren von Xorg. Wenn sich das ohne großen Aufwand machen lässt, dann kann ich es ja mal versuchen, ansonsten...
Außerdem: Fang bloß nicht auf Windoof an! Wirklich, ich machte diese Erfahrung vor einem Jahr, als ich XAMPP zuerst auf Windows 7 und dann auf Linux installiert habe. Ergebnis:
Windows: GUI-Glitches, irgendeine XAMPP-Bestandteil funktioniert nicht
Linux: GUI wunderbar, alles funktioniert
Genau Ubuntu ist für XAMPP User...
a) Habe ich nie behauptet.
b) Ich habe leider keinen Server einfach so rumstehen, auf dem ich mal eben XAMPP ausprobieren kann. Hätte ich also, um XAMPP auszuprobieren, erstmal einen Server mal eben so mieten sollen, damit ich XAMPP ausprobieren kann? Wenn du zufällig einen rumstehen hast, ich nehme immer gerne Geschenke an!
c) Es geht nicht um Ubuntu und XAMPP, es geht um Cross-Platform-Development und die Tatsache, dass solche angeblich auch auf Windows völlig fehlerfrei laufenden Progrämmchen es dann doch nicht tun und ich deshalb, weil ich eben eine Linux-Distro nativ installiert habe (nicht VM), immer diese wunderbaren Cross-Platform-Progrämmchen direkt auf Ubuntu installiere und mir den Windows-Ärger nicht antue.
Fazit:
a) Nimm Linux!
b) Nimm Ubuntu!
a) Richtig
b) Nimm Debian wenns einfach sein soll/ Fedora/Centos wenns auf Sicherheit ankommt und Gentoo wenn du viel basteln moechtest ;-)

Ein Arbeitskollege hat mal gesagt: "Wer Ubuntu nutzt, schubst auch kleine Kinder..."
Ich schlage keine kleinen Kinder, warum sollte ich auch?
Zitat
Mag Linux eigentlich nVidia-Karten eher?
Kennst du Linus Torvalds? ;-)
Ja, zwar nicht persönlich, ich habe aber zweimal sein Buch durchgelesen. Er hat sich darin aber nicht über nVidia geäußert, danke, jetzt bin ich auch schlauer.  :-D
Frage ist: Welche Grafikkarte soll ich denn dann nehmen, damit ich Linus glücklich mache?
Hallo,

Nimm Linux, bevorzugt ein Nicht-Ubuntu. Von Windows raten wir ab.
Was habt ihr alle gegen Ubuntu? Ich bin seit einem Jahr wunschlos mit Ubuntu glücklich!
Offensichtlich nicht, sonst hättest du nicht in diesem Thread von deinen Grafikproblemen gerantet. :evil:
Ich habe mich nicht beschwert, nur auf die Tatsache hingewiesen, dass in meinem Setup Ubuntu sich nicht mit mehreren Monitoren verträgt. @OP: Hör nicht auf die anderen, nimm Ubuntu. Nee, weißt du was: Nimm irgendwas UNIXoides. Das passt dann schon.
Ich habe eine HD6670. Sooo alt ist die nun auch nun wieder nicht, und an 3D-Beschleunigung mangelts auch nicht.
Dann nimm mal den radeon-Treiber und gucke, ob das Problem damit weg ist. Windows (und der NVidia-Treiber mit TwinView) steuern Multimonitoring übrigens anders an und haben damit das Problem nur, wenn ein Bildschirm die Limits sprengt.[/quote]
Danke, werde ich versuchen. Bin aber gerade nicht an meinem Linux-PC.
Wie auch immer, ich wollte sowieso mal awesome ausprobieren.
Erst Unity vergöttern und dann sogar die Idee eines Desktop Environments verwerfen? Genial. </ironie>
a) Dir ist bewusst, dass das Unity-Vergöttern ironisch gemeint war?
b) Und seit wann verwirft awesome die Idee des Desktop Environments? Es gibt Fenster, es gibt Schaltflächen zum Minimieren, Maximieren, - *Sieht Screenshot von awesome* Öhm, vergiss es.
Mag Linux eigentlich nVidia-Karten eher?
Ich hatte bisher nur NVidia, und immer gut abgehangen. Die TNT2 und Geforce 2 MX400 liefen damals mit dem Binärtreiber anständig. Auf meiner aktuellen Geforce 7600 Go mag der allerdings kein Minecraft, daher nutze ich Nouveau.

ATI läuft mit den radeon-Treibern ebenfalls gut. Den Ärger mit fglrx habe ich mir für andere nie angetan.

Gruß,
Svenska
Danke für den Rat.

Weil mir in diesem Fred schon mehrfach zum Distro-Wechseln geraten wurde: Welche Distro? Welcher Desktop? *schnell abhauen*

@Kobra: Kann sein, dass der Befehl multiboot /<deinkernel> lautet, kann gerade nicht nachsehen.

 

Einloggen