Hoe een besturingssysteem te creëren
De besturingssystemen stellen de gebruiker in staat om te communiceren met hun computerhardware, die gemaakt is met honderdduizenden regels code, meestal met de C, C ++ en assembleertalen.
stappen
1
Je moet programmeerkennis hebben voordat je begint. Assembleertaal is essentieel - een andere extra taal op laag niveau zoals C wordt sterk aanbevolen.
2
Bepaal in welk medium u het besturingssysteem wilt laden. Het kan een CD, DVD, flashstation, een harde schijf of een andere pc zijn.
3
Bepaal wat u wilt dat uw besturingssysteem doet. Als het een volledig geschikt besturingssysteem is met een grafische gebruikersinterface (GUI, Grafische gebruikersinterface) of iets meer minimalistisch, u moet weten welke richting u gaat volgen voordat u begint.
4
Geef aan welk processorplatform compatibel is met uw besturingssysteem. We raden de twee meest voorkomende personal computers aan: AI-32 en x86_64.
5
Bepaal of je alles zelf helemaal opnieuw wilt doen of dat er een bestaande kern is die je als basis zou willen gebruiken om te bouwen. Bijvoorbeeld, Linux helemaal opnieuw programmeren zal een project zijn voor diegenen die hun eigen Linux-distributie willen maken.
6
Bepaal of je je eigen bootloader of een vooraf gemaakte bootloader gaat gebruiken als de globale verenigde opstartlader (GRUB, Grand Unified Bootloader). Omdat om de code van je eigen bootmanager te programmeren je een brede kennis van de hardware en de BIOS nodig hebt, kan het worden uitgesteld om de kernel zelf te programmeren.
7
Bepaal welke programmeertaal u gaat gebruiken. Hoewel het mogelijk is om een besturingssysteem met een taal zoals Pascal of BASIC te maken, is het beter als u C of de assembler gebruikt. De assembler is absoluut noodzakelijk, omdat sommige essentiële onderdelen van een besturingssysteem dit nodig hebben. C ++ van zijn kant bevat trefwoorden die een ander volledig geïntegreerd besturingssysteem nodig hebben om te werken.
8
Bepaal wat de interface voor het programmeren van de toepassing zal zijn (API, Application Programming Interface). Wij adviseren 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 te sluiten op uw besturingssysteem.
9
Bepaal het ontwerp. Er zijn monolithische kernen en micronuclei. Monolithics implementeren alle services in de kernel, terwijl micronuclei een kleine kernel hebben gecombineerd met user daemon-implementatieservices. In het algemeen zijn monolithische kernen sneller, maar micronuclei hebben een betere foutisolatie en -betrouwbaarheid.
10
Overweeg om te ontwikkelen en als een team te werken. Op deze manier zullen meer problemen in minder tijd worden opgelost, wat sneller een beter besturingssysteem zou kunnen genereren.
11
Wis je harde schijf niet volledig. Vergeet niet dat wanneer u de schijf wist, u al uw gegevens onherroepelijk kunt wissen! Gebruik de GRUB of een andere opstartmanager, zodat uw computer een ander besturingssysteem heeft waarmee u kunt opstarten totdat de uwe volledig werkt.
12
Begin met iets kleins. Het begint met kleine dingen zoals het weergeven van tekst en onderbrekingen voordat het doorgaan met het ontwikkelen van dingen zoals geheugenbeheer en multitasking.
13
Sla een back-up van de laatste werkbron op. Dit is een beschermingsmaatregel in geval van een ernstig probleem met de huidige versie van uw besturingssysteem of uw ontwikkeling. Als de pc crasht en niet kan opstarten, is het geweldig om een tweede exemplaar te hebben waarmee je kunt werken om het probleem op te lossen.
14
Overweeg uw nieuwe besturingssysteem te testen op een virtuele computer. In plaats van de computer telkens opnieuw op te starten als u wijzigingen aanbrengt of bepaalde bestanden van het ontwikkelteam naar de testapparatuur moet overzetten, kunt u de toepassing van een virtuele computer gebruiken om uw besturingssysteem uit te voeren, terwijl het uwe nog steeds in gebruik is. Sommige virtuele computertoepassingen zijn VMWare (dat ook een gratis serverproduct heeft), het open-sourcealternatief, Bochs, Microsoft Virtual PC (niet compatibel met Linux) en xVM VirtualBox.
15
Krijg een "lanceringskandidaat". Hierdoor kunnen gebruikers u informeren over mogelijke problemen met het besturingssysteem.
16
Een besturingssysteem kan ook gemakkelijk te gebruiken zijn, dus zorg ervoor dat u gebruiksvriendelijke functies gebruikt, zodat deze een integraal onderdeel zijn van uw ontwerp.
tips
- Nadat u alle ontwikkeling hebt uitgevoerd, beslist u of u de code open of gepatenteerd wilt hebben.
- Begin niet een project om een besturingssysteem te maken om te beginnen met programmeren. Als u geen gevorderde kennis hebt van C, C ++, Pascal of een andere geschikte taal, zoals pointermanipulatie, low-level bitmanipulatie, bitverschuiving, online assembler, enz., Dan bent u niet klaar om een besturingssysteem te ontwikkelen .
- Als u wilt dat uw systeem levensvatbaar is, moet uw hoogste prioriteit zijn om beveiligingsfuncties te implementeren.
- Gebruik websites zoals OSDev en OSDever om u te helpen bij het ontwikkelen van uw eigen besturingssysteem. Houd er rekening mee dat voor de meeste doeleinden de OSDev.org-community er de voorkeur aan geeft dat je jezelf beperkt tot het gebruik van je wiki en niet deelneemt aan het forum. Als u besluit deel te nemen aan het forum, zijn er vereisten om dit te doen: u moet een goed begrip hebben van C of C ++ en de assemblagetaal x86. U moet ook complexe en algemene programmeerconcepten begrijpen, zoals gekoppelde lijsten, wachtrijen, enz. De gemeenschapsregulering van de OSDev stelt expliciet dat het doel van de gemeenschap niet is om te zorgen voor beginnende programmeurs. Als je een besturingssysteem probeert te ontwikkelen, is het vanzelfsprekend dat je een `god` van programmeren bent. Je zult ook de handleidingen van de processor moeten lezen voor de architectuur die je gaat kiezen - of het nu gaat om x86 (Intel), ARM, MIPS, PPC, etc. U kunt deze handleidingen gemakkelijk vinden met een Google-zoekopdracht ("Intel-handleidingen", "ARM-handleidingen", enz.). Doe niet mee OSDev.org-forums om voor de hand liggende vragen te stellen, maar ze zullen u eenvoudig vertellen om de reactiehandleiding te lezen. Probeer Wikipedia en de handleidingen van de verschillende tools die je wilt gebruiken te lezen.
- Controleer op mogelijke blokkades en andere fouten. Fouten, vergrendelingen en andere problemen zijn van invloed op uw besturingssysteemproject
- Als je het gemakkelijk wilt maken, houd dan rekening met sommige Linux-distributies, zoals Fedora Reviewer, Custom Nimble X, Puppy Remaster, PCLinuxOS mklivecd, SUSE Studio en SUSE KIWI. Het besturingssysteem waarvan u denkt dat het eigendom is van het bedrijf dat de service als eerste heeft gestart (hoewel u de rechten heeft om het gratis te verspreiden, te wijzigen en uit te voeren zoals u wilt onder de GPL).
- We raden u aan een geheel nieuwe partitie te maken voor ontwikkelen het besturingssysteem.
waarschuwingen
- Onzorgvuldig typen van uw besturingssysteem op de harde schijf kan het volledig beschadigen, dus wees voorzichtig.
- Je kunt niet binnen twee weken een compleet systeem maken. Maak er eerst een die begint en ga dan verder met interessante functies.
- Verwacht niet dat het eenvoudig is om een goed werkend besturingssysteem te bouwen. Er zullen bijvoorbeeld veel complexe onderlinge afhankelijkheden zijn, zodat het systeem meerdere processoren aankan, de geheugenbeheerder moet "vergrendel" -mechanismen hebben om te voorkomen dat meerdere processors tegelijkertijd toegang tot dezelfde bron hebben. De "sloten" hiervoor hebben de aanwezigheid van een planner nodig om ervoor te zorgen dat slechts één processor op elk moment toegang heeft tot een kritieke hulpbron terwijl iedereen wacht. De planner is echter afhankelijk van de aanwezigheid van een geheugenbeheerprogramma. Dit is het geval van een afhankelijkheid in neutraal. Er is geen standaardoplossing voor dit soort problemen, dus wordt aangenomen dat elke programmeur van een besturingssysteem de nodige vaardigheden moet hebben om ermee om te gaan.
- Als u bijvoorbeeld iets productiefs doet, schrijf willekeurige bytes naar willekeurige I / O-poorten, dan blokkeert u het besturingssysteem en kunt u de hardware (in theorie) verbranden.
Extra middelen
- Manual: Linux vanaf nul
- Boot Manager: GRUB
- Virtuele computertoepassingen: Bochs, VM Ware, XM Virtual Box.
- Processorhandleidingen: Intel-handleidingen
- Ontwikkelingssites voor besturingssystemen: OSDev, OSDever
Dingen die je nodig hebt
- Een computer
- Een CPU voor de architectuur die je gaat ontwikkelen
- Genoeg geheugen (RAM) voor een virtuele computer
- Een hostbesturingssysteem (om de assembler, andere broncode, te ontwikkelen en te verpakken terwijl u zich in een vroeg stadium bevindt, kan uw eigen besturingssysteem na verloop van tijd uw gastheer zijn)
- Syntaxis kleureditor (als u geen "Geïntegreerde ontwikkelomgeving" hebt)
- Een compiler
- Een CD / DVD-station
Delen op sociale netwerken:
Verwant
- Hoe zich aan te passen aan een nieuwe computer of een nieuw besturingssysteem
- Hoe spyware te blokkeren
- Hoe computers zonder besturingssysteem te kopen
- Een herstelschijf maken en een back-up van uw harde schijf maken op een Toshiba Satellite P750 04S
- Hoe maak je een eenvoudig programma in C
- Hoe Windows 8.1 te verwijderen
- Hoe computerproblemen te diagnosticeren
- Een computer kiezen voor uw opnamestudio
- Hoe een virus uit de bootsector te verwijderen
- Hoe een laptop te formatteren
- Hoe Debian te installeren
- Hoe Linux te installeren
- Hoe VirtualBox te installeren
- Hoe Ubuntu 8.10 te installeren
- Hoe twee besturingssystemen op een computer te installeren
- Hoe Windows XP opnieuw te installeren zonder de CD in 8 stappen
- Hoe u weet welk besturingssysteem een computer heeft
- Hoe Amazon Ec2 als een personal computer te gebruiken
- Hoe een Dell Inspiron 15 uit te schakelen
- Hoe Windows shutdown-problemen op te lossen
- Zoeken naar bestandstypen in de Finder van Mac Lion`s besturingssysteem