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 - C#ris

Seiten: 1 2 [3]
41
OS-Design / Spinlocks/Scheduling
« am: 29. January 2006, 13:30 »
Zu diesem Problem gibts einige Lösungsansätze in "Moderne Betriebssysteme" von Andrew S. Tanenbaum. Sowieso sehr empfehlenswertes Buch, wenn auch schon etwas veraltet (bei uns gibts das in großer Stückzahl auch in der Uni-Bibliothek).
42
Lowlevel-Coding / Re: Eigene Bytecodebasierte Sprache
« am: 29. January 2006, 13:27 »
Zitat von: SSJ7Gohan
Hi,
Deshalb habe ich mich entschlossen ein eigenes Bytecode Format und eine eigene Sprache zu entwickeln, das diese Features ergänzt.


Grundsätzlich find ich deine Idee gut, aber würde an deiner Stelle den Bytecode nicht so stark mit einer höheren Programmiersprache verknüpfen, sondern flexibel und offen gestalten, sodass man zB C# oder Java Compiler für deinen Bytecode schreiben könnte.

Da ich ja grade an ner Java VM schreibe finde ich das Thema sehr interessant und würde mich auch einer Entwicklung beteiligen (soweit das mein knapper Zeitrahmen zulässt...:/).

Gruß,
C#ris
43
Lowlevel-Coding / Diskette: int 13h im PM
« am: 11. December 2005, 17:06 »
Hi!

Das Ding heißt Intel 82078 Floppy Controller. Ich hab mal angefangen einen Treiber für zu schreiben.


; Driver for Intel 82078 Floppy Controller
; (C)Copyright 2004 by NucleusKL Team & Authors
; Authors: Christian Lins
; Published under GPL - General Public License
; Last change: 17.02.2004

;; Primary
Port0SRB db 3F1h ; R/W Status Register B
Port0DOR db 3F2h ; R/W Digital Output Register
Port0TDR db 3F3h ; R/W Tape Drive Register
Port0MSR db 3F4h ; R Main Status Register
Port0DSR db 3F4h ; W Data Rate Select Register
Port0FIFO db 3F5h ; R/W Data (FIFO)
Port0DIR db 3F7h ; R Digital Input Register
Port0CCR db 3F7h ; W Configuration Control Register

;; Secondary
Port1SRB db 371h ; R/W Status Register B
Port1DOR db 372h ; R/W Digital Output Register
Port1TDR db 373h ; R/W Tape Drive Register
Port1MSR db 374h ; R Main Status Register
Port1DSR db 374h ; W Data Rate Select Register
Port1FIFO db 375h ; R/W Data (FIFO)
Port1DIR db 377h ; R Digital Input Register
Port1CCR db 377h ; W Configuration Control Register

ActiveDrive dw 0000h ; Nummer des aktiven Laufwerks

;; Initialisiert den FC82078
_fc82078_init:
; Paramter ActiveDrive 0, 1, 2, 3
pop ax ;ActiveDrive

call _fc82078_read_msr

; Bit 2 im DOR für Reset setzen
mov dx, Port0DOR
mov al, 00000100b
out dx, al

call _fc82078_read_msr
ret


;; Aktiviert den Motor des aktiven Laufwerks
_fc82078_motor_on:
mov dx, Port0DOR
mov al, 00010000b
out dx, al ; TODO: Drive 0 gewählt, ActiveDrive sollte gewählt werden

call _fc82078_read_msr
push 0
ret


;; Deaktiviert den Motor des aktiven Laufwerks
_fc82078_motor_off:
mov dx, Port0DOR
mov al, 0x0
out dx, al ; TODO: Drive 0 gewählt, ActiveDrive sollte gewählt werden

call _fc82078_read_msr
push 0
ret


;; Wählt die Übertragungsgeschwindigkeit
_fc82078_datarate:
push ax
mov dx, Port0DSR
mov al, 00000010b
out dx, al ; TODO: 250 kbps gewählt, andere Geschwindigkeiten sollten möglich sein
push 0
ret


;; Liest das Status Register und speichert es in al
_fc82078_read_msr:
xor al, al
mov dx, Port0MSR
in al, dx
;mov MSR, al
ret


;; Liest 16 Bytes aus dem FIFO (ohne DMA)
_fc82078_read_fifo:
mov dx, Port0FIFO
__readfifo_loop:
in al, dx ; Liest ein Byte
mov ah, al
in al, dx ; Liest noch ein Byte
push ax ; Speichert das Word auf dem Stack
call _fc82078_read_msr
cmp al, 80h ; Vergleicht ob das Lesen nun zu Ende ist
jne __readfifo_loop

push 0
ret


;; Schreibt 16 Bytes in das FIFO Register (ohne DMA)
_fc82078_write_fifo:
mov dx, Port0FIFO
__writefifo_loop:
pop ax
xchg al, ah
out dx, al
xchg al, ah
out dx, al
call _fc82078_read_msr
cmp al, 80h
jne __writefifo_loop

push 0
ret


;; Schreibt einen Befehl



Zumindest das Anschalten und Ausschalten sollte funktionieren. Vielleicht hilft dir das.

C#ris
44
Lowlevel-Coding / geschützte add. auslesen
« am: 09. December 2005, 14:51 »
Wenn es dich im Fall von Windows interessiert, solltest du dir das WinDDK (Windows Driver Developer Kit) besorgen, da gibts Dokus und viel Beispielcode.
45
OS-Design / Entwicklung eines JIT-Compilers
« am: 07. December 2005, 10:41 »
Zitat von: nooooooooos
Jeztz mal ne Frage: Warum muss sicher der Kompiler selbst kompilieren können ??? Was bringt das ???


Zitat von: SSJ7Gohan

Er sollte selbst auch in Java geschrieben sein, und sich selbst kompilieren können, damit man ihn in nativen Code, wie den OS Kernel einbauen kann.


Abgesehen davon könnte der Compiler dann auch nativen Code erzeugen, der perfekt an die Plattform angepasst ist.
46
Lowlevel-Coding / VESA
« am: 06. December 2005, 15:32 »
Zitat von: zacK
0x13c ist aber nicht standard oder?
was ist das für eine auflösung? und wo findent man eine tabelle mit den modi?


Kennst du diese Doku schon?
http://www.xerxys.info/xerxys/doc/VESABiosExtension3.pdf
47
OS-Design / In welcher Sprache codet ihr euren Kernel?
« am: 05. December 2005, 17:58 »
Zitat von: SSJ7Gohan

Ich habe ein kleines Interface, um mit Java direkt auf Speicherbereiche und IO Ports zugreifen zu können, dessen Funktionen werden jedoch vom JIT Compiler überwacht werden und so nicht genutzt werden können, um irgentwelche Systemteile zu ändern usw.


Das klingt ja sehr interessant! Hast du schon was veröffentlicht?
Vielleicht interessiert dich ja auch mein OS Projekt hier: http://www.xerxys.de
Auf unserem Microkernel (C) läuft nur eine "native" Anwendung, nämlich eine Java VM, die dann Java Anwendungen ausführt.
Wir wollten auch eine Art LowLevel Interface machen, mit dem man aus Java auf die Hardware zugreifen kann, aber darüber gibt es momentan keine Einigung :cry:

Gruß,
C#ris
Seiten: 1 2 [3]

Einloggen