پروژه Moxnox 1.0: سیستمعامل سرگرمی سازگار با POSIX و الگوبرداری شده از معماری NT — Moxnox 1.0: NT-Like, POSIX-Compatible OS Running Atop Btrfs
خلاصه
مکسنوکس (Moxnox) یک سیستمعامل جدید و سرگرمی است که با الگوبرداری از ساختار Windows NT و سازگاری با POSIX روی سیستمفایل Btrfs اجرا میشود. این سیستمعامل با زبان C++ نوشته شده و به قدری بالغ است که میتواند خودش را کامپایل کند.
پروژه Moxnox یک سیستمعامل سرگرمی (Hobby OS) جدید با ویژگیهای منحصربهفرد است که توسط maharmstone توسعه داده شده است. این سیستمعامل مدلسازی syscallها و رابطهای سطح پایین خود را از Windows NT الهام گرفته، اما در عین حال توانایی اجرای نرمافزارهای نوشتهشده برای سیستمهای یونیکسمانند را داراست (به شرطی که مجدداً برای آن کامپایل شوند) و به یک سیستم پایه کامل GNU مجهز شده است.
نسخه ۱.۰ این پروژه شامل حدود ۱۳۰ هزار خط کد C++ است و از معماریهای amd64 و aarch64 پشتیبانی میکند. نکته جالب توجه این است که Moxnox به حدی از بلوغ رسیده که میتواند خودش را روی خودش کامپایل (Self-hosting) کند.
در یک نگاه
- زبان اصلی: C++ (حدود ۱۳۰ هزار خط)
- معماریهای پشتیبانیشده: amd64 و aarch64
- سیستمفایل: Btrfs
- وضعیت: انتشار نسخه ۱.۰
جزئیات معماری و سازگاری با NT
قرارداد اصلی Moxnox این است که سیستمکالها و اینترفیسهای سطح پایین آن با Windows NT مطابقت داشته باشند، اما ساختار خود هسته و دیمونها به شکل دیگری پیادهسازی شدهاند؛ رویکردی که با هدف بازآفرینی دقیق ویندوز در پروژههایی مانند ReactOS متفاوت است.
- فایلهای باینری از فرمت PE استفاده میکنند و پسوند
.exeیا.dllدارند. - استثناهای C++ از طریق SEH مدیریت میشوند.
- سیگنالهای POSIX از طریق فرایندهای ناهمگام (APCs) پیادهسازی شدهاند.
- کنوانسیون فراخوانی تابعها کاملاً با استاندارد ویندوز مطابقت دارد.
- تفاوتهای نوع دادههای زبان C مشابه ویندوز است (مثلاً
sizeof(long)معادلint32_tاست).
البته مسیردهی فایلها در این سیستمعامل برخلاف ویندوز سنتی، به جای بکاسلش از اسلش (/) و مسیرهای POSIX پیروی میکند.
پورتها و نرمافزارها
مکسنوکس مجموعهای غنی از ابزارها و نرمافزارهای پورتشده را به همراه دارد که شامل ابزارهایی نظیر bash، coreutils، git، vim، python، openssl و کامپایلرهای مختلف میشود که امکان کاربری واقعی را به توسعهدهنده میدهد.
نحوه اجرا و تست
برای اجرای این سیستمعامل در محیط QEMU برای معماری amd64، میتوانید از دستور زیر استفاده کنید:
qemu-system-x86_64 -M q35 -enable-kvm -cpu host -m 1024 \
-smp cores=4,threads=1 \
-kernel moxnox-kernel-amd64-1.0.efi \
-append "root=/dev/sda" \
-device ich9-ahci,id=ahci -drive id=disk,file=moxnox-amd64-1.0.img,if=none \
-device ide-hd,drive=disk,bus=ahci.0 \
-nic user,model=virtio-net-pci \
-device qemu-xhci \
-device usb-kbd,id=kbd \
-device usb-tablet,id=tablet \
-serial stdio
چرا در هکرنیوز مورد توجه قرار گرفت؟
این پروژه به این دلیل توجه کاربران هکرنیوز را به خود جلب کرده که پیادهسازی یک سیستمعامل مستقل از صفر (یا با الهام از معماری NT که کمتر توسط برنامهنویسان هابیست بررسی شده) کار بسیار دشواری است. کاربران همچنین به این نکته اشاره کردند که طراحی معماری NT برخلاف تصور رایج، بسیار پیشرفته و آیندهنگرانه بوده است. علاوه بر این، حجم قابل توجهی از کدهای C++ ماژولار بدون استفاده از ابزارهای هوش مصنوعی تولید شده که برای جامعه مهندسی نرمافزار جذاب است.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل