کجا میتوانم با توسعهدهندگان چت کنم؟
تمام بحثهای مربوط به توسعه سیستم عامل کرومیوم در انجمن پشتیبانی کرومبوک ما انجام میشود. میتوانید هر سوالی دارید بپرسید، اما حتماً ابتدا جستجو کنید تا ببینید آیا به سوال شما قبلاً پاسخ داده شده است یا خیر.
درخواستهای مربوط به ویژگیها را کجا میتوانم ثبت کنم؟
به عنوان یک پروژه نوپا، ما کارهای زیادی در پیش داریم و قصد انتشار آنها را داریم، بنابراین خوب است که فعلاً دست نگه داریم و پس از انتشار چند نسخه از ChromeOS دوباره بررسی کنیم.
در این فاصله میتوانید در لیست ایمیل بالا چت کنید/سوال بپرسید.
وقتی به وضعیت پایدارتری رسیدیم، میتوانید از ردیاب مشکلات ما استفاده کنید. برای جزئیات بیشتر به سوال بعدی مراجعه کنید.
کجا میتوانم اشکالات را ثبت کنم؟
لطفاً ابتدا مطمئن شوید که از آخرین نسخه کانال توسعهدهندگان استفاده میکنید. هنوز کارهای زیادی در حال انجام است.
در مرحله بعد، لطفاً مطمئن شوید که مشکل از قبل شناخته شده یا برطرف نشده است. میتوانید لیست اشکالات موجود را بررسی کنید.
اگر هنوز میخواهید بازخورد ارسال کنید، میتوانید یک گزارش بازخورد ثبت کنید و #crostini (نام دیگری برای لینوکس در ChromeOS) را در توضیحات آن قرار دهید. بازخورد در مورد هر بخش از ChromeOS را میتوان با alt + shift + i ثبت کرد.
اگر هنوز میخواهید باگ را به توسعهدهندگان گزارش دهید، از این لینک برای ارجاع به افراد مناسب استفاده کنید.
چرا اسم کروستینی؟
این یک نسخهٔ مکمل از کروتون است که پروژهای برای ایجاد آسان محیطهای کامل لینوکس (از جمله ابزارهای توسعهدهنده) برای کاربرانی است که حالت توسعهدهنده را فعال کردهاند. کروستینی (لینوکس روی ChromeOS) قصد دارد اکثر موارد استفادهای که کروتون پوشش میدهد را برآورده کند و یک میانوعدهٔ بزرگتر و خوشمزهتر از کروتون است، از این رو این نام را دارد.
کروستینی (لینوکس روی کروم او اس) چه ارتباطی با کروتون دارد؟
کروتون به تعریف بسیاری از موارد استفادهای که توسعهدهندگان با ChromeOS میخواستند کمک کرد، بنابراین به هدایت لینوکس روی ChromeOS از منظر الزامات کمک کرد. ما میخواستیم مطمئن شویم که اکثر کاربران کروتون میتوانند از لینوکس روی ChromeOS برای نیازهای خود، اما در یک محیط امن، استفاده کنند.
بنابراین کروتون به الهام بخشیدن به جهتگیری لینوکس در ChromeOS کمک کرد، اما هیچ کدی بین این دو به اشتراک گذاشته یا دوباره استفاده نشده است. موضوع این نیست که کروتون بد است، بلکه صرفاً یک مدل کاملاً متفاوت است.
چه زمانی دستگاه من پشتیبانی خواهد شد؟
ما در حال حاضر هیچ اطلاعاتی فراتر از این سند منتشر نمیکنیم. اگر دستگاه شما در بخش پشتیبانی دستگاهها در اسناد رسمی سیستم عامل کرومیوم فهرست نشده است، پس ما هنوز هیچ تصمیمی برای آن دستگاه خاص که برای عموم آماده باشد، نگرفتهایم.
بنابراین لطفاً از ما نقشه راه پشتیبانی دستگاه را درخواست نکنید زیرا ما آنها را نداریم.
آیا باید حالت توسعهدهنده را فعال کنم؟
نیازی به فعال کردن حالت توسعهدهنده (که در آن هنگام بوت شدن، صفحه ترسناکی مبنی بر غیرفعال بودن تأیید سیستم عامل مشاهده میکنید) نیست. همه این ویژگیها طوری طراحی شدهاند که در حالی که سیستم شما در حالت عادی/تأیید شده کار میکند، به طور ایمن اجرا شوند.
برای بعضی از دستگاهها ممکن است مجبور شوید به کانال توسعهدهندگان (dev channel) بروید، اما این کاملاً ربطی به حالت توسعهدهندگان (developer mode) ندارد.
آیا من لینوکس را روی ChromeOS اجرا میکنم؟
اگر از برنامه ترمینال یا برنامههای موجود در کانتینر پیشفرض ما، از جمله برنامههای ما برای تسهیل ادغام (مثلاً Sommelier )، استفاده میکنید، بله.
اگر کانتینر یا ماشین مجازی خودتان را اجرا میکنید، خیر.
چرا باید ماشینهای مجازی (VM) را اجرا کنیم؟ مگر کانتینرها امن نیستند؟
در حالی که کانتینرها اغلب خود را ایزوله میکنند (از طریق فضاهای نام لینوکس)، هسته یا منابع سیستم مشابه را ایزوله نمیکنند. این بدان معناست که فقط یک اشکال در هسته کافی است تا به طور کامل از سیستم سوءاستفاده کرده و دادههای شما را سرقت کند.
این برای ChromeOS کافی نیست، از این رو همه چیز را درون یک ماشین مجازی قرار میدهیم. حالا باید از طریق تعاملات محدود crosvm با ماشین مهمان، از آن بهرهبرداری کنید و خود crosvm به شدت در محیط امن (sandbox) قرار دارد.
برای جزئیات بیشتر، به بخش امنیت در اسناد رسمی سیستم عامل کرومیوم مراجعه کنید.
چگونه میتوانم فایلها را بین ChromeOS و کانتینر به اشتراک بگذارم؟
فضای ذخیرهسازی پیشفرض لینوکس در کانتینر ChromeOS از طریق «فایلهای لینوکس» در برنامه ChromeOS Files قابل دسترسی است. با استفاده از Secure Shell ، میتوانید یک اتصال SFTP را برای سایر کانتینرهای راه دور تنظیم کنید و سپس از طریق برنامه Files نیز به آنها دسترسی داشته باشید.
آیا میتوانم وقتی کانتینر در حال اجرا نیست به فایلها دسترسی داشته باشم؟
در حال حاضر، برای دسترسی به محتوای کانتینر، باید آن در حال اجرا باشد. کانتینر پیشفرض لینوکس در ChromeOS به طور خودکار زمانی که «فایلهای لینوکس» از برنامه Files قابل دسترسی باشد، اجرا میشود.
آیا میتوانم ماژولهای کرنل سفارشی نصب کنم؟
در حال حاضر، خیر، ترمینال از ماژول پشتیبانی نمیکند. این بدان معناست که تلاش برای استفاده از نرمافزاری که نیاز به ساخت یا بارگذاری ماژولهای هسته سفارشی (مثلاً VirtualBox) دارد، کار نخواهد کرد. به سوال بعدی نیز مراجعه کنید.
آیا میتوانم یک ماشین مجازی را درون ماشین مجازی اجرا کنم؟
مجازیسازی تودرتو در برخی از دستگاههای ChromeOS پشتیبانی میشود تا امکان پشتیبانی از شبیهساز اندروید را فراهم کند. علاوه بر این، میتوانید qemu-system را برای شبیهسازی سختافزار اجرا کنید و هر سیستمعاملی را که میخواهید درون آن بوت کنید. متأسفانه، این کار بسیار کند خواهد بود زیرا QEMU قادر به استفاده از KVM برای شتابدهی سختافزاری نخواهد بود.
آیا میتوانم یک کانتینر داکر یا کانتینر دیگری را درون کانتینر لینوکس ChromeOS اجرا کنم؟
بله! احتمالاً ابتدا باید بستههای مربوطه را برای هر قالب کانتینری که میخواهید اجرا کنید، نصب کنید.
چه معماری روی سیستم من کار میکند؟
معماری کانتینر لینوکس با معماری دستگاه شما مطابقت خواهد داشت. میتوانید از دو طریق مختلف متوجه شوید که این معماری چیست:
- در یک تب جدید، به آدرس chrome://settings/help/details بروید و به بخش پلتفرم (Platform) نگاه کنید، سپس نام برد (board) را با فهرست دستگاههای عمومی ما مطابقت دهید. برای مشاهده نوع پردازنده (CPU) خود، به فیلد «User ABI» نگاه کنید.
- crosh را باز کنید و
uname -mرا اجرا کنید. این دستور معماری دستگاه فعلی شما را نمایش میدهد.
اگر x86_64 مشاهده کردید، میتوانید کد کامپایل شده برای Intel/AMD را اجرا کنید (نسخههای ۳۲ بیتی/۶۴ بیتی/x32 همگی باید کار کنند).
اگر arm (یا چیزی شبیه به armv7l ) یا aarch64 را مشاهده کردید، میتوانید کد کامپایل شده برای ARM/ARM64 را اجرا کنید.
آیا میتوانم معماریهای دیگری را اجرا کنم؟
در حال حاضر هیچ پشتیبانی یکپارچهای برای اجرای مثلاً کد ARM روی سیستم Intel یا برعکس وجود ندارد. میتوانید خودتان این کار را انجام دهید (مثلاً با استفاده از qemu-user)، اما اگر با qemu-user آشنا هستید، پس از قبل آن را میدانید.
آیا میتوانم برنامههایی را اجرا کنم که پس از خروج از سیستم همچنان در حال اجرا هستند؟
نه! تمام ماشینهای مجازی (و کانتینرهای آنها) به جلسه ورود شما وابسته هستند. به محض اینکه از سیستم خارج شوید، تمام برنامهها طبق طراحی خاموش/از کار میافتند.
از آنجایی که تمام دادههای شما در خانه رمزگذاری شده شما قرار دارد، ما نمیخواهیم که هنگام خروج شما از سیستم، این اطلاعات فاش شود.
برای جزئیات بیشتر، به بخش امنیت در اسناد رسمی سیستم عامل کرومیوم مراجعه کنید.
آیا میتوانم هنگام ورود به سیستم، برنامهها را به صورت خودکار اجرا کنم؟
نه! همه ماشینهای مجازی (و کانتینرهای آنها) باید به صورت دستی دوباره راهاندازی شوند. این کار به جلوگیری از سوءاستفادههای مداوم کمک میکند.
برای جزئیات بیشتر، به بخش امنیت در اسناد رسمی سیستم عامل کرومیوم مراجعه کنید.
آیا میتوانم هنگام بوت شدن، برنامهها را به صورت خودکار اجرا کنم؟
نه! به سوالات قبلی مراجعه کنید.
آیا میتوانم متغیرهای محیطی را برای کانتینر خود تنظیم کنم؟
بله! چند راه برای انجام این کار وجود دارد.
- environment.d به شما امکان میدهد متغیرهای محیطی را برای جلسه
systemd --userخود تنظیم کنید، که شامل ترمینال و تمام برنامههای رابط کاربری گرافیکی میشود. برای استفاده از این روش، ممکن است به یک کانتینر جدیدتر، Debian 10 "buster" نیاز داشته باشید. - اگر فقط متغیرهای محیطی را در ترمینال خود میخواهید، آنها را در فایل پیکربندی پوسته خود تنظیم کنید، مانند
~/.bashrcیا~/.zshrc.
تغییرات در متغیرهای محیطی فقط برای برنامههای تازه شروع شده اعمال میشوند. همچنین ممکن است لازم باشد برنامهها یا کل کانتینر را برای اعمال هرگونه تغییر، مجدداً راهاندازی کنید.
آیا از چند پروفایلی پشتیبانی میشود؟
خیر، ترمینال فقط در پروفایل اصلی (*) پشتیبانی میشود. هدف ما این است که یک تجربه کاملاً کاربردی و روان برای پروفایل اصلی داشته باشیم و در پروفایلهای ثانویه از کار نیفتد یا مشکلی ایجاد نکند. ما قصد نداریم پروفایلهای ثانویه را با امکانات بیشتری بسازیم.
اگر با پشتیبانی از چند پروفایلی آشنا نیستید، برای جزئیات بیشتر به مستندات عمومی چند پروفایلی مراجعه کنید.
(*): برنامه ترمینال در تمام پروفایلهای ثانویه غیرفعال است. افراد میتوانند به صورت دستی ماشینهای مجازی را از طریق crosh و کانتینرهای موجود در آن راهاندازی کنند، اما رابط کاربری و برنامه Files احتمالاً به صورت خودکار ادغام نخواهند شد.
آیا حسابهای کاربری کودکان پشتیبانی میشوند؟
خیر، ترمینال در حسابهای کاربری کودک پشتیبانی نمیشود. ما برنامهای برای ارائه این قابلیت به چنین حسابهایی نداریم.
اگر با حسابهای فرزند آشنا نیستید، برای جزئیات بیشتر به مستندات عمومی حسابهای فرزند مراجعه کنید.
آیا ماشینهای مجازی/کانتینرها/دادههای من همگامسازی/پشتیبانگیری میشوند؟
در نهایت، شما مسئول هرگونه دادهای هستید که وارد کانتینرها میشود. برای همگامسازی آسان دادهها مانند پوشه پروژه بین دستگاهها، میتوانید یک پوشه در درایو را با لینوکس به اشتراک بگذارید . هر چیزی که به آن پوشه اضافه کنید، در درایو پشتیبانگیری شده و بین دستگاههای شما همگامسازی میشود.
چطور میتوانم از ماشین مجازی (VM) پشتیبان بگیرم؟
سادهترین روش، استفاده از قابلیت پشتیبانگیری جدید تعبیهشده در خود ChromeOS است. برای انجام این کار، به تنظیمات بروید و از منوی سمت چپ، گزینه «توسعهدهندگان» را انتخاب کنید. سپس به «لینوکس» بروید. «پشتیبانگیری و بازیابی» را خواهید یافت. اگر به این منو بروید، دکمه «پشتیبانگیری» را خواهید یافت که یک فایل .tini را برای شما ذخیره میکند.
اگر میخواهید از یک کانتینر جداگانه پشتیبانگیری کنید، رویکرد دیگر استفاده از دستورات استاندارد LXC است.
دستور vmc export میتواند برای خروجی گرفتن دستی از کل یک ماشین مجازی استفاده شود. این دستور به طور پیشفرض تصویر دیسک qcow2 را در پوشه Downloads ذخیره میکند. توجه داشته باشید که هنوز راهی برای وارد کردن یک ماشین مجازی وجود ندارد، بنابراین این فقط برای تشخیص مشکل یا استفاده از سیستم دیگری برای استخراج فایلها مفید است.
آیا میتوانم مستقیماً به فایلهای ماشین مجازی/کانتینر دسترسی داشته باشم (مثلاً از طریق برنامه Files)؟
در حال حاضر، خیر، هیچ راهی برای دسترسی به فایلهای تصویری مورد استفاده توسط ماشین مجازی وجود ندارد. هیچ برنامهای برای تغییر این وضعیت وجود ندارد.
اگر میخواهید از اطلاعات پشتیبان بگیرید، باید این کار را به صورت دستی انجام دهید.
چرا زمان داخل ماشین مجازی/کانتینر هماهنگ نیست؟
ساعت داخل ماشین مجازی (و به تبع آن، کانتینرها) به طور خودکار با ساعت ChromeOS همگامسازی میشود. بنابراین لازم نیست خودتان سرویسهای ثبت زمان (مثلاً ntp) را اجرا کنید. آن ساعت بر اساس UTC تنظیم میشود.
با شروع از R75، ما تلاش میکنیم دادههای منطقه زمانی را از طریق timedatectl در کانتینر همگامسازی کنیم. اگر این کار نکرد، با export کردن متغیر محیطی TZ به عقب برمیگردیم.
ما در حال حاضر جزئیات منطقه زمانی را در داخل خود ماشین مجازی بهروزرسانی نمیکنیم. همچنین سعی نمیکنیم تنظیمات منطقه زمانی دیگری را بهروزرسانی کنیم زیرا در توزیعهای مختلف غیر استاندارد هستند. بنابراین ممکن است در یک نگاه، زمان در آن محیطها اشتباه به نظر برسد، یا اگر از متغیر محیطی TZ استفاده شود، قدیمی به نظر برسد.
برای جزئیات فنی بیشتر به https://crbug.com/829934 مراجعه کنید. پیچیدهتر از آن چیزی است که فکر میکنید!
چه فرمتهای کپی و پیستی پشتیبانی میشوند؟
در حال حاضر، فقط محتوای text/plain پشتیبانی میشود. ما قصد داریم به زودی فرمتهای بیشتری (مثلاً image/png و text/rtf ) را اضافه کنیم.
میتوانید لیست پشتیبانیشدهی فعلی را در exo/data_source.cc مشاهده کنید.
اگرچه X / Wayland از تعداد دلخواهی از فرمتهای MIME پشتیبانی میکند، هدف نهایی ما این است که فقط از تمام فرمتهایی که خود کروم پشتیبانی میکند، پشتیبانی کنیم. برای مشاهدهی این لیست به فایل clipboard_constants.cc مراجعه کنید.
توجه داشته باشید که ما فقط در مورد محدودیتهای دادههای ذخیره شده در کلیپبورد صحبت میکنیم. برنامههای Wayland همچنان آزاد هستند که دادهها را مستقیماً بین خود و با هر فرمت دلخواهی که دوست دارند، منتقل کنند.
آیا میتوانم کلیپبورد را بهطور خودکار از داخل ماشین مجازی بخوانم/بنویسم؟
در حال حاضر، خیر.
از نقطه نظر امنیتی، ما نمیخواهیم کد غیرقابل اعتماد، هر آنچه کاربر کپی کرده است را به صورت مخفیانه یا خودکار استخراج کند. شاید جلسه مرورگر شما در حال کپی کردن اطلاعات شخصی یا رمزهای عبور باشد. این همان مشکلی است که پلتفرم وب با آن مواجه میشود.
این با چسباندن دستی دادهها توسط کاربران (مثلاً ctrl+v) متفاوت است. این فقط مربوط به خواندن برنامهنویسی شده است.
ما انتظار نداریم که این وضعیت برای همیشه به این شکل باقی بماند. زمانی که یک مدل مجوز و رابط کاربری برای مدیریت این موارد داشته باشیم، میتوانیم به کاربران اجازه دهیم که این مجوز را اعطا کنند.
اگر از xclip یا ابزارهای X استفاده میکنید، اغلب یک بافر محلی (در XWayland ) دارند، اما به طور خودکار با بقیه سیستم همگامسازی نمیشود.
آیا باید بهروزرسانیهای ماشین مجازی را مدیریت کنم؟
نه! ماشین مجازی ترمینال (Termina VM) کامپوننتی است که به طور خودکار بهروزرسانی میشود.
به خاطر داشته باشید که ماشین مجازی از کانتینر جدا است.
چگونه نسخه Termina را بررسی کنم؟
از آنجایی که Termina یک کامپوننت دانلود شده است، میتوانید در یک تب جدید به chrome://components مراجعه کرده و cros-termina را جستجو کنید.
همچنین میتوانید از طریق vsh به یک ماشین مجازی متصل شوید و cat /etc/lsb-release اجرا کنید.
آیا باید بهروزرسانیهای کانتینر را مدیریت کنم؟
بستههای ارائه شده توسط گوگل در کانتینر که با ChromeOS ارتباط برقرار میکنند یا برای ادغام ChromeOS مورد نیاز هستند، به طور خودکار و منظم بهروزرسانی میشوند. این کار هرگونه وابستگی لازم را به طور خودکار نصب میکند.
هیچ بهروزرسانی خودکاری برای سایر بستههای نصبشده در کانتینر وجود ندارد. ما ترجیح میدهیم از بهروزرسانی بستههایی که ممکن است برنامههای از قبل نصبشده را خراب کنند، خودداری کنیم. کانتینر مانند هر توزیع لینوکس دیگری است، بنابراین اگر نرمافزار جدیدتری میخواهید، باید هر از گاهی آن را بهروزرسانی کنید.
میتوانید sudo apt-get update && sudo apt-get dist-upgrade را اجرا کنید.
آیا میتوانم از IPv6 استفاده کنم؟
بله، از R81 شروع میشود. هر دو شبکه dual-stack و فقط IPv6 پشتیبانی میشوند.
سیستم عامل کروم فقط از SLAAC پشتیبانی میکند؛ برای اطلاعات بیشتر در مورد پشتیبانی از IPv6 در سیستم عامل کروم، به صفحه پشتیبانی مراجعه کنید.
آیا میتوانم به شبکه لایه ۲ دسترسی داشته باشم؟
در حال حاضر، خیر، دسترسی به شبکه فقط در لایه ۳ (یعنی IP) است. بنابراین شما قادر به انجام هیچ گونه پل ارتباطی یا کارهای سرگرم کننده سطح پایین نخواهید بود.
مشخص نیست که آیا/چه زمانی این تغییر خواهد کرد. اتصال به دنیای خارج با وایفای دشوار است و دستگاههای زیادی اتصال اترنت ندارند. ما میتوانیم از لایه ۲ بین کانتینرها پشتیبانی کنیم، اما مشخص نیست که چند نفر این را میخواهند تا تلاش لازم را توجیه کنند.
آیا VPN های تنظیم شده توسط CrOS/Android (خارج از ماشین مجازی/کانتینرها) کار میکنند؟
در حال حاضر، خیر. میتوانید برای بهروزرسانیها، https://crbug.com/834585 را ستارهدار کنید.
آیا خروجی صدا پشتیبانی میشود؟
بله، از R74 شروع میشود (نسخه ترمینال ۱۱۷۰۷.۰.۰+).
اگر کانتینر خود را قبل از استقرار پشتیبانی صوتی راهاندازی کردهاید، ممکن است به درستی پیکربندی نشده باشد (زیرا پیشفرض قبلی، خروجی به دستگاه تهی بود). میتوانید این مراحل را برای بازیابی امتحان کنید:
# Make sure the new cros-pulse-config package is installed. $ sudo apt-get update $ sudo apt-get dist-upgrade # Clear out existing pulse settings. $ rm -rf ~/.config/pulse # Turn it off & on again via crosh ([Ctrl]+[[Alt]]+[[T]]). crosh> vmc stop termina
آیا ضبط صدا (مثلاً میکروفون) پشتیبانی میشود؟
این قابلیت اکنون در نسخه ChromeOS M84 پشتیبانی میشود. برای فعال کردن ضبط صدا، به تنظیمات بروید و از منوی سمت چپ، گزینه «توسعهدهندگان» را انتخاب کنید. سپس به بخش «لینوکس» بروید. در آن منو، گزینه «اجازه دسترسی لینوکس به میکروفون» را خواهید یافت.
آیا میتوانم به سختافزار (مثلاً USB/بلوتوث/سریال) دسترسی داشته باشم؟
سیستم عامل کروم اکنون به شما امکان میدهد دستگاههای خاصی را از طریق USB به اشتراک بگذارید. برای فعال کردن دسترسی USB، به تنظیمات بروید و از منوی سمت چپ، گزینه «توسعهدهندگان» را انتخاب کنید. سپس به «لینوکس» و سپس به «تنظیمات USB» بروید. در اینجا میتوانید دسترسی USB را به صورت موردی فعال کنید.
این یک حوزه توسعه فعال برای تیم است و به مرور زمان از دستگاههای بیشتری پشتیبانی خواهد شد.
آیا میتوانم برنامههای وایلند را اجرا کنم؟
بله، و در واقع، اینها ترجیح داده میشوند! خود کروم به شدت با کلاینتهای Wayland سر و کار دارد، بنابراین اگر آن را ارتقا دهید، احتمال اینکه همه چیز «درست کار کند» خیلی بیشتر است.
ساملیه این پشتیبانی را به طور یکپارچه ارائه میدهد.
آیا میتوانم برنامههای X را اجرا کنم؟
بله، اگرچه ممکن است با برخی مشکلات سازگاری مواجه شوید، و احتمالاً هرگز به اندازه اجرای یک سرور X سنتی بینقص نخواهد بود. با این حال، با توجه به اینکه جامعه وسیعتری به Wayland نقل مکان میکنند، باید به اندازه کافی خوب باشد.
ساملیر (Sommelier) مسئول اجرای XWayland ، عمل به عنوان WM و همچنین ترجمه درخواستهای X و Wayland بین کروم و برنامههای X است.
چرا پنجرهها گاهی اوقات کوچک/تاریک هستند؟
برنامههای لینوکس که در قفسه لانچر قابل مشاهده هستند، باید گزینهای برای استفاده از چگالی بالا یا پایین داشته باشند. اگر متوجه شدید که وضوح تصویر مطابق میل شما نیست، روی آیکون کلیک راست کنید تا امکان تغییر بین چگالی بالا و پایین نمایش داده شود.
در حالی که کروم از نمایشگرهای با DPI بالا پشتیبانی میکند، بسیاری از برنامههای لینوکس این قابلیت را ندارند. وقتی یک برنامه به درستی از مقیاسبندی DPI پشتیبانی نکند، نتایج ضعیفی به دنبال خواهد داشت.
در حال حاضر ما رزولوشن و DPI داخلی را مستقیماً در اختیار برنامهها قرار میدهیم. اگر آنها کوچک یا مبهم نشان داده شوند، به این دلیل است که از مقیاسبندی به درستی پشتیبانی نمیکنند. شما باید این مشکلات را به پروژههای بالادستی مربوطه گزارش دهید تا، به امید روزی، "درست کار کند".
در عین حال، Sommelier برخی تنظیمات زمان اجرا را ارائه میدهد، بنابراین میتوانید ضریب مقیاس را بر اساس هر برنامه تنظیم کنید تا این سوء رفتار را برطرف کنید. برای جزئیات بیشتر، مستندات Sommelier را بررسی کنید.
اگر در حال اعمال بزرگنمایی در کل سیستم هستید یا وضوح پیشفرض نمایشگر را تغییر میدهید، ما سعی میکنیم خروجی برنامه را متناسب با آن تنظیم کنیم. این میتواند منجر به نتایج تار شود. میتوانید وضوح نمایشگر خود را تنظیم کنید یا از طریق Sommelier (برای جزئیات بیشتر به بالا مراجعه کنید) تنظیمات را تغییر دهید. برنامههای لینوکس که در قفسه لانچر قابل مشاهده هستند، باید گزینهای برای استفاده از چگالی بالا یا پایین داشته باشند. اگر متوجه شدید که وضوح مطابق میل شما کار نمیکند، روی نماد کلیک راست کنید تا امکان تغییر بین چگالی بالا و پایین را نشان دهد.
آیا سینرژی (همافزایی) مؤثر خواهد بود؟
Synergy (به عنوان کلاینت یا سرور) کار نخواهد کرد. این برنامه نیاز به ضبط و جعل ورودیها (مثلاً ماوس/کیبورد) برای همه پنجرهها دارد. از آنجایی که ما بر اساس Wayland ساخته شدهایم، طبق طراحی، یک کلاینت نمیتواند به هیچ کلاینت دیگری روی سیستم دسترسی داشته باشد. این یک مرز امنیتی قوی بین کلاینتها است زیرا ما نمیخواهیم کد دلخواهی که درون یک کانتینر اجرا میشود، بتواند به کلاینتهای دیگر (مانند مرورگر) نفوذ کرده و حمله کند و کلیدهای فشرده شده دلخواه را ارسال کند.
هیچ برنامهای برای فعال کردن این نوع کنترل از طریق کانتینر وجود ندارد. این به این معنی نیست که یک راهحل سینرژی مانند هرگز در ChromeOS (مثلاً چیزی شبیه CRD ) اتفاق نخواهد افتاد، فقط این راهحل سینرژی یا هیچ ابزار دیگری در یک کانتینر نخواهد بود.
میتوانید synergy را اجرا کنید، و احتمالاً کاری کنید که رویدادهای ورودی را برای پنجرهی واحدی که در آن اجرا میشود، منتقل کند، اما این نزدیکترین چیزی است که میتوانید به آن برسید.
آیا میتوانم برنامههای ویندوز را اجرا کنم؟
بله، WINE را امتحان کنید. البته سازگاری تا حد زیادی به WINE بستگی دارد، بنابراین لطفاً از ما درخواست پشتیبانی نکنید.
آیا میتوانم برنامههای macOS را اجرا کنم؟
احتمالاً نه. میتوانید راهحلهای مختلف لینوکس موجود را امتحان کنید، اما احتمال زیادی وجود دارد که آنها حتی در لبهها هم ناهموارتر باشند.
چرا crosvm را از ابتدا پیادهسازی کنیم (به جای استفاده از QEMU/kvmtool/و غیره…)؟
ما هیچ مخالفتی با هیچ یک از این پروژههای دیگر نداریم. در واقع، همه آنها بسیار عالی هستند و طرحهایشان بر ما تأثیر گذاشته است. از همه مهمتر، آنها بیش از آنچه ما نیاز داشتیم، کار انجام دادند و مدل امنیتی خوبی که ما با نوشتن مدل خودمان میتوانستیم به آن دست یابیم، نداشتند. در حالی که crosvm نمیتواند همه کارهایی را که آن پروژههای دیگر میتوانند انجام دهند، انجام دهد، فقط کاری را که ما به آن نیاز داریم، انجام میدهد.
برای جزئیات بیشتر، پروژه crosvm را بررسی کنید.
آیا ماشینهای مجازی سرعت همه چیز را کاهش نمیدهند؟
مطمئناً درست است که ماشینهای مجازی در مقایسه با اجرا در یک کانتینر یا مستقیماً در سیستم، سربار بیشتری ایجاد میکنند. با این حال، در آزمایشهای ما، سربار برای تجربه کاربری ناچیز است و ارزش افزایش قابل توجه امنیت سیستم را دارد.
برای جزئیات بیشتر، به بخش امنیت در اسناد رسمی سیستم عامل کرومیوم مراجعه کنید.
چرا کانتینرها را داخل ماشین مجازی اجرا کنیم؟ چرا برنامهها را مستقیماً در ماشین مجازی اجرا نکنیم؟
برای اینکه زمان راهاندازی ماشین مجازی (VM) را پایین نگه داریم، باید ترمینال (Termina) تا حد امکان کوچک باشد. این به معنای حذف برنامهها/فایلهایی است که به آنها نیاز نداریم یا به آنها نیازی نداریم.
ما از dm-verity استفاده میکنیم که مستلزم آن است که تصویر Termina برای امنیت فقط خواندنی باشد، اما همچنین به این معنی است که میتوانیم آن را با خیال راحت بین نمونههای ماشین مجازی به اشتراک بگذاریم.
علاوه بر این، نسخههای برنامهها/کتابخانههایی که ما ارائه میدهیم اغلب جدیدتر از سایر توزیعها هستند (زیرا ما از Gentoo ساخته شدهایم) و با پرچمهای امنیتی اضافی کامپایل میشوند.
اجازه دادن به کاربر برای اعمال تغییرات در ماشین مجازی ، از ایجاد یک تصویر بدون وضعیت (stateless image) که همیشه کار میکند و در غیر این صورت از اشتباهات کاربر و اشکالات برنامهها مصون است، جلوگیری میکند.
در مجموع، پشتیبانی از اجرای برنامههای دلخواه دشوار است و منجر به سیستمی میشود که فاقد بسیاری از ویژگیهای مطلوب ذکر شده در بالا است. قرار دادن اجباری همه چیز در یک کانتینر، راهحل قویتری ایجاد میکند و به کاربران اجازه میدهد بدون نگرانی آزادانه آزمایش کنند.
ضمناً، ما عاشق لاکپشتها هستیم .
آیا آسیبپذیری Foreshadow (معروف به L1TF / CVE-2018-3646) مدیریت میشود؟
بله. برای جزئیات بیشتر، به مستندات عمومی ما مراجعه کنید.
آیا میتوانم کانتینرهایی را که دیگر نمیخواهم حذف کنم؟
بله، میتوانید هر چیزی را که میخواهید حذف کنید. با این حال، در حال حاضر هیچ رابط کاربری یا دستوری برای کمک به این کار وجود ندارد.
آیا میتوانم ماشینهای مجازی که دیگر نمیخواهم را حذف کنم؟
بله، هر چیزی را که میخواهید میتوانید حذف کنید. دستور vmc destroy میتواند برای حذف دستی آنها استفاده شود.
آیا میتوانم این ویژگیها را غیرفعال کنم؟
مدیران میتوانند از طریق کنسول مدیریت، دسترسی به کانتینرها/ ماشینهای مجازی را کنترل کنند، بنابراین سازمانهای سازمانی/آموزشی که میخواهند این دسترسی را محدود کنند، میتوانند.
در ابتدا یک گزینه «لینوکس» در تنظیمات استاندارد ChromeOS وجود دارد، اما برنامه بلندمدت این است که این دکمه را حذف کنیم تا همه چیز بر اساس تقاضا کار کند. در آن زمان، هیچ دکمهای برای دستگاههای مدیریت نشده وجود نخواهد داشت.
آیا میتوانم سیستم عامل دیگری مانند ویندوز، macOS، لینوکس، *BSD و غیره را بوت کنم؟
در حال حاضر، خیر، شما فقط میتوانید ماشین مجازی لینوکس سفارشی ما به نام Termina را بوت کنید. همچنین به چند سوال بعدی مراجعه کنید.
آیا میتوانم ماشین مجازی/هسته خودم را اجرا کنم؟
در حال حاضر، خیر، شما فقط میتوانید Termina را که از هسته و پیکربندیهای سفارشی لینوکس ما استفاده میکند، بوت کنید. منتظر باشید!
آیا میتوانم یک توزیع لینوکس متفاوت را اجرا کنم؟
البته! خط فرمان کامل LXD در دسترس است و ریموت تصاویر شامل توزیعهای زیادی برای انتخاب است. با این حال، ما با چیزی غیر از کانتینر پیشفرضی که ارائه میدهیم آزمایش نمیکنیم، بنابراین ممکن است هنگام اجرای توزیع دیگری همه چیز خراب شود.
من از (distro) استفاده میکنم، چگونه میتوانم {برنامههای رابط کاربری گرافیکی، آیکونهای لانچر و غیره...} را دریافت کنم؟
فایلهای باینری Sommelier و Garcon به صورت bind-mounted در هر کانتینری قرار میگیرند، بنابراین نیازی به نصب یا کامپایل متقابل نیست. واحدهای systemd و فایلهای پیکربندی از cros-container-guest-tools این سرویسهای جانبی را در یک جلسه کاربری systemd اجرا میکنند. همچنین ایده خوبی است که loginctl enable-linger <user> اجرا کنید تا به این سرویسها اجازه دهید در پسزمینه اجرا شوند.
چند ماشین مجازی میتوانم اجرا کنم؟
شما میتوانید به هر تعدادی که سیستم شما (از نظر رم/پردازنده) میتواند پشتیبانی کند، تولید مثل کنید. همه آنها مستقل از یکدیگر هستند.
چند کانتینر میتوانم اجرا کنم؟
شما میتوانید به هر تعدادی که سیستم شما (از نظر رم/پردازنده) میتواند پشتیبانی کند، کانتینر ایجاد کنید. هر نمونه ماشین مجازی میتواند میزبان چندین کانتینر باشد.
چه قالبهای کانتینری پشتیبانی میشوند؟
ترمینال در حال حاضر فقط از LXC به طور مستقیم پشتیبانی میکند. ما از Kubernetes/Docker/OCI/rkt/و غیره آگاه هستیم و امیدواریم که استفاده از همه آنها را آسان کنیم.
برای یافتن راه حل موقت، به سوال قبلی مراجعه کنید.