Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - tiger717

Seiten: 1 [2] 3 4 5
21
OS-Design / Re: Keine Interrupts im Ring 3
« am: 02. November 2012, 21:54 »
Wenn nichts anderes hilft: Mittels Debugger
  • GDT und TSS im Speicher untersuchen
  • Durch den entsprechenden Code steppen
Hierzu bietet sich die Kombination QEMU/GDB an, siehe hierzu den Artikel bei os-dev.org "How do I use a Debugger with my OS".
22
OS-Design / Re: Keine Interrupts im Ring 3
« am: 02. November 2012, 19:09 »
TSS wurde initialisiert? memclr()? :roll:
23
Lyrisches Eck / Re: Ubuntu und Windows
« am: 02. November 2012, 19:07 »
Ich vermisse hier irgendwie die Lyrik bei der Sache!  :-D
Ne, Spass beiseite, warum steht der Thread hier im Lyrischem Eck?
24
Softwareentwicklung / Re: Library und Programme
« am: 02. November 2012, 16:01 »
Bist du dir sicher, dass du die Entsprechenden Dateien auch mitlinkst?
Poste doch mal deine Flags.
25
OS-Design / Re: Keine Interrupts im Ring 3
« am: 02. November 2012, 12:10 »
Werden denn andere Exceptions aufgerufen? Double Fault + Triple Fault deutet auf fehlerhaften IDT hin. Probier doch einfach mal
asm volatile("xor ebx, ebx; div ebx");
Das sollte eine Divide-through-Zero-Exception auslösen.

EDIT: Arrghh, gcc/gas nutzen ja AT/T-Syntax. Dann also
asm volatile("xor %ebx, %ebx; div %ebx");
26
Offtopic / Re: Trick: Eigenes OS als ISO
« am: 01. November 2012, 16:07 »
Eine seeehr einfache Möglichkeit zum Debuggen:
Einmalige Einrichtung:
1. Unter Entwicklungsverzeichnis Ordner iso erstellen
2. Bei iso/boot/grub die grub.cfg erstellen, z.B.:
set timeout=10
set default=0

menuentry "OS-Name"
{
    multiboot /pfad/zu/kernel/kernel/datei
    boot   
}
(Aus dem Wiki)

In der makefile:
# ...

debug-qemu: image  # zuvor Kernelimage erstellen
    @cp kernel.o iso/zuvor/angegebener/pfad/kernel.img  # Kernel kopieren
    grub-mkrescue -o tmp/core.iso   # GRUB2-Image erstellen
    qemu -cdrom tmp/core.iso   # QEMU starten

# ...

Um iso auf eine echte CD-ROM zu bekommen:
dd if=tmp/core.iso of=/dev/cdrom

Einziger Minuspunkt: grub-mkrescue kann ein bisschen dauern, geht aber normalerweise recht zügig.

P.S. Die anderen Möglichkeiten, ein GRUB2-Image zu erstellen verliefen (bei mir) zumeist erfolgslos, während grub-mkrescue sofort funktioniert hat.
27
OS-Design / Re: Was kann das OS
« am: 31. October 2012, 21:16 »
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.
Insbesondere benutze ich ein OS fuer Produktivität, nicht weil die Farben huebsch sind. Uebrigens konnte man das Farbschema schon bei Windows 1.0 ändern... :-o
Vergiss es, ich hab da Mist erzählt.
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.
Ja, und alles das hat nichts mit Ubuntu zu tun, das geht mit jedem anderen Linux auch. Fuer OS-Dev ist Ubuntu geringfuegig schlechter geeignet als andere Linuxe, jedoch besser als Windows.
Ich hab ja auch nur Ubuntu als Beispiel genommen: "Es geht nicht um Ubuntu und XAMPP"
Frage ist: Welche Grafikkarte soll ich denn dann nehmen, damit ich Linus glücklich mache?
Intel. Linus wird sich aber eher nicht fuer deinen Rechner interessieren.
Ja, mir ist bewusst, dass Linux sich nicht für meinen Rechner interessieren wird...
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.
Desktop Environment != Window Manager. Gnome, KDE, XFCE4, LXDE sind Desktop Environments. TWM, IceWM, WindowMaker, awesome uvm. sind Window Manager.[/quote]Das war Sarkasmus.
Weil mir in diesem Fred schon mehrfach zum Distro-Wechseln geraten wurde: Welche Distro? Welcher Desktop?
Da ist ein grosser Topf, bedien dich. Jeder nutzt was anderes - ich Debian/XFCE4.
Danke, werde ich mir ansehen.
28
OS-Design / Re: Was kann das OS
« 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.
29
OS-Design / Re: Was kann das OS
« 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?
30
Softwareentwicklung / Re: Kann kein ProtectedMode
« am: 30. October 2012, 22:14 »
Modern Operating Systems von Tanenbaum kann ich sehr empfehlen. Zwar sehr theoretisch, aber trotzdem sehr hilfreich!
31
OS-Design / Re: Was kann das OS
« 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
32
OS-Design / Re: Was kann das OS
« 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?
33
Softwareentwicklung / Re: Kann kein ProtectedMode
« am: 30. October 2012, 20:43 »
Wie wärs mit erstmal googlen und dann fragen? Lowlevel-Wiki
34
OS-Design / Re: Was kann das OS
« 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!
35
Softwareentwicklung / Re: "uint8_t" kennt mein GCC nicht
« am: 30. October 2012, 18:19 »
Habe ich das nicht im ersten Post schon mal erwähnt?
36
Softwareentwicklung / Re: "uint8_t" kennt mein GCC nicht
« am: 30. October 2012, 15:13 »
Also, wie gesagt, die werden nicht vom OS mitgeliefert bzw. auf die sollte man sich im Fall des Falles nicht verlassen, weil jeder Compiler die unterschiedlich definieren kann (wie groß ein int ist z.B.) und deswegen wird das vom Compiler in Form der stdint.h mitgeliefert.
Das ist es ja: Wir programmieren hier selber das OS und ich hab ihm gezeigt, wie uint8_t in stdint.h definiert werden sollte. Da er wahrscheinlich nicht schon die glibc portiert hat, läuft es ja darauf hinaus das er in einem include-Verzeichnis selber stdint.h erstellt.
Das wird besonders deutlich wenn du einen Cross-Compiler nutzt und z.B. für einen Mikrocontroller Code erzeugst. Da wird auch keine stdint.h vom OS genommen, sondern die die zum entsprechendem Compiler dazu gehört, weil die Datentypen halt unterschiedlich groß sind.
Hab ich das nicht gerade gesagt?
"GCC liefert, so wie ich das verstanden habe, für "Notfälle" zwar diese Header mit. Eigentlich werden sie aber von der libc (bei Linux glibc) bereitgestellt, die wiederum den C-Standard implentiert. (siehe z.B. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=448)"
Heutzutage ist das mit den unterschiedlichen Größen der Datentypen nicht mehr so schlimm, da sich die Compiler-Hersteller auf die selben Werte geeinigt haben (war früher nicht so). Es gibt jetzt halt "nur" noch die Unterschiede zw. den Architekturen.
Ja.
37
Softwareentwicklung / Re: "uint8_t" kennt mein GCC nicht
« am: 30. October 2012, 14:34 »
Sie wird vom OS (!) in stdint.h wie folgt definiert:
typedef unsigned char uint8_t;Aber glaub mir: Lern bitte erstmal ein paar C-Grundlagen. Zu wissen, was in stdint.h steht, gehört wirklich zu den Basics.
Die solltest du auch lernen ;)

Die wird nicht vom OS, sondern vom Compiler, nicht eingetragen, sondern mitgeliefert, in Form der stdint.h. Im C/C++ Standard steht nämlich leider nicht ganz genau welcher Datentyp immer wie groß ist. Deswegen ist bzw. war das Compiler abhängig.

Ich möchte wirklich keinen Flamewar starten, denn ich bin kein C-Guru und irgendwann würde ich dann irgendetwas Falsches sagen, worüber dann alle herfallen...
Aber trotzdem muss ich ein wenig Kontra geben:
  • GCC liefert, so wie ich das verstanden habe, für "Notfälle" zwar diese Header mit. Eigentlich werden sie aber von der libc (bei Linux glibc) bereitgestellt, die wiederum den C-Standard implentiert. (siehe z.B. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=448)
  • Ich habe nie eingetragen gesagt, sondern definiert. Letztendlich wird in diesen Headern aber in etwa das oben dargestellte stehen.
  • Wenn man aber OS-Dever ist, will man normalerweise nicht die Header des Host-OS verwenden -> Deshalb sollte man immer mit -ffreestanding -no-stdinc -no-stdlib kompilieren, damit man nicht am Ende bestimmte glibc-Parts im Image hat.

Florian, ich empfehle osdevlibc. Sie ist zwar keine vollständige libc, hat aber alle wichtigen Funktionen für den Start dabei und stellt keine Anforderungen. (Achtung, das printf() der osdevlibc ist unvollständig, da musst du noch den OS-spezifischen Part dazuschreiben)

So, und jetzt haut euch (bzw. mir) die Köpfe ein...
38
Softwareentwicklung / Re: "uint8_t" kennt mein GCC nicht
« am: 29. October 2012, 21:06 »
uint8_t ist eine vorzeichenlose, 8-bittige Ganzzahl, d.h. Sie kann Werte von 0 bis 255 annehmen.
Sie wird vom OS (!) in stdint.h wie folgt definiert:
typedef unsigned char uint8_t;Aber glaub mir: Lern bitte erstmal ein paar C-Grundlagen. Zu wissen, was in stdint.h steht, gehört wirklich zu den Basics.
39
Hallo nochmal,

folgendes Problem: nasm kann problemlos 32-Bit Code in elf64 stecken, gcc hat damit aber anscheinend große Probleme. Mit -m32 produziert gcc elf32.
Ich habe deshalb
objcopy -O elf64-little arch/x86/init32.o arch/x86/init.oprobiert. (init32.o ist die Outputdatei von gcc, -m32, init.o ist die Ausgabedatei)
Output von objcopy:
BFD: BFD (GNU Binutils for Ubuntu) 2.22.90.20120924 Erklärung fehlgeschlagen ../../bfd/reloc.c: 6621
make: *** [arch/x86/init.o] Speicherzugriffsfehler (Speicherauszug erstellt)
make: *** Datei »arch/x86/init.o« wird gelöscht
Öhm, ja? Speicherzugriffsfehler? Ich glaube nicht, dass das so gewollt ist...
init.o enthält ein paar Initialisierungsfunktionen, die doch recht ausführlich sind. Ich möchte die nicht unbedingt in Assembler neu schreiben...
Gibt es also eine Möglichkeit, dass gcc 32-bittigen elf64-Code erzeugt?
40
Okay, ich will eigentlich Methode 3 nehmen, da sie mir am korrektesten erscheint.
1. Ist das so?
2. Ich kompilier ich dann den (64-Bit) Kernel als elf64 und den Bootstrap als elf32 und linke dann das ganze zu elf64, oder? (elf64 kann ja von GRUB2 geladen werden)
3. So wie ich das verstanden habe, besteht der einzige Unterschied zwischen elf32 und elf64 in dem unterschiedlichen Addresslimit (und ein paar unwichtigen zusätzlichen Sektionen). Richtig?

thx
Seiten: 1 [2] 3 4 5

Einloggen