1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Ich will ein Betriebssystem Programmieren, aber wie?

Discussion in 'Programmieren' started by yoda1234567890, Nov 24, 2010.

Thread Status:
Not open for further replies.
  1. Hallo erstmal,
    also ich bin neu hier und bla bla bla. Also ich kann C und C++ programmieren und weil mich die Betriebssystem Entwicklung mich sehr fasziniert, möchte ich ein Betriebssystem schreiben. Aber wie? Wie soll ich einen Bootloader programmieren? Wie soll ich im allgemeinen ein OS programmieren? Und wie soll ich das Setup des OS programmieren(also wenn ich ganz am Anfang F11 oder so was drücke, damit es von der CD startet!)
     
  2. kalweit

    kalweit Hüter der Glaskugel

    Was sollen wir jetzt dabei tun?
     
  3. kikaha

    kikaha Viertel Gigabyte

    Wenn Du C und C++ bereits programmieren kannst, dürfte die tragweite des Projekts ja klar sein.
    Und alleine schafft man das nicht so ohne weiteres.
    Ich will Dich nicht entmutigen, aber fang doch mt was kleinerem an.
     
  4. Naja ich kann zwar c und c++ aber ich weiß nicht, wie ich in c und c++ ein os programmieren soll, den ich hörte so dynamische speicherung, ...

    ich will ja auch nur ein zeilenbasiertes machen
     
  5. kazhar

    kazhar Viertel Gigabyte

    ich kann dir ja mal meinen selbstbau bootloader "borgen". der lädt aber nur aus einem diskettenimage

    Code:
    org 0x7C00
    
    start:
    cli                  ; Keine Interrupts verwenden!
    mov ax, 0x9000       ; Adresse des Stack speichern
    mov ss, ax           ; Stackadresse festlegen
    mov sp, 0            ; Stackpointer auf 0 setzen
    sti                  ; Jetzt lassen wir wieder Interrupts zu
    
    mov [bootdriv], dl   ; Bootlaufwerk merken
    
    call load            ; "Kernel" laden
    
    mov ax, 0x1000       ; 0x1000 ist die Speicheradresse unserer Shell
    mov es, ax
    mov ds, ax
    push ax
    mov ax, 0
    push ax
    retf 
    
    bootdriv db 0         ; Das Bootlaufwerk
    
    ; Mit dieser Funktion laden wir unsere Shell vom Bootlaufwerk
    load:
    push ds
    mov ax, 0
    mov dl, [bootdriv]
    int 13h
    pop ds
    jc load
    
    load1:
    mov ax,0x1000
    mov es,ax
    mov bx, 0
    mov ah, 2
    mov al, 5
    mov cx, 2
    mov dx, 0
    int 13h
    jc load1
    retn
    
    times 512-($-$$)-2 db 0
    dw 0AA55h 
    
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Da letzteres wohl nicht ansatzweise erkannt wird, darfst du "programmieren" im Zusammenhang mit C wohl streichen. :D
     
  7. 1.mit assembler möchte ich nix anfangen is einfach zu schwer(ich kann ja was ind er boot.ini was ändern

    2.ich will ein cd image start
     
  8. kalweit

    kalweit Hüter der Glaskugel

    ...tja, dann ist hier schon Endstation für dein OS.
     
  9. aber wie kann ichs mit der boot.ini dann mein os booten
     
  10. kazhar

    kazhar Viertel Gigabyte

    die boot.ini ist doch nur eine textdatei! die bootet erstmal garnix.

    der ntloader (=bootloader) liest da halt die daten raus was wo geladen werden soll.
     
  11. kalweit

    kalweit Hüter der Glaskugel

    Ich behaupte mal, du hast eine falsche Vorstellung von dem, was ein Betriebssystem überhaupt ist.
     
  12. Mmhh..Windows hat ein paar Millionen Zeilen Code, an dem Hunderte Programmierer Jahre programmieren und nicht mal dann ist es vollkommen :-) . Und da willst du so etwas allein realisieren? Mein Tipp: Vergiss es!
     
  13. Scasi

    Scasi Ganzes Gigabyte

    warum muss ein OS = "Windows" sein? die drei wichtigen Files einer Bootdiskette von DOS 6.xx haben ~ 310KB - ist doch in ein paar Tagen hinzukriegen ... :D
     
  14. Falcon37

    Falcon37 Ganzes Gigabyte

    @ TO
    Lass dich bloß nicht entmutigen.
    Billy-Boy hat schließlich auch mal ganz klein angefangen.
    Ganz wichtig ist auch ein eingängiger Name für dein neues OS. Ich würde Doors vorschlagen. ;)
     
  15. kikaha

    kikaha Viertel Gigabyte

    Nur, das Billy-Boy nie programmiert hat. Er hat gekauft und den richtigen Riecher im richtigen Moment gehabt. Nur ein Geschäftsmann, kein Programmierer.
     
  16. Falcon37

    Falcon37 Ganzes Gigabyte

    Was beim TO vermutlich aber auch Sinn macht.
     
  17. Scasi

    Scasi Ganzes Gigabyte

    > Ich würde Doors vorschlagen.

    :auslach: und schon ist die erste Falle aufgestellt! :cool: :D
     
  18. Falcon37

    Falcon37 Ganzes Gigabyte

    Das sieht Wikipedia aber anders:

     
  19. mike_kilo

    mike_kilo Ganzes Gigabyte

    in dem du dich erst mal an der Hardware orientierst, für die der OS-Kernel geschrieben wird. Schaff dir einen oneChip-Computer an mit µ-Controller, I/O-System, programmierbarem Speicher, usw. und übe dich in Eigenschaften von Interfaces, I/O-Bussystemen, Interrupts, Stackverhalten, Adressregisterverwaltung, ALU, blabla....
    Wenn du das aus dem Effeff beherrschst, kannst du mit implementiertem DOS oder µLinux weitermachen und üben. Beim letzteren kannst du dann auf dein C++ zurückgreifen.
    Bis dahin bist du dann alt genug, kannst dich gleich noch an der Uni für IT-Fächer einschreiben, um dein Projekt deinen Kommilitonen schmackhaft machen, damit die auch was zum ewigen debuggen deines Quellcodes haben, außerhalb der Partyzeiten.
    :ironie:
     
  20. X.MAN

    X.MAN Moderator

    Die Diskussion zu Bill und sein Betriebssystem geht HIER weiter...
     
Thread Status:
Not open for further replies.

Share This Page