whim؛ شل ریشهٔ یکبارمصرف روی MicroVM لامبدا در ۲ ثانیه
خلاصهٔ کاملتر
whim یه پروژهست که شلهای زودگذر رو روی AWS Lambda MicroVM فراهم میکنه؛ شاملِ یه کتابخونهٔ Go به اسم microvm و یه CLI به اسم whim. ایدهش اینه که تو حدود ۲ ثانیه یه شل ریشهٔ یکبارمصرف تو یه MicroVM فایرکراکر بالا بیاری، یه چیزی توش اجرا کنی و بذاری ناپدید بشه. سه دستور اصلیش این شکلیه:
whim init # یکبار: ساخت ایمیج پیشفرض سندباکس
whim # ورود به یه شل ریشهٔ یکبارمصرف
whim run -- pytest # بالا آوردن، اجرا، استریم خروجی، انتقال کد خروج، نابودیطبق مستندات، MicroVMهای لامبدا از یه ایمیج پیشساخته اجرا میشن، پس یه بوتاسترپِ یکباره لازمه. دستور whim init یه باکت S3 و یه نقش IAM برای ساخت فراهم میکنه، ایمیج پیشفرض رو میسازه و ARNش رو کش میکنه؛ این چند دقیقه طول میکشه. بعد از اون، هر بار whim یا whim run یه VM تازه از همون ایمیجِ کششده تو حدود ۲ ثانیه راه میاندازه، از طریق WebSocket بهش وصل میشه و موقع خروج نابودش میکنه.
هر VM با یه TTL سمت سرور (پیشفرض ۲۵ دقیقه، حداکثر ۸ ساعت) بهعنوان پشتیبانِ پاکسازی راهاندازی میشه تا اگه کلاینت مُرد، چیزی روشن نمونه. CLI دستورهای کاملی داره: run برای اجرا و استریم خروجی، exec برای اجرا تو یه VM موجود، ps مثل docker ps برای فهرستکردن، gc برای پاکسازی گروهی، suspend/resume برای توقف و ادامه (با حفظ دیسک و حافظه)، و put/get برای جابهجایی فایل. با whim build هم میشه از یه دایرکتوری محلی، آرشیو S3/HTTPS یا یه ریپوی گیتهاب، ایمیج سفارشی ساخت.
مدل امنیتیش چند تضمین میده: کد شما بهصورت root اجرا میشه ولی فقط از راه یه WebSocketِ احرازهویتشده در دسترسه؛ توکنهای شل هیچوقت لاگ نمیشن؛ اعتبارنامه فقط تزریقیه و microvm هیچوقت خودش اعتبار محیطی رو پیدا نمیکنه؛ هیچ VMای بدون TTL بالا نمیاد؛ و دسترسیِ privileged باید صریحاً درخواست بشه. get هم در برابر path-traversal و symlinkهای فرار محافظت شده و مسیرهای ریموت shell-quote میشن تا تزریق فرمان از راه اسم فایل رخ نده.
نویسنده به یه نکتهٔ مالکیت هم اشاره میکنه: چون MicroVMهای لامبدا قابل tagشدن نیستن، فرمانهای گروهی مثل ps/gc هر VM ساختهشده از ایمیجهای حساب خودت رو «متعلق به whim» فرض میکنن؛ ولی فرمانهای هدفدار مثل rm رو هر VMای که صریحاً نامش رو ببری اثر میذارن، پس تو یه حسابِ مشترک باید حواست باشه. این نسخه (v0.1) محدودیتهایی هم داره: خروجیِ exec ترکیبِ stdout و stderrه، انتقال فایل تو حافظه و سقفش ۲۵۶ مگابایته، و اتصال دوباره یه شل تازه میده. پروژه با لایسنس Apache 2.0 منتشر شده.
نکات کلیدی:
- whim یه کتابخونهٔ Go و CLI برای شلهای یکبارمصرف روی AWS Lambda MicroVMه
- تو حدود ۲ ثانیه یه شل ریشه تو MicroVM فایرکراکر بالا میاره و بعد نابودش میکنه
- مدل «یکبار بساز، بارها اجرا کن»: اول ایمیج پیشساخته، بعد VMهای تازه از روش
- هر VM یه TTL سمت سرور (پیشفرض ۲۵ دقیقه، حداکثر ۸ ساعت) داره
- مدل امنیتی: اجرا بهصورت root روی WebSocketِ احرازهویتشده، اعتبارنامهٔ تزریقی و محافظت در برابر path-traversal




