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

Seiten: 1 [2] 3
21
Offtopic / Jaja, ich möchte nur
« am: 23. July 2005, 14:38 »
Diesen Link hab ich grad im Netz gefunden: http://www.supportnet.de/stat/2003/12/id159094.asp

 :(
22
Lowlevel-Coding / Mit GRUB in den PM
« am: 22. July 2005, 18:13 »
Alle empfehlen immer, am Anfang GRUB zu nehmen, um in dem PM zu schalten. Ich hab jetzt mal ein paar Dokus gwälzt aber noch keinen Hinweis darauf gefunden, wie man in den PM wechselt. Hab ich das irgendwo übersehen oder existiert das gar nicht?!?

mfg, jeb
23
Lowlevel-Coding / Implementatoin eines Kernels
« am: 22. July 2005, 17:33 »
hallo
Solange mein OS nicht richtig läuft (versuchs grad mit GRUB) mache ich mir immer wieder mal theoretische Gedanken. Doch ich versteh überhaupt nicht, wie ich den Kernel implementieren soll. Der Grundgedanke ist doch dieser.

1. Das OS startet und initialisiert alles.
2. Es möchte gerne einen Text ausgeben.
3. Es sagt dem Kernel, dass dieser für es einen Text ausgeben soll.

Nun muss das OS doch irgendwie mit dem Kernel kommunizieren können. Wenn ich jedoch beide Teile einzeln kompilieren will, kann ich ja keine externen Verlinkungen machen, sonst müsste ich sie zusammen kompilieren und kann z.B. nicht einfach mal schnell den Kernel wechseln.

Nächste Frage: Wie funktioniert ein Mikrokernel? Ich kann ihn irgendwie nicht vom Monolithischen Kernel unterscheiden. Der Mikrokernel muss ja wissen, dass Treiber usw existieren. Wie aber kann er das, wennn diese gar nirgends bei ihm registriert sind? Wenn der Kernel weiss, welche Treiber vorhanden sind und diese dann über externe Verlinkungen aufruft ist das ja dann schon ein monolithischer Kernel. Wie funktioniert das?

Letzte Frage: Was hat es mit den Speichermodellen ELF und PE auf sich. Wahrscheinlich habe ich bis jetzt immer das flache Binärformat verwendet. Wo finde ich Informationen, wie ich diese Formate verwenden kann?
Heute musste ich lange Zugfahren und las wieder einmal ein paar OS-Tuts durch. Da stand was von Cygwin-Port für Win um das OS zu kompilieren. Könnte mir das jemand mal genauer erläutern?

Ich weiss es sind etwas viel und komplexe Fragen. Vielen Dank für die Antworten


JEB
24
Lowlevel-Coding / Linken nicht möglich
« am: 16. June 2005, 12:04 »
Was ist los? Nachdem ich nen endlich ASM und C++ mixen kann, robootet der Computer (nicht Bochs, das läuft ohne Probleme) immer, wenn der C++ Kernel aufgerufen wird. Das gleiche passiert auch mit dem C Kernel und externen ASM Funktionen. Wo liegt das Problem? Etwa doch am Linker? Auch bei anderen OS (ich erwähne mal wieder PiratOS) funktionieren in Bochs wunderbar aber nicht in Real!!

Hier die ASM Version:

;pm32.asm
[Bits 32]
extern _main
extern _jump
global start
start:
mov BYTE [0xB8000],0x4F
mov BYTE [0xB8000+1],7
mov BYTE [0xB8000+2],0x4B
mov BYTE [0xB8000+3],7
call _jump
Stop:
jmp Stop

;check_link.asm

[bits 32]
global _jump

_jump:
mov BYTE [0xB8000],0x4F
mov BYTE [0xB8000+1],16
mov BYTE [0xB8000+2],0x4B
mov BYTE [0xB8000+3],16
ret

//Linkfile

OUTPUT_FORMAT("binary")
INPUT(pm32.o check_link.o kernel.o video.o)
ENTRY(start)
SECTIONS
{
  .text 0x10200: {
    *(.text)
    . = ALIGN(1);
  }
  .data : {
    *(.data)
    . = ALIGN(1);
  }
  .bss :  {
    *(.bss)
    . = ALIGN(1);
  }
  end = .;_end = .;__end = .;
}


Fehlermeldungen gibts keine.
25
Lowlevel-Coding / Fataler Fehler in C++ Tutorial?
« am: 12. June 2005, 16:41 »
Hallo zuerst einmal

gcc meldete einen Fehler beim kompilieren des C++-Kernels: memcpy und setmem unbekannt! Also geh ich ins Internet und finde, das memcpy ein Befelh aus <string.h> ist, den ich ja sehr wahrscheinlich nicht verwenden darf. Diese Funktionen sollten sich jedoch leicht implementieren lassen.

2. Problem: Man muss den Kernel von C++ auch in kernel.cpp umwandeln und darf in nicht in kernel.c lassen, da sonst der Compiler meckert, es gebe Syntaxfehler im Headerfile mit den Klassen, die C ja nicht kennt.

Zudem zeigts bei mir noch keinen Text an (aber das könnte auch an mir liegen). Ich werde jetzt das ganze dann noch mit Globalen Klassen probieren und wäre dabei froh, wenn mir jamand das Linkfile mit den Konstruktoren und Destruktoren mal erklären könnte, da ich das überhaupt nicht versteh.

mfg, jeb

EDIT: ich weiss jetzt, warum es keinen Text anzeigt. Es liegt wiederum am Tutorial. Der Pointer auf den Videospeicher wird auf 0xA8000 gesetzt. Er liegt aber auf 0xB8000. Das sollte vielleicht noch verbessert werden. -> gehe ich richtig in der Annahme, dass in diesem Fall noch niemand dieses Tutorial verwendet hat? (mag halt c++).
26
Lowlevel-Coding / Problem mit C-Kernel!
« am: 09. June 2005, 19:37 »
Solange das mit dem Bootloader nicht funtzt, probier ich grad, einen C-Kernel zu verwenden. Doch der Linker gibt immer wieder einen Fehler aus:
pm32.obj: file not recognized: File format not recognized
Zum Kompilieren der Datei verwende ich:
nasmw -f aout -o pm32.obj pm32.asm
pm32.asm:
[Bits 32]
extern _main
global start
start:
call _main
Stop:
jmp Stop


What's the matter :?:

jeb
27
Lowlevel-Coding / Bootloader und PMODE
« am: 09. June 2005, 18:31 »
Ich verwende den Bootloader von Ausgabe 1 und den Code von T-Jay für den PMODE. Jedoch rebootet der Pc die ganze Zeit? Ich habs mit dem eignen und dem exakten Code der Site probiert (mit Ausname einer änderung im PMODE wos nen fehler bei mov cr0,eax).

jeb
28
Offtopic / eigene api erstellen
« am: 30. May 2005, 22:06 »
Wie kann ich eigentlich eine API für Betriebssysteme erstellen, die bereits existieren (denke da vorläufig an Win). SDL, Allegro und weitere API machen das ja auch. Ist das schwer?

mfg, jeb
29
Offtopic / Kafeemaschiene
« am: 21. May 2005, 09:42 »
Kunde: "Guten Tag, ich bräuchte eine Kaffeemaschine."

Verkäufer: "Ah ja, hier haben wir das neueste Modell. Mit eingebauter Bohnenmühle, Direktanschluß an den Wasserhahn, automatischer Kaffeevorratsverwaltung, voll programmierbar."

Kunde: "Ah ja, klingt interessant. Aber ich habe gehört, daß einige der
neueren Kaffeemaschinen nicht gerade leicht zu bedienen seien.."

Verkäufer: "Aber nein, die Bedienung ist ganz einfach. Sehen Sie, sie
haben hier nur einen Ein/Aus-Schalter, vier frei definierbare
Programmknöpfe und eine RS-232."

Kunde: "Eine was?"

Verkäufer: "Eine RS-232. Da können Sie Ihren Computer hinstecken."

Kunde: "Äh, soll das heißen, ich brauche meinen Computer, um Kaffee zu
machen?"

Verkäufer: "Aber nein, nur zur Konfiguration oder zum Firmware- Update.. Natürlich können Sie die Kaffeemaschine auch vollständig per Computer steuern, wenn Sie wollen, aber normalerweise schalten Sie einfach die Maschine an und wählen eines der Programme mit den Knöpfen aus."

Kunde: "Aha, also wenn ich Knopf 1 drücke, bekomme ich eine Tasse, mit
Knopf 2 zwei Tassen usw., sehe ich das richtig?"

Verkäufer: "Das können Sie so einstellen, wenn Sie wollen. Sie können
natürlich genausogut einstellen, daß Knopf 1 eine Tasse starken Kaffee,
Knopf 2 eine Tasse nicht ganz so starken Kaffee, und Knopf 3 nur heißes
Wasser liefert, wenn Sie das wollen."

Kunde: "Heißes Wasser?"

Verkäufer: "Ja, ist ganz praktisch, wenn Sie sich Tee machen wollen."

Kunde: "Nun gut, aber wie sage ich der Kaffeemaschine nun, was der
Knopf machen soll."

Verkäufer: "Das ist eigentlich ganz einfach: Sie schließen Ihren
Rechner an die RS-232 an ..."

Kunde: "Äh, wie mache ich das?"

Verkäufer: "Nun, sie nehmen ein serielles Null-Modem-Kabel ..."

Kunde: "Ein was?"

Verkäufer: "Ein Null-Modem-Kabel. Gibt`s in der Computerabteilung.."

Kunde: "Nun gut, und wo stecke ich das am Computer hin?"

Verkäufer: "Natürlich an die RS-232, das ist da, wo Sie Ihr Modem
anstecken."

Kunde: "Ich habe kein Modem."

Verkäufer: "Prima, dann müßte Ihre RS-232 ja frei sein."

Kunde: "Ich weiß gar nicht, ob ich so was überhaupt am Computer habe."

Verkäufer: "Wenn nicht, können sie auch einen Adapter RS-232 nach USB
bekommen, sofern Ihr Betriebssystem einen passenden Treiber hat."

Kunde: "Mein was?"

Verkäufer: "Ihr Betriebssystem. Also das, was startet, wenn Sie den
Rechner anschalten."

Kunde: "Sie meinen die Texte, die da über den Bildschirm laufen?"

Verkäufer: "Nein, das ist das BIOS. Das Betriebssystem ist das, was
danach kommt, also zum Beispiel Linux,..."

Kunde: "Also, damit kenne ich mich nicht aus, brauche ich das?"

Verkäufer: "Aber nein, jedes Betriebssystem geht gleich gut, sogar
Windows."

Kunde: "Ach so, Windows, warum sagen sie das nicht gleich, ja, das hab
ich."

Verkäufer: "Damit gehts wie gesagt auch."

Kunde: "Aber wie mache ich es denn nun?"

Verkäufer: "Nun, nachdem sie die Kaffeemaschine mit dem Rechner
verbunden und angeschaltet und dann den Rechner hochgefahren haben, ..."

Kunde: "Den Rechner was habe?"

Verkäufer: "Angeschaltet und gewartet, bis er nichts mehr macht."

Kunde: "Ich muß auf einen Bluescreen warten?"

Verkäufer: "Äh, nein, also Sie warten solange, bis Sie Programme
starten können."

Kunde: "Ach so."

Verkäufer: "Ja, und dann starten Sie ein Terminalprogramm ..."

Kunde: "Ein was?"

Verkäufer: "Ein Terminalprogramm. Fragen Sie doch einfach nachher in
der Computerabteilung."

Kunde: "Nun gut, und was mache ich damit?"

Verkäufer: "Sie greifen damit auf die RS-232 zu, an der die
Kaffeemaschine sitzt."

Kunde: "Äh, und wie mache ich das?"

Verkäufer: "Das hängt vom Terminalprogramm ab. Jedenfalls, die
Kaffeemaschine sendet einen Prompt..."

Kunde: "Einen was?"

Verkäufer: "Einen Prompt. Das ist eine Zeichenkette, die Ihnen sagt,
daß die Kaffeemaschine Ihre Befehle erwartet."

Kunde: "Meine Befehle? Ist das eine Militär-Maschine, oder was?"

Verkäufer: "Nun ja, sie wollen, daß die Kaffeemaschine was macht, und
da müssen Sie ihr ja sagen, was sie machen soll, und das nennt man
Befehl."

Kunde: "Nun ja, wenn Sie meinen. Und wenn dieser Prompt dann kommt,
dann klicke ich drauf?"

Verkäufer: "Nein, dann tippen Sie Ihre Befehle ein."

Kunde: "Tippen?"

Verkäufer: "Ja, ist viel flexibler. Stellen Sie Sich vor, sie müßten
z.B. im Laden erst auf ein irgendwo aufgehängtes Fragezeichen zeigen,
und dann auf ein Gerät, um über das Gerät etwas zu erfahren, und....."

Kunde: "Ist ja schon gut, also wenn ich den Prompt sehe, dann tippe ich
ein: "Wenn ich den Knopf 1 drücke, mach mir eine Tasse starken Kaffee",
richtig?"

Verkäufer: "Nun ja, nicht ganz. Um die Konfiguration zu ändern, müssen
Sie die .coffeerc ändern."

Kunde: "Die was?"

Verkäufer: "Die .coffeerc. Das ist eine Datei, in der die Konfiguration
gespeichert wird."

Kunde: "Und wenn ich die öffne, dann kann ich da alles einstellen?"

Verkäufer: "Genau."

Kunde: "Wird die nötige Software auch mitgeliefert?"

Verkäufer: "Ein vi ist in der Kaffeemaschine festinstalliert."

Kunde: "Was ist bitte ein vi?"

Verkäufer: "vi ist ein Editor, mit dem Sie die .coffeerc bearbeiten
können."

Kunde: "Was ist jetzt schon wieder ein Editor?"

Verkäufer: "Nun, ein Programm zum Ändern von Textdateien."

Kunde: "Sie meinen sowas wie Word?"

Verkäufer: "Nun ja, fast. Nur eben für reine Textdateien ..."

Kunde: "Mit Word bearbeite ich doch auch Texte."

Verkäufer: "Ja, aber eine Kaffeemaschine kann mit
Inhaltsverzeichnissen, Kursivschrift und eingebundenen Bildern nichts
anfangen, und entsprechend gibt es sowas nicht in reinen Textdateien."

Kunde: "Also, wenn ich auf diese .coffeerc doppelklicke, dann öffnet
sich der vi ..."

Verkäufer: "Nein, sie müssen eintippen: vi .coffeerc, und dann Enter
drücken."

Kunde: "Warum so kompliziert?"

Verkäufer: "Also, ich halte es nicht für kompliziert."

Kunde: "Nun ja, also ich starte dann diesen vi und schreibe dann rein:
"Wenn ich den Knopf 1 drücke, mach mir eine Tasse starken Kaffee"."

Verkäufer: "So ungefähr. Sie müssen natürlich erst den vi in den
Insert-Modus schalten ...."

Kunde: "In den was?"

Verkäufer: "In den Modus, in dem sie neuen Text einfügen können."

Kunde: "Äh, aber dann kann ich lostippen?"

Verkäufer: "Ja. Sie müssen sich natürlich an die Syntax für die
Konfigurationsdatei halten."

Kunde: "???"

Verkäufer: "Nun ja, die Kaffeemaschine versteht es nicht, wenn Sie
einfach deutsche Sätze eintippen."

Kunde: "Sie meinen, ich muß auf Englisch tippen?"

Verkäufer: "Nein, das geht auch nicht ...."

Kunde: "Also, japanisch kann ich leider nicht."

Verkäufer: "Brauchen Sie auch nicht. Es handelt sich um eine spezielle
Kaffeemaschinenkonfigurationssprache."

Kunde: "Äh, und die muß ich dann erst lernen?"

Verkäufer: "Sie ist nicht kompliziert, schließlich ist es ja nur eine
Kaffeemaschine. Im Verzeichnis doc ist außerdem standardmäßig ein Howto installiert ..."

Kunde: "Nun ja, ich glaube, ich versuche es doch mit einer anderen
Maschine ... was ist mit der dort hinten?"

Verkäufer: "Die ist noch nicht mal programmierbar."

Kunde: "Prima, ich glaube, die nehme ich."
30
OS-Design / ToDo Liste
« am: 13. May 2005, 12:44 »
Ich will mir eine ToDo liste machen und überlege grade, was es eigentlich so alles braucht und wann man das OS 1.0 nennen darf/sollte/kann.
Ich hab mal folgendes:

Bootloader
FS-Treiber
GTD
ITD
Konsole/GUI/VESA
PIC
Netzwerk

Was gibts sonst noch so alles zu implementieren?

mfg, jeb
31
Offtopic / Emulator der von Partition bootet
« am: 11. May 2005, 16:59 »
Ich habe mir jetzt grad überlegt, da ich linux als zweitsystem benutze, ob es eine möglichkeit gibt, dieses via emulator zu booten und zwar von seiner parittion. Mit Qemu und CoLinux kann man ja nur virtuelle Festplatten erzeugen. Kenn ihr noch andere Emulatoren? Oder soll ich mir Cygnus downloaden (was nicht viel bringt wenn ich schon extra 20GB auf meiner Festplatte für linux hab)?

mfg, jeb
32
tyndur / Spenden fürs CommOS
« am: 11. May 2005, 12:38 »
Also ich hab da so ne kleine Frage *mal rummeckern muss*:
Man kann ja laut Wiki für das CommOS spenden. Nur: wohin käme das Geld nun eigentlich? Nicht das ich vorhabe zu spenden (mein armes Schülergeld) aber wär doch mal noch spannend. Gibts dafür ein Konto?

mfg, jeb
33
Offtopic / Bin ich einfach ein Freak oder ist das normal?
« am: 09. May 2005, 21:32 »
Also ich hab ein (mehr oder weniger) grosses Problem:
Ich progge grad n paar games (pause in OS) und stelle die meiner klasse als zip zum download bereit. Das erste was ich dann im MSN höre ich: ich kann das spiel nicht starten. Meine Antwort: hast du es entzippt. Gegenantwort: was ist das?
Das gleiche passiert mir auch bei RAR archiven.

Ist es normal das gleichaltrige (15/16) nicht wissen was ein Archiv ist und bin ich einfach ein verlorener pcfreak?

mfg, jeb
34
Also wenn ich meinen Bootlaoder unter Bochs (auf meinem Lap) boote ist alles klar. Auf dem Laptop selber läuft auch alles klar (ohne Bochs). Doch beim PC meiner Eltern und meinem Testpc kommt nichts! Nur der Curser blinkt in der oberen Ecke.
Das Seltsame: den alten Kernel können beide PCs ohne Probleme anzeigen. Nur den neuen Bootloader nicht.

Was ist los?
jeb
35
Offtopic / Linux Live-CD
« am: 14. April 2005, 21:58 »
hallo
Ich hab endlich nen alten PC um ihn richtig zu schrotten *freu*. Jetzt habe ich darin aber (noch) keine Festplatte unglücklich . Kennt jemand ne Linux-Distri, die von ner CD bootet (also Live-CD) und mit der ich auf Disketten schreiben kann? Wenn möglich sollte der X-Server nicht automatisch gestartet werden. Er kann auch ganz fehlen.

mfg, jeb
36
Lowlevel-Coding / Paltz im Segment schaffen
« am: 11. April 2005, 12:31 »
Ich erstlle mir gerade ein Programm, mit dem ich den gesamten Inhalt einer Diskette in eine Datei schreibe. Dazu lese ich Sektor für Sektor ein und schreibe die Bytes in eine Datei. Wie kann ich nun 512 Byte für den Sektor im Datensegment reservieren? Bis jetzt speichere ich den Sektor einfach als letzten Eintrag im Datensegment.


mfg, jeb
37
Offtopic / von realem Laufwerk booten (Bochs)
« am: 10. April 2005, 20:37 »
Wie kann ich mit Bochs vom realen Laufwerk booten? Hab die Funktion nicht gefunden. Am besten HD und floppy

mfg, jeb
38
Lowlevel-Coding / warum funzt der code nicht?
« am: 06. April 2005, 20:46 »
titel sagt ja schon alles:

jmp code ;Bootjump
db "MSWIN4.1" ;OS_Name
db 0x200 ;Bytes/Sector
db 0x01 ;Anzahl Sektoren/Cluster
db 0x02 ;FAT-Tabellen
db 0xe0
db 0xb40
db 0xF0
db 0x09
db 0x12
db 0x02
db 0x00
db 0x00
db 0x00
db 0x00
db 0x29
db 0x00
db 0x00
db 0x00
db 0x00
db "        "
db "FAT12   "

msg db "Hallo auf meiner Diskette",0
code:
mov si,msg
lodsb
or al,al
jz code_end
mov ah,0x0e
mov bx,0x0007
int 0x10
jmp code
code_end:

times 512-($-$$)-2 db 0
dw 0x0aa55

stimmt er überhaupt?
PS: Ihr müsst sagen, falls ich hier zu viel codeposting mache
39
Lowlevel-Coding / Interrupts funktionieren nicht:(
« am: 03. April 2005, 14:10 »
Hab schon etliche Fehler korrigiert aber meine Interrupts funzen immer noch nicht:(

mov ax,1000h
mov ds,ax
mov es,ax

start:
mov si,msg
mov al,0x01
int 0x21
mov si,msg_clear
mov al,0x01
int 21h
mov si,msg_os1
mov al,0x01
int 21h
mov si,msg_os2
mov al,0x01
int 21h
mov si,msg_os3
call putstr
mov si,msg_os4
call putstr
mov si,msg_os5
call putstr
mov si,msg_os6
call putstr
mov si,msg_os7
call putstr
mov si,msg_os8
call putstr
mov si,msg_os9
call putstr
mov si,msg_os0
call putstr
mov si,msg_clear
call putstr
mov si,msg_boot
call putstr
call getkey
jmp reboot

msg db "                           Jeremia B",132,"r pr",132,"sentiert:",13,10,0
msg_boot db "                    Diskette entnehmen und Taste dr",129,"cken....",13,10,0
msg_clear db 13,10,0
msg_os1 db "                11111                       1       111   11111",13,10,0
msg_os2 db "                1                           1      11 11  1    ",13,10,0
msg_os3 db "                1                           1      1   1  1    ",13,10,0
msg_os4 db "                1                           1   1  1   1  1    ",13,10,0
msg_os5 db "                1111                        1  11  1   1  1    ",13,10,0
msg_os6 db "                1      1 111  11111  1111   1 11   1   1  11111",13,10,0
msg_os7 db "                1      111 1  1   1  1  11  111    1   1      1",13,10,0
msg_os8 db "                1      1      11111  1   1  1 11   1   1      1",13,10,0
msg_os9 db "                1      1      1      1 111  1  11  11 11      1",13,10,0
msg_os0 db "                1      1      11111  111 1  1   1   111   11111",13,10,0

;Interrupts anmelden

push dx
push es
xor ax,ax
mov es,ax
cli
mov word [es:0x21*4],_int0x21
mov [es:0x21*4+2],cs
sti
pop es
pop dx

;Die Interrupts

_int0x21:

_int0x21_ser0x01:
cmp al,0x01
jne _int0x21_end
_int0x21_ser0x01_start:
lodsb
or al,al
jz _int0x21_ser0x01_end
mov ah,0x0e
mov bx,0x0007
int 0x10
jmp _int0x21_ser0x01_start
_int0x21_ser0x01_end:
jmp _int0x21_end

_int0x21_end:
iret

putstr:
lodsb
or al,al
jz short putstrd
mov ah,0x0e
mov bx,0x0007
int 0x10
jmp putstr
putstrd:
retn

getkey:
mov ah,0
int 016h
ret

reboot:
db 0eah
dw 0000h
dw 0ffffh

mfg
jeb
40
OS-Design / Eigenes FS
« am: 02. April 2005, 12:31 »
Hab mein eigenes FS geschrieben und hätte Freude an einem kleinen Feedback. Ihr findet es unter: http://jeremiasherlock.je.funpic.de/jeb/fofsdoku.pdf

mfg
jeb

PS: Ich weiss nicht, ob das hier als Werbung gilt oder ob das Verboten ist. Ich weiss sonst nicht, wo ich ein Feedback herkrieg. Falls es Verboten ist, meldet euch bitte.
Seiten: 1 [2] 3

Einloggen