El sistema operatiu permet a l'usuari interactuar amb el maquinari de l'ordinador. El sistema està format per centenars de milers de línies de codi. Normalment, el sistema operatiu es fa mitjançant llenguatges de programació C #, C, C ++ i de muntatge. El sistema operatiu us permet navegar per l’ordinador mentre deseu i executeu ordres. No crec que sigui fàcil crear un sistema operatiu. Es necessita molt de coneixement per aconseguir-ho.
Pas
Pas 1. Primer de tot, apreneu sobre la programació
El llenguatge assemblador és molt important; és molt recomanable que aprengueu un altre idioma complementari d'alt nivell com és el llenguatge C.
Pas 2. Decidiu quins suports voleu utilitzar per carregar el sistema operatiu
Aquest suport pot ser una unitat de CD, unitat de DVD, unitat flaix, disc dur, disquet o un altre PC.
Pas 3. Definiu la idea bàsica d'un SO
Per exemple, a Windows, la idea bàsica és una interfície gràfica d’usuari fàcil d’utilitzar i molta seguretat.
Pas 4. Determineu quina plataforma de processador admetrà el vostre sistema operatiu
IA-32, ARM i x86_64 són les plataformes més habituals per a ordinadors personals. Per tant, tots són la vostra millor opció.
Pas 5. Decidiu si preferiu fer-ho tot vosaltres mateixos des de zero o si ja hi ha algun nucli disponible que vulgueu construir
Per exemple, Linux des de zero és un projecte per a persones que volen crear la seva pròpia distribució de Linux.
Pas 6. Decidiu si utilitzeu el vostre propi carregador d'arrencada o un de pre-construït, com ara el Grand Unified Bootloader (GRUB)
La codificació del gestor d’arrencada necessitarà un coneixement ampli de maquinari i BIOS. Com a resultat, aquest pas pot dificultar la programació real del nucli.
Pas 7. Decidiu quin llenguatge de programació utilitzar
Està bé tenir un sistema operatiu en un idioma com Pascal o BASIC, però hauríeu d’utilitzar C o Assembly. El muntatge és molt necessari, perquè algunes parts importants d’un sistema operatiu ho requereixen. D'altra banda, el llenguatge C ++ conté paraules clau que requereixen un altre SO complet per executar-se.
Per compilar un sistema operatiu a partir de codi C o C ++, per descomptat, utilitzarà un compilador o l’altre. Per tant, és una bona idea consultar la guia d’usuari / manual / documentació del compilador C / C ++ que trieu, ja sigui inclòs al programari o disponible al lloc web del distribuïdor. Heu de conèixer moltes coses complicades sobre el compilador i, per al desenvolupament de C ++, heu de conèixer l’esquema de manipulació del compilador i el seu ABI. S'espera que entengueu els diferents formats executables (ELF, PE, COFF, binari bàsic, etc.) i que el format exclusiu de Windows, PE (.exe), està protegit per drets d'autor
Pas 8. Definiu la vostra interfície de programació d'aplicacions (API)
Una bona API per triar és POSIX, ja que està ben documentada. Tots els sistemes Unix tenen suport com a mínim parcial per POSIX. Per tant, connectar els programes Unix al vostre sistema operatiu hauria de ser fàcil.
Pas 9. Decidiu el vostre disseny
Hi ha un nucli monolític i un micro nucli. Els nuclis monolítics implementen tots els serveis al nucli, mentre que els nuclis micro tenen nuclis petits agrupats amb serveis de desplegament de dimonis d’usuari. En general, els nuclis monolítics són més ràpids, però els micro nuclis tenen un millor aïllament i fiabilitat de fallades.
Pas 10. Penseu en desenvolupar-vos i treballar en equip
D’aquesta manera, es necessita menys temps per resoldre més problemes, cosa que probablement accelerarà la creació d’un sistema operatiu millor.
Pas 11. No netegeu completament el disc dur
Recordeu que, si suprimiu una unitat, s'esborraran totes les dades que conté. Utilitzeu GRUB o un altre gestor d’arrencada per arrencar el sistema amb un altre sistema operatiu fins que el sistema operatiu sigui completament funcional.
Pas 12. Comenceu petit
Comenceu per coses petites com mostrar text i fer pauses abans de passar a coses com la gestió de memòria i el treball compost. Assegureu-vos també de fer les versions de 32 i 64 bits.
Pas 13. Mantingueu una còpia de seguretat de l'últim codi font de treball
Aquest pas és útil com a protecció en cas que alguna cosa falla amb la versió actual de SO o de desenvolupament. Si l’ordinador es bloqueja i no s’inicia, és una bona idea tenir-ne una segona còpia per poder solucionar el problema.
Pas 14. Penseu a provar el vostre nou sistema operatiu amb una màquina virtual
En lloc de reiniciar l'ordinador cada vegada que feu canvis o després d'enviar fitxers des de l'ordinador de desenvolupament a la màquina de prova, podeu utilitzar una aplicació de màquina virtual per executar el sistema operatiu mentre s'executa el sistema operatiu actual. Les aplicacions de màquina virtual actuals inclouen: VMWare (que també té un producte de servidor disponible de forma gratuïta), alternatives de codi obert, Bochs, Microsoft Virtual PC (no compatible amb Linux) i Oracle VirtualBox.
Pas 15. Inicieu el "release candidate" o la versió beta
Aquest pas permetrà a l'usuari avisar-vos de possibles problemes amb el vostre sistema operatiu.
Pas 16. El sistema operatiu també hauria de ser fàcil d'utilitzar
Assegureu-vos d’afegir funcions fàcils d’utilitzar, que siguin una part integral del vostre disseny.
Consells
- Comproveu si hi ha possibles bloquejos i altres errors. Els errors, els bloquejos i altres problemes afectaran el projecte de construcció del sistema operatiu.
- Assegureu-vos que implementeu les funcions de seguretat com a màxima prioritat si voleu que el sistema funcioni correctament.
- Utilitzeu llocs web com OSDev i OSDever per ajudar-vos a desenvolupar el vostre propi sistema operatiu. Tingueu en compte que, per a la majoria dels propòsits, la comunitat OSDev.org estarà més que contenta si utilitzeu la seva wiki i no us uniu al fòrum. Si decidiu unir-vos a un fòrum, hi ha una condició prèvia: heu de conèixer realment C o C ++ i el llenguatge de muntatge x86. També heu d’entendre conceptes de programació generals i complexos com ara llistes enllaçades, cues, etc. La comunitat OSDev, en els seus reglaments, estableix explícitament que la seva comunitat no es crea per nodrir nous programadors.
- No us hi uniu amb el fòrum OSDev.org i, a continuació, feu la pregunta òbvia. Només se us demanarà que llegiu la guia. Llegiu la Viquipèdia i les instruccions de qualsevol equip que vulgueu utilitzar.
- Si intenteu desenvolupar un sistema operatiu, definitivament us consideraran el "déu" de la programació.
- També hauríeu d’haver llegit el manual del processador per a l’arquitectura del processador que heu seleccionat; ja sigui x86 (Intel), ARM, MIPS, PPC, etc. Els manuals per a arquitectures de processadors són fàcils de trobar mitjançant una cerca a Google ("manual Intel", "manual ARM", etc.).
- Un cop finalitzats tots els treballs de desenvolupament, decidiu si voleu alliberar el codi com a codi obert o per copyright.
- No comences un projecte de sistema operatiu per començar a aprendre programacions. Si no coneixeu per dins ni per fora C, C ++, Pascal o algun altre llenguatge adequat, inclosa la manipulació de punter, la manipulació de bits de baix nivell, el desplaçament de bits, els llenguatges d’assemblatge en línia, etc., no esteu preparat per al sistema operatiu desenvolupament.
- Crear una partició completament nova per "expandir" SO podria ser una bona opció.
- Si voleu una manera fàcil, tingueu en compte distribucions de Linux com Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD o SUSE Studio i SUSE KIWI. Tanmateix, el sistema operatiu que creeu pertany a l’empresa que va iniciar el servei primer (tot i que teniu el dret de distribuir-lo lliurement, modificar-lo i executar-lo com vulgueu a GPL).
Advertiment
- No obtindreu un sistema operatiu complet en un termini de dues setmanes. Comenceu amb un SO arrencable i, tot seguit, aneu a coses més fresques.
- Si escriviu sense cura el vostre sistema operatiu en un disc dur, el podeu danyar completament. Ves amb compte.
- Si feu alguna cosa que no es recomana, com ara escriure bytes aleatoris en ports d'E / S aleatoris, fallareu el vostre sistema operatiu i (en teoria) podríeu cremar el vostre maquinari.
- No espereu que el sistema operatiu sigui fàcil de construir. Hi ha moltes interdependències complicades. Per exemple, per crear un sistema operatiu capaç de gestionar diversos processadors, el gestor de memòria ha de tenir un mecanisme de "bloqueig" per evitar que diversos processadors accedeixin al mateix recurs alhora. El "bloqueig" utilitzat per a això requeriria un planificador per assegurar-se que només un processador accedeixi a recursos crítics en un moment donat i que tots els altres hagin d'esperar. De fet, el planificador depèn de la presència del Memory Manager. Aquest és un exemple de dependència sense sortida. No hi ha una manera estàndard de resoldre aquest tipus de problemes; s'espera que tots els programadors de sistemes operatius siguin prou hàbils per conèixer la seva pròpia manera de tractar-lo.
Recursos addicionals
- Pautes: Linux From Scratch
- Carregador d’arrencada: GRUB
- Aplicacions de màquines virtuals: Bochs, VM Ware, XM Virtual Box.
- Manual del processador: manual Intel
- Llocs de desenvolupament SO: OSDev, OSDever