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

Seiten: 1 2 3 [4]
61
Lowlevel-Coding / Re: Welche Geräte gehören zu PCI?
« am: 24. May 2013, 22:58 »
Das ist vielleicht etwas schlecht ausgedrückt: Deine Festplatte hängt am SATA-Controller, und dieser ist wiederum via PCI(e) ans System angebunden. Wenn du nun deinen SATA-Controller ansprechen willst brauchst du einen PCI-Treiber. Damit kannst du dem Controller sagen was er tuen soll (vereinfacht gesagt).
62
Offtopic / Re: PC bootet mit USB nicht
« am: 14. May 2013, 22:18 »
Ich würde ja mal auf einen Fehler im BIOS/UEFI tippen. Suche mal im Internet nach einem BIOS-Update, dass könnte eventuell Abhilfe schaffen. Und wechsle wirklich mal den Stick, ich hatte da auch mal einen an dem hat sich Windows immer beim booten "erhangen" wenn er eingesteckt war.  :x

Gruß,
Streetrunner
63
Offtopic / Re: Logisim CPU
« am: 14. May 2013, 19:55 »
Zitat
Na dann bau ich ein bestätigungs-Befehl ein. DAS erste Bit des "Control-Registers" setzt sich dann nur auf 1 wenn sich ein "Permissions-Register" mit dem CP übereinstimmt und zusätzlich an der Adresse auf die der CP zeigt ein solcher Befehl ist.
Das verkompliziert die Sache nur noch, da man damit auf bestimmten Adressen auch noch bestimmte Befehle haben muss.

Zitat
Und wieso sollten Befehle verboten sein ?
Darum. Und weil sonst jeden beliebige Programm z.B. an den I/O-Ports (sofern vorhanden) rumspielen kann. Je nach dem was da dran hängt (bei x86 z.B. der PIT) könnte das Programm dann das komplette System einfrieren bzw. sich unendlich viel Rechenzeit verschaffen.

Gruß,
Streetrunner
64
Offtopic / Re: Logisim CPU
« am: 14. May 2013, 10:23 »
Ich mache mir auch Sorgen, dass ein Programmierer nach dem Zugriff vergessen könnte das erste Bit deiner 'Control-Adresse' auf 0 zu setzten. Dann würde nämlich jedem Task deine MMU offen stehen.

Gruß,
Streetrunner
65
Softwareentwicklung / Re: Paging Error 14
« am: 12. May 2013, 18:41 »
Zitat
(Gibt es eine Anleitung?)
Ja gíbt es, z.B. hier (zwar auf Englisch aber egal):
http://wiki.osdev.org/Bare_Bones
Da kannst du sehen das in der "loader"-Funktion die Register eax auf die globale Variable "Magic" und ebx auf die globale Variable "mbd" geschrieben werden.
In "kmain" werden diese Variablen dann einfach verwendet.

Du kannst aber auch direkt zu Beginn deiner start.S, also direkt nach dem Multiboot-Header, die beiden Register auf den Stack schieben. Das sähe dann ungefähr so aus:
.section multiboot

#define MB_MAGIC 0x1badb002
#define MB_FLAGS 0x0
#define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS)

.align 4
.int MB_MAGIC
.int MB_FLAGS
.int MB_CHECKSUM

.section .text

.extern Main

.global _start
_start:
mov $kernel_stack, %esp

pushl %eax     ; eax auf den Stack schieben
pushl %ebx     ; und ebx auch

call Main

Die passende Funktion "Main" sieht dann etwa so aus:
void Main (void* mbt, uint32_t Magic)
{
...
}

Gruß,
Streetrunner
66
Softwareentwicklung / Re: Paging Error 14
« am: 12. May 2013, 17:39 »
Da brauchst du keinen Befehl, es reicht wenn du die multiboot_info_t Struktur ausliest. Wenn du deinen Kernel mit Grub bootest, findest du wenn Grub die Kontrolle an dich abgibt in eax eine Magic-Number (sollte 0x2BADB002 sein). Diese validiert den Zeiger auf die multiboot_info_t Struktur, zu finden in ebx.

Gruß,
Streetrunner
67
Hallo,

ich würde auch mal auf die fehlende Signatur tippen. Sieh dir mal den Code hier an:

http://www.lowlevel.eu/wiki/Eigener_Bootloader (weiter unten unter "Datenbereich")

Da kannst du sehen das der MBR auf 510 Byte "aufgeblasen" wird und am Ende 0xAA55 (noch mal 2 Byte mehr) angehängt werden. Ohne das wird dein Rechner den MBR gar nicht laden wollen.
Und sonst kann ich Svenska nur zustimmen, Grub ist viel zu einfach zu bedienen als das es sich lohnen würde eine Alternative selbst zu schreiben.

Gruß,
Streetrunner
Seiten: 1 2 3 [4]

Einloggen