Gå til innhold

Lage operativsystem? Hva bør man kunne/Tenke på?


Anbefalte innlegg

Videoannonse
Annonse
Hei.

 

Om man skal lage et operativsystem, hvilke programeringsspråk ville vært best?

C? C+ , C ++ `? Asembely?

 

Hva burde man isåfall lære seg? Jeg er lysten på å lære det. Ikke operativsystem i førsteomgang kanskje,

men ettervert.

 

Hva bør man tenke på når man lager det?

 

Du ha en liten bit i assembly som kan "bane vei" for resten av operativsystemet, som du kan skrive i et annet språk. Hvilket er mest smak og behag. Du kan velge i:

Assembly

+ Gøy

+ Enkelt

- Rotete i lengden

- Kjedelig hvis du må skrive basis-funksjonalitet (kan unngås ved å bruke ferdig kode)

 

C

+ Alle bruker det, du kan bare klippe og lime fra en tutorial og så har du ditt eget OS!

+ Den lange assembly-koden kan skrives tilsynelatende mye kortere i C

- Alle bruker det, du kan bare klippe og lime fra en tutorial og så har du ditt eget OS :(

- Du skriver om fra assembly til C for å få en kortere kode, men ender opp med en lengre kode, ettersom C ikke har skikkelige makroer

- Kompilering er sykt tregt sammenlignet med andre språk, og det er dessuten "nødvendig" med make-filer

 

C++

Yuck.

 

Pascal

+ C-kode kan lett oversettes til Pascal, og du lærer mer av å oversette enn av å bare klippe og lime

+ Makefiler ikke nødvendig (pascal-kompilatoren vet selv hva som må rekompileres)

+ Headerfiler ikke nødvendig (autogenereres av kompilatoren)

+ De fleste skrivefeil fanges opp av kompilatoren (i motsetning til C, der en skrivefeil ofte resulterer i et lovlig program som gjør noe rart)

+ Du kan le av C-programmerere

- Du blir ledd av av C-programmerere

 

Sandkasse-språk

C#, Java, Lisp, JavaScript, Python, etc...

Disse språkene krever et fungerende operativsystem for å kjøre, og du skal bruke dem til å skrive et operativsystem. Det betyr bare en ting: du får endel problemer. Dette er for spesielt intereserte.

 

Hva bør man tenke på når man lager det?
Det pleier å hjelpe å tenke på noe hyggelig. :!: Hovedsaken er at du

- har en visjon om hvordan du vil at systemet skal fungere som en helhet

- ikke innbiller deg at du virkelig noengang vil bli ferdig

 

 

Edit: Kanskje jeg skulle skrive en tutorial? Problemet er at jeg vet jo ikke hvilket språk folk vil ha eller hva slags operativsystem de vil ha.

Endret av tsg1zzn
Lenke til kommentar
Sats på C om du skal skrive tutorial! :D
Jeg liker egentlig ikke C (forbaska mye kode for å gjøre ting som burde vært gjort automatisk). Problemet er at det ikke finnes noe ordentlig alternativ, så da blir det vel C uansett...

Men en god del gjøres best i assembly, og man må dessuten ha et visst begrep om hvordan C og assembly henger sammen. Så start med assembly (viktig: 32-bit) hvis du ikke kan det (og vil programmere OS).

 

kanskje baser på at brukeren gjør mest selv? og mulighet til å instalere oppdatering vie en kommando``? update http://server//

Du kan starte med å jekke ned kravene litt. :) Vær fornøyd om du får noe på skjermen i det hele tatt den første uka. En viktig del å merke seg er at det å skrive et operativsystem regnes for å være en av de vanskeligste programmeringsoppgavene, og samtidig at det tar mye mer tid enn dyktighet å gjøre det. Altså: Tålmodighet er en dyd. Svært få kommer så langt at nettverk virker (jeg er langt i fra :( ).

Lenke til kommentar
Sandkasse-språk

C#, Java, Lisp, JavaScript, Python, etc...

Disse språkene krever et fungerende operativsystem for å kjøre, og du skal bruke dem til å skrive et operativsystem. Det betyr bare en ting: du får endel problemer. Dette er for spesielt intereserte.

 

Singularity

Cosmos

 

Det er dukket opp en del operativsystemprosjekter som bruker C#.

Singularity i det minste bruker unsafe kode for å programmere hardware, noe de andre språkene du nevnte ikke støtter.

 

I Cosmos kompileres C# koden til maskinkode, og ikke til CIL, så det kreves ikke noe OS på forhånd for å bruke det.

Men du har helt rett, OS skrevet i disse språkene er for spesielt interesserte.

 

Men ddet kan være morsomt å kikke på Cosmos for de som er interessert i det, det er som et OS API på en måte. Du har masse klasser du kan bruke, og når du kompilerer i Visual Studio, får du en .ISO fil du kan mounte i et virtualiseringssystem.

 

Edit: hvis en skal lage et nytt OS i dag, ser jeg ikke helt greia med å skrive 32-bit, er det ikke bedre å bare gå for 64-bit? Nå har jeg dog ingen erfaring med 64-bit assembly.

Endret av GeirGrusom
Lenke til kommentar
Edit: hvis en skal lage et nytt OS i dag, ser jeg ikke helt greia med å skrive 32-bit, er det ikke bedre å bare gå for 64-bit? Nå har jeg dog ingen erfaring med 64-bit assembly.

Der sa du det. :thumbup:

 

Og forresten, ikke forsøk å skriv ditt eget OS. Bidra heller til eksisterende.
Det er vel mer gøy å kaste hestemøkk vilt rundt seg enn å vaske etter andre som har gjort det før deg... Endret av tsg1zzn
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...