Hoe een besturingssysteem voor een computer te ontwikkelen

Besturingssystemen die zijn samengesteld uit honderdduizenden rijen van de code kunnen gebruikers communiceren met computerapparatuur. Ze zijn meestal geschreven in programmeertalen C, C ++ en Assembler.

Stappen

  1. Titel afbeelding Maak een computerbesturingssysteem Stap 1
een. Om te beginnen met het leren van programmering. Kennis van de assembler moet ook worden geadviseerd om het concept van andere extra programmeertalen van een lager niveau te hebben, bijvoorbeeld met.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 2
    2. Bepaal welk apparaat u het besturingssysteem wilt downloaden. Het kan een CD, DVD, Flash-geheugenapparaat, harde schijf of een andere computer zijn.
  • Titel afbeelding Maak een computer besturingssysteem Stap 3
    3. Bepaal welke u uw besturingssysteem wilt zien. Mocht dit de volledige versie zijn van het besturingssysteem met een grafische gebruikersinterface (GUI) of, misschien iets meer minimalistischer? U moet weten in welke richting om te bewegen, vóór het begin van het proces.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 4
    4. Geef aan welk processorplatform uw besturingssysteem zal ondersteunen. AI-32 en X86_64 zijn de twee meest voorkomende versies voor personal computers, zodat ze als de beste keuze kunnen worden beschouwd.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 5
    vijf. Bepaal of u erop liever alles zelf wilt doen, of er zijn kernels, op basis waarvan u het systeem wilt zuigen. Linux vanaf nul - een project voor degenen die bijvoorbeeld wensen, creëren hun eigen Linux-distributie.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 6
    6. Selecteer, ga je je eigen bootloader gebruiken of vooraf gecreëerde Unified System Loader Grand Unified Bootloader (GRUB). Aangezien de codering van een eigen downloadprogramma uitgebreide kennis vereist op het gebied van computerbeveiliging en BIOS, kan het het programmeringsschema van de huidige kern verplaatsen.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 7
    7. Neem een ​​beslissing over de programmeertaal die gaan gebruiken. Natuurlijk is het vrij mogelijk om het besturingssysteem in een dergelijke taal te ontwikkelen als Pascal of Basic, maar het heeft de voorkeur om met of Assembler te schrijven. Assembler is absoluut noodzakelijk, t. Tot. Sommige belangrijke delen van het besturingssysteem vereisen de kennis van deze specifieke taal. C ++, aan de andere kant, bevat trefwoorden die nodig zijn om de volledige versie van het OS te starten.
  • Om het besturingssysteem te monteren met C of C ++ -codes, zult u zeker één compiler gebruiken, dan een andere. Dit betekent dat u de gids / instructies / documentatie voor de geselecteerde C / C ++ -compiler moet lezen, die wordt geleverd met de software of die beschikbaar is op de DISTRIPTER-website. Je zult bovendien veel complexe dingen over de compiler moeten leren om C ++ te verbeteren om zijn schema en abi te leren. Er wordt van u verwacht dat u de verschillende formaten van uitvoerende taken (elf, PE, COF, Gewoon binary en T begrijpt.NS.) En merk op dat uw eigen Windows-formaat, PE (.EXE) Copyright is beschermd.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 8
    acht. Selecteer Application Programming Interface (API). Een van de selectie van een goede API is posix, omdat het goed gedocumenteerd is. Alle Unix-systemen hebben ten minste gedeeltelijke ondersteuning voor POSIX, dus het zou triviaal zijn om UNIX-programma`s aan uw besturingssysteem te bevestigen.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 9
    negen. Beslissen met het ontwerp. Er zijn monolithische kernels en microkernel. Monolithische kernels voert alle diensten uit in de kernel, terwijl de MicroKernel een kleine kernel heeft in combinatie met de realisatie van de gebruiker. In het algemeen zijn de monolithische kernels sneller, maar de MicroKernel heeft een betere isolatie en bescherming tegen mogelijke storingen.
  • Titel afbeelding Maak een computer besturingssysteem Stap 10
    10. Overweeg de kwestie van het ontwikkelen en werken in een team. U zult dus minder tijd nodig hebben om grote problemen op te lossen, die een beter operationeel systeem voor een kortere tijd zullen creëren.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 11
    elf. Wis uw harde schijf niet volledig. Onthoud dat schijfopmaak onomkeerbaar al uw gegevens schoonmaken! Gebruik een GRUB of andere manager voor het dubbele downloaden van uw computer op het andere besturingssysteem, totdat uw versie volledig klaar is.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 12
    12. Begin met klein. Let in de eerste plaats op de kleine dingen, zoals het weergeven van tekst en onderbrekingen voordat u naar complexe elementen schakelt, bijvoorbeeld naar het geheugenbeheer en multitasking.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 13
    13. Sla de back-up op van de laatste werkversie. Dit geeft een bepaalde kalmte in het geval dat er iets misgaat in de huidige versie van uw besturingssysteem of volgende toevoegingen. In het geval van uitsplitsingen op uw computer en de onmogelijkheid om te downloaden, zoals u zelf begrijpt, zal de uitstekende gelegenheid de aanwezigheid van een tweede exemplaar zijn om te werken, zodat u bestaande fouten kunt elimineren.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 14
    veertien. Test uw nieuwe besturingssysteem op een virtuele machine. In plaats van een computer opnieuw op te starten na het aanbrengen van wijzigingen of draag bestanden van een testmachine naar een testmachine, kunt u de toepassing gebruiken om het besturingssysteem op de virtuele machine te starten, terwijl uw huidige OS blijft werken. VM-applicaties omvatten VMware (die ook een gratis toegangsserver heeft), alternatieve open source-code, Bochs, Microsoft Virtual PC (niet compatibel met Linux), evenals XVM virtualbox.
  • Titel afbeelding Maak een computer besturingssysteem Stap 15
    vijftien. Laat de versie-versie los. Hierdoor kunnen gebruikers u vertellen over de mogelijke tekortkomingen in uw besturingssysteem.
  • Titel afbeelding Maak een computerbesturingssysteem Stap 16
    zestien. Het besturingssysteem moet ook handig zijn voor de gebruiker, dus vergeet niet om nuttige functies toe te voegen die een integraal onderdeel van uw ontwerp zullen worden.
  • Tips

    • Wanneer de ontwikkeling is voltooid, denkt u na of u code in gratis toegang wilt inzenden of er privérechten op kunt vestigen.
    • Zorg ervoor dat de beveiligingsfuncties door uw basisprioriteit zijn, als u wilt dat uw systeem levensvatbaar is.
    • Start het ontwikkelingsproject van het besturingssysteem niet om het programmeren te trainen. Als u C, C ++, Pascal of enkele andere geschikte talen en eigenschappen niet kent, inclusief de typen van een aanwijzer, bewerkingen met bits met lage niveaus, bits schakelen, ingebouwde assembler en t.NS., - Dus, nog niet klaar om besturingssysteem te maken.
    • Blader door Portals zoals OSDEV en OSDEVER om u te helpen uw eigen besturingssysteem te verbeteren. Besteed speciale aandacht aan het feit dat de meeste vragen Community OSDEV.Org geeft de voorkeur aan de inhoud van de site en voegde zich niet bij het forum. Als je nog steeds besluit om deel te nemen aan de rijen van leden van het forum, moeten er hiervoor bepaalde voorwaarden zijn. U moet C of C ++ en de Taal X86-assemblier grondig kennen. U moet ook voorkomende en uitgebreide concepten begrijpen in de programmering, zoals gelinkte lijsten, wachtrijen en t.NS. De OSDEV-gemeenschap in zijn regels geeft rechtstreeks aan dat niemand nieuwe programmeurs gaat verpleegst. Als u OS probeert te ontwikkelen, spreekt het vanzelfsprekend dat u "God" op het gebied van programmering ". U moet ook een handleiding lezen om met een processor te werken met betrekking tot de door u gekozen architectuur - bijvoorbeeld X86 (Intel), arm, MIPS, PPC en T.NS. Een dergelijke handleiding van een processorstructuur is eenvoudig te vinden door te zoeken in Google ("Intel Handleidingen", "ARM-handleidingen" en T.NS.). Registreer u niet op het OSDEV-forum.Org om voor de hand liggende vragen te stellen. Het zal gewoon leiden tot antwoorden zoals "Lees de handleiding F *** ING". Om te beginnen moet u proberen Wikipedia, voordelen voor verschillende tools die gaan gebruiken te lezen.
    • Controleer op potentiële dode stippen en andere fouten. Tekortkomingen, deadlocks en andere problemen kunnen van invloed zijn op het project van uw besturingssysteem.
    • Als u een manier die eenvoudiger wilt, dient Linux-distributies in - zoals Fedora Revisor, Custom Nimble X, Puppy Remaster, Pclinuxos MklIVECD of SUSE Studio en SUSE Kiwi. Desalniettemin behoort het bestemde besturingssysteem van het bedrijf dat de eerste is die deze service introduceert (hoewel u rechten heeft op de gratis distributie, verandering en start, zoals u wilt, zoals GPL).
    • Een goede oplossing is het creëren van een volledig nieuwe partitie voor het besturingssysteem dat wordt ontwikkeld.

    Waarschuwingen

    • KAARTELloos OS-herschrijving op een harde schijf kan deze volledig beschadigen. doe voorzichtig
    • Je krijgt in twee weken geen volledig gereed systeem. Begin van het gedownloade besturingssysteem en ga dan naar interessantere dingen.
    • Als je iets snel doet, schrijf bijvoorbeeld willekeurige bytes in willekeurige I / O-poorten en vernietig dan je OS en kan (in theorie) je apparatuur verbranden.
    • Verwacht niet dat het gemakkelijk is om een ​​hoogwaardig besturingssysteem te bouwen. Er zijn veel complexe onderlinge afhankelijkheden. Om bijvoorbeeld het OS te kunnen werken met meerdere processors, moet uw geheugenbeheerder "blokkeren" -mechanismen hebben om onnodige verwerkers tegelijkertijd in dezelfde resource te voorkomen. Gebruikte "blokken" veronderstellen de aanwezigheid van een planner om ervoor te zorgen dat slechts één processor op elk moment een kritische bron aanspreekt en alle anderen in de standby-modus zijn. De werkplanner is echter afhankelijk van de aanwezigheid van de geheugenbeheerder. Dit is een voorbeeld van afhankelijk van het vergrendelen. Er is geen standaard manier om dergelijke problemen op te lossen - elke maker van het besturingssysteem zal naar verwachting behoorlijk gekwalificeerd zijn om zijn eigen oplossing te vinden.

    Wat je nodig hebt

    • Computer
    • De processor waarop u gaat bouwen
    • Voldoende RAM (RAM) voor een virtuele machine
    • Het hoofdsysteem (gebruikt om de broncode van de assembler (en anderen te ontwikkelen.), evenals assemblages en verpakkingen in de vroege stadia van werk - uiteindelijk wordt uw eigen besturingssysteem primair)
    • Syntaxis Color Code-editor (toegepast in de afwezigheid van geïntegreerde ontwikkelingsomgeving)
    • Compiler
    • CD / DVD-station
    Deel in het sociale netwerk:
    Vergelijkbaar