Ukukhutshwa kwenkqubo yokusebenza efana ne-Unix i-ToaruOS 2.1 ipapashiwe, ibhalwe ukusuka ekuqaleni kwaye inikezelwe nge-kernel yayo, isilayishi se-boot, ilayibrari eqhelekileyo ye-C, umphathi wephakheji, amacandelo esithuba somsebenzisi kunye nojongano lwegraphical kunye nomphathi wefestile odibeneyo. Le projekthi yaqala yaphuhliswa kwiDyunivesithi yase-Illinois njengomsebenzi wophando kwinkalo yokudala ujongano olutsha lwegraphical, kodwa emva koko yatshintshwa yaba yinkqubo yokusebenza eyahlukileyo. Ikhowudi yeprojekthi ibhalwe kwi-C kwaye isasazwe phantsi kwelayisensi ye-BSD. Umfanekiso ophilayo we-14.4 MB ngobukhulu ulungiselelwe ukukhuphela, onokuvavanywa kwi-QEMU, i-VMware okanye i-VirtualBox.

I-ToaruOS isekelwe kwi-kernel esebenzisa i-architecture yemodyuli edibeneyo edibanisa isakhelo se-monolithic kunye nezixhobo zokusebenzisa iimodyuli ezilayishwayo, ezenza uninzi lwabaqhubi besixhobo esikhoyo, njengabaqhubi bedisk (PATA kunye ne-ATAPI), i-EXT2 kunye ne-ISO9660 iinkqubo zefayile, i-framebuffer. , iikhibhodi, iigundane , amakhadi womnatha (AMD PCnet FAST, Realtek RTL8139 kunye ne-Intel PRO / 1000), i-chips sound chips (Intel AC'97), kunye ne-VirtualBox izongezo kwiinkqubo zeendwendwe. I-kernel ixhasa iintambo ze-Unix, i-TTY, inkqubo yefayile ebonakalayo, inkqubo yefayile ye-pseudo / iproc, i-multithreading, i-IPC, i-ramdisk, i-ptrace, imemori ekwabelwana ngayo, i-multitasking kunye nezinye iimpawu eziqhelekileyo.
Inkqubo ixhotyiswe ngumphathi wefestile odibeneyo, isekela iifayile ezisebenzisekayo ezidibeneyo kwifomathi ye-ELF, i-multitasking, i-graphics stack, inokuqhuba i-Python 3 kunye ne-GCC isetyenziswa njengenkqubo yefayile. I-bootloader ixhasa i-BIOS kunye ne-EFI. Isitaki sothungelwano sivumela ukusetyenziswa kwe-BSD-style socket APIs kwaye ixhasa ujongano lwenethiwekhi, kubandakanya i-loopback.
Phakathi kwezicelo zomthonyama, umhleli wekhowudi ye-Vi-efana ne-Bim igqamile, esetyenziselwe iminyaka embalwa edlulileyo ukuphuhlisa usetyenziso olukhethekileyo lwe-ToaruOS njengomphathi wefayile, i-terminal emulator, iphaneli yemizobo enenkxaso yewijethi, umphathi wephakheji, ngokunjalo. njengamathala eencwadi okuxhasa imifanekiso (PNG, JPEG) kunye neefonti ze TrueType. Iinkqubo ezinjengeVim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, njl. ziye zafakwa kwiToaruOS.
Le projekthi ikwaphuhlisa ulwimi lwayo lwenkqubo olutshintshayo, iKuroko, oluyilelwe ukuthatha indawo yePython xa kuphuhliswa izixhobo zokusebenza kunye nezicelo zomsebenzisi zenkqubo. Ulwimi lufana ngokwesivakalisi nePython (lubekwe njengolwimi olufutshane lwePython oluneenkcazo eziguquguqukayo ezicacileyo) kwaye lunokusetyenziswa okuncinci kakhulu. Ukuhlanganiswa kunye nokutolikwa kwe-bytecode kuyaxhaswa. Itoliki ye-bytecode inika umqokeleli wenkunkuma kwaye ixhasa i-multithreading ngaphandle kokusebenzisa i-global lock. I-compiler kunye netoliki zinokuhlanganiswa njengelayibrari encinci ekwabelwana ngayo (~500 KB), idityaniswe nezinye iinkqubo kwaye ikwandiswe nge-C API. Ukongeza kwiToaruOS, ulwimi lungasetyenziswa kwi Linux, macOS, Windows kwaye isebenze kwiibrawuza ezixhasa iWebAssembly.
Kukhupho olutsha:
- Inkxaso yokuqala eyongeziweyo ye-architecture ye-AArch64 (ARMv8), kuquka amandla okulinga ukusebenzisa i-ToaruOS kwibhodi ye-Raspberry Pi 400 kunye ne-emulator ye-QEMU.
- Ukusetyenzwa kunye nokuhanjiswa kwemiqondiso kwiinkqubo kwindawo yabasebenzisi kuye kwayilwa ngokutsha. Isetyenziswe i-sigaction, i-sigprocmask, i-sigwait kunye ne-sigsuspend iminxeba.
- Ukuphuculwa kolawulo lwememori kwindawo yomsebenzisi. Kongezwe umnxeba wenkqubo ye-munmap.
- Umphathi odibeneyo uphumeza isiphumo sobumnyama kwaye aphinde asebenze ukuphathwa kweziganeko xa ubungakanani befestile butshintshiwe.
- Unikezelo lwetheminali luphuculiwe, unikezelo olonqena luphunyeziwe, kwaye i-glyph cache yongezwa kwiifonti zeTrueType.
- Izakhono zomqambi zandisiwe.
- Iindlela zokuseta iwotshi zongeziwe, kubandakanywa ukufowuna kwenkqubo ye-settimeofday kunye nesakhono esandisiweyo sokusetyenziswa komhla.
- Ukuphuculwa kwestakhi sothungelwano. Umsebenzi we ifconfig wongeze inkxaso yokucwangcisa iidilesi ze-IPv4 kunye nezicwangciso zendlela. Ukusebenza okusebenzayo kweesokethi ze-ICMP. Inkxaso eyongeziweyo yomsebenzi we-recvfrom ye-UDP kunye ne-ICMP sockets.
- I-bootloader yongeze amandla okusebenza ngeekhibhodi ze-USB.
- Into yokucima iifayile yongezwe kwimenyu yemeko yomphathi wefayile.
- Uphuculo lokubonisa iigrafu kwindlela yokujonga inkqubo.
- Yongezwe into eluncedo ye-grep kunye nenkxaso yokubonakalisa rhoqo.
- Ukuphuculwa kwemveliso yomyalelo we-ps (yongezwe iikholamu ezongezelelweyo).

umthombo: opennet.ru
