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 - zacK

Seiten: [1] 2 3 ... 11
1
Das Wiki / Genuine Reihe - Beta Leser
« am: 17. August 2006, 19:54 »
flame bringt niemandem was..
die kritiken sollten konstruktiv sein, immerhin macht er was für die community.
2
Lowlevel-Coding / C Übergang
« am: 02. December 2005, 17:15 »
ok.. ^^

du brauchst drei dateien:
kernel16.asm -> darin wechselst du zu Protected Mode etc.
kernel32.asm -> dies brauchst du nur um zum c kernel zu springen
kernelc.c       -> eigendlicher kernel in c

da du nun den kernel in gcc programmierst und ihn in ein 32bit flat binary compilierst musst du dein computer / emulator in einen anderen modus "versetzten". den protected mode. Protected mode hat viele features. unter anderem paging, multitasking, erhöte sicherheit..etc
das machst du im kernel16asm. tee jay hat da ein gute tutorial. übrigens auch für einen c kernel.

kernel32.asm.
da ld ein problem hat wenn du ein 16bit code mit einem 32 bit code zusammenlinken willst, brauchst du noch ein 32bit asm kernel teil. in diesem ist nur der aufruf zum c kernel.

dann linkst du die vorkompilierten kernels (kernel32.asm kernelc.c) zusammen und kopierst am schluss kernel16.bin und kernel.bin zusammen und voila.

schau dir am besten das tutorial vom tee jay an...
wenn du dann noch problemem hast, frag einfach noch mal.

gruss
3
Lowlevel-Coding / C Übergang
« am: 01. December 2005, 23:04 »
kommt drauf an welches wie du c compilierst. als erstes mal muss du es in ein flat binary compilieren. aussderem mit zum beispiel einem linkerscript den code "positionieren" (wie org bei asm). Dann kommt es auf ein detail an:

1. du kompilierst es zu 16bit code (z.B mit Turbo C 16bit):
dann kannst du die binarys (boot.bin + gelinkte kernelc.o kernelasm.o) zusammenkopieren und auf die diskette schmeissen. im kernelasm.asm must du dann nach int 0x21 und vor msg db "Int..." (call get.. - jmp reboot  brauchts nicht mehr) ein jmp _main (z.B. Bei linux "_" weglassen).
Dazu must du die methode main() noch im kernelasm.asm als extern deklarieren:
nasm -> [EXTERN _main]

2. oder du kompiilierst es zu einem 32 bit code. (z.B mit GCC):
da sieht es noch ein wenig komplizierter aus... erklär ich dir wenn du es so machst.. ^^

gruz
4
Lowlevel-Coding / Ermittlung des Roots bei Festplatten
« am: 01. December 2005, 20:50 »
Zitat
Aber zurück zum Problem: Wenn ich gezwungen wäre den MBR auszulesen um herauszufinden, wo meine Partition sich befindet, woher weiß ich dann eigentlich, welche dieser Partitionen es ist? In dl steht ja nur die Drive-Nummer.

genau das ist das problem.
deshalb muss der mbr einen hinweis hinterlassen. gib doch mal den wert der in ds:si+8 (dword) steht aus und teste ob es übereinstimmt.

Zitat
Und wenn du sagst, dass "ds:si" auf den Partitionseintrag zeigt, dann kannst du nicht einfach der Variable PartitionStart den Wert zuweisen, ohne vorher das ds neu zu laden. Und wie gesagt, bei mir zeigt es NICHT auf den Eintrag, sondern irgendwo anders hin.


keine angst ds habe ich schon auf null gesetzt. sprich der eintrag ist an der 0x0000:si stelle....
floppy fat12 loader habe ich auch scho lange... nun möchte ich mein os ab usb stick laden. deshalb brauche ich einen fat16 treiber ^^
5
Lowlevel-Coding / Ermittlung des Roots bei Festplatten
« am: 01. December 2005, 19:43 »
ich habe auf jedenfall irgendwo gelesen dass der mbr code nach dem booten einer partition ds:si auf den Partition Eintrag zeigt. sofern natürlich nicht von der diskette oder von der cd (auf der cd ist eh kein fat, cdfs -> iso96blabla) gebootet wird. PartitionStart ist natürlich eine lokale variable. mit dem cmp befehl teste ich ob es keine floppy war... villeicht habe ich mich aber auch geirrt und das beschriebene funktioniert nur bei einem bestimmten mbr code. habe erst heute damit angefangen.
falls es gar nicht geht kannste ja immer noch einen eigenen mbr schreiben. sollte auch net so schwer sein..

gruss

ps: wie weit bist du schon mit deinem loader?

links:
http://home.teleport.com/~brainy/fat16.htm
http://home.teleport.com/~brainy/lfn.htm
http://www.nondot.org/sabre/os/files/FileSystems/FatFormat.pdf
6
Lowlevel-Coding / Ermittlung des Roots bei Festplatten
« am: 01. December 2005, 17:20 »
sollte net so schwirig sein... bin auch gerade an einem fat16 loader... :
;If we aren't booting from a floppy the the mbr-code
;save the mbr-entry to si (pointer) -> starting sector si + 8
.CalculateOffset:
cmp dl, 0x80
jb .GetDiskParams
mov eax, DWORD [si + 8]
mov [PartitionStart], DWORD eax
7
Lowlevel-Coding / FAT16
« am: 01. December 2005, 16:25 »
hast du schon einen fat16 bootloader geschrieben?

für andere:
habe auch noch einen guten link gefunden:
->http://home.teleport.com/~brainy/fat16.htm

danke & grüsse
8
Lowlevel-Coding / FAT16
« am: 01. December 2005, 15:24 »
hallo zusammen.
hat jemand von euch informationen zum fat16 dateisystem?
hat das auch ein root verzeichniss?
k.P.

Danke.
9
OS-Design / Was muss ich jetzt machen??
« am: 01. December 2005, 15:20 »
ne sorry... kam mir nur irgendwie bekannt vor...  :oops:

was sehr wichtig ist, hab das bei mir leider ein bisschen vernachlässigt, ist ein ordendliches memory managment. spricht paging, page allocating, und memory allocating (heap, oder so)... Würde ich auf jedenfall zuerst machen.

Ansonsten habe ich keine erfahrungen mit textbasierten guis... gruz
10
OS-Design / Was muss ich jetzt machen??
« am: 01. December 2005, 13:22 »
post kenn ich irgendwie (? -> fake ?)
wenn nicht -> sorry.

Zitat
GUI: Textbasiert (in C++) (aber mit !!Bitmap!!-Fonts)

was ist ein textbasierendes gui? meinst du mit mit sonderzeichen ein gui gestalten oder was meinst du damit?!
11
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 30. November 2005, 17:18 »
schnell eine kurze frage die in eine andere richtung geht:
wie kann ich die pagetables vor veränderungen durch den task schützten. mappen muss ich sie ja sonst geht das übersetzen von virtueller in physische adresse net...

thx
12
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 29. November 2005, 12:54 »
ich habe immer noch verständigungsprobleme mit dem softwaremultitasking mit tss. ohne habe ich es schon geschaft.

was brauch ich nun damit ich tss und ring3 programme laufen kann?

TaskGate?
TSS?

vielen dank!
13
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 25. November 2005, 08:25 »
aber ich möchte meinen programmen mit einem IO_Bitmap spezielle sachen verbieten... z.B in und out. Dann macht der User etwas mit der Maus -> IRQ12 und wenn ich das EOI senden will ist fertig mit Ring3...
oder was genau kann man überhaupt mit dem Bitmap setzten?
14
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 24. November 2005, 22:01 »
nein, ich meine mein kernel samt irq int ist auf ring0. nun rüft ein task ein int auf. dann muss ich ja ein ring3-ring0 sprung machen mittels TasGate oder k.A was...

thx
15
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 24. November 2005, 19:42 »
vielen dank Super Saiyajin 7 Gohan... :D

was ist muss ich dann machen wenn ich ein interrupt ausführen will wenn ein prozess aktiviert ist?

und wann muss ich mit ltr den tss laden? dass ist mir noch voll unklar...

vielen dank nochmal!
gruss
16
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 24. November 2005, 17:02 »
was braucht man mindestens für ein software task switching mit io-bitmap und ring0 <- kernel und ring3 progi?

tss, struct für jeden task....?!
hat da jemand ein gute tutorial?

thx
17
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 24. November 2005, 12:56 »
machst du dann ein reines Hardware Task Switching? oder speicherst du irgendow noch name, parent thread, id, priority, state,.....

wie hast du das gestaltet?
18
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 24. November 2005, 11:24 »
was mich einzig und alein vom puren software multitasking abhaltet ist, das du keine möglichkeit hast befehle wie in, out, hlt, cli zu sperren... oder vertraut ihr euren programmen ;) *riskant*
19
Lowlevel-Coding / Ring-Wechsel und Multitasking!
« am: 24. November 2005, 08:05 »
tach,

an dieser Stelle möchte ich gerne wissen welche Art von Multitasking ihr gewählt habt. Hardware- oder Software-Multitasking? Oder ein Gemisch? Und die Gründe.

Bis jetzt weiss ich noch nicht so richtig was ich nehmen soll. Bin aber jetztig eher auf der Software Lösung... was meint ihr?

Gruss
20
Lowlevel-Coding / VESA
« am: 18. November 2005, 13:20 »
0x13c ist aber nicht standard oder?
was ist das für eine auflösung? und wo findent man eine tabelle mit den modi?

sorry wegend den vielen fragen!

thx
Seiten: [1] 2 3 ... 11

Einloggen