Kutulutsidwa kwa makina ogwiritsira ntchito ToaruOS 2.3

ToaruOS 2.3, makina ogwiritsira ntchito a Unix olembedwa kuyambira pachiyambi ndi kutumizidwa ndi kernel yake, bootloader, laibulale yamtundu wa C, woyang'anira phukusi, zigawo za malo ogwiritsira ntchito, ndi mawonekedwe ojambulidwa ndi woyang'anira zenera wophatikizira, atulutsidwa. Ntchitoyi idapangidwa koyamba ku Yunivesite ya Illinois ngati pulojekiti yofufuzira popanga mawonekedwe atsopano opangira zithunzi, koma kenako idasinthidwa kukhala makina opangira oyimira okha. Khodi ya polojekitiyi idalembedwa mu C ndikugawidwa pansi pa layisensi ya BSD. Chithunzi cha 7.4 MB chilipo kuti mutsitse ndipo chikhoza kuyesedwa mu QEMU, VMware, kapena VirtualBox. Kutulutsidwa kwa makina ogwiritsira ntchito ToaruOS 2.3

Pamtima wa ToaruOS ndi kernel yomwe imagwiritsa ntchito zomangamanga zosakanizidwa zomwe zimagwirizanitsa maziko a monolithic ndi njira zogwiritsira ntchito ma modules olemedwa, momwe madalaivala ambiri omwe alipo amaikidwa, monga disk driver (PATA ndi ATAPI), EXT2 ndi ISO9660 mafayilo, chimango, kiyibodi, mbewa, makhadi amtaneti (AMD PCnet FAST, Realtek RTL8139 ndi Intel PRO/1000), tchipisi ta mawu (Intel AC'97), ndi zowonjezera za alendo za VirtualBox. Kernel imathandizira ulusi wa Unix, TTY, fayilo yamafayilo, /proc pseudo file system, multithreading, IPC, ramdisk, ptrace, kukumbukira kogawana, multitasking, ndi zina zambiri.

Dongosololi lili ndi woyang'anira zenera lophatikiza, limathandizira ma executable a ELF olumikizidwa mosinthasintha, kuchita zinthu zambiri nthawi imodzi, kuyika zithunzi, ndipo limatha kuyendetsa Python 3 ndi GCC. Dongosolo la mafayilo a ext2 limagwiritsidwa ntchito. Bootloader imathandizira BIOS ndi EFI. Network stack imathandizira ma API a socket a BSD-style ndi ma network interfaces, kuphatikiza loopback.

Pakati pazogwiritsa ntchito kwawo, Vi-like code editor Bim imadziwika. Zakhala zikugwiritsidwa ntchito kwa zaka zingapo zapitazi kupanga mapulogalamu amtundu wa ToaruOS, monga woyang'anira mafayilo, emulator yomaliza, chida chazithunzi chothandizidwa ndi widget, woyang'anira phukusi, ndi malaibulale othandizira zithunzi (PNG, JPEG) ndi mafonti a TrueType. Mapulogalamu monga Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, ndi ena adatumizidwa ku ToaruOS.

Pulojekitiyi ikupanganso chilankhulo chake cha pulogalamu, Kuroko, chomwe chapangidwa kuti chilowe m'malo mwa Python popanga mautumiki ndi mapulogalamu ogwiritsa ntchito pa dongosololi. Chilankhulochi chimafanana ndi Python (chimayikidwa ngati chilankhulo chafupikitsidwa cha Python chokhala ndi matanthauzo omveka bwino) ndipo chili ndi kukhazikitsidwa kochepa kwambiri. Kuphatikiza ndi kutanthauzira kwa bytecode kumathandizidwa. Womasulira wa bytecode amapereka chosonkhanitsa zinyalala ndipo amathandizira multithreading popanda kugwiritsa ntchito loko yapadziko lonse. Wophatikiza ndi womasulira akhoza kupangidwa ngati laibulale yaying'ono yogawana (~500 KB), yophatikizidwa ndi mapulogalamu ena komanso yowonjezereka kudzera mu C API. Kuwonjezera pa ToaruOS, chilankhulochi chingagwiritsidwe ntchito mu Linux, macOS, Windows ndipo imayendetsedwa m'masakatuli omwe amathandizira WebAssembly.

M'kutulutsa kwatsopano:

  • Choyimira cha terminal tsopano chikuthandizira ma tabu, omwe amatha kusinthidwa pakati pogwiritsa ntchito Alt-number sequence. Kutsanzira kwa zilembo zolimba tsopano kumathandizidwa kudzera pa double glyph overlay. Submenu ya "Terminal state" yawonjezedwa kuti iwonetse momwe zinthu zilili m'njira zosiyanasiyana ndi submenu ya "Send signal" yotumizira zizindikiro ku background processes. Kutulutsidwa kwa makina ogwiritsira ntchito ToaruOS 2.3
  • Chowonera chamanja cha dongosolo chakhazikitsidwa chomwe chimathandizira masamba a anthu mu mtundu wa roff. Kutulutsidwa kwa makina ogwiritsira ntchito ToaruOS 2.3
  • Menyu yaying'ono yosamalira matailosi a mawindo yawonjezedwa ku menyu yozungulira. Kutulutsidwa kwa makina ogwiritsira ntchito ToaruOS 2.3
  • Kernel imagwiritsa ntchito ma call atsopano a system, kuphatikizapo pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage, ndi fcntl. Thandizo la FD_CLOEXEC ndi FD_CLOFORK flags lawonjezedwa. Thandizo la kernel boot address randomization lagwiritsidwa ntchito. System call ABI yasamutsidwa kuti igwiritse ntchito malangizo a syscall/sysret.
  • Mphamvu za virtual console (TTY) zakulitsidwa kwambiri, ndipo kutsanzira kwa VGA text mode kutengera framebuffer kwaperekedwa.
  • Mtundu wa kapangidwe ka Aarch64 uli ndi kuthekera kogwira ntchito makina enieni kutengera QEMU.
  • Chithandizo chogwiritsa ntchito nthawi imodzi ndi ma soketi angapo a ICMP chawonjezedwa ku netiweki.
  • Ntchito zotsatirazi zawonjezedwa ku libc laibulale yokhazikika: getdelim, getline, scandir, telldir, rewindir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
  • Mautumiki atsopano okhazikika awonjezedwa: rmdir, uniq, cmp, zcat, realpath, id, nohup, ndi cksum. Zosankha zatsopano zawonjezedwa ku ls, grep, ndi fgrep. Mautumiki a ps, top, pstree, killall, ndi pidof alembedwanso ndipo asamukira ku laibulale yatsopano ya libtoaru_procfs, yomwe imagwirizanitsa ntchito ndi /proc pseudo-filesystem. Womasulira wa lamulo la esh wakulitsidwa.
  • Yawonjezera chida chowunikira chithunzi kuti muwone ngati chithunzicho chingalowetsedwe ndi laibulale yazithunzi ndikuwonetsa kukula kwa chithunzicho.
  • Chilankhulo cha mapulogalamu cha Kuroko chasinthidwa kukhala mtundu wa 1.5rc2.
  • Mkonzi wa zolemba wa Bim, wouziridwa ndi Vim, wasinthidwa kukhala mtundu wa 3.2. Mtundu watsopanowu uli ndi mawonekedwe abwino a syntax, chithandizo chowonjezeka cha zolemba za Kuroko, ndi makina atsopano odziyimira pawokha.

Source: opennet.ru

Gulani kuchititsa kodalirika kwamasamba okhala ndi chitetezo cha DDoS, ma seva a VPS VDS Gulani malo odalirika osungira mawebusayiti okhala ndi chitetezo cha DDoS, ma seva a VPS VDS | ProHoster