Operativ System

Tags:    os

<< < 12 > >>
Kære udviklere,

Nu har jeg ikke helt vildt meget kendskab til hverken C, C++ eller ældre programmerings sprog. Men jeg er ret interesseret i at høre om hvordan det forløber når man skal opbygge et operativ system (OS) - ligesom Linux mm.

Jeg går på Web-integrator uddannelse i Roskilde, så jeg er igang med at uddanne mig som ASP.NET C# programmør, og har baggrund med en del PHP. Jeg sidder selv derhjemme og læser lidt på C++ da det virker meget spænende.

Men hvis der er nogle kloge hoveder der kan forklare mig (gerne i step by step) om hvordan man starter på et OS, så ville jeg blive rigtig glad. For er meget interesseret i at lærer om hvordan det forløber da jeg har tænkt mig at bygge et en dag.

Eksempler kunne være;

Hvilken Code Editor?
Hvilket sprog?
Hvilken platform? (VirtualBox mm.)

og nogle andre ting. Jeg ville blive super glad hvis der bare nogle der ville forklare mig lidt om det.



12 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 14 karma
Sorter efter stemmer Sorter efter dato
Hej,

I mine unge dage (vent... det lyder forkert...) var Maurice Bach' lille røde "The design of the Unix operating system" den foretrukne lærebog, men jeg ved ikke om den stadig kan købes



Alle kan udvikle et OS, hvis de vil lægge den krævede tid. Jeg selv har en datamatiker bag mig og jeg startede også med noget OS udvikling for en fem år siden men droppede det da det gik for godt :-)

Men det er et gigantisk arbejde, så medmindre du vil bruge AL din tid de næste par år, så lad hellere være...lav hellere et par Linux kerne moduler.

That being said, små dele af et OS laves i assembly men langt størstedelen kan laves i C/C++, og det er meget hurtigere at udvikle i. Linux er lavet i assembly og C, Windows i assembly/C/C++

Du skal nok starte med noget teori, og her er der mange bøger, som kan hjælpe:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/0136006639
http://www.amazon.com/Operating-Systems-Internals-Design-Principles/dp/013230998X

De kan alle anbefales.



Indlæg senest redigeret d. 06.03.2012 10:09 af Bruger #2695
Må sku give Brian ret. Datamatiker != Datalogi uddannelsen. Datalogi studiet er på et meget højere niveau. Som eksempel kan gives, at datamatikkere bruger Databaser i dagligdagen mens Dataloger udviklere databaser i dagligdagen
Dog forhåbentlig ikke forstået på den måde at datamatiker er en dårlig uddannelse :P

Men er enig. Hvis du virkelig gerne vil lære at 'lave' OS, skal du nok ikke regne med at få det lært ved datamatiker uddannelsen. Vil dog sige at du sagtens kan få udbytte af datamatiker uddannelsen, da selvom du lærer at bruge databaser, så giver det også en forståelse af hvordan du kan udvikle databaser. Ligeledes med operativsystemer. Du har dog mulighed for at videreuddanne dig til datalog, efter datamatiker, hvis det er det du ønsker, men tror faktisk mere at en datalog er arkitekten, mens en computer ingeniør er entreprenøren, altså ham der udvikler selve OS, så måske skulle du tænke mere over i Ingeniør studierne :P



Hvilken Code Editor?
Hvilket sprog?
Hvilken platform? (VirtualBox mm.)

Dine spørgsmål bærer lidt præg af at du ikke helt er klar til udfordringen... Start med at sætte dig ind i eksisterende Operativ Systemers opbygning. Linux ville være et oplagt valg, da det er open source og derved nemmere at studere.

Idéen om at lære operativ systemer at kende gennem at kode sit eget er en god nok idé i teorien. Men i praksis, så vil du næppe få særligt meget ud af det. Det kræver en mere dybdegående indsigt i emnet- og medmindre du rent faktisk har en revolutionær ny idé, som ikke kan implementeres i et eksisterende system, så vil du aldrig få noget ud af at skrive dit eget.

Så mit råd må være at du enten finder et andet projekt, eller satser på at opnå forståelsen af OS'er ved at studere et der allerede findes...



Ved ikke vildt meget om det, men faldt da over denne artikel for et par uger siden.

Håber du kan bruge det til noget, og held og lykke med at få bygget dit eget system! :)



At bygge et operativsystem er jo en videnskab i sig selv og kunne være et projekt på datalogi-uddannelsen.

Ofte - hvis ikke altid - er det udviklet i et lavniveausprog. Så jeg vil påstå, at du i stedet for C++ skal udvikle det i C og assembler, for ikke, at være afhængig af et andet operativsystem når det eksekveres.



@Daniel
Tak for linket! Jeg vil kigge det godt igennem.

@Brian
Det tænkte jeg nok. Har læst mig frem til at det ville være bedst med C istedet for C++. Nu hvor du skriver at det vil være et projekt på en datalogi-uddannelse kan jeg informerer om at jeg skal på datamatiker uddannelse efter min web-integrator uddannelse, så tror at jeg vil komme igennem det. Det ville bare være lidt nemmere hvis jeg allerede havde noget kendskab til de sprog jeg skulle igennem - allerede nu. Ligesom at jeg havde god kendskab til php før at jeg startede på min web-integrator uddannelse.

Men tak for begge jeres hjælp :).



På datalogiuddannelse er det bare meget teoretisk og ikke udelukkende at kode det. Så jeg vil gætte på, at du ikke kommer igennem det samme på datamatikeruddannelsen :-)



Må sku give Brian ret. Datamatiker != Datalogi uddannelsen. Datalogi studiet er på et meget højere niveau. Som eksempel kan gives, at datamatikkere bruger Databaser i dagligdagen mens Dataloger udviklere databaser i dagligdagen



"The design..." som Jørgen omtalte kan stadig købes, og den er super god men temmelig outdated...der er sket en hel del siden dengang midt i firserne, da den udkom :-)



<< < 12 > >>
t