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.


Themen - FlorianN

Seiten: [1]
1
Softwareentwicklung / Linker-Problem
« am: 20. July 2013, 10:10 »
Hallo Community,
ich bin kurz davor zu verzweifeln. Immer wenn ich versuche zu linken bekomme ich ein und die selbe meldung:

Zitat
kernel32.obj: file not recognized: File format not recognized

Ich habe viele Anleitungen probiert, ettliche Linkerscripts und Compilerbefehle für kernel32.obj aber nichts klappt, immer der selbe Fehler. Ich verwende NASM, GCC/MinGW und Windows 8.


Compilieren von kernel32:
Zitat
nasmw -f aout -o kernel32.obj kernel32.asm
Und linken:
Zitat
ld -T link.txt -o c32kernel.bin

Danke,
Florian
2
Lyrisches Eck / ich wünsche
« am: 03. November 2012, 13:40 »
ich würde mir wünschen,
zu wissen es funktioniere.
dass ich dann endlich,
zu wünschen versuche,
es seie besser geworden.
ich würde versuchen,
mir zu wünschen,
es seie so geworden,
wie der andere es hat.
es liese zu wünschen übrig,
zu wollen, dass es mache,
was ich will.
So wünsche ich,
es gäbe was, was auch will,
was ich will.
es funktioniere,
wie ich es will,
das Leben würde so einfach sein.

wem fällt noch mehr ein?
3
Lyrisches Eck / Ubuntu und Windows
« am: 02. November 2012, 17:42 »
Hallo,
ich habe eine Frage: Wieß jmd. ob man auf einem Rechner Windows 8 und Ubuntu (12.10) nutzen kann. Ich möchte das Windows nicht verlieren aber lieger unter Ubuntu entwickeln. Ich kenne die Methode eine VM zu benutzen. Ein "richtiges" Sysem wäre mir allerdings schon lieber. Das man mehrere Windows Versionen nutzen kann weiß ich, was ich allerdings nicht weiß ist, ob sich Ubuntu und Windows mit ihrem Bootmanager in die Quere kommen. Ich habe auch eine Partition (ca.80GB) frei.
Was ich nicht höhren möchte ist:

Zitat von: Unbekannt
Deinstalliere das Windoof!
(oder so)

MfG Florian
4
Softwareentwicklung / Kann kein ProtectedMode
« am: 29. October 2012, 19:50 »
Mit diesem Code komm ich nicht in den ProtectedMode:

;;;  Ein kleines Beispiel, wie man in den 32-Bit Protected Mode wechselt
;;;  Bei Fragen kann man sich einfach an die ICQ-Nummer 338-417-614 wenden.
 
[BITS 16]
org 0x0000 ; Addiert zu allen Offsets die Start-Adresse dieses Codes
 
cli ; Interrupts ausschalten
lgdt [gdtr] ; GDT Pointer laden
 
mov eax,cr0 ; In PMode wechseln, indem das niedrigste
or al,1 ; Steuerungsbit von cr0 geändert wird
mov cr0,eax ; muss über Umweg über ein anderes Register gemacht werden
 
jmp codesel:PMode ; FarJump zu einer 32-Bit PMode Funktion
 
[BITS 32]
PMode:
mov ax,datasel ; Segmentregister laden
mov ds,ax
mov ss,ax
mov esp,0x90000 ; Stack aufsetzen
 
jmp $ ; Endlosschleife, wird durch weiteren Code ersetzt
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; == GDT == ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
gdtr: ; Desktiptortabelle
   dw gdt_end-gdt-1 ; Limit
   dd gdt ; Basisadresse
gdt:
   dd 0,0 ; Null-Deskriptor
codesel equ $-gdt
   dw 0xFFFF ; Segmentgrösse 0..15
   dw 0x0000 ; Segmentadresse 0..15
   db 0x00 ; Segmentadresse 16..23
   db 0x9A ; Zugriffsberechtigung und Typ
   db 0xCF ; Zusatzinformationen und Segmentgrösse 16...19
   db 0x00 ; Segmentadresse 24..31
datasel equ $-gdt
   dw 0xFFFF ; Segmentgrösse 0..15
   dw 0x0000 ; Segmentadresse 0..15
   db 0x00 ; Segmentadresse 16..23
   db 0x92 ; Zugriffsberechtigung und Typ
   db 0xCF ; Zusatzinformationen und Segmentgrösse 16...19
   db 0x00 ; Segmentadresse 24..31
gdt_end:

Ich benutze NASM. Ich habe diesen Code 1:1 (weil ich zu faul war  :-() aus dem Netz (http://www.lowlevel.eu/wiki/Umschalten_in_Protected_Mode) kopiert. Mein NASM macht keine Probleme. Beim Start funktioniert alles. Sobalt ich aber die Funktion "call PMode" aufrufe passiert nichts mehr!


Danke, Florian
5
Softwareentwicklung / "uint8_t" kennt mein GCC nicht
« am: 29. October 2012, 19:45 »
Hallo,
wie der Titel schon sagt, habe ich Probleme mit "uint8_t" und GCC. Mein Compiler kennt diesen Befehl (nein, kein Befehl!) nicht. Warscheinlich ist die Lösung sehr einfach aber ich schaffe es trotzdem nicht. Was ist das überhaupt? Eine Art int?


Freue mich schon auf Antworten, Florian
6
Offtopic / Trick: Eigenes OS als ISO
« am: 29. October 2012, 14:44 »
Dieser Artikel bezieht sich auf MS-Windows.
Un sein OS zu testen, muss man es nicht immer mit RawWrite duf Diskette schreiben. Es gibt Trick sein OS auch auf der VM von Oracle laufen zu lassen.

Dafür wird benötigt:
  • Ein OS (mindestens kernel + bootloader)
  • Die Eingabeaufforderung (auf jeden Windows-PC)
  • Oracle VM VirtualBox (oder VirtualPC, ... . Aber es Funktioniert auf jeden Fall mit VM VirtualBox)
  • Nero Burning ROM

Das wars auch schon.

Undere Fertigen .bin (nur Kernel u. Bootloader) Dateien kopieren wir zu einer .img (Eingabeaufforderung):
copy bootloader.bin+kernel.bin MeinOS.img
Dann öffnen wir unser Nero Burning Rom (ich verwende die Version 12, mit der Test-Version geht es auch).
Es öffnet sich automatisch ein Fenster "Neue Zusammenstellung". Dort wählen wir dann rechts "CD-ROM (Boot)" und wählen unter "Startoptionen", "Image-Datei" und dann unsere .img-Datei (MeinOS.img in diesen Fall). Mit dem Button "Neu" schliest sich das Fenster und wir können noch weitere Dateien hinzufügen. Aber da wir keine CD wollen, müssen wir anstatt unserem CD Laufwerk "Image Recorder" auswählen (oben in der Mitte). Wir klicken auf "Brennen" und nochmals (im neu geöffnetem Fenster) auf "Brennen". Dann müssen wir den Speicherort und Namen auswählen. Als Datei-Format unbedingt "*.iso" wählen. Es wird eine Datei erstellt, welche man einfach in der VM als CD-Image wählt. Nur noch die VM starten und zuschauen.

Man kann das OS natürlich auch auf eine CD brennen. Dafür einfach anstatt "Image Recorder" unser CD-Laufwerk wählen.
7
Softwareentwicklung / Dateisystem FAT (NTFS)
« am: 29. October 2012, 13:09 »
Hallo,
wie kann ich alle Dateien u. Ordner (in einem Ordner) einer Festplatte mit dem Dateisystem FAT (od. NTFS) am Bildschirm auflisten?
In den Tutorials habe ich nichts gefunden und den Artikel (http://www.lowlevel.eu/wiki/FAT) verstehe ich nicht.

Am liebsten währe mir ja NTFS, das wird mir aber VIEL zu kompliziert.


Danke, Florian
8
Hallo,
ich bin noch ein Anfänger und habe eine einfache Frage welche ich allerdings nicht lösen kann:

Code (Zitat, ich weiß):     
Zitat

      mov ah, 04h    ;die maus ansteuern
      int 0x10          ;jetzt!

      mov ah, 0Ch    ;ein pixel ansteuern
      mov al, 0x07   ;farbe 7 (hellgrau)
--> mov dx, ch       ;Positiom der Maus (hellgrau)   
--> mov cx, bx       ;Position der Maus
      int 0x10

Das OS befindet sich im RealMode und Grafikmodus (320x200).
http://de.wikibooks.org/wiki/Interrupts_80x86/_INT_10




Danke im Vorraus, Florian
9
Offtopic / ProtectetMode vs. RealMode vs. LongMode
« am: 25. October 2012, 16:05 »
RealMode vs. ProtectedMode vs. LongMode
Wie die Überschrift schon sagt, handelt es sich um die Vor -und Nachteile der drei Modi:

Sammeln wir:

RealMode:
  • + Das BIOS übernimmt vieles
ProtectedMode:
  • + Man hat mehr Möglichkeiten
LongMode:
  • + 64bit

Das war natürlich nicht alles!

Ich bin schon gespannt, Florian
10
Softwareentwicklung / Einzelnes Pixel ansteuern
« am: 24. October 2012, 15:46 »
Hallo,
ich habe eine frage: ist es in C Möglich, ein einzelnes Pixel anzusteuern und auch eine Farbe festzulegen:
(posX, posY, int R, int B, int G) oder so? Mein OS läuft momental im RealMode. Wenn dazu der Protected Mode  "erzwungen" ist, müsste ich noch wissen wie ich einen Tastatur Interrupt abfangen (und verarbeiten) kann.


Danke, Florian
11
Softwareentwicklung / C-Programm mit OS verknüpfen
« am: 21. October 2012, 17:51 »
Hallo,
ich habe ein lauffähiges OS (es gibt eines string aus, mehr nicht) und ein C-Programm welches ich mit meinem OS verknüpfen will. d.h. Ich will das einfach nur ein C-Programm welches z.B. auch einen String ausgibt laufen lassen.

Mein erstes Problen ist schon dieses, wie ich es Compilieren soll. Mit NASM (wie mein ursprüngliches OS) oder mit GCC?

Und wie soll ich den ASM-Kern (den ich gern behalten würde...) sagen, dass er das C-Programm (bzw. eine Methode im C-Prog.) ausfühern soll?


Danke, Florian
Seiten: [1]

Einloggen