Випуск операційної системи 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

Додати коментар або відгук