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
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.

2. Bepaal welk apparaat u het besturingssysteem wilt downloaden. Het kan een CD, DVD, Flash-geheugenapparaat, harde schijf of een andere computer zijn.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

vijftien. Laat de versie-versie los. Hierdoor kunnen gebruikers u vertellen over de mogelijke tekortkomingen in uw besturingssysteem.

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: