coreutils به ویندوز رسید
خلاصهٔ کاملتر
مایکروسافت تو کنفرانس Build از coreutils for Windows رونمایی کرد؛ یه مجموعه ابزار خطفرمان به سبک یونیکس که خود مایکروسافت نگهداریش میکنه و بومی روی ویندوز اجرا میشه. ایده اینه که همون دستورها و pipelineهایی که رو لینوکس و مک و WSL استفاده میکنی، عیناً رو ویندوز هم کار کنن.
این ابزار بهصورت یه باینری چندفراخوانی (multi-call) عرضه میشه؛ یعنی یه فایل اجراییه که هر ابزار رو زیر اسم استاندارد خودش در دسترس میذاره، مثل cat.exe و grep.exe و find.exe. هر دستور هم فلگ استاندارد --help رو پشتیبانی میکنه. به گفتهی مایکروسافت هدف اینه که موقع جابهجایی بین لینوکس، مک، WSL، کانتینرها و ویندوز اصطکاک کم بشه و اسکریپتها و عادتهای قبلی بدون ترجمه منتقل بشن.
نکتهی جالب اینه که این پروژه یه پورت از بازنویسی مبتنی بر Rust ابزارهای GNU هست؛ یعنی پروژههای uutils coreutils و findutils و grep. پس این همون GNU coreutils اصلی نیست، بلکه پیادهسازی دوبارهشون با Rustـه.
نویسنده تأکید میکنه که این پورتها مجبورن با یه سری «ویندوزیسم» کنار بیان. اولین چیزی که به ذهن میرسه جداکنندهی مسیره؛ این ابزارها هم جداکنندهی درست هم نادرست ویندوز/DOS رو میپذیرن، ولی چون بعضی ابزارها فقط نوع نادرست رو خروجی میدن، همین ممکنه روی pipe کردن اثر بذاره. مسائل دیگهای هم هست مثل تفاوت ACLهای ویندوز با بیتهای مجوز POSIX و نبودن /dev/null.
یه نکتهی دیگه اینه که یه سری دستور به مفاهیم مخصوص POSIX وابستهان و اصلاً اضافه نشدن، و چندتا دستور هم که رو ویندوز بهدرد نمیخورن کنار گذاشته شدن. چون بعضی دستورها با دستورهای داخلی cmd.exe و PowerShell تداخل دارن، اینکه کدوم نسخه اجرا بشه بستگی داره به شل، ترتیب PATH و جدول alias تو PowerShell.
فعلاً همهچی تو نسخهی preview هست و از طریق WinGet قابل نصبه. تو بحثهای ذیل خبر هم بعضیها اشاره کردن که پروژههای قدیمیتری مثل Cygwin و MinGW دههها پیش یه محیط یونیکسی کاملتر روی ویندوز فراهم کرده بودن، هرچند با رویکرد متفاوت.
نکات کلیدی:
- مایکروسافت ابزارهای خطفرمان یونیکسی رو بومی به ویندوز آورد
- یه باینری چندفراخوانیه که هر ابزار رو با اسم استانداردش مثل grep.exe در دسترس میذاره
- پورتی از بازنویسی Rustای uutils (نه GNU coreutils اصلی)
- باید با ویندوزیسمهایی مثل جداکنندهی مسیر، ACL و نبود /dev/null کنار بیاد
- دستورهای وابسته به POSIX اضافه نشدن و بعضی دستورها با cmd و PowerShell تداخل دارن
- فعلاً previewـه و با WinGet نصب میشه




