Wkunl

Hoe maak je een computer besturingssysteem te maken

Besturingssystemen kunnen mensen communiceren met computer hardware, zijn ze gemaakt van 10.000's van 100's van regels code. Ze zijn meestal gemaakt met de volgende programmeertalen: C, C + + en assemblage.

Stappen

Hoe maak je een computer besturingssysteem te maken. Leren programmeren voordat u begint.
Hoe maak je een computer besturingssysteem te maken. Leren programmeren voordat u begint.
  1. 1
    Leren programmeren voordat u begint. Assembler is van vitaal belang, is een andere aanvullende laag niveau taal zoals C sterk aanbevolen.
  2. 2
    Beslis welke media u wilt uw besturingssysteem te laden op. Het kan een diskette zijn, cd-station, dvd-schijf, flash drive, een harde schijf, of een andere pc.
  3. 3
    Bepaal wat u wilt dat uw besturingssysteem te doen. Of het is een volledig in staat besturingssysteem met een grafische gebruikersinterface (GUI) of iets een beetje meer minimalistische, moet u weten welke richting je nemen het vóór aanvang.
  4. 4
    Richten welke processor platform uw besturingssysteem zal ondersteunen. Als u niet zeker bent, uw beste inzet is om te richten op de X86 (32 bit) processor platform, zoals de meeste computers gebruiken X86 platform processors.
  5. 5
    Beslissen of u liever het allemaal zou doen zelf van de grond af, of indien er een bestaande kernel je wilt bouwen bovenop. Linux from Scratch is een project voor degenen die graag hun eigen Linux distro te bouwen, bijvoorbeeld. Zie Tips voor een externe link.
  6. 6
    Beslis of je gaat je eigen bootloader of een vooraf gemaakte ene zoals grand unified bootloader (GRUB) te gebruiken. Terwijl de codering van uw eigen bootloader zal veel kennis van de hardware en de BIOS te geven, kan het u terug op de programmering van de eigenlijke kernel. Zie Tips.
  7. 7
    Bepaal wat programmeertaal te gebruiken. Hoewel het mogelijk is om een ​​besturingssysteem te creëren in een taal als Pascal of BASIC, zal je beter af met behulp van C of Assembly zijn. Assembly is absoluut noodzakelijk, zoals sommige vitale onderdelen van een besturingssysteem nodig hebben. C + +, anderzijds, bevat zoekwoorden die een volledig geïntegreerde besturingssysteem moeten draaien.
    • Om een ​​besturingssysteem compileren van C of C + +-code, je wordt uiteraard gebruik van een compiler of een ander. Lees daarom de gebruiksaanwijzing / handleiding / documentatie voor uw gekozen C / C + + compiler, of het komt verpakt met de software of is beschikbaar op de website van de distributeur. U moet veel ingewikkelde dingen over je compiler kennen en, voor C + + ontwikkeling, moet u weten over de compiler mangelen regeling en de ABI. U wordt verwacht om te begrijpen van de verschillende uitvoerbare formaten (ELF, PE, COFF, gewoon binair, enz.), en te begrijpen dat de Windows-eigen formaat, PE (. Exe), is auteursrechtelijk beschermd.
  8. 8
    Beslis over uw application programming interface (API). Een goede API te kiezen is POSIX, die goed is gedocumenteerd. Alle Unix systemen hebben ten minste gedeeltelijke ondersteuning voor POSIX, dus het triviaal om poort Unix programma's om uw besturingssysteem zou zijn.
  9. 9
    Beslis over uw ontwerp. Er zijn monolithische kernels en microkernels. Monolithische kernels voeren alle diensten in de kernel, terwijl microkernels hebben een kleine kernel in combinatie met gebruiksvriendelijke daemons uitvoering van diensten. In het algemeen monolithische kernels sneller, maar microkernels betere foutisolatie en betrouwbaarheid.
  10. 10
    Denken over de ontwikkeling werken in een team. Op die manier is er minder tijd nodig is om meer problemen op te lossen, waardoor een beter OS.
  11. 11
    Niet uw harde schijf volledig veeg. Vergeet niet, zal vegen de drive duidelijk uit al uw gegevens en is onomkeerbaar! Gebruik GRUB of een andere boot manager te dual-booten van uw systeem met een ander OS tot de jouwe is volledig functioneel.
  12. 12
    Begin klein. Begin met kleine dingen, zoals het weergeven van tekst en onderbreekt voordat u naar dingen, zoals geheugenbeheer en multitasking.
  13. 13
    Bewaar een back-up van de laatste werkende bron. In het geval dat er iets vreselijk mis gaat met de huidige versie of je ontwikkeling pc crasht en niet in staat is om op te starten, is het een uitstekend idee om een ​​tweede exemplaar om mee te werken / te lossen hebben.
  14. 14
    Denk aan het testen van uw nieuwe besturingssysteem met een virtuele machine. Eerder dan rebooten van je computer elke keer dat u wijzigingen hoeven te worden of de overdracht van bestanden van je ontwikkeling computer naar uw test machine, een virtuele machine applicatie gebruiken om uw besturingssysteem draaien terwijl uw huidige OS loopt nog steeds. VM toepassingen zijn onder VMWare (die ook een vrij beschikbare server product), de open-source alternatief Bochs, Microsoft Virtual PC (niet compatibel met Linux), en xVM VirtualBox. Zie Tips voor meer informatie.
  15. 15
    Los van een 'release candidate. " Dit stelt gebruikers in staat om u te vertellen over mogelijke problemen met uw besturingssysteem.
  16. 16
    Een besturingssysteem kan gebruiksvriendelijk te zijn.

Tips

  • Als u op een eenvoudige manier, overwegen Linux distributies zoals Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS mklivecd of SUSE Studio en SUSE KIWI. Echter, het besturingssysteem dat u te maken behoort tot de onderneming die voor het eerst de service begon (hoewel je rechten om het vrij te verspreiden, wijzigen en voer het uit hebt maar je wilt onder de GPL).
  • Begin niet met een besturingssysteem project om te leren programmeren beginnen. Nee. Uh-uh. Niet doen. Als u nog niet weet C, C + +, Pascal, of een andere geschikte taal binnenstebuiten, waaronder wijzer manipulatie, low-level bit manipulatie, beetje verschuiven, inline assembler, etc., je bent niet klaar voor de ontwikkeling van het besturingssysteem.
  • Immers ontwikkeling is gedaan, beslissen of u wilt de code als open source of proprietary vrijgeven.
  • Het kan een goede keuze om een compleet nieuwe partitie te maken voor de ontwikkeling van het OS.
  • Controleer op mogelijke impasses en andere insecten. Bugs, impasses en andere problemen zal uw besturingssysteem project beïnvloeden.
  • Gebruik websites zoals OSDev en OSDever om u te helpen uw eigen besturingssysteem te ontwikkelen. Let wel dat voor de meeste doeleinden, zou de OSDev.org gemeenschap liever dat u zich aan met behulp van hun wiki, en niet toetreden tot het forum. Als je besluit om het forum te sluiten, er zijn voorwaarden: U bent verplicht om grondig te kennen C of C + +, en x86 assembler. Je moet ook begrijpen het algemeen en complexe programmering concepten zoals Linked Lists, Wachtrijen, enz. De OSDev gemeenschap, in haar reglement, uitdrukkelijk dat de gemeenschap niet rond om nieuwe programmeurs babysitten. Als u probeert om een ​​besturingssysteem te ontwikkelen, is het vanzelfsprekend dat je verwacht dat je een programmeertaal zijn "god." U bent ook verplicht lees de processor handleidingen voor de processorarchitectuur die u hebt gekozen te hebben, of x86 (Intel), ARM, MIPS, PPC, etc. kan de handleidingen voor een processorarchitectuur gemakkelijk gevonden worden met behulp van een Google-zoekopdracht ("Intel Manuals "," Do ARM manuals "etc). niet toetreden tot de OSDev.org forums en beginnen vragen voor de hand liggende vragen. Het zal alleen maar resulteren in "Lees de f *** ing Manual" antwoorden. Je moet proberen het lezen van Wikipedia, en de handleidingen voor de verschillende tools die u wilt gebruiken.
  • Voor meer informatie, zie deze bronnen.

Waarschuwingen

  • Je hoeft niet een volledige systeem in twee weken. Begin met een besturingssysteem dat laarzen, ga dan naar de leuke dingen.
  • Als je iets heel stoms doen, willen schrijven willekeurige bytes aan willekeurige I / O-poorten, zult u uw besturingssysteem crasht, en kan (in theorie) bak uw hardware.
  • Zorg ervoor dat de veiligheid functies te implementeren als uw hoogste prioriteit als je ooit wilt gebruiken voor iets.
  • Het hebben van uw besturingssysteem onzorgvuldig geschreven naar de harde schijf kan het volledig corrupt. Wees voorzichtig.
  • Verwacht niet dat een goed besturingssysteem eenvoudig zal zijn om te bouwen. Er zijn, heel vaak, ingewikkelde onderlinge afhankelijkheden. Bijvoorbeeld, om een ​​besturingssysteem in staat om meerdere processors te behandelen te maken, moet uw Memory Manager hebben "locking" mechanismen om meerdere processors geen toegang tot dezelfde bron op hetzelfde moment. De "vast" voor dit vereist de aanwezigheid van een scheduler ervoor zorgen dat slechts een processor toegang tot een belangrijk hulpmiddel op elk moment en alle anderen die wachten. Maar de planner is afhankelijk van de aanwezigheid van een Memory Manager. Dit is een geval van een vastgelopen afhankelijkheid. Er is geen standaard manier om dit soort problemen op te lossen; elk besturingssysteem programmeur is naar verwachting bekwaam genoeg om uit zijn eigen manier van omgaan met het.

Dingen die je nodig hebt

  • Een goede computer
  • Een CPU voor de architectuur wordt u ontwikkelen
  • Voldoende geheugen (RAM) voor een virtuele machine
  • Een 'host' OS (gebruikt om de Assembler ontwikkelen (en anderen) broncode evenals bouwen en te verpakken, terwijl het in een vroeg stadium; uiteindelijk je eigen OS kan zijn gastheer zijn)
  • Syntax-kleuring code-editor (te gebruiken als u geen Integrated Development Environment)
  • Een compiler
  • Een cd / dvd-station