Paano Gumawa ng isang Computer Operating System (may Mga Larawan)

Talaan ng mga Nilalaman:

Paano Gumawa ng isang Computer Operating System (may Mga Larawan)
Paano Gumawa ng isang Computer Operating System (may Mga Larawan)

Video: Paano Gumawa ng isang Computer Operating System (may Mga Larawan)

Video: Paano Gumawa ng isang Computer Operating System (may Mga Larawan)
Video: Paano Ibalik ang Iyong Computer Sa Isang Mas Maagang Oras - Windows 7/8/10 2024, Nobyembre
Anonim

Pinapayagan ng operating system ang gumagamit na makipag-ugnay sa hardware ng computer. Ang sistema ay binubuo ng daan-daang libo-libong mga linya ng code. Kadalasan ang operating system ay ginawa gamit ang mga wika ng C #, C, C ++, at pagpupulong. Pinapayagan ka ng operating system na mag-browse sa iyong computer habang nagse-save at nagpapatupad ng mga utos. Huwag isiping madali ang paglikha ng isang operating system. Kailangan ng maraming kaalaman upang magawa ito.

Hakbang

Gumawa ng isang Computer Operating System Hakbang 1
Gumawa ng isang Computer Operating System Hakbang 1

Hakbang 1. Una sa lahat, alamin ang tungkol sa programa

Napakahalaga ng wika sa pagpupulong; lubos na inirerekumenda na matuto ka ng isa pang pantulong na mataas na antas na wika tulad ng wikang C.

Gumawa ng isang Computer Operating System Hakbang 2
Gumawa ng isang Computer Operating System Hakbang 2

Hakbang 2. Magpasya kung anong media ang nais mong gamitin upang mai-load ang OS

Ang media na ito ay maaaring isang CD drive, DVD drive, flash drive, hard drive, floppy disk, o ibang PC.

Gumawa ng isang Computer Operating System Hakbang 3
Gumawa ng isang Computer Operating System Hakbang 3

Hakbang 3. Tukuyin ang pangunahing ideya ng isang SO

Halimbawa, sa Windows, ang pangunahing ideya ay isang madaling gamiting GUI at maraming seguridad.

Gumawa ng isang Computer Operating System Hakbang 4
Gumawa ng isang Computer Operating System Hakbang 4

Hakbang 4. Tukuyin kung anong platform ng processor ang susuportahan ng iyong operating system

Ang IA-32, ARM, at x86_64 ang pinakakaraniwang mga platform para sa mga personal na computer. Kaya, lahat sila ang iyong pinakamahusay na pagpipilian.

Gumawa ng isang Computer Operating System Hakbang 5
Gumawa ng isang Computer Operating System Hakbang 5

Hakbang 5. Magpasya kung nais mong gawin ang lahat sa iyong sarili mula sa simula, o may magagamit na bang kernel na nais mong buuin

Halimbawa, ang Linux mula sa simula ay isang proyekto para sa mga taong nais bumuo ng kanilang sariling distro sa Linux.

Gumawa ng isang Computer Operating System Hakbang 6
Gumawa ng isang Computer Operating System Hakbang 6

Hakbang 6. Magpasya kung gagamit ka ng iyong sariling boot-loader o isang paunang built na kagaya ng Grand Unified Bootloader (GRUB)

Ang iyong pag-encode ng bootloader mismo ay mangangailangan ng malawak na kaalaman sa hardware at BIOS. Bilang isang resulta, ang hakbang na ito ay maaaring hadlangan ang aktwal na iskedyul ng kernel programming.

Gumawa ng isang Computer Operating System Hakbang 7
Gumawa ng isang Computer Operating System Hakbang 7

Hakbang 7. Magpasya kung anong ginagamit ang wika ng pag-program

Mabuti na magkaroon ng isang operating system sa isang wika tulad ng Pascal o BASIC, ngunit dapat mong gamitin ang C o Assembly. Napakailangan ng pagpupulong, sapagkat ang ilang mahahalagang bahagi ng isang operating system ay nangangailangan nito. Sa kabilang banda, ang wikang C ++ ay naglalaman ng mga keyword na nangangailangan ng iba pang buong SO upang tumakbo.

Upang mag-ipon ng isang operating system mula sa C o C ++ code, siyempre gagamit ka ng isang tagatala o sa iba pa. Samakatuwid, isang magandang ideya na kumunsulta sa gabay ng gumagamit / manu-manong / dokumentasyon para sa tagatala ng C / C ++ na iyong pinili, kasama man sa software o magagamit sa website ng namamahagi. Kailangan mong malaman ang maraming mga kumplikadong bagay tungkol sa tagatala at, para sa pag-unlad ng C ++, kailangan mong malaman tungkol sa scheme ng mangling ng tagabuo at ang ABI nito. Inaasahan mong mauunawaan ang iba't ibang mga naisasagawa na format (ELF, PE, COFF, pangunahing binary, atbp.), At mauunawaan na ang eksklusibong format ng Windows, PE (.exe), ay protektado ng copyright

Gumawa ng isang Computer Operating System Hakbang 8
Gumawa ng isang Computer Operating System Hakbang 8

Hakbang 8. Tukuyin ang iyong interface ng application ng aplikasyon (API)

Ang isang mahusay na API upang pumili mula sa ay POSIX dahil ito ay mahusay na dokumentado. Ang lahat ng mga system ng Unix ay may hindi bababa sa bahagyang suporta para sa POSIX. Kaya't ang pagkonekta ng mga programa ng Unix sa iyong OS ay dapat na madali.

Gumawa ng isang Computer Operating System Hakbang 9
Gumawa ng isang Computer Operating System Hakbang 9

Hakbang 9. Magpasya sa iyong disenyo

Mayroong isang bagay tulad ng isang monolithic kernel at isang micro kernel. Ang mga monolithic kernels ay nagpapatupad ng lahat ng mga serbisyo sa kernel, habang ang mga micro kernel ay may maliliit na kernel na kasama ng mga serbisyong pag-deploy ng daemon ng gumagamit. Sa pangkalahatan, ang mga monolithic kernels ay mas mabilis, ngunit ang mga microkernel ay may mas mahusay na paghihiwalay ng kasalanan at pagiging maaasahan.

Gumawa ng isang Computer Operating System Hakbang 10
Gumawa ng isang Computer Operating System Hakbang 10

Hakbang 10. Isaalang-alang ang pagbuo at pagtatrabaho sa isang koponan

Sa ganoong paraan, tumatagal ng mas kaunting oras upang malutas ang maraming mga problema, na marahil ay mapabilis ang pagbuo ng isang mas mahusay na OS.

Gumawa ng isang Computer Operating System Hakbang 11
Gumawa ng isang Computer Operating System Hakbang 11

Hakbang 11. Huwag ganap na punasan ang iyong hard drive

Tandaan, ang pagtanggal ng isang drive ay magbubura ng lahat ng data dito na hindi maibabalik! Gumamit ng GRUB o ibang boot manager upang mai-double boot ang iyong system gamit ang isa pang OS hanggang sa ganap na gumana ang iyong OS.

Gumawa ng isang Computer Operating System Hakbang 12
Gumawa ng isang Computer Operating System Hakbang 12

Hakbang 12. Magsimula ng maliit

Magsimula sa maliliit na bagay tulad ng pagpapakita ng teksto at pag-pause bago magpatuloy sa mga bagay tulad ng pamamahala sa memorya at gawaing tambalan. Siguraduhin din na nakagawa ka ng 32 bit at 64 bit na mga bersyon.

Gumawa ng isang Computer Operating System Hakbang 13
Gumawa ng isang Computer Operating System Hakbang 13

Hakbang 13. Panatilihin ang isang backup ng huling gumaganang code ng mapagkukunan

Ang hakbang na ito ay kapaki-pakinabang bilang isang pag-iingat kung sakaling may mali sa kasalukuyang bersyon ng SO o pag-unlad. Kung ang iyong computer ay nag-crash at hindi mag-boot, magandang ideya na magkaroon ng pangalawang kopya upang gumana upang maayos mo ang problema.

Gumawa ng isang Computer Operating System Hakbang 14
Gumawa ng isang Computer Operating System Hakbang 14

Hakbang 14. Isaalang-alang ang pagsubok sa iyong bagong operating system gamit ang isang virtual machine

Sa halip na i-reboot ang iyong computer sa tuwing gumawa ka ng mga pagbabago o pagkatapos magpadala ng mga file mula sa iyong development computer sa iyong test machine, maaari kang gumamit ng isang virtual machine application upang patakbuhin ang iyong OS habang tumatakbo ang iyong kasalukuyang OS. Kasama sa mga kasalukuyang application ng VM ang: VMWare (na mayroon ding isang produkto ng server na magagamit nang libre), mga alternatibong open source, Bochs, Microsoft Virtual PC (hindi tugma sa Linux), at Oracle VirtualBox.

Gumawa ng isang Computer Operating System Hakbang 15
Gumawa ng isang Computer Operating System Hakbang 15

Hakbang 15. Ilunsad ang "kandidato sa paglabas" o bersyon ng Beta

Papayagan ng hakbang na ito ang gumagamit na ipaalam sa iyo ang mga potensyal na problema sa iyong operating system.

Gumawa ng isang Computer Operating System Hakbang 16
Gumawa ng isang Computer Operating System Hakbang 16

Hakbang 16. Ang operating system ay dapat ding maging user friendly

Tiyaking nagdagdag ka ng mga tampok na madaling gamitin, gawin itong isang mahalagang bahagi ng iyong disenyo.

Mga Tip

  • Suriin ang mga potensyal na deadlocks at iba pang mga bug. Ang mga bug, mga blocklock, at iba pang mga isyu ay makakaapekto sa proyekto ng pagbuo ng iyong operating system.
  • Siguraduhin na ipatupad mo ang mga tampok sa seguridad bilang isang nangungunang priyoridad kung nais mong magpatakbo nang maayos ang system.
  • Gumamit ng mga website tulad ng OSDev at OSDever upang matulungan kang bumuo ng iyong sariling operating system. Mangyaring tandaan na para sa karamihan ng mga layunin, ang pamayanan ng OSDev.org ay magiging mas masaya kung gagamitin mo ang kanilang wiki, at hindi sumali sa forum. Kung magpasya kang sumali sa isang forum, mayroong isang paunang kondisyon: kailangan mong talagang malaman ang tungkol sa C o C ++, at sa x86 na wika ng pagpupulong. Dapat mo ring maunawaan ang pangkalahatan at kumplikadong mga konsepto ng pagprograma tulad ng Mga Naka-link na Listahan, Mga pila, atbp. Ang pamayanan ng OSDev, sa mga regulasyon nito, ay malinaw na nagsasaad na ang komunidad nito ay hindi nilikha upang alagaan ang mga bagong programmer.
  • Wag ka sumali kasama ang forum ng OSDev.org at pagkatapos ay tanungin ang halatang tanong. Hihilingin lamang sa iyo na basahin ang gabay. Basahin ang Wikipedia at mga tagubilin para sa anumang kagamitan na nais mong gamitin.
  • Kung sinusubukan mong bumuo ng isang operating system, tiyak na isinasaalang-alang ka bilang "diyos" ng pagprograma.
  • Dapat mo ring basahin ang manwal ng processor para sa napili mong arkitektura ng processor; kung x86 (Intel), ARM, MIPS, PPC, atbp. Ang mga manwal para sa mga arkitektura ng processor ay madaling makahanap gamit ang isang paghahanap sa Google ("Intel manual", "ARM manual", atbp.).
  • Kapag natapos na ang lahat ng gawaing pag-unlad, magpasya kung nais mong palabasin ang code bilang bukas na code, o sa pamamagitan ng copyright.
  • Wag muna isang proyekto ng operating system upang simulan ang pag-aaral ng programa. Kung hindi mo alam ang loob at labas tungkol sa C, C ++, Pascal, o ilang iba pang angkop na wika, kabilang ang pagmamanipula ng pointer, mababang antas ng manipulasyong bit, paglilipat ng kaunti, mga wika ng pagpupulong na inline, atbp., Hindi ka pa handa sa operating system kaunlaran.
  • Ang paglikha ng isang ganap na bagong pagkahati upang 'palawakin' KAYA ay maaaring isang mahusay na pagpipilian.
  • Kung nais mo ng isang madaling paraan, isaalang-alang ang mga distro ng Linux tulad ng Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD, o SUSE Studio at SUSE KIWI. Gayunpaman, ang operating system na iyong nilikha ay pagmamay-ari ng kumpanya na nagsimula muna sa serbisyo (bagaman mayroon kang karapatang malayang ipamahagi ito, baguhin ito at patakbuhin ito ayon sa nais mo sa ilalim ng GPL).

Babala

  • Hindi ka makakakuha ng isang buong operating system sa loob ng dalawang linggo. Magsimula sa isang bootable SO, pagkatapos ay magpatuloy sa mas cool na bagay.
  • Ang walang ingat na pagsulat ng iyong operating system sa isang hard drive ay maaaring ganap na makapinsala dito. Mag-ingat ka.
  • Kung gumawa ka ng isang bagay na hindi inirerekumenda, tulad ng pagsulat ng mga random na byte sa mga random na I / O port, masisira mo ang iyong OS, at (sa teorya) ay masunog ang iyong hardware.
  • Huwag asahan na madaling mabuo ang operating system. Mayroong maraming mga kumplikadong pagtutulungan. Halimbawa Ang "lock" na ginamit para dito ay mangangailangan ng isang tagapag-iskedyul upang matiyak na ang isang processor lamang ang nag-a-access ng mga kritikal na mapagkukunan sa anumang naibigay na oras at maghintay ang lahat. Sa katunayan, ang tagapag-iskedyul ay nakasalalay sa pagkakaroon ng Memory Manager. Ito ay isang halimbawa ng isang pagtitiwala sa dead end. Walang karaniwang paraan upang malutas ang ganitong uri ng problema; ang bawat programmer ng operating system ay inaasahan na may sapat na kasanayan upang malaman ang kanyang sariling paraan ng pagharap dito.

Karagdagang Mga Mapagkukunan

  • Mga Alituntunin: Linux Mula sa Scratch
  • Bootloader: GRUB
  • Mga aplikasyon ng virtual machine: Bochs, VM Ware, XM Virtual Box.
  • Manwal ng processor: Manwal ng Intel
  • KAYA mga site ng pag-unlad: OSDev, OSDever

Inirerekumendang: