os programmierung



  • hi an alle!

    scheinbar gibt s ja doch etwas interesse an der os-programmierung. das freut mich echt, da so ein projekt ohne viel mithilfe eh nicht zu bewältigen ist.

    als erstes sollten die grundvoraussetzungen feststehen, bevor die planung beginnt. welche grundsätzlichen features sollte das os haben? in welcher sprache wird es hauptsächlich geschrieben? welche asm syntax sollte verwendet werden (da is vielleicht nasm mit der intel syntax klug, da es den für linux und windows gibt)?

    wichtig sollte auch sein, dass man neue features erst dann einbaut, wenn schon existierende wirklich gut funktionieren. nichts halb ausgegohrenes.

    wir brauchen dann auch eine möglichkeit uns mitzuteilen. nur den thread hier zu verwenden wird nicht ausreichen denk ich. irgendwelche ideen?

    ja ok. das is wohl das erste was wichtig ist. die planung sollte so gut wie möglich sein, da man dann hoffentlich weniger probleme beim implementieren hat.

    meine vorstellung ist, dass ein großer teil in c++ programmiert wird. nur wirklich wichtige teile sollten direkt in asm geschrieben werden (teile die man in c++ nicht schreiben kann bzw teile, die sehr perfomant sein müssen bzw teile die an bestimmte prozessoren angepasst werden sollten). der erste teil sollten die elementaren datentypen sein, wie queue, stack, string, array, list (vielleicht schon im kernel). sie sollten ein wichtiger teil des os darstellen und deshalb verstärkt aufmerksamkeit bekommen, da sie sich vom kernel bist hin zur api durchziehen sollten (einheitlich eben). hier bietet sich eben c++ an.

    paralell dazu könnte mit einem einfachen bootsektor, in dem schon in den protected mode geschalten wird, begonnen werden. dieser bootsektor ladet einen testkernel, der halt irgend eine dummy-meldung ausgibt. so wie "kernel loaded :-)" oder so. nur um zu zeigen, dass er funktioniert.

    ok jetzt bin ich auf eure reaktion(en) gespannt.



  • Hallo...selbst find ich mich nicht in der lage ein OS zu programieren.
    Dan nur wenig ASM erfahrung und nur mit altem prozessoren 🙂 (8085).
    C kann ich aber ich hab nicht genug zeit dafür... Jedoch kan ich dir die
    möglich keit auf meiner Seite bieten dein Projekt zu verwalten und publizieren.
    Project boards, sehr gute dokumentations möglichkeiten, todo listen, download section, maillinglist (private und öffentliche), gratis e-mail (unlimited space), schnelle leitung =>100 od. 10 Gbit usw...
    alles gratis => studenten seit (wir sind zwei). Da es sich um grosses projekt
    handelt würde ich euch dann nur english als sprache anraten. Linus Torvalds hat
    auch alles in englisch gemacht (glaub ich jedenfalls).
    Wenn du dich dafür interessierst sag mir bescheidunter:
    www.binary-pulse.org
    Byebye



  • Hi,
    ich hab etwas Ahnung in ASM und kann rel. gut C++! (Hab 2. Runde im BWInf erreicht [Hab mit C++Builder geproggt, kann aber auch C++!])

    Also ich würde gerne mitmachen! Zeig mal was du schon hat (fals du schon was hast)!

    Hab auch schon mal einen Bootloader in ASM geproggt!!

    Danke

    Alexander Sulfrian (sulfrian@gmx.net)

    PS: Könnte auch noch ne Kategorie OS-Programmierung in meinem Forum einrichten!

    Merry Xmas!



  • @info-student:

    du willst ein micro-kernel system schreiben??
    falls dein projekt wirklich "nur" zu spasseszwecken dienen soll denk ich mal ist das vertretbar. denn: microkernel ist besser strukturiert, der kern wird kleiner, viele dinge können im userspace laufen.

    das thema ist wirklich heiss diskutiert. schon linus und tannenbaum haben sich böse mails dazu geschrieben (minix(microkernel) vs linux(monolithischer kern).

    den jetzigen stand der betriebssysteme nach zu urteilen hat sich wohl der monolithische kern durchgesetzt, und zwar aus performance-gründen.
    linux ist von natur aus monolithisch, windows nicht von natur aus, ist aber im laufe der zeit mehr oder weniger so geworden (sehr viel ist in den kernel-space gewandert um die vielen context-switches zu vermeiden).....den unix systemaufbau kenn ich nicht 100% von daher verkneif ich mir nen kommentar. micr-kernel systeme wie mach gibts nicht wirklich mehr, bzw. haben keine große beseutung mehr.

    nächstes problem ist, dass die jungs die mal microkernel systeme geschrieben haben, echte betriebsystemhacker waren. da waren die performanceverluste wahrscheinlich noch kleiner, da die fiess assembler hacken konnten und alles zeitkritische so doch "etwas" schneller machen konnten.
    beim microkernel bekommst du halt probleme mit der kommunikation zwischen den einzelnen komponenten. wenn da immer zwischen kernel und userspace geswitchet werden muss.(bzw, ring x nach ring y....so war es glaub ich bei deinem ansatz)

    ja, zu guter letzt will ich dir noch etwas mut machen:

    hör nicht auf die "das schaffst du doch nie"-jungs. heutzutage ist es wohl unmöglich ein konkurrenzfähiges os zu schreiben, da gegen win, linux und unix nicht mehr viel zu machen ist. höchstens du hast einfach nen coolen ganz neuen ansatz. aber: minix war am anfang auch nur 10000 LOC gross. Linux ist auch mit ein paar assemblerroutinen geboren worden. von daher ist es jedenfalls sehr wohl möglich ein kleines os zum spass zu schreiben.
    wenn du viel in c++ schreiben willst würde ich vielleicht mal folgenden ansatz verfolgen(so hättest du vielleicht auch was neues):
    windows ist beispielsweise auch in gewisser weise objektorientiert. in dem sinne, dass alles als objekt dargestellt wird (stichwort: object-manager, etc.). es wird allerdings nicht objektorientiert programmiert(is ja in C und asm geschrieben). du könntest ja vielleicht mal checken inwiefern es möglich ist einzelne objekte im os wirklich als klassen zu programmieren. fraglich ist halt nur die performance. ist aber unter umständen ne coole sache. dann hättest du ein vollkommen objektorientiertes os. (klar ist, dass du um teile in assembler nicht rum kommst. und das ganze ist keine lange überlegte idee.....ist mir nur gerade beim schreiben gekommen).



  • so, im proggen bin ich noch net so weit.. nur nen bisschen c++, aber wenn s wirklich was wird kann ich evtl. space (webspace, ftp, http) zur Verfügung stellen zum down/upload von files.. also, dass auch andere mithelfen können oder sich das ziehen können, dann könnte ich evtl. auch ne page dazu machen 😃 😃 .. 🕶



  • @valen16:
    danke für das angebot. ich werd daran denken. vorerst wird sicher lange zeit nichts publiziert werden, da man ja zuerst was funktionierendes braucht 🙂

    @Alexander Sulfrian
    ebenso danke für s angebot. werd daran denken. derzeit hab ich nichts was wirklich teil des os sein sollte. ich hab mir das nur mit den datentypen überlegt und eine halbwegs schnelle string klasse geschrieben...

    @icke
    ja hab von diesen diskussionen gehört. ein grund für einen mikrokernel ist eben die bessere sturukturierung. man kann zb den netzwerkstack einfacher updaten ohne ein anderes system zu verändern. zb den sound oder so was. also sachen die ja eigentlich gar nichts miteinandern zu tun haben.

    du hast sicher recht. context-switches brauchen zeit. doch das brauchen sie in anderen betriebssystemen auch. außerdem hat das os ja neben dem kernel und dem user space noch einen 3. raum. in ihm laufen die daemonen. sie sollten schon mit genügend rechten ausgestattet werden, dass sie direkt auf die hardware zugreifen können. die frage ist nun, wo ich mehr context-switches hab als ein mikrokernel... kommunikation lauft über shared memory. die daemonen haben so viele rechte, dass sie jedem user space programm direkt daten in den schoß schreiben können. und das sollte auch so sein. ich möchte so wenig wie möglich kopieren im speicher. alles so direkt wie möglich.
    calls in den kernel direkt sollten mit sysenter und sysexit funktionieren sofern das der prozessor unterstützt. ich weiß, das können nicht viele.

    zu c++: ja genau so hab ich mir es gedacht. das ist sicher etwas neues, wenn die api nur mehr rein oop ist. das ist dann sicher ein unterschied zu den großen betriebssystemen und auch zu vielen anderen kleineren... (auch atheos is nicht in c++. nur die gui.)
    der nachteil ist, dass die api dann vollkommen neu ist und mit posix zb rein gar nichts zu tun hat. (was ja vielleicht auch nicht ganz schlecht ist).

    du scheinst dich gut auszukennen. würd mich freue, wenn man mehr von dir hören könnte, entweder neue ideen, oder kommentare zu anderen 🙂

    @ranus.net
    hmm das mit der homepage merk ich mir. aber vorerst ist das zweitrangig, weil für mich das os wichtig ist. nicht eine homepage. ein kleines forum so mit phpbb oder so wär vielleicht irgendwann praktisch.



  • Die Diskussion Monolith vs Micro ist übrigens hier nachzulesen (sehr interessant)
    Diskussion

    icke:
    linux ist von natur aus monolithisch, windows nicht von natur aus, ist aber im laufe der zeit mehr oder weniger so geworden (sehr viel ist in den kernel-space gewandert um die vielen context-switches zu vermeiden)

    Jap, Windows ist ein Microkernel allerdings ohne die Vorteile eines Microkernels:) Kann man wohl heute auch als Monolith bezeichnen.
    Denke das heutzutage der Monolith Linux eher der Idee eines Mikrokernel entspricht (kernel module).

    icke:
    micr-kernel systeme wie mach gibts nicht wirklich mehr, bzw. haben keine große beseutung mehr.

    Ja stimmt, aber Hurd ist doch bald fertig, das ist so weit ich weiß ein richtiger Microkernel. Vielleicht der Kernel der Post-Linux-Ära.
    Interessant in dem Zusammenhang auch die Aussage von Linus vor 11 Jahren:

    I can (well, almost) hear you asking yourselves "why?". Hurd will be
    out in a year (or two, or next month, who knows), and I've already got
    minix.

    Den Satz über Hurd kann man so wie er da steht auch Heute schreiben:) Na ja, ich denke diesmal wird nächste Jahr wirklich was brauchbares released...

    sorry nur halb "On Topic"

    bis dänn, O'Dog



  • klar das ist kein prob. aber ich kann euch evtl. da was einrichten : www.coders-zone.de www.coders-zone.de/vorlage

    das geht erst bald on ....



  • Ach wenn du irgend ein Forum oder ein online-Tool zum managen des Projekt suchst empfehle ich sourceforge. Hat alles was man braucht. Kannst dort eine HP mit PHP usw. haben. Forum, todo-listen, file-upload, dokumentation usw. Einzige bedingung ist, dass das ganze opensource sein muss. Aber das soll es ja wahrscheinlich sowieso werden.

    Gruss schoetz



  • Ich wollte eigentlich schon einmal ein eigenes OS programmieren. Leider habe ich gemerkt dass ich noch zuwenig konnte, um so etwas grosses zu realisieren. Inzwischen ist wieder einige Zeit vergangen, und ich habe einiges gelernt(erfahrung mit Unix-Systemen, Assembler-Grundkenntnisse, C, wenig C++).

    Ich würde mich auch zur Verfügung stellen 🙂

    < off Topic>
    @ Schoetz: Komme auch aus der Schweiz
    < /off Topic >

    [ Dieser Beitrag wurde am 28.12.2002 um 14:58 Uhr von darkpenguin editiert. ]



  • hmm ok

    es würde mich freuen, wenn sich jeder, der interesse am programmieren hat, einmal bei mir im icq meldet. oder halt per mail, wobei mir icq lieber wär, da es realtime ist.

    der grund für den persönlichen kontakt ist, dass ich alle leute einmal kennen lern und damit auch weiß, was sie machen wollen bzw welche ideen sie haben. ist das ok?

    icq uin ist 54419178.
    mail adresse ist mastamind@users.sourceforge.net.
    jabber id ist mastamind@jabber.at.

    was anderes hab ich nicht. sorry.


Anmelden zum Antworten