Avatar billede dcgeek Nybegynder
12. november 2002 - 16:35 Der 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.

Jeg bruger Mingw-compileren.
Avatar billede jelzin101 Praktikant
12. november 2002 - 16:44 #1
http://www.mega-tokyo.com/os/os-faq.html :) superlinket over alle superlink:0)
Avatar billede arne_v Ekspert
12. november 2002 - 17:04 #2
Strengt taget hører hverken fil-system eller
kommandoer rigtigt til i et operativ-system.

Et operativ-systems kerne består af:
  - process scheduling
  - memory management
  - IO system

Et fil-system noget der bygger oven på IO systemet
og bestemmer hvordan filer og directories gemmes
på disk.

Kommandoer (i Unix verden kaldet en shell) er et
specielt program som eksekverer kommandoer for
en bruger.

Jeg ville nok starte med at tage fat i sourcen for
et eksisterende operativ-system og kigge lidt der
på, hvordan man gør det.
Avatar billede djernaes Nybegynder
12. november 2002 - 21:34 #3
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester