انتشار پروژه ToaruOS 1.14 با توسعه یک سیستم عامل یونیکس مانند که از ابتدا با هسته، بوت لودر، کتابخانه استاندارد C، مدیر بسته، اجزای فضای کاربر و یک رابط گرافیکی با یک مدیر پنجره ترکیبی نوشته شده است، در دسترس است. در مرحله فعلی توسعه، قابلیت های سیستم برای اجرای پایتون 3 و GCC کافی است. کد پروژه به زبان C نوشته شده و تحت مجوز BSD توزیع شده است. یک تصویر زنده با حجم 14 مگابایت برای دانلود آماده شده است که قابل تست در QEMU، VMware یا VirtualBox می باشد.

این پروژه در سال 2010 در دانشگاه ایلینوی آغاز شد و در ابتدا به عنوان کار تحقیقاتی در زمینه ایجاد رابط های گرافیکی ترکیبی جدید توسعه یافت. از سال 2012، این توسعه به سیستم عامل ToaruOS تبدیل شد، که در ابتدا به عنوان یک پروژه دانشجویی توسعه یافت، و سپس به یک سرگرمی آخر هفته تبدیل شد، که توسط جامعه ای که پیرامون پروژه تشکیل شده بود، انتخاب شد. در شکل فعلی، این سیستم به یک مدیر پنجره ترکیبی مجهز شده است، از فایل های اجرایی مرتبط به صورت پویا در قالب ELF، چند وظیفه ای، گرافیک و پشته های شبکه پشتیبانی می کند.
این بسته شامل یک پورت از زبان برنامه نویسی Python 3.6 است که در توسعه برخی از برنامه های گرافیکی خاص ToaruOS مانند مدیر بسته، ویرایشگر گرافیکی، نمایشگر PDF، ماشین حساب و بازی های ساده استفاده می شود. برنامه های شخص ثالثی که به ToaruOS منتقل می شوند عبارتند از Vim، GCC، Binutils، FreeType، MuPDF، SDL، Cairo، Doom، Quake، شبیه ساز Super Nintendo، Bochs و غیره.
ToaruOS مبتنی بر هستهای است که از یک معماری مدولار ترکیبی استفاده میکند که چارچوب یکپارچه و ابزارهایی را برای استفاده از ماژولهای قابل بارگذاری ترکیب میکند، که اکثر درایورهای دستگاه موجود، مانند درایورهای دیسک (PATA و ATAPI)، سیستمهای فایل EXT2 و ISO9660، فریمبافر را تشکیل میدهد. ، صفحه کلید، ماوس، کارت شبکه (AMD PCnet FAST، Realtek RTL8139 و Intel PRO/1000)، تراشههای صدا (Intel AC'97)، و همچنین افزودنیهای VirtualBox برای سیستمهای مهمان.
اجزای اولیه هسته شامل رشتههای یونیکس، TTYها، سیستمهای فایل مجازی، چندرشتهای، IPC، حافظه مشترک، چندوظیفگی و سایر ویژگیهای معمول است. از سیستم فایل ext2 استفاده میشود. برای تعامل با هسته، یک پیادهسازی سیستم فایل کاذب، /proc، مشابه آنچه در بالا ذکر شد، ارائه شده است. Linux.
برنامه های سال 2021 شامل کار بر روی معماری 64 بیتی x86-64 (در حال حاضر، مجموعه ها فقط برای سیستم های 32 بیتی x86 تولید می شوند) و پشتیبانی از سیستم های چند پردازنده ای (SMP) است. اهداف دیگر عبارتند از بهبود سازگاری با مشخصات POSIX در زمینه پردازش سیگنال و روشهای همگامسازی، رساندن کتابخانه استاندارد C به سطح Newlib و پیادهسازی کامپایلر و ابزارهای توسعه زبان C خود.
این پروژه همچنین در حال توسعه زبان برنامهنویسی پویای خود، Kuroko، است که برای جایگزینی پایتون در هنگام توسعه ابزارها و برنامههای کاربردی کاربر برای سیستم طراحی شده است. این زبان از کامپایل و تفسیر بایتکد پشتیبانی میکند، از نظر نحو شبیه به پایتون است (به عنوان یک گویش کوتاهشده پایتون با تعاریف صریح متغیر قرار میگیرد) و دارای یک پیادهسازی بسیار فشرده است. مفسر بایتکد یک جمعآوریکننده زباله ارائه میدهد و از چندنخی بدون استفاده از قفل سراسری پشتیبانی میکند. کامپایلر و مفسر را میتوان به عنوان یک کتابخانه مشترک کوچک (حدود ۵۰۰ کیلوبایت) کامپایل کرد، با سایر برنامهها ادغام شد و از طریق API C قابل توسعه است. علاوه بر ToaruOS، این زبان را میتوان در موارد زیر نیز استفاده کرد: Linux, macOS, Windows و در مرورگرهایی که از WebAssembly پشتیبانی میکنند، اجرا شود.
نسخه جدید ToaruOS بر توسعه کتابخانه استاندارد C و زبان برنامه نویسی Kuroko تمرکز داشت. به عنوان مثال، توابع ریاضی لازم برای محاسبه صحیح پارامترهای روشنایی در بازی Quake به libc اضافه شده است. قابلیت بوت شدن در VirtualBox در حالت EFI بهبود یافته است. اندازه تصویر iso با استفاده از فشرده سازی تصویر دیسک رم کاهش یافته است.
نسخه جدید زبان Kuroko 1.1 پشتیبانی از async و await را اضافه می کند، multithreading را پیاده سازی می کند، سازگاری با Python 3 را بهبود می بخشد، از تخصیص ارزش های متعدد پشتیبانی می کند، ابزارهای نوشتن کنترل کننده ها در زبان C را گسترش می دهد، پشتیبانی از حاشیه نویسی نوع توابع را اضافه می کند. کلیدواژههای «بازده» و «بازده از»، ماژولهای os، dis، fileio و زمان یکپارچه شدهاند، روشهای جدیدی در str، list، dict و بایتها پیادهسازی شدهاند، پشتیبانی از پیشکامپایل در بایت کد اضافه شده است، مجوز به MIT تغییر کرده است (قبلا ترکیبی از MIT و ISC وجود داشت).
منبع: opennet.ru
