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

Seiten: [1]
1
Lyrisches Eck / Der erste Tag eines OS-Proggers...
« am: 31. January 2005, 20:21 »
Hi Leute.
Da ich den Eindruck habe das sich hier mancher das Schreiben eines eigenen Betriebssystems recht einfach vorstellt, und da ich sehe das der Eine oder Andere aus allen Wolken fällt wenn er merkt das dies gar nicht so einfach ist und man einiges können muß, habe ich beschlossen diese "Anfangs-Schwierigkeiten" mal in ein Lyrisches Format zu bringen.

Dieses Gedicht ist also allen gewidmet die entweder vor haben ein OS zu proggen, oder die schon angefangen haben und langsam merken das dies wohl nicht schnell mal "mit links" geht:

[-o<


Der erste Tag eines OS-Proggers:
--------------------------------------------

Der Tag ist lang und ich sitz' hier,
was ich jetzt mach denk' ich bei mir,
spiel ich ein Spiel ach nein mal sehn...
...ich denk' ich progge ein System!

So richtig eins mit Schnick und Schnack
da ist doch nichts was ich nicht pack,
mit Buttons, Icons bunt und fein,
gesagt getahn, so soll es sein!

Schon starte ich den ASM,
noch vorher schnell zum Clo ich renn'
nun geht es los doch halt ohh mann,
womit verdammt fang ich nur an?

Vielleicht ein Treiber für die Maus?
Vielleicht geh' ich vom Desktop aus?
Da merk' ich schnell ich brauch noch mehr
zuerst muss mal ein Kernel her!

Okay ein Kernel soll es sein
doch muss er in den Speicher rein!
Wie lad' ich den, mal sehn, mal sehn,
das kann nur beim booten gehn!

Nun brauch ich auch ein Bootprogramm,
dann fang ich damit erstmal an.
Ich grübel, denke, doch ohwei,
der erste Tag ist fast vorbei!

So einfach scheint das nicht zu sein,
das sieht wohl jeder anfangs ein!
Mal einfach ein OS geproggt,
da wär' wohl selbst Bill Gates geschockt!

Da muss ich wohl noch viel verstehn
ganz viele Doc's und Bücher sehn.
Und die Moral von der Geschicht:
Willst Du nicht lernen, klappt es nicht!


Wer das schon erlebt hat kann sich ja melden...   :D

Gruß BigOlly
2
Offtopic / Hat zufällig jemand ein Asus A8V deluxe ?
« am: 27. January 2005, 18:49 »
Ich habe dieses Board, und ich denke ich habe einen Bug im BIOS gefunden.
Es wäre schön wenn jemand dieses Board hat und evtl. den Bug bestätigen könnte...

Ich horche erstmal ob jemand dieses Board hat, alle Anderen dürfte die Beschreibung des Bugs vermutlich nicht interessieren.
3
Lowlevel-Coding / 64-Bit, hat schon jemand rumprobiert?
« am: 27. January 2005, 16:46 »
Hi Leute.

Kurz vorneweg:
Bin endlich wieder da. Gruß an alle die sich noch an mich erinnern... :lol:
Ich war ein 3/4 Jahr nicht hier, hatte einen riesigen Programmier-Job und hab Tag und Nacht gearbeitet. Aber nun hab ich wieder Zeit und nehme mein eigenes OS wieder auf die Tagesordnung.


Aber jetzt meine Frage an Euch:
Hat sich schon jemand mal mit EM64T bzw. AMD64 beschäftigt? Ich meine mal reingelesen oder schon was probiert?
Ich bin gerade dabei mich dort hineinzulesen (mein schlechtes English wird tatsächlich besser um so mehr ich in den Intel-Docs lese).
Ich bin nämlich etwas iretiert wenn ich solche Sachen lese wie z.B.

"... because hardware task-switching is not supported in long mode."

Aber ein einzelnes TSS gibt es anscheinend immer noch.
Hat da schonmal jemand drüber nachgedacht, oder betrete ich hier für alle Neuland?

Gruß BigOlly
4
Lowlevel-Coding / Kurze Frage zu NASM...
« am: 30. April 2004, 02:36 »
Weiss jemand von Euch ob man in NASM einen ganzen Block auskommentieren kann?
So alla
/*
blabla
blublu
*/

Ich finde das leider nicht in der NASM-Docu... Oder kann NASM das grnicht? :(

Bei der Gelegenheit....    "word ptr" kennt NASM auch nicht oder?
5
Ich hätte mal ne Frage an alle die sich hier mit dem FAT-Filesystem auskennen.

Im Vorgriff auf eine spätere Treiber-Entwicklung für meinen Kernel arbeite ich gerade an einer Dokumentation über das FAT-Filesystem.
TeeJay hat ja schon ein schönes Tutorial für FAT12 geschrieben. In meinem Doc beziehe ich auch FAT16, FAT32, lange Dateinamen usw. mit ein. Die Doc ist zwar erstmal für meine eigene Entwicklungs-Arbeit gedacht, wenn sie aber fertig ist und Euch auch interessiert stell ich sie natürlich gerne zur Verfügung.
Aber das nur nebenbei.

Nun zu meinem Problem:
Wie man FAT12,16 und 32 unterscheidet ist ja kein Problem und kein Geheimnis. Aber ich versuche gerade eine Strategie zu entwickeln wie man überhaupt erkennt das ein FAT-System auf dem Volume existiert.
Der Kernel der einen neuen Datenträger erkennt muss ja schliesslich wissen ob der FAT-Treiber dafür zuständig ist oder vielleicht ein ganz anderer Treiber, z.B. der NTFS-Treiber oder der BOFS-Treiber, oder welcher auch immer.
Mal davon abgesehen ob es clever ist das diese Erkennung der Kernel macht oder vielleicht irgend eine andere Service-Routiene, bleibt immer noch die Frage: FAT oder nicht FAT.

Meine Strategie wäre folgende:

1. BootSector einlesen
2. prüfen ob an Position 54-56 die Buchstaben "FAT" stehen. (BS_FileSysType)
      wenn JA dann FAT erkannt, wenn NEIN dann weiter prüfen
3. prüfen ob an Position 3-10 die Buchstaben "MSWIN4.1" stehen (BS_OEMName)
      wenn JA dann FAT erkannt, wenn NEIN dann weiter prüfen

*** bis hier hin sichere Erkennung, ab hier "Indizien-Erkennung" ***

4. indiz=0
5. prüfen ob an Position 11 das Word 200h steht (BPB_BytesPerSec=512)
      wenn ja inc(indiz)
6. prüfen ob an Position 16 das Byte 02h steht (BPB_NumFATs)  
      wenn ja inc(indiz)
7. prüfen ob an Position 21 ein Byte größer/gleich F0h steht (BPB_Media)  
      wenn ja inc(indiz)
8. prüfen ob an Position 36 der Byte-Wert 00h oder 80h steht (BS_DrvNum)  
      wenn ja inc(indiz)
9. prüfen ob an Position 38 das Byte 29h steht (BS_BootSig)  
      wenn ja inc(indiz)

10. wenn indiz größer/gleich 3 ist dann FAT erkannt, wenn nicht dann KEIN FAT FILESYSTEM !

****************
So Leute, das wäre meine Idee. Vielleicht bin ich ja auf dem Holzweg, und ihr habt eine bessere Idee ein FAT-System zu erkennen.

:)
6
Lowlevel-Coding / Ein Sector = 512 Bytes ?!?
« am: 17. April 2004, 23:33 »
An alle Experten: :)

Ich bin gerade so ein bisschen am experimentieren und stelle mir folgende Frage:

Sind Sectoren (und ich meine NICHT Cluster) auf Datenträgern immer 512 Bytes lang?
Ich meine soweit mir bekannt ist ja.
Microsoft aber schreibt in seinem WhitePaper über das FAT-System das der
Magic-Code (AA55h) NICHT auf den "letzten beiden Bytes des Bootsectors" stehen muss sondern auf "Byte 511 und 512"! (Was ja klar ist da das Bios ja diese beiden Bytes und nicht das "Ende" des eingelesenen Bootsectors prüft.
Microsoft weißt ausdrücklich darauf hin das die Aussage "die letzten beiden Bytes des Bootsectors" nur dann stimmt, wenn die Sectoren auf dem Datenträger 512 Bytes lang sind. Das suggeriert natürlich das es auch längere Sectoren gibt. (Nochmal: ich meine nicht Cluster!)

Also meine Frage:
Kann mir jemand sagen ob es Datenträger gibt die Sectoren größer 512 Bytes besitzen?
Oder hat Microsoft das "vorsorglich" klar gestellt, um künftigen Erweiterungen vorzugreifen?
Laut Microsoft dasf das BPB-Feld "BPB_BytesPerSec" die Werte 512, 1024, 2048 und 4096 enthalten. Aber gleich darauf wird ausdrücklich darauf hingewiesen das Einträge größer 512 nicht unterstützt werden.

Also...: Alle Sectoren aller Datenträger immer 512 Bytes ?!?
7
Das Wiki / Verrückter als wir...?
« am: 12. April 2004, 04:30 »
Hi Leute!

Ich hab hier was interessantes:
Wenn wir bisher vielleicht der Meinung waren wir wären etwas verrückt wenn wir vor haben unser eigenes Betriebssystem zu schreiben... dann kann ich jetzt Entwarnung geben...!

Es gibt noch viel verrücktere !!!
Beispiel gefällig? Okay:

Hier ist jemand der hat sich doch tatsächlich seine eigene CPU gebaut!
http://mycpu.mikrocontroller.net/index2.htm

Hat tatsächlich einen eigenen Prozessor entwickelt. Selbst zusammengelötet inclusive Register, Interupts, Mikrocode usw.
Und das ding läuft sogar! Ich hab ein bisschen auf den Seiten dort gestöbert.. ist echt interessant. ...aber ihr könnt ja selber mal vorbeisehen.

Genau genommen ist der "Typ" noch einen riesigen Schritt "low-leveler" als wir. Noch ne Ebene tiefer geht wohl kaum noch.
Und um den Bogen zu unserem Thema wieder zu bekommen...: Einen Kernal für seinen mit der CPU aufgebauten Rechner hat er natürlich auch geproggt. Kann man zwar nicht unbeding für unsere Zwecke verwenden, aber interessant ist es alle mal! :)

Vielleicht ist es ja sogar eine Erwähnung im nächsten Magazien wert unter der Rubrik "kurruioses" oder "Hardcore-LowLevel"... ;)
8
Lowlevel-Coding / IDE für Assembler.... Habt ihr Tips ?
« am: 10. April 2004, 00:34 »
Hi Leut's :-)

Da wir ja nun alle "mächtige" Assembler-Freakes sind ;) hab ich mal ne Frage an Euch bezüglich Eurer Tools:

(Ich geh mal davon aus das die Mehrheit mit dem NASM arbeitet.)

Welche Editoren oder IDE's verwendet Ihr wenn Ihr in Assembler proggt?

Arbeitet Ihr alle mit nem simplen Editor und einer Kommandozeile für den Assembler? :-)

Also ich würde das lieber mit ner IDE machen. (Ist halt viel schöner mit farbigem Text und File-Funktionen usw.)
Ich habe im Internet nur 2 IDE's gefunden für den NASM.
1. NASM-IDE: Die ist find ich an sich sauprima, nur die läuft leider im DOS-Fenster als DOS-Programm.
2. RadASM: Aber das gefällt mir irgendwie nicht so richtig. Weiss auch nicht, es lässt sich zwar der NASM als "Ziel-Assembler" einstellen, aber dennoch taucht immer wieder MASM in den Einstellungen auf.

Also, habt ihr nen Tip? Ein Editor mit vernünftiger "Quelltext-Farbgebung" wäre ja auch schon nicht schlecht.

:)
9
Hi LowLevel-Gemeinde ! :-)

Ich hab ein bisschen im Forum gestöbert und mir die ganzen Beiträge reingezogen die sich um künftige Themen und Themen-Wünsche drehen.
Tja und dazu möcht ich nun auch meinen "Senf dazugenben" :  :-)

Kurz zu mir:
Ich programmiere seit 18 Jahren als Hobby und seit 6 Jahren auch beruflich als Web-Programmierer für PHP, MySQL, HTML usw.
Damals hab ich mit Maschienencode auf dem Z80 angefangen (ich betone MASCHIENENCODE !!! Also nicht "mov ax,10h" sondern E5 46 C9 BF ... usw.) und später auch mit Assembler auf Motorola 68000 Prozessoren.
Weil ich der Zeit etwas nachweine (man hat ja sooo viel über die Hardware gelernt) und auch fast alles verlernt habe, hab ich mir nun vorgenommen wieder in Assembler einzusteigen. Und wie geht das besser als mit dem programmieren einen eigenen Betriebssystems !!! :-)

Aber nun zu meinen Vorschlägen:
1. Wenn ihr mich fragt dann bitte bleibt hauptsächlich in Assembler! Alles was vor der Entwicklung einer GUI liegt und mit dem Kernal zu tun hat sollte meiner Meinung nach so Hardware-nah wie möglich geproggt sein. Nichts gegen C, aber bitte Vernachlässigt nicht den Assembler dabei....

2. Wie ich aus vielen Beiträgen entnehmen konnte gibt es hier viele die am liebsten "fertigen Code" im Magazien finden würden. Mir persönlich sind lieber Code-Teile die bestimmte Sachen und Technicken erklären.

3. Viele schreiben z.b. "Zeigt uns wie man eine Shell proggt, wie man eine GUI schreibt ..." usw. Ja, das ist alles wichtig. Aber ich finde es ist noch viel wichtiger Grundlagen zu vermitteln.
Also z.B.:
- genaue Erläuterung von schreibweisen wie z.b. 0x07c00h usw. ("x" ???)
- Technicken wie man z.B. erkennen und prüfen kann ob eine Hardware (z.b. das Floppy-Laufwerk) existiert oder nicht (und zwar ohne BIOS, wichtig im PM)
- wie genau funtioniert das Paging und der Speicher-Schutz im PM
- das Arbeiten mit Ports wenn man einen Kernal baut der im PM ganz ohne Bios alleine seine Hardware-Treiber laden soll...
- gibt es immer den Bildschirm-Speicher ab B8000h, oder gibt es auch Fälle wo dieser wo anders liegt und wie stelle ich das fest....
- was muss ich tun damit mein Kernal ein im ELF-Format forliegendes Programm laden und ausführen kan...?
- ...usw.

Also: Das sind nur Vorschläge die mir jetzt so spontan eingefallen sind. Manches davon wurde schon behandelt und maches ist ja für die nächsten Ausgaben angekündigt.
Ich will nur zeigen was ich meine mit "Grundlagen vermitteln".
Nicht das wir nach einem Jahr feststellen das wir alle "das selbe" OS entwickelt haben weil jeder nur den Code kopiert und zusammengesetzt hat... :-))

Naja, das wollt ich mal als Anregung schreiben. Ist natürlich alles kein "muss" und nur als Vorschlag gemeint. Fertige Sachen in C sind ja auch interessant.
Euer Magazien ist spitze! Nur bleibt hatl auch Eurem Namen treu: "LowLevel" :-)

so viel für jetzt
Gruß BigOlly
Seiten: [1]

Einloggen