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

Seiten: [1] 2 3 ... 13
1
tyndur / Re: Wir suchen...
« am: 26. February 2008, 20:09 »
Ich habe nur einen 32Biter daher auch nur 32 Bit Ubuntu.
Zum laufen bekomme ich es trotzdem nicht:
make --no-print-directory -s makefiles
./buildmk.sh: 36: shopt: not found
./buildmk.sh: 46: source: not found
[: 100: ==: unexpected operator
./buildmk.sh: 133: Syntax error: "(" unexpected
make[1]: *** [makefiles] Fehler 2
make: *** [all] Fehler 2
osbios@c01:~/lost-OS-svn/trunk$

Ich weiß nicht wieso er shopt und source angeblich nicht findet?
2
Lowlevel-Coding / Re: Video Memory ohne Graka
« am: 22. February 2008, 00:26 »
Normalerweise bekommen die einzelnen Hardwarekomponenten beim Booten die Gelegenheit ihren eigenen Initalisierungcode auszuführen. Im Falle der Grafikkarte ist das z.B. das Mappen eines Teiles des Videospeichers. Wenns keine Grafikkarte gibt wird über 0xB8000, 0xB0000 und 0xA0000 halt nur ganz normaler Ram angesprochen.

Ich glaube eine integrierte Grake mit ~32 MiB wirst auch in den meisten Servern finden können.
3
tyndur / Re: Wir suchen...
« am: 21. February 2008, 19:52 »
Unter Mingw bekomme ich die Fehlermeldung dass er den Stack Schutz nicht kennt:
Zitat
unrecognized command line option "-fno-stack-protector"

Ab welchem GCC ist der Parameter denn vorhanden?

Dann habe ich das "-fno-stack-protector" aus der config entfernt und bin nun bei:
Zitat
vm86.c:54: warning: alignment of 'bios_data' is greater than maximum object file alignment.  Using 16
make[7]: *** [vm86.o] Error 1

Womit ich nicht soviel anzufangen weiß.

Ist das eventuell nur eine geschredderte SVN Version oder wie bekomme ich das unter Mingw zum laufen? Ich werde es später nochmal unter ubuntu testen.
4
tyndur / Re: Wir suchen...
« am: 21. February 2008, 18:52 »
Das hört sich doch mal interessant an.
Wo kann ich den aktuellen Kernel und die zum Basteln benötigte header finden? Währe auch nett wenn irgendwo beschrieben wird wie man sich ein Programm für lost backen muss!

Wenn ich dass am laufen hätte, könnte ich mir mal überlegen etwas Zeit zu spenden.

Btw: Habt ihr eigentlich schon Grafik am laufen. Sprich vga/vesa? Nicht dass ich da was schreiben will, aber benutzen würde ich es schon gerne. ;)
5
Lowlevel-Coding / Re: A20/Multitasking
« am: 09. January 2008, 22:18 »
1. Ja, kann man!
Das A20 ist die 21 Adressleitung. Durch die Adressierung im Realmode Offset*(Segment*16) kann man auch die 21 Adressleitung beeinflussen. In alten PCs (80186) gab es diese Leitung aber noch nicht. Und aus Kompatibilitätsgründen schaltete man diese in neuen Systemen standardmäßig aus = A20 Gate.

System mit 20 Adressleitungen bzw. ausgeschaltetem A20 (21 Adressleitung):

Segment    FFFF
Offset      0010
        = 000000

System mit mehr als 20 Adressleitungen:

Segment    FFFF
Offset      0010
       =  100000

Man kann also im Realmode 0xFFFF + (0xFFFF * 0x10) = 0x10FFEF bzw. 1114095 Byte Adressieren, also über 1MiB!


2. Kann man. Jedoch fehlen die Funktionen um die Programme 100% voneinander abzuschotten. Wenn also ein Programm fehlerhaft ist und wild im Speicher rumschreibt, wird es wahrscheinlich auch die anderen Programme in Mittleidenschaft ziehen. Außerdem hat man mit ~ 640 KiB benutzbarem Arbeitsspeicher schnell ein Ressourcen Problem.

3. Wie Bluecode schon schrieb: Entweder nur das Offset angeben und DS wird als Segment benutzt oder Segment und Offset angeben. Interessanterweise haben die Befehl ohne Segmentangabe und die Befehle mit DS als Segment unterschiedlichen Bytecode?! Die Befehle machen aber alles dass selbe.

Die Schreibweisen unterschreiben sich von Assembler zu Assembler.
In Tasm (und glaube auch in Masm)  SEGMENT:[OFFSET]
In Nasm, Yasm und Fasm [SEGMENT:OFFSET]
Aber dass kannst du in den entsprechenden Dokus nachlesen.
6
Und dann kauft man sich ein "Premium" "OS" was ~700$ kostet.

Mich stören diese total veralteten Interfaces, da man ja "Abwärts kompatibel" sein muss. Und dann halten die sich nicht an den Standard, und sind damit nur noch Mainstream (aka Windows) kompatibel.
Ich habe jetzt schon 3 Workarounds in meiner noch nicht fertig gestellten Erkennungfunktion. :*(


Naja, mit solch einem Hardware Verhalten muss man sich wenigstens keine gedanken über eine mögliche Quelle von Zufallszahlen machen.  :-D
7
OK, das hier soll ein Thread für all Leute werden, die sich über diese $&$%&$%&$% von Hardware Herstellern aufregen.

Die halten sich an keinen beschissenen Standard solange darauf M$-Scheiße läuft oder?  :x
Die Linux Leute frikeln dann irgendwann etwas zusammen, so das Linux auch auf der beschissensten Hardware funktioniert. (Ich wette, ohne diese ganzen Workarounds währe der Kernel Source nur 500 KB groß!!! :| )

Wenn ich alleine daran denke, von wie vielen Workaround mein Debian mir erzählt wenn es meinen Desktoprechner hochfährt. T_T

Und wir Hobby OS Leute... wir gucken dumm aus der Wäsche!


Ein paar Beispiel die ich heute beim KBC hatte:

Eine PC Ignoriert "Translate Scan Codes"-Bit womit man theoretisch das Übersetzen von Scancode2 auf Scancode1 auf dem KBC ausschalten kann.

Ein KBC eines anderen PCs antwortet munter auf Anfragen die ich eigendlich der Hardware am entsprechenden PS2 Port stelle.

PC: Hallo PS2 Maus, bist du da
KBC: *Stimme verstell* JA ICH BIN HIER! JA ICH BIN HIER!

Und noch viele andere "Features".
8
Lowlevel-Coding / Re: USB-Maus -> legacy PS/2-Maus
« am: 03. November 2007, 13:50 »
Ja, es ist auch im PMode aktiv. Das wurde von Mainboard-Herstellern eingeführt damit Systeme wie Win98 oder NT die USB-Maus benutzen können. Denn diese Systeme haben keine native USB Unterstützung.

Und in dem BIOS meines Boards gibt es keine Option um dieses Verhalten auszuschalten.
Für mein Ziel währe es aber ohnehin nicht relevant.

Alles was ich gelesen habe, deutet darauf hin, dass diese Emulation ausgeschaltet wird, wenn man den USB-Chip direkt anspricht. Also die Hardware weiß, dass das OS mit USB klar kommt und daher keine Emulation benötigt.

Ich habe z.B. eine paar alte Diskussionen um die Maustreiber von Linux gelesen. Darin kam auch die Situation, dass vor den PS/2-Maustreibern zuerst der USB Treiber zu laden war. Ich muss mich wohl wieder ein bisschen im Linux Source durchbuddeln. -_-

Wenn es nur über das Initialisierung des USB-Chips geht, dann werde ich dieses verhalten erst einmal so hinnehmen.


Hintergrund:
Ich erstelle gerade eine vernünftige Autoerkennung der angeschlossenen Hardware für die beiden PSAUX-Ports.
Es ist technische egal an welchen der beiden Porte eine Maus oder eine Tastatur angeschlossen ist. Man kann auch 2 Mäuse oder 2 Tastaturen anschließen. ;)

Wenn ich dass am laufen habe wollte ich es im Wiki verewigen. Bin aber schon lange im Kampf mit dem KBC.
9
Lowlevel-Coding / USB-Maus -> legacy PS/2-Maus
« am: 03. November 2007, 10:05 »
Meine Aufarbeitung des KBC macht gute Fortschritte. Jedoch gibt es da eine kleine Frage auf die ich gestoßen bin.

Viele Mainboard emulieren eine PS/2-Maus wenn keine echte, aber eine USB-Maus vorhanden ist.
Eines meiner Mainboards emulieren die PS/2-Maus auch, wenn gar keine Maus-Hardware angeschlossen ist!

Ich möchte aber gerne einen "reinen" Zugriff auf das Maus-Port (2. PSAUX) haben.

Wie kann ich den sogenannten "legacy modus" ausschalten? Muss ich dafür erst den USB Chip initialisieren? Oder gibt es eventuell eine einfachere Methode?
10
Das Wiki / KBC und PPI Wiki-Artikel
« am: 27. October 2007, 21:18 »
Da ich keine Rechte besitzt im "Tutorial-Diskussionen" oder "Resource Center" etwas zu schreiben, stelle ich es mal hier rein.

Es geht um folgendes:
Ich hatte den Zusammenhang zwischen KBC und PPI noch nicht richtig verstanden. Und bin eben ein bisschen auf der Suche nach Erleuchtung durchs Internet gebrowst. Ich glaube, ich habes jetzt verstanden. :]

Für alle unwissenden:
Das Programmable Peripheral Interface (PPI) wurde ursprünglich in alten XT Systemen benutzt. Also z.B. in 286 PCs. Dann wurde es aber in AT Systemen durch den Keyboard Controller (KBC) abgelöst.

Die Frage warum man diesen Kontroller, der relativ viele Aufgaben übernimmt, als "Keyboard Controller" bezeichnet konnte ich aber noch nicht beantworten. Ich vermute, die meisten Funktionen sind erst mit der Zeit dazugekommen und die Ansteuerung der Tastatur war zuerst vorhanden.

Da das PPI durch den KBC ersetzt wurde, überschneiden sich die Funktionen teilweise bzw. werden gleich angesteuert.

Ich überlege nun, wie man das PPI und den KBC am besten is Wiki einarbeiten kann. Entweder in den gleichen Artikel, der dann aber nicht mehr als Keyboard Controller bezeichnet werden sollte. Oder in separaten Artikeln, auch wenn sich die Grundfunktionen überschneiden.

Eventuell kann ja jemand mit mehr Hintergrundwissen zum PPI eine Empfehlung abgeben?
11
Offtopic / Wiki Seiten löschen?
« am: 21. October 2007, 21:05 »
Sacht mal, wie kann ich eigentlich eine Seite aus der/die/das(wie auch immer) Wiki löschen? Ich hatte aus Versehen eine zweite IO Port Liste angefangen -.-
12
Lowlevel-Coding / Re: PS2-Maus geht nicht, was sonst xD
« am: 21. October 2007, 12:33 »
Zum Thema KBC und warum man so viele "andere" Dinge damit machen kann, habe ich versucht etwas einleitendes im Wiki zu schreiben. Hintergrund ist das sogenannte Programmable Peripheral Interface (PPI). Ich hatte aber noch keine Lust mich damit näher zu befassen. Im Grunde genommen sind die Ports, die man zum Ansteuern des KBC benutzt, eigentlich Ports des PPI. Und der KBC ist nur ein Gerät, welches über das PPI angesteuert wird. Ich glaube, so kann man sich das am besten vorstellen.

Wir sollten mal ein paar alte Dokus auseinander nehmen und einen Artikel im Wiki schreiben um die Sache klar zu stellen!
13
Lowlevel-Coding / Re: PS2-Maus geht nicht, was sonst xD
« am: 21. October 2007, 11:21 »
Ach, ich wollte ja noch was zum Rebooten schreiben. Jaja, man wird vergesslich.

Zum Neustarten benutze ich den Keyboard Kontroller. Dort muss man nur ein Bit setzen und *schwups* ist der PC am neustarten, egal ob man im Real oder PMode ist.

Ich hatte dazu schon was im Wiki geschrieben: http://lowlevel.brainsware.org/wiki/index.php/KBC#CPU-reset
14
Lowlevel-Coding / Re: PS2-Maus geht nicht, was sonst xD
« am: 21. October 2007, 11:07 »
Die mittlere Maustaste wird wohl von der Maus selber beim drücken der 4. Taste signalisiert wenn sie im 3-Tasten Modus ist.

Die Floppy wird manuel über die Software ein- und ausgeschaltet. Da die Anlaufzeit des Motors relativ lange ist wird dieser meist nach einem Lesezugriff an gelassen. Man setzt einen Timer und schaltet den Motor erst wieder aus, nachdem über einen gewissen Zeitraum nicht mehr gelesen wurde.

Wenn man nun im Bootsektor die benötigten Daten über eine BIOS Funktion liest, und anschließend direkt in den PMode wechseln, bzw. die alten Interrupt-Routinen aushebelt. Dann kann der vom BIOS-Code gesetzt Timer auch nicht mehr die Floppy ausschalten.

Du kannst zum ausschalten des Floppy auch einfach folgendes machen: mov dx, 0x3F2
out dx, 00000100b
15
Lowlevel-Coding / Re: PS2-Maus geht nicht, was sonst xD
« am: 21. October 2007, 09:29 »
Ich habe es noch einmal getestet. Es wird nun folgendes auf dem Notebook ausgegeben: 4500
47
0
0

Auf meinem "richtigem" Rechner, der eine Maus mit Mausrad hat, ist es dann:4500
47
3
3

Wobei ich dort die mittlere Taste(Mausrad) nicht drücken kann weil sie kaput ist. Aber die 4 Maustaste erkennt er als mittlere. :)


Einige andere Sachen, die mir im OS aufgefallen sind:
1. Die Floppy wird nicht ausgeschaltet
2. Das Tab Zeichen wid nicht gefiltert. Bzw. es wird eine art Kreis-Zeichen ausgegeben
3. Das Reboot Kommando überschreibt nur ein paar Bildschirmzeichen und hängt dann.
16
Lowlevel-Coding / Re: PS2-Maus geht nicht, was sonst xD
« am: 20. October 2007, 19:06 »
Ist ein Touchpad. Die "Mausrad" Funktion ist bei Touchpads glaube ich nicht fest eingebaut. Man bewegt dazu normalerweise den Finger am rechten Rand der Touchpadfläche. Und dabei wurden nur die y position verändert. Was bei einer vorhandenen Simulation des Mausrades nicht der Fall sein sollte. Tasten hat das Teil nur 2 Stück.

Die ausgegebenen Zahlen sind:47
0
0

PS: Ich habe heute schon zuviel Hitman gespielt. Und jetzt diese unterschwelligen Botschaften. xD
17
Offtopic / Re: Unterschied zwischen Amd und Intel??
« am: 20. October 2007, 18:59 »
Also, die gemeinsame Basis wird als x86 bezeichnet. Das ganze begann mit dem 8086 Prozessor, der von Intel auf den Mark gebracht wurde.

Darauf gab es dann Nachfolgermodele:

80186
80286 (meist als 286 bezeichnet)
80386 (meist als 386 bezeichnet)
80486 (meist als 486 bezeichnet)

Nun kann man auch sehr schön sehen was mit x86 gemeint ist.

Die Intel Prozessorten waren recht erfolgreich, und wurden daher von anderen Herstellern in ihrer Funktion Nachgebaut.
Da Intel die eigenen Produkte von anderen Billigherstellern abheben wollte, versuchten sie zuerst die Bezeichnung 468 markenrechtlich zu schützen. Da aber reine Nummerkombinationen in den meisten Ländern nicht als Marke geschützt werden können, wurde der Nachfolgeprozessor 80586 als Pentium bezeichnet. Dieser Name konnte als Marke geschützt werden.

Man unterteilt auch heutige x86 Prozessoren in weitere Gererationen wie:
80586
80686
80786
...

Wobei der 80586 bei Intel als Pentium bzw Pentium 1, in Intel Dokumenten auch P5, umgangssprachlich aber oft P1. (Diese unterschiedlichen P<Nummer> bei Intel und in der Umgangssprache gibt es meiner Erfahrung nach auch heute noch.)

Die Prozessoren andera Hersteller (z.B. AMD) werden auch in diese Generationen eingestufft.

Bis auf Prozessor-Erweiterungen sind Diese kompatibel.
Da Intel und AMD vor einigen Jahren Patente ausgetauscht haben, sind die danach entwickelten Prozessoren auch kompatibel was die meisten Erweiterungen angeht.


Meistens ist mit x86 aber nicht gemeint, dass ein 8086 Prozessor reichen würde. Denn erst mit dem 80386 wurde z.B. die 32 Bit Adressierung eingeführt die sich bis zu den heute aktuellen 64-Bit Systemen gehaltet hat.
Die Meisten Betriebssysteme die von den Leuten hier im Forum entwickelt werden, setzten daher min. einen 80386 (386) voraus.

@niknett:
Man kann glaube ich auf einem ISO-Dateisystem (CD) verschiedene Bootsektoren anlegen, so dass man auf einem x86 aber auch auf einer  PowerPC Architektur von der CD booten kann.
Andere Möglichkeiten kenne ich aber nicht.

@Coffee:
Betriebssysteme nutzen sehr wohl die Erweiterungen und werden auf die Prozessoren optimiert. Bei Linux kann man sich z.B. beim Kernel Compilieren aussuchen, ob der Kernel auf einer bestimmten Prozessorfamilit laufen soll, oder ob er "allgemein" gehalten, und somit auf allen Prozessoren starten kann.
Bei Windows wird auch unterschieden. Ich weiß z.B. schon von Windows NT, das bei der Installation ein Prozessor abhängiger Kernel kopiert wird. (Weshalb man das NT auf der Platte nicht mit  jedem beliebigen PC starten konnte -.-)
18
Lowlevel-Coding / Re: PS2-Maus geht nicht, was sonst xD
« am: 20. October 2007, 18:25 »
Ich habe mal auf meinem alten notebook getestet was er zu den maustreibern sagt. Lauft eigendlich einwandfrei... nur wird die anzeige falsch aktualisiert!
Z.B. Wenn ich eine maustaste loslasse muss ich erst wieder was anderes machen bevor es richtig angezeigt wird. (zb maus bewegen oder klicken)

Als wenn man sozusagen den ersten IRQ ausgelassen hätte und nun das byte des ersten IRQ verarbeitet wenn der 2 IRQ ausgelöst wird...

19
Wie taljeth bereits sagte, kann man die EIDE-Laufwerke an einem Controller mischen. Aber wenn ich mich recht entsinne, dann benutzen einige (ältere?) CD-Rom Laufwerke PIO (Datenübertragung ohne DMA).
Das gleichzeitige verwenden von PIO (CD-Rom) und DMA (Festplatte) kann wohl zu gewissen Performance-einbußen der Festplatte führen, wenn das CD-Laufwerk benutzt wird.

Aber so genau weiß ich dass nicht mehr!?
20
Offtopic / ReactOS> Meinungen zur Aktuellen Version
« am: 13. September 2007, 20:20 »
Wie man auch den LL-News entnehmen kann, gibt es eine neue Version von ReactOS. Ich habe zwar keine berauschenden Erlebnisse mit der Letzten Version gehabt, wollte die neue dann aber trozdem ausprobieren.

Und ich muss sagen, ich bin beeindruckt. Zwar gibt es immer noch recht viele Grafikfehler. Das System ist mir auch eben einmal abgestuerzt. Aber wenn man bedenkt, dass dieser Beitrag gerade in VMare unter ReactOS in der Windows-Version von Firefox geschrieben wird... :)

Meiner Meinung nach koennte es in absehbarer Zeit von eventuell 2-6 Jahren einen stabilen Windows-Klon geben.
Meine Hoffnungen sind auf Jedenfall mit dieser Release angehoben worden.
Seiten: [1] 2 3 ... 13

Einloggen