Апублікаваны выпуск Unix-падобнай аперацыйнай сістэмы ToaruOS 2.1, напісанай з нуля і якая пастаўляецца са сваім ядром, загрузнікам, стандартнай Сі-бібліятэкай, пакетным мэнэджарам, кампанентамі прасторы карыстача і графічным інтэрфейсам з кампазітным аконным мэнэджарам. Першапачаткова праект развіваўся ў Ілінойскім універсітэце як даследчая праца ў вобласці стварэння новых кампазітных графічных інтэрфейсаў, але затым трансфармаваўся ў асобную аперацыйную сістэму. Код праекту напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй BSD. Для загрузкі падрыхтаваны live-выява, памерам 14.4/XNUMX МБ, які можна пратэставаць у QEMU, VMware або VirtualBox.
У аснове ToaruOS ляжыць ядро, якое выкарыстоўвае гібрыдную модульную архітэктуру, якая спалучае маналітную аснову і сродкі для выкарыстання загружаных модуляў, у выглядзе якіх аформлена большасць наяўных драйвераў прылад, такіх як драйверы дыска (PATA і ATAPI), ФС EXT2 і ISO9660, framebuffer, клавішы. , сеткавых карт (AMD PCnet FAST, Realtek RTL8139 і Intel PRO/1000), гукавых чыпаў (Intel AC'97), а таксама дадаткаў VirtualBox для гасцявых сістэм. Ядро падтрымлівае Unix-струмені, TTY, віртуальную ФС, псеўда-ФС /proc, шматструменнасць, IPC, ramdisk, ptrace, падзяляную памяць, шматзадачнасць і іншыя тыпавыя магчымасці.
Сістэма забяспечаная кампазітным аконным мэнэджарам, падтрымлівае дынамічна злучаныя выкананыя файлы ў фармаце ELF, шматзадачнасць, графічны стэк, можа выконваць Python 3 і GCC.У якасці файлавай сістэмы ўжываецца ext2. Загрузнік падтрымлівае BIOS і EFI. Сеткавы стэк дазваляе выкарыстоўваць API сокетаў у стылі BSD-сістэм і падтрымлівае сеткавыя інтэрфейсы, уключаючы loopback.
З уласных прыкладанняў вылучаецца падобны на Vi рэдактар кода Bim, які выкарыстоўваецца апошнія некалькі гадоў для распрацоўкі спецыфічных для ToaruOS прыкладанняў, такіх як файлавы мэнэджар, эмулятар тэрмінала, графічная панэль з падтрымкай віджэтаў, пакетны мэнэджар, а таксама бібліятэкі для падтрымкі малюнкаў (PNG, JPEG ) і TrueType-шрыфтоў. Для ToaruOS выканана партаванне такіх праграм, як Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs і да т.п.
Праектам таксама развіваецца ўласная дынамічная мова праграмавання Kuroko, разлічаны на замену Python пры распрацоўцы ўтыліт і карыстацкіх прыкладанняў для сістэмы. Мова па сінтаксісе нагадвае Python (пазіцыянуецца як скарочаны дыялект Python з відавочным вызначэннем зменных) і адрозніваецца вельмі кампактнай рэалізацыяй. Падтрымліваецца кампіляцыя і інтэрпрэтацыя байткода. Інтэрпрэтатар байткода падае зборшчык смецця, падтрымлівае шматструменнасць без ужывання глабальнага блакавання. Кампілятар і інтэрпрэтатар могуць быць сабраны ў форме невялікай падзялянай бібліятэкі (~500КБ), інтэграванай з іншымі праграмамі і якая пашыраецца праз C API. Акрамя ToaruOS мова можа выкарыстоўвацца ў Linux, macOS, Windows і запускацца ў браўзэрах з падтрымкай WebAssembly.
У новым выпуску:
- Дададзена пачатковая падтрымка архітэктуры AArch64 (ARMv8), у тым ліку з эксперыментальнай магчымасцю выкарыстання ToaruOS на плаце Raspberry Pi 400 і ў эмулятары QEMU.
- Перапрацавана апрацоўка і перадача сігналаў працэсам у прасторы карыстальніка. Рэалізаваны выклікі sigaction, sigprocmask, sigwait і sigsuspend.
- Палепшана кіраванне памяццю ў прасторы карыстальніка. Дададзены сістэмны выклік munmap.
- У кампазітным мэнэджары рэалізаваны эфект размыцця і перапрацавана апрацоўка падзей пры змене памеру акна.
- Палепшана адмалёўка тэрмінала, рэалізавана адкладзеная адмалёўка і дададзены кэш гліфаў для шрыфтоў TrueType.
- Пашыраны магчымасці кампаноўшчыка.
- Дададзеныя механізмы для ўстаноўкі гадзін, у тым ліку рэалізаваны сістэмны выклік settimeofday і пашыраны магчымасці ўтыліты date.
- Палепшаны сеткавы стэк. Ва ўтыліту ifconfig дададзеная падтрымка ўсталёўкі адрасоў IPv4 і налад маршрутызацыі. Забяспечана работа сокетаў ICMP. Дададзена падтрымка функцыі recvfrom для сокетаў UDP і ICMP.
- У загрузніку дададзена магчымасць працы з USB-клавіятурамі.
- У кантэкстнае меню файлавага мэнэджара дададзены пункт для выдалення файлаў.
- Палепшана адлюстраванне графікаў у сістэмным маніторы.
- Дададзена ўтыліта grep з падтрымкай рэгулярных выразаў.
- Палепшаны вывад каманды ps (дададзены дадатковыя слупкі).
Крыніца: opennet.ru