Выпуск аперацыйнай сістэмы ToaruOS 1.14 і мовы праграмавання Kuroko 1.1

Даступны выпуск праекта ToaruOS 1.14, які развівае напісаную з нуля Unix-падобную аперацыйную сістэму са сваім ядром, загрузнікам, стандартнай Сі-бібліятэкай, пакетным мэнэджарам, кампанентамі прасторы карыстача і графічным інтэрфейсам з кампазітным аконным мэнэджарам. На бягучым этапе развіцця магчымасцяў сістэмы дастаткова для выканання Python 3 і GCC. Код праекту напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй BSD. Для загрузкі падрыхтаваны live-выява, памерам 14 МБ, які можна пратэставаць у QEMU, VMware або VirtualBox.

Выпуск аперацыйнай сістэмы ToaruOS 1.14 і мовы праграмавання Kuroko 1.1

Праект стартаваў у 2010 годзе ў Ілінойскім універсітэце і спачатку развіваўся як даследчая праца ў галіне стварэння новых кампазітных графічных інтэрфейсаў. З 2012 года распрацоўка трансфармавалася ў аперацыйную сістэму ToaruOS, якая развіваецца спачатку ў якасці студэнцкага праекта, а потым перарослай у хобі выхаднога дня, падхопленым супольнасцю, якая ўтварылася вакол праекта. У бягучым выглядзе сістэма забяспечана кампазітным аконным мэнэджарам, падтрымлівае дынамічна злучаныя выкананыя файлы ў фармаце ELF, шматзадачнасць, графічны і сеткавы стэкі.

У пастаўку ўваходзіць порт мовы праграмавання Python 3.6, які скарыстаны пры распрацоўцы некаторых спецыфічных для ToaruOS графічных прыкладанняў, такіх як пакетны мэнэджар, графічны рэдактар, прагляднік PDF, калькулятар, простыя гульні. З партаваных для ToaruOS іншых праграм адзначаюцца Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs і да т.п.

У аснове ToaruOS ляжыць ядро, якое выкарыстоўвае гібрыдную модульную архітэктуру, якая спалучае маналітную аснову і сродкі для выкарыстання загружаных модуляў, у выглядзе якіх аформлена большасць наяўных драйвераў прылад, такіх як драйверы дыска (PATA і ATAPI), ФС EXT2 і ISO9660, framebuffer, клавішы. , сеткавых карт (AMD PCnet FAST, Realtek RTL8139 і Intel PRO/1000), гукавых чыпаў (Intel AC'97), а таксама дадаткаў VirtualBox для гасцявых сістэм.

З якія прадстаўляюцца ядром прымітываў адзначаюцца Unix-струмені, TTY, віртуальная ФС, многопочность, IPC, падзяляная памяць, шматзадачнасць і іншыя тыпавыя магчымасці. У якасці файлавай сістэмы прымяняецца ext2. Для ўзаемадзеяння з ядром падаецца рэалізацыя псеўда-ФС /proc, створаная па аналогіі з Linux.

З планаў на 2021 год адзначаецца забеспячэнне працы на 64-разраднай архітэктуры x86-64 (пакуль зборкі фармуюцца толькі для 32-разрадных сістэм x86) і падтрымка шматпрацэсарных сістэм (SMP). З іншых мэт завецца паляпшэнне сумяшчальнасці са спецыфікацыямі POSIX у вобласці апрацоўкі сігналаў і метадаў сінхранізацыі, давядзенне стандартнай Сі-бібліятэкі да ўзроўня Newlib, рэалізацыя ўласнага кампілятара мовы Сі і прылад для распрацоўкі.

Праектам таксама развіваецца ўласная дынамічная мова праграмавання Kuroko, разлічаны на замену Python пры распрацоўцы ўтыліт і карыстацкіх прыкладанняў для сістэмы. Мова падтрымлівае кампіляцыю байткода і інтэрпрэтацыю, па сінтаксісе нагадвае Python (пазіцыянуецца як скарочаны дыялект Python з відавочным азначэннем зменных) і адрозніваецца вельмі кампактнай рэалізацыяй. Інтэрпрэтатар байткода падае зборшчык смецця, падтрымлівае шматструменнасць без ужывання глабальнага блакавання. Кампілятар і інтэрпрэтатар могуць быць сабраны ў форме невялікай падзялянай бібліятэкі (~500КБ), інтэграванай з іншымі праграмамі і якая пашыраецца праз C API. Акрамя ToaruOS мова можа выкарыстоўвацца ў Linux, macOS, Windows і запускацца ў браўзэрах з падтрымкай WebAssembly.

У новым выпуску ToaruOS асноўная ўвага была нададзена развіццю стандартнай Сі-бібліятэкі і мове праграмавання Kuroko. Напрыклад, у libc дададзены матэматычныя функцыі, неабходныя для карэктнага разліку параметраў асвятлення ў гульні Quake. Наладжана магчымасць загрузкі ў VirtualBox у рэжыме EFI. Скарочаны памер iso-выявы за кошт прымянення сціску выявы ram-дыска.

У новым выпуску мовы Kuroko 1.1 дададзена падтрымка async і await, рэалізавана шматструменнасць, палепшана сумяшчальнасць з Python 3, рэалізавана падтрымка множных прысваенняў значэнняў, пашыраны сродкі для напісання апрацоўшчыкаў на мове Сі, дададзена падтрымка анатавання тыпаў для функцый, дададзены ключавыя. "yield from", інтэграваныя модулі os, dis, fileio, і time, рэалізаваны новыя метады ў str, list, dict і bytes, дададзеная падтрымка перадкампіляцыі ў байткод, ліцэнзія зменена на MIT (раней была камбінацыя з MIT і ISC).

Крыніца: opennet.ru

Дадаць каментар