PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Booten?!



ExRevel
04.06.2001, 13:19
hi...

ich stelle mir schon eine zeit lang die frage, ob man mit einem Assembler Programm booten kann, ein eigenes OS, das KEIN Dos braucht!!
das muss doch gehen! oder nicht?
ich will mit einem freund ein eigenes OS aus C und Assembler machen! aber nicht auf dos aufsetzen, wenns geht!
mit tastatur und cd rom beim booten, wie der bootloader von Linux!

also, über tipps würden wir uns freuen!!!
und KEIN DOS!! :) :)

cu ExRevel

Shabazza
04.06.2001, 14:18
Klar geht das, warum solte es nicht gehen. Ist nicht ganz einfach, du must den genauen aufbau des bootsektores einer diskete können (oder den MBR der festplatte). Auserdem soltest du die BIOS funktionen können um mit der hardware zu komunizieren (bildschirm, tastatur, maus, festplatte und so weiter).
Das ganze macht aber nicht viel sinn, viel sinvoler wäre es ein reales betriebssystem genauer zu studieren wie zum beispiel linux.

ExRevel
04.06.2001, 14:26
hi...

schon klar, das es mehr sinn machen würde! aber sowas mache ich nebenbei, wir wollen halt mal was eigenes, mit eigenem Dateisystem!
nun meint er es gibt ein Programm, mit dem man den ersten sektor einer Diskette mit dem Code von seinem Prog füllen kann, wo kann man das finden? damit man von diskette booten kann!!

cu :s ExRevel

Bunny
04.06.2001, 17:56
Du kannst z.B. mit debug den Boosektor beschreiben.

debug mysec.bin
-w 100 0 0 1

Du must dir aber überlegen was für Daten vom Dateisystem im Bootsektor stehen, die müssen ja erhalten bleiben. D.h. du brauchst ein Boosektorschreiber genau für dein Dateisystem. Toxic hat mal solch ein cooles Programm für plan!os in C geschrieben.
Kannst ja mal ihn fragen, oder aus seiner Page gucken wie er das gemacht hat.

Mathias.B
07.06.2001, 20:16
Klar, geht voll leicht, wenn du von DOS aus booten willst brauchst du nur die MS-DOS.SYS und di IO.SYS, dann muss du eine Autoexec.bat schreiben die dein Programm startet, dieses Programm kann z.B. sein:

- Ein Installationsprogramm für dein Betriebssystem das du schreiben willst, Linux wird auch so installiert.

- Oder ein kleiner Dateimanager.

-Kann aber auch ein Masterboot Virus oder ähnliches sein.

Ich hoffe ich konnte dir helfen, ciao

Mathias

Bunny
07.06.2001, 20:34
@Mathias.B:
Kannst du lesen?
KEIN DOS

Und seit wann wir Linux über DOS installiert?
Wenn die das mit Lierfern würden, dann ist dat nit mehr legal. Und Außerdem ist das bestimmt nicht im Sinne der Entwickler sich von DOS abhängig zu machen. Auch wenn Billy dat so gern hätte. Hier geht es mehr um Lern by Doing.

Ok, von Bootvieren kann mal viel lernen.

ExRevel
08.06.2001, 12:31
hi...

also, ich hab mich jetzt entschieden und ich werde mit meinem freund auf den linuxkernel satteln! den habe ich mir schon gezogen und durchgenommen! mit der IntListe!
danke für eure beiträge!

die sache mit dem bootsectorvirus hatte ich noch gar nicht bedacht!! gute idee!!
cu ExRevel

Mathias.B
09.06.2001, 01:36
Wenn man einen OEM-Computer hat dann wird linux immer über dos installiert, sonst kann man das gar nicht installieren du schlaumeier..., aber wenn euch meine Tips nicht gefallen dann schreib ich eben keine Beiträge mehr!!

toxic
09.06.2001, 04:42
Natürlich kann man Linux ohne DOS installieren. Ob du hier Beiträge schreiben willst oder nicht steht dir frei.

Mathias.B
10.06.2001, 18:41
Ich will mich nicht streiten, aber Linux wird eben unter dos installiert wenn man nen Windows Compi hat. Wenn ihr das bestreiten wollt dann frag doch mal euren Buschmann.

@Exrevel
es ist schwer ein programm ohne dos zu booten, deshalb wird linux zu erst auch über dos gebootet, weil man einen befehlsinterpreter und so weiter brauch, und die ganze installation lbäuft über den interrupt 10h weil man ohne das linux instaliert ist keine dateien kopieren kann, erst wenn linux installiert ist bootet es sich sich selbst...

Bunny
10.06.2001, 21:20
Ja Ja, du hast recht. :rofl:

@toxic: sorry, aber bei so was bekomme ich so ein kriebeln in den Fingern.


[Dieser Beitrag wurde von BunnyR81 am 10. Juni 2001 editiert.]

Nilss
25.06.2001, 09:11
Linux braucht kein DOS. Schon mal an eine Bootdisk oder BOOTTABLE-CD-ROM gedacht?

solanum
25.06.2001, 10:50
Also zu eurem Linux - Problem (*rofl*) sag ich hier mal nichts, da es einfach lächerlich ist.
Was ich eigentlich wollte war zum eigentlichen Thema: Den Bootsektor einer Diskette beschreibst Du unter Linux ganz einfach mit
dd if=/ordner/datei of=/dev/fd0 bs=512
Davor eben ganz normal z.B. mit nasm compilen
nasm bootloader.asm

Mathias.B
27.06.2001, 18:50
Ich glaub ihr versteht alle Exrevels Frage nicht, er meint booten ohne ein anderes os, das geht mit assembler, ich weiss das man erst irgendwas mit dem Disketten Laufwerk(014h) machen muss, dann kann man auch booten, aber wenn man das so wie solanum machet, einfach den boot sektor beschreiben, das geht sicher auch, doch ich habe keine ahnung auf welche befehle(?) das laufwerk reagiert, und womit man es beschreibt, wenn das einer weiss dann ist das Problem glaube ich gelöst?

solanum
27.06.2001, 20:28
Hä? Du brauchst "kein anderes OS", wenn Du den Bootsektor einer Diskette beschreibst. Es werden natürlich BIOS - Interrupts verwendet, da z.B. DOS ja noch nicht geladen ist. Und das was dann passiert ist exakt das, was in ExRevels Frage steht. Mehr als den Bootsektor mit BIOS - Assembler zu beschreiben, den Code 512 Bytes gross zu machen und am Ende eine Signatur zu setzen, damit die Diskette als "bootfähig" erkannt wird. Vielleicht solltest Du (Mathias.B) Dich erst ein wenig mit der Arbeitsweise des POST - Vorgangs, des BIOS und dem Aufbau von betriebssystemen beschäftigen.

solanum dulkamara

P.S.: War nichts an diesem Posting böse gemeint!

DEADh
28.06.2001, 02:10
hehehe, das BIOS ist doch ein betriebssystem :). desweiteren ist ein eingestaendiges betriebssystem sauschwer zu schreiben; man denke an das dateisystem... es teilt die festplattenzylinder in bloecke ein und verwaltet die darin gestauten daten in tabellen. und bei alle dem stehen dir keine betriebssystem-interrupts zur verfuegung!
in den bootsektor musst du schon einen minimalen kernel schreiben, der weitere elemente laden kann, sonst wird das nichts.
dass andere os auf "default-dos"-rechnern eigenstaendig installierbar sind, duerfte klar sein... das wurde hier ja auch schon erwaehnt (advanced bios features setup-> first boot sequence: cd-rom oder [boot-]floppy).

solanum
28.06.2001, 09:07
Original erstellt von DEADh:
hehehe, das BIOS ist doch ein betriebssystem :).
Naaaa ja.
Das BIOS (Basic Input and Output System) ist auf dem Motherboard als ROM-Baustein
untergebracht. Darüber wird über Routine-Programme die Verbindung zu den peripherenGeräten hergestellt, ohne dass die Hardware in ihrer jeweiligen Konfiguration direktangesprochen werden muß.
Es ist das Grundprogramm, daß auch bei fehlendem Betriebssystem verfügbar ist. Das BIOSleistet die interne Selbstprüfung des Computers, es testet den internen Speicher und diejeweils angeschlossenen peripheren Geräte.
Dabei betrachtet es diese Geräte als physikalische Einheit im Gegensatz zum
Betriebssystem, von dem sie als logische Einheit angesehen werden.
Durch das BIOS wird ein bootfähiges Medium gesucht und geladen (Nur der Bereich im Bootsektor bzw. MBR).
Der Aufgabenbereich des BIOS läßt sich wie folgt charakterisieren: Bewahrung der Kompatibilität auch bei unterschiedlicher Hardware Test des Computers beim Einschalten auf Funktionstüchtigkeit Suchen und Laden des Betriebssystems in den Arbeitsspeicher
Das BIOS bleibt auch nach dem Start des Betriebssystems verfügbar und übernimmt Aufgabenauf Systemebene.


Original erstellt von DEADh:
in den bootsektor musst du schon einen minimalen kernel schreiben, der weitere elemente laden kann, sonst wird das nichts.
*g* Ja, und dieser "minimale Kernel" nennt sich Bootloader (man kann natürlich auch einen auswendigeren Bootmanager schreiben (siehe z.B. LILO)). Dieser Bootloader hat keine anderen Aufgaben, als den eigentlichen Kernel zu laden.

solanum dulkamara

Bunny
28.06.2001, 21:17
Irgendwie finde ich das ihr zu wenig Fantasie habt. Erst mal wenn man ein Betriebsystem schreiben will, dann sollte man selbst die Regeln machen. Und nicht kucken was dir anderen machen. Warum muss am Anfang direkt einen megaschwerer Bootloader geschrieben werden. Hm, Amigagefühle kommen hoch. Da hat man ja auch oft bei Spielen auf das Betriebsystem verzichtet und die ganzen Sektoren roh geladen. Beim Amiga war auf den ROM das Betriebsystem( Ok nicht bei allen). Beim BIOS würde ich auch nicht von einem Betriebsystemreden.
Schaut euch den Soruce von einem Bootsektor mal an:



dc.l $444f5300 ; Filesytem-Kennung
dc.l $C0200f19 ; Checksumme
dc.l 880 ; DOS-Rootblock

lea dosname(pc) ; Name der DOS-LIB
jsr -96(a6) ; Exec-Rountine FindResident
tst.l d0 ; Residentgefunden?
beq m2 ; Nein -> m2
move.l d0, a0 ; Residentstart nach a0
move.l 22(a0), a0 ; Zeiger auf Init-Code nach a0
moveq #0, d0 ; löschen für ok (das ging auch besser hmm)
m1: rts

m2: moveq #255, d0 ; Fehlerzeichen
bar ml

dosname: dc.b "dos.library",0
dcb.b 974, 0 ; auch ein KB füllen


Bei so wenigen Zeilen war man in CLI (SHELL), hatte eine mehre Dateisysteme und hat mehr oder weniger ne Library. Das mit dem BIOS verglichen: LOL
Damit jetzt mein Blabla auch noch Sinn macht, schlag ich euch mal was einfaches unökonomisches vor. Macht ein Monsterfilesystem. Das sieht dann so aus:

Aufbau: Kontinuierliche Speicherzuweisung

Ihr legt ne Tabelle an: Die jede Spur verwaltet. Also ne Datei belegt dann immer min. eine Spur. Ist zwar nicht toll. Aber dafür esay. Dann dir erste Spur ist die Bootspur.

0.Spur : Bootspur
1-2. oder so : Tabelle
3... : Daten

Da durch ist der Kernel dann zwar sehr unflexibel, aber eben esay. Ihr habt dann am Anfang erst mal 9KB zum üben. Das laben ist ja dann auch ganz einfach.

Wenn ihr das hinbekommen habt. Überlegt ihr euch was alles nicht so doll ist. Ihr versteht was ihr macht. Und es wird auch was rauskommen

Mathias.B
30.06.2001, 20:59
Hi alle noch mal, ich hab n'paar Fragen, wie macht man den eine Signatur und was soll das für eine Datei sein(*.EXE, *.COM...)?
Wenn ich das wüsste dann würde ich schon lange ein kleines os schreiben, oder zu mindestens versuchen, auch wenn es ein scheiss os währe!


Danke, ciao

kater2ooX
02.07.2001, 20:53
Hi!
Also das BIOS ist ja schon teilweise ein OS. Es stellt allerdings nur die Funktionen in Form von Interrupts zur Verfügung, damit nicht direkt auf die Hardware zugreifen muss (im PMode muss man's aber trotzdem :D).
Aber mal was anderes: In diesem Forum (ich will niemadnen angreifeN!) sind anscheinend nur pseud asm Coder sprich IDIOTEN!
Ich sag nur mal ""test.asm.txt" statt "test.asm" was tun?" oder "Klar, geht voll leicht, wenn du von DOS aus booten willst brauchst du nur die MS-DOS.SYS und di IO.SYS, dann muss du eine Autoexec.bat schreiben die dein Programm startet, dieses Programm kann z.B. sein:" und "Wenn man einen OEM-Computer hat dann wird linux immer über dos installiert, sonst kann man das gar nicht installieren du schlaumeier..." UND SO WEITER!
ExRevel ich progge grade selber ein OS du kannst ja mal meinen BootLoader angucken (wenn du willst er ist zum kotzen , lädt einen 4 KB großen Kernel und springt dahin :)) angucken mail mir mal
kater2ooX

kater2ooX
02.07.2001, 20:59
Hi ich bins nochmal!
"weil man einen befehlsinterpreter und so weiter brauch, und die ganze installation lbäuft über den interrupt 10h"
sagte MathiasB. LOOOOOOL. Mann DOS packt nur die API in form von Interrupts in die IVT damit DOS programmiert werden kann! Die BIOS-Ints haben NIX mit DOS zu tun! Die kriegst du nur nicht wenn du im PMode (es sei den du benutzt DPMI :D) arbeitest.
Solanum Dulkarnama ist hier der einzige der hier noch OK im Kopf ist NASM sollte man wirklich benutzebn auch unter WinDoof / DOS
cu leudz

toxic
02.07.2001, 23:47
Hi kater2ooX,


Original erstellt von kater2ooX:
Hi!
Also das BIOS ist ja schon teilweise ein OS. Es stellt allerdings nur die Funktionen in Form von Interrupts zur Verfügung, damit nicht direkt auf die Hardware zugreifen muss (im PMode muss man's aber trotzdem :D).

Ja, das BIOS ist ein OS, und meine Stereoanlage ist ein Personal Computer.



Aber mal was anderes: In diesem Forum (ich will niemadnen angreifeN!) sind anscheinend nur pseud asm Coder sprich IDIOTEN!

Hier sind ziemlich viele Anfänger, und Leute die nicht viel Ahnung haben, aber du bist bis jetzt der arroganteste glaube ich.

btw, hast du eigentlich schon mal ein Programm in asm geschrieben? Wenn man nach deinen Tutorials geht nicht.


Zuerst: Was ist Assembler? Zumindest keine Programmiersprache, denn Assembler
hat keine eigenen Schlüsselwörter!

Ne, Assembler ist keine Programmiersprache. Assembler ist Assembler :D


Die Register sind durch
AX, BX, CX, DX, CS, DS, ES, BP, IP, SS und SP abgebildet

Hast da nicht ein paar vergessen? :D

[...]
Ich mach jetzt mal nicht weiter. Vielleicht solltest du die Tutorials nochmal überarbeiten.



ExRevel ich progge grade selber ein OS du kannst ja mal meinen BootLoader angucken (wenn du willst er ist zum kotzen , lädt einen 4 KB großen Kernel und springt dahin :)) angucken mail mir mal
kater2ooX

Wow, noch ein OS... Und es soll ungefähr so wie Linux werden, richtig? Oder wird es eher so ein OS "nur für Hacker und Cracker"?

DEADh
03.07.2001, 01:02
ich kann toxic nur zustimmen... dein asm-tutorial ist echt uebel! ich habe mich mit der sprache bisher nur wenig beschaeftigt, kann aber auch haufenweise unstimmigkeiten finden.... deine peinlichen c++-texte sind noch schlimmer... ich will mal wissen, wem du mit so nem text, ausgedruckt ein din-a-4-faltblatt etwa und von fehlern nur so wimmelnd, was beibringen willst. und jetzt erzaehl bitte nicht, dass du aus zeitmangel oder aenhlichem nur solch einen schund zusammengekratzt hast... wenn du so ein elitaerer spitzencoder waerest, wie du denkst, wuerden deine tutotials auch was taugen. sie sind das einzige was du bisher vorgewiesen hast, eine vorlaeufige bewertung deiner faehigkeiten anhand der qualitaet der texte ist gerechtfertigt.

kater2ooX
03.07.2001, 13:15
"Ja, das BIOS ist ein OS, und meine Stereoanlage ist ein Personal Computer."
Ich habe gesagt dass das BIOS TEILWEISE ein OS ist.
"Aber mal was anderes: In diesem Forum (ich will niemadnen angreifeN!) sind anscheinend nur pseud asm Coder sprich IDIOTEN!"
Ich hab nicht vor arrogant zu sein - ich bin nur direkt.
"Zuerst: Was ist Assembler? Zumindest keine Programmiersprache, denn Assembler
hat keine eigenen Schlüsselwörter!"
Beschreibs Besser
"Die Register sind durch
AX, BX, CX, DX, CS, DS, ES, BP, IP, SS und SP abgebildet" Ja da fehlen 2 16-Bit Register DI und SI. Die habe ich vergessen auf jeden fall thx für den hinweis. Die 32-Bit Register habe ich natürlich weggelassen die würden ja wohl nur verwirren
"Wow, noch ein OS... Und es soll ungefähr so wie Linux werden, richtig? Oder wird es eher so ein OS "nur für Hacker und Cracker"?"
Weiss jetzt ja nicht was du damit bezwecken willst...

kater2ooX
03.07.2001, 13:17
Halts maul und schreib mal deine eigenen Tutorials - meine "peinlichen c++-texte"
sind für Anfänger gemacht und deswegen leicht gehalten

toxic
03.07.2001, 14:28
kater2ooX,

Wenn du nicht mal alle Register kennst, solltest du vielleicht erstmal selbst ein paar Tutorials lesen bevor du welche schreibst.

DEADh
03.07.2001, 20:50
tag,
kater: ueber programmierung habe ich selbst 2 texte geschrieben. einer ueber c++ ist etwa 40 seiten lang und einer ueber asm 20. beide sind ebenfalls fuer anfaenger.

Assimilator
04.07.2001, 18:20
kann ich die haben? :D

Dark Commander
06.07.2001, 08:41
Äh Ihr seit echt amüsant...

Als ich das Thema gelesen habe dacht ich mir Cool das ist sicher interessant...

Mh es ist zwar nicht so bildent wie ich mir gedacht habe aber bestimmt doppelt so Witzig...

Haut euch nicht die Köpfe ein, das bringt nix..

PS: http://home.t-online.de/home/felix.opatz/mbr.html

Könnte sein das das hier einige Fragen beantwortet.

Bis dann THe dark Commander

Assimilator
06.07.2001, 18:34
Vielen Dank!
hab auch noch was gefunden in asm:

http://www.geocities.com/mvea/bootstrap.htm

ExRevel
11.07.2001, 10:18
hi...

was habe ich mit meiner frage bloß ausgelöst! :)
nochmal für alle, die es nicht einsehen oder verstehen, dass man noch ein OS schreibt, es ist nur dazu da, um uns in C und ASM zu verbessern, es soll nix werden, was ein anderes OS ablösen soll, könnte es auch gar nicht!

dann noch ein dank an die beiden leute, die noch vernünfitge beiträge gepostet haben!
danke für die seiten!
& kater200X sollte vielleicht mal seine laune verbessern!

cu Ex