Moxnox 1.0: سیستمعاملی با هستهای شبیه ویندوز NT و سازگار با POSIX
خلاصهٔ کاملتر
Moxnox یه سیستمعامل سرگرمی (hobby OS) هست که نسخه ۱.۰ش منتشر شده. ایدهاش اینه که syscallها و رابطهای سطح پایینش (یعنی دستورهایی که برنامهها مستقیم از هسته میخوان) دقیقاً مثل ویندوز NT باشه، ولی در عین حال با استاندارد POSIX سازگار باشه و برنامههای یونیکسی رو بعد از کامپایل دوباره اجرا کنه. یه سیستم پایه کامل GNU هم همراهشه و روی فایلسیستم btrfs اجرا میشه.
نسخه ۱.۰ حدود ۱۳۰ هزار خط C++ هست و روی amd64 و aarch64 کار میکنه. مهمترین نقطه عطفش self-hosting هست، یعنی میشه کل سیستمعامل رو روی خودِ Moxnox کامپایل کرد. برای ساختش باید از Ninja استفاده کنی، چون پروژه از C++ modules استفاده میکنه و Unix Makefiles جواب نمیده. نویسنده هشدار میده که کد btrfs هنوز محکم نشده و فقط فایلسیستمهای دورریختنی رو mount کنید.
فرقش با ReactOS اینه که ReactOS میخواد یه کپی دقیق از ویندوز بسازه، ولی Moxnox فقط syscallها رو شبیه NT نگه میداره. فایلهای اجرایی فرمت PE دارن (نه ELF) با پسوند .exe و .dll، استثناهای C++ با SEH پیاده شدن و سیگنالهای POSIX هم با Asynchronous Procedure Call یا APC (یعنی صدا زدن یه تابع روی یه thread خاص بهصورت غیرهمزمان) کار میکنن. ولی مسیرها مثل یونیکس با / هستن و چیزهایی مثل Registry، توکنها و I/O completion port هنوز نیستن.
از حدود ۱۲۰۰ تابع POSIX 2024، تا الان ۶۴۲ تاش پیاده شده که به گفته نویسنده بیشتر چیزهاییه که تو عمل استفاده میشه. برخلاف ویندوز، fork هم داره. برای توابع ریاضی از musl، برای printf از mingw و برای regex از tre استفاده شده. ایدههایی مثل dentry cache و large folios هم از لینوکس قرض گرفته شدن. بیش از ۵۰ پورت مثل bash، git، python، openssh، vim و llvm آمادهست.
کمبودها هنوز زیادن: رابط گرافیکی، پشتیبانی از منطقههای زمانی و چیدمانهای مختلف کیبورد، هر نوع امنیت و چندکاربره بودن هنوز نیست. چندتا مشکل عجیب هم هست؛ مثلاً سیگنالها فقط موقع برگشت از syscall تحویل داده میشن، پس یه حلقه بینهایت خالی رو نمیشه kill کرد. برنامههای Win32 هم فعلاً اجرا نمیشن، ولی شاید بعداً DLLهای Wine پورت بشن.
نویسنده میگه هیچ کد اصلیای رو هوش مصنوعی ننوشته و از AI فقط برای کارهای تکراری پورت کردن و نوشتن چندتا تست کمک گرفته. به نظرش Claude تو بررسی commitها خیلی خوبه و نشت حافظه یا deadlock رو زود پیدا میکنه. دلیل ساختش هم یادگیری و سرگرمیه؛ نویسنده معتقده هسته NT خیلی دستکم گرفته شده و Moxnox همون ویندوزیه که دلش میخواست.
نکات کلیدی:
- Moxnox 1.0 حدود ۱۳۰ هزار خط C++ هست و روی amd64 (x86-64-v3) و aarch64 (ARMv8.1، مثلاً Raspberry Pi 5) اجرا میشه.
- syscallها شبیه ویندوز NT هستن، ولی ۶۴۲ تابع از حدود ۱۲۰۰ تابع POSIX 2024 پیاده شده.
- سیستمعامل self-hosting هست؛ فقط gcc، rust، hexyl و ripgrep هنوز روی خودش کامپایل نمیشن.
- فایلهای اجرایی فرمت PE دارن و سیگنالها با APC پیاده شدن.
- رابط گرافیکی، امنیت، چندکاربره بودن، Registry و اجرای برنامههای Win32 هنوز نیست.
- کد btrfs آزمایشیه و فقط باید روی فایلسیستمهای تستی استفاده بشه.




