tgoop.com/sohrabcontents/2466
Last Update:
خب WSL2 کلاً چطور کار میکنه که من گفتم ناممکنه؟
اول از همه باید ببینیم که اولین نسخش چطور کار میکرده.
در نسخهی اول WSL، ویندوز بهجای اجرای یک کرنل لینوکس واقعی، لایهای از ترجمهی syscall پیادهسازی کرده بود. وقتی یک برنامهی لینوکسی فراخوان سیستمی مثل open() یا read() را صدا میزد، این فراخوانها مستقیماً به توابع هستهی ویندوز (NT API) مانند NtCreateFile یا NtReadFile ترجمه میشدن.
حالا WSL2 چه فرقی داره؟
توی این نسخه، مایکروسافت از یک ماشین مجازی بسیار سبک (Utility VM) مبتنی بر Hyper-V استفاده میکند که داخلش یک کرنل واقعی لینوکس بوت میشه. این کرنل برای ارتباط مستقیم با ویندوز پچ شده تا از طریق پروتکلهایی مانند 9p و virtio بتواند فایلسیستم، شبکه، حافظه و سایر منابع را با سیستم میزبان به اشتراک بذاره.
از اونجایی که این ماشینمجازی یک کرنل لینوکس واقعی رو اجرا میکند، تمام ABI و syscallها باید دقیقاً با لینوکس سازگار باشند. برای همین نمیشه سیستمعاملی مثل FreeBSD رو مستقیماً اجرا کرد.
چون با عکس محدودیت متن میخوریم فنیترش رو میرم پست بعدی.
@SohrabContents
BY محتوای آزاد سهراب


Share with your friend now:
tgoop.com/sohrabcontents/2466