انتشار سیستم عامل مشابه یونیکس ToaruOS 2.1 منتشر شده است که از ابتدا نوشته شده و با هسته خود، بوت لودر، کتابخانه استاندارد C، مدیر بسته، اجزای فضای کاربر و یک رابط گرافیکی با یک مدیر پنجره ترکیبی عرضه شده است. این پروژه ابتدا در دانشگاه ایلینویز به عنوان کار تحقیقاتی در زمینه ایجاد رابط های گرافیکی ترکیبی جدید توسعه یافت، اما سپس به یک سیستم عامل جداگانه تبدیل شد. کد پروژه به زبان C نوشته شده و تحت مجوز BSD توزیع شده است. تصویر زنده با حجم 14.4 مگابایت برای دانلود آماده شده است که در QEMU، VMware یا VirtualBox قابل تست می باشد.
ToaruOS مبتنی بر هستهای است که از یک معماری مدولار ترکیبی استفاده میکند که چارچوب یکپارچه و ابزارهایی را برای استفاده از ماژولهای قابل بارگذاری ترکیب میکند، که اکثر درایورهای دستگاه موجود، مانند درایورهای دیسک (PATA و ATAPI)، سیستمهای فایل EXT2 و ISO9660، فریمبافر را تشکیل میدهد. ، صفحه کلید، ماوس، کارت شبکه (AMD PCnet FAST، Realtek RTL8139 و Intel PRO/1000)، تراشههای صدا (Intel AC'97)، و همچنین افزودنیهای VirtualBox برای سیستمهای مهمان. هسته از رشته های Unix، TTY، سیستم فایل مجازی، سیستم فایل شبه /proc، multithreading، IPC، ramdisk، ptrace، حافظه مشترک، چند وظیفه ای و سایر ویژگی های استاندارد پشتیبانی می کند.
این سیستم مجهز به مدیر پنجره ترکیبی است، فایلهای اجرایی مرتبط با پیوند پویا را در قالب ELF، چند وظیفهای، پشته گرافیکی پشتیبانی میکند، میتواند پایتون 3 و GCC را اجرا کند. Ext2 به عنوان سیستم فایل استفاده میشود. بوت لودر از BIOS و EFI پشتیبانی می کند. پشته شبکه امکان استفاده از APIهای سوکت به سبک BSD را می دهد و از رابط های شبکه، از جمله لوپ بک، پشتیبانی می کند.
در میان برنامه های بومی، ویرایشگر کد Vi-like Bim متمایز است که در چند سال اخیر برای توسعه برنامه های خاص ToaruOS مانند مدیر فایل، شبیه ساز ترمینال، پنل گرافیکی با پشتیبانی ویجت، مدیریت بسته و همچنین استفاده شده است. به عنوان کتابخانه هایی برای پشتیبانی از تصاویر (PNG، JPEG) و فونت های TrueType. برنامه هایی مانند Vim، GCC، Binutils، FreeType، MuPDF، SDL، Cairo، Doom، Quake، شبیه ساز Super Nintendo، Bochs و غیره به ToaruOS منتقل شده اند.
این پروژه همچنین در حال توسعه زبان برنامه نویسی پویا خود به نام Kuroko است که برای جایگزینی پایتون در هنگام توسعه ابزارهای کاربردی و برنامه های کاربردی سفارشی برای سیستم طراحی شده است. این زبان در نحو یادآور پایتون است (به عنوان یک گویش کوتاه شده پایتون با تعریف صریح متغیرها قرار گرفته است) و پیاده سازی بسیار فشرده ای دارد. کامپایل و تفسیر بایت کد پشتیبانی می شود. مفسر بایت کد جمعآوری زباله را فراهم میکند و از multithreading بدون استفاده از قفل جهانی پشتیبانی میکند. کامپایلر و مفسر را می توان در قالب یک کتابخانه مشترک کوچک (~500 کیلوبایت) کامپایل کرد که با برنامه های دیگر یکپارچه شده و از طریق C API قابل توسعه است. علاوه بر ToaruOS، این زبان را می توان در لینوکس، macOS، ویندوز استفاده کرد و در مرورگرهایی اجرا کرد که از WebAssembly پشتیبانی می کنند.
در نسخه جدید:
- پشتیبانی اولیه برای معماری AArch64 (ARMv8) اضافه شده است، از جمله توانایی آزمایشی برای استفاده از ToaruOS در برد Raspberry Pi 400 و در شبیه ساز QEMU.
- پردازش و انتقال سیگنال به فرآیندهای موجود در فضای کاربر دوباره طراحی شده است. برقراری تماس های sigaction، sigprocmask، sigwait و sigsuspend.
- بهبود مدیریت حافظه در فضای کاربر. تماس سیستم munmap اضافه شد.
- مدیر ترکیبی یک افکت تاری را پیادهسازی میکند و هنگام تغییر اندازه پنجره، مدیریت رویدادها را دوباره کار میکند.
- رندر ترمینال بهبود یافته است، رندر تنبل پیاده سازی شده است، و یک حافظه پنهان گلیف برای فونت های TrueType اضافه شده است.
- قابلیت های آهنگساز گسترش یافته است.
- مکانیسمهایی برای تنظیم ساعت اضافه شده است، از جمله تماس سیستمی settimeofday و قابلیتهای توسعهیافته ابزار تاریخ.
- پشته شبکه بهبود یافته ابزار ifconfig پشتیبانی از تنظیم آدرس های IPv4 و تنظیمات مسیریابی را اضافه کرده است. عملکرد سوکت های ICMP فعال شده است. پشتیبانی از عملکرد recvfrom برای سوکت های UDP و ICMP اضافه شده است.
- بوت لودر قابلیت کار با کیبورد USB را اضافه کرده است.
- یک مورد برای حذف فایل ها به منوی زمینه مدیریت فایل اضافه شده است.
- نمایش بهتر نمودارها در مانیتور سیستم.
- ابزار grep با پشتیبانی از بیان منظم اضافه شد.
- خروجی فرمان ps بهبود یافته (اضافه شدن ستون های اضافی).
منبع: opennet.ru