Betriebssysteme programmieren

Nicht gleich so aufregen, ist nicht gut fuer's Herz.
Assembler ist ein wenig was anderes als PHP oder auch Delphi. HTML ist ja nicht wirklich 'ne Programmiersprache.
Hast Du schonmal Assembler gesehen?
Bei Assembler hast Du keine konkreten Anweisungen wo Du einfach nur sagst mach mal, und gut. Da laedst Du irgendwelche Werte in ax, oder in meinetwegen in bx. Dann kannst Du Register pushen und poppen, Interrupte ausfuehren und damit kannste dann versuchen gluecklich zu werden.

Auch Windows hat einen Bootloader, und auch einen Kernel. Bei Linux hat mir nur direkter damit zu tun, weil Windows ja so viel wie moeglich vor'm User versteckt.

Ich finde die Zweifel daran, dass Du es wirklich schaffst ein brauchbares OS zu coden berechtigt. Mit brauchbar mein ich jetzt nicht, dass Du gleich 'nen Linux- oder Windows-Clone auf die Beine stellst, aber etwas was irgendwie mehr kann als einfach nur booten und dann auszugeben "Hello World", sondern wo man dann mit weiterarbeiten kann. Wie zum Beispiel, dass man darauf Programme ausfuehren kann. Auch das muessen keine Windows-Programme sein, aber es waere doch zum Beispiel nicht schlecht wenn man den gcc darauf installieren koennte um mit C fuer Dein OS programmieren zu koennen.
Was dafuer natuerlich schon wichtig ist, dass Dein OS die Moeglichkeit hat auf die Festplatte zuzugreifen. Dafuer muss es zumindest ein Dateisystem verstehen. Falls Du Dir ein eigenes ausdenkst, musst Du natuerlich die Moeglichkeit haben Deine Festplatte entsprechend zu formatieren.
Du brauchst eine Shell, damit Du mit dem OS interagieren kannst, und natuerlich Treiber fuer Deine Devices.

Mir fallen noch etliche andere Sachen ein, jedoch sitz ich im Buero und muss mich jetzt mal langsam um meine Arbeit kuemmern. Vielleicht gibt's spaeter noch mehr.
 
Falls du mal die Suche bemüht hättest wüstest du das es das Thea schon öfters gab!
Und soweit ich weiß hat am Ende keiner mehr Bock drauf gehabt. Das Tutorial von Dario ist schon ein ganz ganz einfacher Einstieg und das bezeichnest du schon als komplizierte Anleitung. Delphi ist wohl nicht so der Hammer und HTML ist nach wie vor keine Programmiersprache sondern wie der Name schon sagt Hypertext. PHP ist eine vollwertige Programmiersrache, die syntaktisch an C/C++ und Java angepasst ist und selbst diese Umfasst nicht einen Bruchteil der Komplexität von C/C++. Wenn du C/C++ wirklich (!) programmieren und vorallem auch verstehen kannst und dazu noch wirklich viel über Hardware weißt, also nicht was ein i368 Prozessor ist, sondern was dadrin passiert, wie das abläuft und warum, dazu noch jede Menge wissen über Dateizugriffe, Hardwaresteuerung allgemein, dann kannst du eventuell mal anfahngen dich mit Assembler zu beschäftigen. Und dann bekommst du mit sehr viel Zeit und Aufwand vielleicht was auf die Beine was mehr kann als das von Dario.

Alleine schon weiter zu kommen als über den Bootloader ist höllisch kompliziert. Du willst ja nicht alle deine Programme in ASM haben, oder? Aber wiebekommst du dann C/C++ Bibliotheken auf dein OS? Wie sprichst du das Dateisystem an? und und und ...

Du bist doch großer Linux-Freak, schau dir die Kernel-Source an und dann schätze dein Vorhaben nochmal neu ein. Da sitzen viele viele Leute, die viel viel mehr Ahnung haben als du oder ich oder so gut wie jeder hier im Forum und brauchen trotzdem seht sehr Zeit um sowas zu schreiben.

Wir unterstützen hier jeden und wollen jedem Helfen, aber ich denke dazu gehört auch die Leute drber aufzuklären wenn ein Vorhaben schlicht und einfach zum scheitern verurteilt ist.

Greetz...
Sinac
 
Also wie gesagt, es ist halt kompliziert. Das Tutorial hier ist das womit ich angefangen habe und ich habs halt gleich verstanden weil ich Assembler, C und Java konnte. Das sind dann doch ein wenig komplexere Sprachen als PHP oder so. Das du weißt was ein Bootloader ist, ist nicht schlecht aber bitte, es ist keine Vorraussetzung. Wenn du das checken willst dann tu es. Schau dir lowlevel.net.tc an. Da findest du Hilfe und sogar Rat bei anderen. Aber das geht halt nicht von Heut auf Morgen. Das braucht Zeit, Ehrgeiz und ein wenig Durchhaltevermögen. Denn das Tutorial hier ist das einfachste von der Welt. Das ganze im PMode ist schwer. Du wolltest das wir dir helfen. Also hier der Ablauf wenn der PC startet OHNE Code weil den gibts überall zu hauf.

1. BIOS wird aus dem CMOS in den Speicher geladen. Es geht bis zur Adresse 0x7C00.
2. Das BIOS startet die Hardware.
3. Das BIOS geht nacheinander die Bootlaufwerke durch.
4. Wenn im letzten Word des ersten Sektors des Datenträgers der Wert 0x0AA55 steht wird von diesem Laufwerk gebootet.
5. Der Sektor wird an die Adresse 0x7C01 kopiert. Aufgrund der Größe eines Sektors von 512 Byte endet dieser Code bei 0x8000.
6. Ist der Code kopiert wird noch das Bootlaufwerk in Form einer Nummer in dl geschrieben.
7. Dann wird zum Code gesprungen.
8. Hier muss dein Bootloader stehen, der den restlichen Code lädt und dort hinspringt. Das heißt dann Kernel.
9. Dein Kernel muss jetzt sinnvollen Code enthalten, der ausgeführt werden kann.

Das ist der Ablauf. Den Code hirfür findest du im Tutorial auf dieser Seite. Die Programme die du brauchst sind nasm und rawrite. Für den Fall das du weitermachen willst solltest du deine Anfragen jedoch in einem dafür geeigneten Forum stellen wie eben unter dem Link, den ich dir schon mehrfach genannt habe. Dort findest du rat von Profis und bekanntlich lernt mans von denen am besten. Besser ist es aber du lernst erst mal C und Assembler so unter Windows und machst dann weiter. Das ist einfacher

Gruß stephsto
 
Danke erstmal für die Hilfe! :)
Das bringt mich schon weiter!

Ich habe auch nie behauptet, dass ich mich mal mit Windoof oder Linux anlegen will, aber ich möchte mal versuchen, so ein eigenes kleines Betriebssystem zu proggen! Auch wenns nur mit nem Text-Editor oder nem Musikprogramm oder sonstwas augestettet ist! Ich hab da so einen gewissen reiz, was das Programmieren anbekangt! Ich will einfach mal alles ausprobiert haben! ;) :P
Deswegen will ich das mal probieren!

MFG Pre

PS: Was da beim "hochfahren" so passiert, ist mir schon bekannt ;) aber trozdem danke nochmal für die Übersicht! :)
 
Ich hätte da mal noch eine Frage zwecks BS!

Ich, bzw. wir (mein vat und ich), haben folgendes vor:
Wir wollen unseren "Sportwagen" (Honda Prelude BA4 88er Bj.) nen Bissel auftunen. Der wird also Optisch verschönert und nen stärkerer Motor kommt rein, damit mans auchmal mit nem Porsche oder vlli. sogar mit diversen Ferraris aufnehmen kann! :P
Da is das Problem, dass der Tacho nur bis 230km/h geht! Da haben wir uns gedacht, bauen wir uns selbst einen! Da mein Vat KFZ-Schlosser is, ist von der Seite her alles klar! Jetzt zu dem Problem:
Wir wollen einen LCD-Monitor oder ähnliches anstelle von dem ganzen tacho-zeugs einbauen! Diese soll dann in irgendeiner Programmiersprache (Vorraussichtlich Java) den Tacho ausgeben! Die seite ist schon durch meinen Nachbar gedeckt, da der Programmieren kann! (außer Betriebssysteme :()
Nun ist das Problem, dass man ein Betriebssystem braucht, was so schnell wie möglich hochfährt! Am besten 3-5 Sekunden!

Nun die Frage: Ist soetwaswas möglich?! Kann man da einen "normalen" PC so abspecken, dass es das ganze zeug umgeht, und nur das lädt, was für das "Programm" gebraucht wird?! Würde mich über schnelle, und vor allem Klare und FREUNDLICHE Antworten freuen! Danke

MFG Pre
 
Naja, 3-5 Sekunden ist hart, aber mit entsprechender Hardware geht das schon recht schnell, dann mit Linux und n Kernel nur rein was muss. Unter 10 könnteste bleiben denke ich. Wesentlich schwerer wir das die Daten da rein zu bekommen, da ist Java vieleicht nicht das optimale und Daten vom Steuergeräüt abzugreifen ist eh nicht so das Kinderspiel, aber da habt ihr je nen Programmierer *g*
Aber ich glabe es gibt sowas auch schon halb fertig, aber ich meine noch nicht für so alte Autos (hat das überhaupt schon n Steuergerät? :)) Muste mal bei n paar Tuningfirmen anfragen, Kohle dürfte ja kein Kohle speilen wenn ihr sonen Umbau vorhabt :rolleyes:
 
Hi,
also eure Idee einen Tacho selbst zu bauen ist eigentlich ganz gut. Finde ich cool, dass sich
jemand so einer Herausforderung stellt, aber dein Ansatz ist leider fast undenkbar. Du willst im
Ernst einen ganzen Computer in dein Auto einbauen? Das halte ich für eine schlechte Idee. Ne riesen Kiste
für eine (für den PC) kleine Aufgabe.
Schon mal was von Mikrocontrollern gehört? Gehört wahrscheinlich schon, aber noch nie was damit zu tun
gehabt. Das schließe ich aus deiner Fragestellung.
Nun zum Thema. Ich hätte dir da nen Vorschlag!
So wie ich das verstanden habe willst du einfach nur die Geschwindigkeit deines Autos auf einem Display
anzeigen lassen, richtig? OK, das dürfte nich allzu schwer sein(für mich, da ich mich ausgiebig mit
Mikrocontrollern befasse).

Das würde dann ungefähr so ablaufen:
Man muss das sogenannte V-Signal des Autos anzapfen, also an einen Pin eines Mikrocontrollers
anschießen. Dann muss man natürlich wissen, wie das V-Signal auszuwerten ist, d.h. wie viele Impulse
bei welcher Geschwindigkeit gesendet werden. Dann brauchst du natürlich noch ein Display um
die Geschwindigkeit anzuzeigen. So, das wäre erst mal die Hardware(abgesehen von der Spannungsversorgung
des Mikrocontrollers und des Displays). Man muss halt ein kleines "Board" bauen. Aber im Großen und
Ganzen besteht es eigentlich nur aus dem Mikrocontroller und ein paar Widerständen und Kondensatoren.
So, jetzt zur Software. Der Controller macht logischerweise nicht alles von alleine sondern man muss ihn
programmieren. Dabei empfehle ich auf jeden Fall ASSEMBLER, da das die hardwarenähste Sprache ist.
Das Programm muss dann eben das V-Signal verarbeiten und den Wert an das Display ausgeben. Übrigens
um mit ASSEMBLER ein Display anzusteuern ist schon ganz schön was an Hirnschmalz nötig! Ist wirklich
nicht leicht. Das habe ich vor Kurzem auch gemacht. Ich dachte eine Woche lang, dass das Ding
kaputt sei, bis ich im Programm den Fehler gefunden habe: ich habe ein "b" mit einem "d" verwechselt.
Dadurch ging gar nichts. Aber das nur mal so nebenbei.

Aber alles in Allem ist das schon machbar. Aber nur mit viel Zeit und vielem Hirnschmalz!
Als Mikrocontroller empfehle ich dir einen AVR. Das ist eine Mikrocontrollerfamilie von ATMEL.
Davon gibts viele. Nimm deshalb am Besten einen ATmega16. Kostet 2€. Als Display empfehle
ich dir auf jeden Fall ein HD44780 kompatibles Display. Kostet so um die 15€.

So, das wäre mal das Wichtigste.
p.s. sorry für die nur teilweise ausgefüllten Zeilen. Hab das im Editor geschrieben

Gruß {red}ASM !
 
Ich hatte eigentlich gedacht die kleine "Workstation" zu nehmen, die ich hab! Is 1,5 mal so groß wie ein Autoradio und würde reichen! Aber das mit dem Microcontroller hat mein vati auch vorgeschlagen! Für die ausgabe sollte ein LCD Display (Breitwand) herhalten! Sollte ja nich nur die Geschwindigkeitsanzeige mit drauf, sondern eigentlich auch der ganze andere schnulli! Und der tacho sollte eigentlich auch "Analog" ausgegeben werden und nicht Digital ;-)!
Das Auto hat auf jeden fall ein steuergerät! Is für seine zeit mit einer der Fortschrittlichsten "Sportwagen" würde ich meinen! Siehe hier: http://www.prelude-fan.de/ba4.htm
Auserdem kommt da der Motor von dem jüngeren Accord AeroDeck (92er Bj) rein, den wir hier stehen haben! Der Prelude muß auch nicht heut und morgen fertich werden! Das könnte und wird sich auch mehrere Jahre hinziehen! Aber wenn der Fertich is, dann is er ein echter Hinkucken! :-D


Du scheinst da ja wirklich ne menge ahnung zu haben, wie man dich da so hört! Hast du ICQ oder sowas?! Würde mich riesig freuen, wenn du mir bzw. uns "Helfen" würdest! Wir teilen den gewinn bei erfolgreicher Serienproduktion auch 50:50 *grins*


Ne, aber würde mich über ne kontaktierung freuen! :-D
 
Zuletzt bearbeitet:
Hi,
also ich hoffe du hast das Grundprinzip verstanden. Wenn wir die Werte des V-Signals haben, also wie
viele Impulse pro Meter oder pro Km/h gesendet werden ist der Rest nicht mehr allzu schwer!
Meine ICQ-Nummer: 206-904-751

Also bis dann im ICQ. Bin aber nur sehr selten im ICQ, weil ich 56K habe, aber wir können dann ja E-mail
Adressen austauschen!

Gruß {red}ASM
 
Das mit dem V-Signal is absolut kein Problem hat mein vat gesagt! Hab dich geaddet! ;)

Falls da was schiefgelaufen is, meine is 146014736
 
Zurück