12. november 2002 - 16:35Der er
2 kommentarer og 1 løsning
Lave sit eget OS
Jeg har 2 års erfaring med C++ samt Assembler. Hvor finder jeg nogle begynder tutorials til hvordan jeg udvikler mit eget lille OS? Det skal både være med kode, og forklaring osv. Bare et lille simpelt OS med kun få kommandoer, samt et lille simpel filsystem.
Nu siger du at dhar programmereti assembler, saa mon ikke at du har rimeligt styr paa hardwaren. Jeg gaar ogsaa ud fra at du vil lave det her paa en PC.
Hvad er et OS? DOS == Disk Operating System.
Mange mennesker siger at et OS er minimum en "schduler", et memory system og io kontrol. Det er sikkert ogsaa meget rigtigt, men f.eks. DOS er nu noget simplere end det.
Jeg har ikke lige et par gode links eller boeger, men der er skrevet side op og side ned om netop det her emne (Linus startede paa samme maade), og jeg vil under alle omstaendingheder anbefale dig at studere din hardware (PC'en) og forskellige typer af OS'er/scheduler'er.
Typisk laver man idag et OS som en multitasking scheduler med seperate tasks. Scheduleren kan vaere premtiv (dvs. at process skift er tvunget) eller den kan vaere kooperativ (dvs. at process skift er "frivilligt"). Du vil blive overrasket over hvilke systemer der er kooperative/frivillige :)
Et simpelt kooperaiv/preemtiv (kan baegge) operativ system er ucos (google efter den). Ucos er skrevet i ANSI C (mange OS'er er skrevet i ANSI C / ASM og ikke C++ .. grunden boer du selv taenke over) og kan kompileres under DOS (BC 3.1 er en god compiler) samt med gcc til mange microprocessor.
Memory system kan enten vaere "gammeldags" eller virtuelt. Jeg ville nok overveje at "glemme" dette indtil du har styr paa resten. En device model kan du ogsaa se i ucos, men i virkeligheden skal du "bare" taenke paa "faa" funktioner som kan loese alle IO problemer (Read/Write/Init/...).
Held og lykke.
Martin
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.