Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Hardwarnahe Programmierung in C, C++...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.05.2004, 11:31 Uhr
~dings
Gast


Liebe Leute..
Ich habe folgendes Problem. Ich möchte ein Betriebsystem schreiben und habe es hierzu geschafft das mein bootloader nach dem booten ein C, C++ Programm lädt.
Hier der Bootloader:

Code:
[BITS 16]       ; We need 16-bit intructions for Real mode

[ORG 0x7C00]    ; The BIOS loads the boot sector into memory location 0x7C00

reset_drive:
        mov ah, 0               ; RESET-command
        int 13h                 ; Call interrupt 13h
        or ah, ah               ; Check for error code
        jnz reset_drive         ; Try again if ah != 0

        mov ax, 0
        mov es, ax
        mov bx, 0x1000          ; Destination address = 0000:1000

        mov ah, 02h             ; READ SECTOR-command
        mov al, 02h             ; Number of sectors to read = 1
        mov ch, 0               ; Cylinder = 0
        mov cl, 02h             ; Sector = 2
        mov dh, 0               ; Head = 0
        int 13h                 ; Call interrupt 13h
        or ah, ah               ; Check for error code
        jnz reset_drive         ; Try again if ah != 0

        cli                     ; Disable interrupts, we want to be alone

        xor ax, ax
        mov ds, ax              ; Set DS-register to 0 - used by lgdt

        lgdt [gdt_desc]         ; Load the GDT descriptor

        mov eax, cr0            ; Copy the contents of CR0 into EAX
        or eax, 1               ; Set bit 0
        mov cr0, eax            ; Copy the contents of EAX into CR0

        jmp 08h:clear_pipe      ; Jump to code segment, offset clear_pipe


[BITS 32]                       ; We now need 32-bit instructions
clear_pipe:
        mov ax, 10h             ; Save data segment identifyer
        mov ds, ax              ; Move a valid data segment into the data segment register
        mov ss, ax              ; Move a valid data segment into the stack segment register
        mov esp, 090000h        ; Move the stack pointer to 090000h

        jmp 08h:01000h          ; Jump to section 08h (code), offset 01000h


gdt:                    ; Address for the GDT

gdt_null:               ; Null Segment
        dd 0
        dd 0

gdt_code:               ; Code segment, read/execute, nonconforming
        dw 0FFFFh
        dw 0
        db 0
        db 10011010b
        db 11001111b
        db 0

gdt_data:               ; Data segment, read/write, expand down
        dw 0FFFFh
        dw 0
        db 0
        db 10010010b
        db 11001111b
        db 0

gdt_end:                ; Used to calculate the size of the GDT



gdt_desc:                       ; The GDT descriptor
        dw gdt_end - gdt - 1    ; Limit (size)
        dd gdt                  ; Address of the GDT




times 510-($-$$) db 0           ; Fill up the file with zeros

        dw 0AA55h                ; Boot sector identifyer



Nun meine Frage. Kennt jemand eine gute Quelle für Hardwarenahe Betriebssystemloses C, C++ Programmieren. Denn wie ihr sicher alle wisst sind funktionen wie printf, scanf und weitere Betriebssystemabhängig. Ich möchte nun wissen wie ich Hardwarnahe mit Hilfe des Bios funktionen wie printf, scanf, usw.. ausprogrammieren kann...

Vielen Dank DINGS..
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.05.2004, 11:52 Uhr
erpelqueen
Entlein


asm?
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.05.2004, 13:22 Uhr
~dings
Gast



Zitat:
Kennt jemand eine gute Quelle für Hardwarenahe Betriebssystemloses C, C++ Programmieren

bzw.:

Zitat:
Ich möchte nun wissen wie ich Hardwarnahe mit Hilfe des Bios funktionen wie printf, scanf, usw.. ausprogrammieren kann...


Geht nicht klar aus meinen Fragen heraus das ich das ganze in C, C++ brauche?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.05.2004, 13:28 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Ich glaube nicht das du in irgendeiner Weise um Assembler drumherumkommen wirst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.05.2004, 15:01 Uhr
Hans
Library Walker
(Operator)



Moderne Betriebssysteme von Andrew S. Tanenbaum


Hardwarebuch von Hans Peter Messmer; ist leider vergriffen. Dafür gibt es aber:


PC Hardwarebuch . Aufbau, Funktionsweise, Programmierung von Klaus Dembowski und Hans Peter Messmer;

Damit müsstest Du erst mal weiter kommen...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 02.05.2004 um 15:02 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.05.2004, 15:03 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
also nur mit C wird es in der Tat haarig, aber schau mal hier:
www.themoebius.org.uk/tutes/ckernel.html

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 02.05.2004 um 15:03 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.05.2004, 15:48 Uhr
~ding
Gast



Zitat:


Moderne Betriebssysteme von Andrew S. Tanenbaum




Guter Tipp..
Des Buch hab i nur leider schon und da steht zwar sehr viel über die Funktionsweise moderner Betriebssystem und solcher die es noch werden wollen. Und nicht über die Programmierung einses solchen.. Die anderern Bücher kenne ich nicht...

Danke für den netten Link..

Hat vielleicht noch jemand tipps? Ich würde mich echt freuen

Danke DINGS...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.05.2004, 15:53 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Vielleicht findest du in den Sourcen von bereits vorhandenen Systemen die nötigen Infos.
Z.B. OpenDos/DrDos
www.drdosprojects.de/
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.05.2004, 16:26 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
ich nochmal...

www.osdev.org/developers/guide01/index.jsp

Mal abgesehen von dem Thema ist die ganze Seite eine Fundgrube für den angehenden OS-Programmierer

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.05.2004, 20:40 Uhr
Hans
Library Walker
(Operator)



Zitat:
~ding postete
[quote]

Moderne Betriebssysteme von Andrew S. Tanenbaum




Guter Tipp..
Des Buch hab i nur leider schon ...

Hat vielleicht noch jemand tipps? Ich würde mich echt freuen

Danke DINGS...[/quote]
Hi,
das konnte ich ja nicht wissen. Es gab vom selben Autor auch mal ein Buch, das einfach nur Betriebssysteme hies, bzw. Operating Systems im englischen Original. Da ist im Original der Quellcode von Minix hinten drin abgedruckt. (Minix ist ein Mini Unix, das Herr Tanenbaum zu Lehrzwecken entworfen hat, und aus dem Linus Torvalds seine ersten Linux Versionen gebastelt hat.)
Das Buch gab es vom Hanser-Verlag auch auf Deutsch, allerdings in 2 Teile gesplittet. Der erste Teil enthielt die Theorie und kurzen Beispielcode, der zweite Teil die Quellcodes von Minix zum abtippen. Das war so Mitte der 1980er Jahre, wenn ich mich nicht irre.

Und wie Du aus einer Rezesion zu den anderen Büchern (eigentlich sind es ja nur zwei Auflagen des selben Buches) entnehmen kannst, hat es jemand damit geschafft, ein Betriebssystem zu entwickeln.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 02.05.2004 um 20:47 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: