Operativsystemer tillader interaktion mellem mennesker og computer hardware og er færdige med tusindvis af tusindvis af kodeord. De er normalt oprettet med følgende programmeringssprog:
Lær at programmere, før du starter. Samlingssprog er grundlæggende, mens et andet supplement og lavt niveau sprog af stor betydning som C anbefales stærkt.
2
Bestem, hvilke medier du vil indlæse dit operativsystem. Det kan være en diskette, cd, dvd, pendrive, harddisk eller endda en anden pc.
3
Bestem, hvad du vil have dit OS til at gøre. Uanset om det er et fuldt operativsystem med en grafisk brugergrænseflade (GUI) eller noget mere minimalistisk, skal du vide, hvilken retning du tager, før du begynder.
4
Bestem hvilken processor platform dit operativsystem vil understøtte. Hvis du ikke er sikker på dette, er det bedst at fokusere på X86 (32-bit) processor platform, da de fleste computere bruger X86 platform processorer.
5
Bestem om du vil udvikle det helt alene eller om der er nogen tilgængelige kerner, hvorfra du vil udvikle dit operativsystem. Linux From Scratch er et projekt for dem, der ønsker at oprette deres egen Linux distribution, for eksempel. Tjek tipsene for adgang til et eksternt link.
Video: Dansk WordPress kursus #9 - Sådan laver du SEO i WordPress
6
Bestem, om du vil bruge din egen boot manager eller en eksisterende, som GRUB (Grand Unified Bootloader). Siden programmering af din egen bootloader vil give dig meget viden om hardware og BIOS, kan dette føre til ideen om kernel programmering selv. Tjek tipsene.
7
Bestem hvilket programmeringssprog der skal bruges. Selv om det er muligt at oprette et operativsystem med sprog som Pascal eller Basic, er det bedre at bruge et sprog som C eller Assembly. Forsamlingen er absolut nødvendig, da nogle vigtige dele af et operativsystem vil have brug for det. C ++ indeholder på den anden side nogle søgeord, der kræver et fuldt udviklet operativsystem, så det kan køre.
For at kompilere et operativsystem fra C eller C + + kode, vil du selvfølgelig bruge en compiler eller en anden. Du bør læse brugervejledningerne / dokumentationen til din valgte C / C ++ compiler, uanset om den er komprimeret med softwaren eller tilgængelig på distributørens hjemmeside. Du skal vide mange komplekse detaljer om din compiler, og for C ++-udvikling skal du vide om compilerens vildledende system og dets ABI. Du forventes at forstå de forskellige eksekverbare formater (ELF, PE, COFF, plain binær osv.) Samt forstå, at det proprietære format for Windows PE (.exe) er ophavsretligt beskyttet.
8
Bestem, hvad dit program programmeringsinterface (API) vil være. En god API til at vælge er POSIX, som er veldokumenteret. Alle UNIX-systemer har i det mindste delvis POSIX-support, så det ville være trivielt at havne UNIX-applikationer til dit operativsystem.
Video: Minecraft prison tutorial dansk: sådan laver du en celle
9
Bestem, hvad dit design ligner. Der er monolitiske kerner og mikrokerner. Monolitiske kerner implementerer alle tjenester i kernen, mens mikrokerner har en lille kerne kombineret med brugerdemoner, der udbyder tjenester. Generelt er monolitiske kerner hurtigere, men mikrokerner har bedre fejlisolering og større pålidelighed.
Video: Sådan laver du en elektrisk tænder til nytårsraketterne
10
Overvej at udføre udviklingsarbejdet sammen med et hold. På denne måde vil der blive brugt mindre tid til at løse en større mængde problemer, hvilket resulterer i et bedre operativsystem.
11
Rengør ikke harddisken helt. Husk at ved at rense din disk helt, vil du slette alle dine data, og det er irreversibelt! Brug Grub eller en anden boot manager til at bruge dual-boot til at starte systemet såvel som et andet system, indtil dit system er helt komplet og funktionelt.
12
Start nedenunder. Start med små ting som at vise tekst og afbrydelser, før du går videre med mere komplekse aspekter som hukommelsesstyring og multitasking-funktioner.
13
Gem en sikkerhedskopi af den sidste funktionelle kildekode. Hvis noget går galt galt med den nuværende version, eller hvis din udviklingscomputer har problemer og ikke kan starte eller starte, er det en god idé at få en anden kopi, så du kan fortsætte med at arbejde eller fejlfinding.
14
Overvej at teste dit nye operativsystem på en virtuel maskine. I stedet for at genstarte computeren hver gang du foretager ændringer, eller du skal overføre filer fra din udviklingsmaskine til din testmaskine, kan du bruge virtualiseringssoftware til at installere dit operativsystem på en virtuel maskine og køre den selvom dit nuværende OS fortsætter med at rulle. Virtualisering applikationer omfatter VMWare (som også har en gratis version for servere), den åbne kilde alternative Bochs, Microsoft Virtual PC (ikke kompatibel med Linux) og xVM VirtualBox. Tjek tipsene for mere information.
15
Slip en "kandidatversion" (også kendt som udgivelseskandidat eller simpelthen RC). Dette giver brugerne mulighed for at advare dig om mulige problemer med dit operativsystem.
16
Et operativsystem kan også være brugervenligt ud fra brugerens synsvinkel.
tips
Start ikke et OS-udviklingsprojekt, samtidig med at du begynder at lære programmering. Nej. Overhovedet ikke. Hvis du ikke længere kender C, C ++, Pascal eller et andet passende sprog, herunder pegepanipulation, lavt bit manipulation, bit børstning, detaljer om monteringssprog osv., Vil du ikke være klar til at udvikle en operativsystem.
Hvis du vil have en enkel måde, skal du overveje Linux-distributioner som Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS mklivecd eller SUSE Studio og SUSE KIWI. Det operativsystem, du opretter, tilhører det firma, der har startet den oprindelige service (selv om du har ret til at distribuere det frit, ændre det og udføre det på den måde, du vil følge GPL-licensen).
Når hele udviklingen er afsluttet, skal du beslutte, om du vil frigive kildekoden som en open source-applikation eller gøre den ejer.
Brug websteder som OSDev og OSDever som en måde at hjælpe din egen OS udvikling med. Men vær venlig at forstå, at OSDev.org-fællesskabet foretrækker dig at bruge projektwiki, ikke deltage i forummet. Hvis du ønsker at deltage i forummet, er der nogle forudsætninger, der skal overholdes. Det er nødvendigt for dig at kende programmeringssprogene C eller C ++ og x86 Assembly grundigt. Du skal også forstå generelle og komplekse programmeringskoncepter som trådlister, rækker mv. OSDev-samfundet, i sine regler, siger udtrykkeligt, at fællesskabet ikke er der for at tjene som barnepige eller mentor til begynderprogrammer. Hvis du forsøger at udvikle et operativsystem, er du nødt til at sige, at du forventes at være en slags "gud" til programmering. Det er også nødvendigt, at du har læst processorhåndbøgerne, så du kan forstå processorarkitekturen, du har valgt - det være sig x86 (Intel), ARM, MIPS, PPC osv. Håndbøger til en bestemt processorarkitektur kan nemt findes ved hjælp af Google-søgemaskinen ("Intel-håndbøger", "ARM-manualer" osv.). Gå ikke ind på OSDev.orgs forum og begynde at stille oplagte spørgsmål. Dette resulterer kun i svar på "Læs stoffet i håndbogen". Du bør prøve at læse Wikipedia og manualerne for de forskellige værktøjer, du vil bruge.
Det kan være et godt valg at oprette en helt ny partition til OS udvikling.
Kontroller potentielle deadlocks og andre fejl eller fejl. Fejl, deadlocks og andre problemer vil påvirke dit operative systems projekt.
Du har ikke et komplet system om to uger. Start med et operativsystem, der kan starte, og gå videre til de kølige ting.
Hvis du gør noget virkelig dumt, som at skrive tilfældige byte til tilfældige I / O-porte, vil du "kollidere" dit operativsystem og kan (i teorien) beskadige din hardware. For en demonstration, kør `cat / dev / port` under Linux som rootbruger. Din computer "vil" crash.
Sørg for at implementere sikkerhedsfunktioner som din højeste prioritet, hvis du nogensinde vil bruge dit OS til noget.
At have operativsystemet skrevet uforsigtigt på din harddisk kunne ødelægge dig helt. Pas på.
Forvent ikke at udvikle et ordentligt operativsystem er en nem opgave. Der er ofte komplekse indbyrdes afhængigheder. For at gøre et operativsystem, der er i stand til at håndtere flere processorer, skal dets hukommelsesstyring f.eks. Have "låse" mekanismer for at forhindre flere processorer i at få adgang til samme ressource på samme tid. Låsene, der bruges til dette, kræver tilstedeværelse af en planlægger eller arrangør for at sikre, at kun én processor får adgang til en kritisk ressource ad gangen, og at alle andre er i venteposition. Denne scheduler afhænger af tilstedeværelsen af en Memory Manager. Dette er en dødbringende afhængigheds sag. Der er ingen standard måde at løse problemer på som dette, alle operativsystem programmør skal have de nødvendige færdigheder til at skabe deres egne måder at håndtere med dette.
Video: [Dansk] Gmod Hvordan man Laver et Simpelt Beskyttelses system I Wiremod
Nødvendige materialer
En god computer
En arkitekturprocessor, som du vil udvikle
RAM nok til en virtuel maskine
Et "vært" operativsystem (bruges til at udvikle Assembler (og andre) kildekoden samt kompilere og pakke det i sine indledende faser - i sidste ende kan eget OS være dets egen vært)
En kode editor med farvesyntax (brug hvis du ikke har en IDE)