Ukukhishwa kwesistimu yokusebenza efana ne-Unix i-ToaruOS 2.1 ishicilelwe, ibhalwe kusukela ekuqaleni futhi yahlinzekwa nge-kernel yayo, isilayishi sebhuthi, umtapo wezincwadi ojwayelekile C, umphathi wephakheji, izingxenye zesikhala somsebenzisi kanye nesixhumi esibonakalayo esinesithombe esinomphathi wewindi oyinhlanganisela. Le phrojekthi yaqale yathuthukiswa eNyuvesi yase-Illinois njengomsebenzi wocwaningo emkhakheni wokudala inhlanganisela entsha yezithombe zokusebenzelana, kodwa yabe isiguqulwa yaba uhlelo oluhlukile lokusebenza. Ikhodi yephrojekthi ibhalwe ngo-C futhi isatshalaliswa ngaphansi kwelayisensi ye-BSD. Isithombe esibukhoma sika-14.4 MB ngosayizi silungiselelwe ukudawuniloda, esingahlolwa ku-QEMU, VMware noma ku-VirtualBox.
Enhliziyweni ye-ToaruOS kukhona i-kernel esebenzisa i-hybrid modular architecture ehlanganisa isisekelo se-monolithic kanye nezindlela zokusebenzisa amamojula alayishwayo, ngendlela iningi labashayeli bedivayisi etholakalayo ehlanganiswe ngayo, njengama-disk driver (PATA ne-ATAPI), Isistimu yefayela ye-EXT2 ne-ISO9660, i-framebuffer, ikhibhodi, igundane, amakhadi enethiwekhi (AMD PCnet FAST, Realtek RTL8139 ne-Intel PRO/1000), ama-sound chips (Intel AC'97), kanye nezengezo zezivakashi ze-VirtualBox. I-kernel isekela imicu ye-Unix, i-TTY, isistimu yefayela ebonakalayo, isistimu yefayela ye-proc pseudo, i-multithreading, i-IPC, i-ramdisk, i-ptrace, inkumbulo eyabiwe, i-multitasking, nezinye izici ezivamile.
Uhlelo lufakwe isiphathi sewindi esiyinhlanganisela, sisekela amafayela asebenzisekayo axhunywe ngamandla ngefomethi ye-ELF, ukwenza imisebenzi eminingi, isitaki sezithombe, kungasebenzisa i-Python 3 ne-GCC. I-Ext2 isetshenziswa njengohlelo lwefayela. I-bootloader isekela i-BIOS ne-EFI. Isitaki senethiwekhi sivumela ukusetshenziswa kwe-API yesokhethi yesitayela se-BSD futhi sisekela ukuxhumana kwenethiwekhi, okuhlanganisa i-loopback.
Phakathi kwezinhlelo zokusebenza zomdabu, umhleli wekhodi we-Vi-like u-Bim uyagqama, osetshenziselwe iminyaka embalwa edlule ukuthuthukisa izinhlelo zokusebenza eziqondene ne-ToaruOS ezifana nomphathi wefayela, i-terminal emulator, iphaneli yehluzo enokusekelwa kwewijethi, umphathi wephakheji, kanye. njengemitapo yolwazi esekela izithombe (i-PNG, i-JPEG) namafonti e-TrueType. Izinhlelo ezifana ne-Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, njll. zithunyelwe ku-ToaruOS.
Le phrojekthi futhi ithuthukisa ulimi lwayo lokuhlela oluguqukayo i-Kuroko, eklanyelwe ukufaka esikhundleni sePython ekuthuthukisweni kwezinsiza kanye nezicelo zabasebenzisi zohlelo. Ulimi luyefana ku-syntax kuya ku-Python (lubekwe njengolimi lwesigodi olufushanisiwe lwe-Python olunencazelo ecacile yezinto eziguquguqukayo) futhi linokusebenza okuhlangene kakhulu. Ukuhlanganiswa nokuhunyushwa kwe-bytecode kuyasekelwa. Umhumushi we-bytecode unikeza umqoqi kadoti, usekela ukufundwa okuningiliziwe ngaphandle kokusebenzisa ukukhiya komhlaba wonke. Umhlanganisi notolika kungaqoqwa kumtapo wolwazi owabiwe omncane (~500KB) ongahlanganiswa nezinye izinhlelo futhi ande nge-C API. Ngokungeziwe ku-ToaruOS, ulimi lungasetshenziswa ku-Linux, macOS, Windows futhi lusebenze kuziphequluli ezinikwe amandla iWebAssembly.
Ekukhishweni okusha:
- Kwengezwe usekelo lokuqala lwezakhiwo ze-AArch64 (ARMv8), okuhlanganisa ikhono lokuhlola lokusebenzisa i-ToaruOS ebhodini le-Raspberry Pi 400 kanye nesifanisi se-QEMU.
- Ukucutshungulwa nokudluliselwa kwamasignali ezinqubweni ezisesikhaleni somsebenzisi kuklanywe kabusha. I-sigaction esetshenzisiwe, i-sigprocmask, i-sigwait kanye nezingcingo zokumisa okwesikhashana.
- Ukuphathwa kwenkumbulo okuthuthukisiwe esikhaleni somsebenzisi. Kwengezwe ikholi yesistimu ye-munmap.
- Umphathi oyinhlanganisela usebenzisa umphumela wokufiphalisa futhi asebenze kabusha ukuphatha imicimbi lapho usayizi wewindi ushintshwa.
- Ukunikezwa kwetheminali kuthuthukisiwe, ukunikezwa okuvilaphayo kusetshenziswe, futhi inqolobane ye-glyph yengeziwe kumafonti e-TrueType.
- Amakhono womqambi anwetshiwe.
- Izindlela zokusetha iwashi zengeziwe, okuhlanganisa ikholi yesistimu ye-settimeofday namandla anwetshiwe okusetshenziswa kwedethi.
- Isitaki senethiwekhi esithuthukisiwe. Insiza ye-ifconfig yengeze usekelo lokusetha amakheli e-IPv4 nezilungiselelo zomzila. Ukusebenza okunikwe amandla kwamasokhethi e-ICMP. Ukwesekwa okwengeziwe komsebenzi we-recvfrom kumasokhethi e-UDP ne-ICMP.
- I-bootloader yengeze amandla okusebenza ngamakhibhodi e-USB.
- Into yokususa amafayela yengezwe kumenyu yokuqukethwe yesiphathi sefayela.
- Ukuboniswa okuthuthukisiwe kwamagrafu kusiqaphi sesistimu.
- Kungezwe insiza ye-grep ngokusekelwa okujwayelekile kwesisho.
- Ukukhishwa komyalo we-ps okuthuthukisiwe (kwengezwe amakholomu engeziwe).
Source: opennet.ru