صورتی(Pink) + بنفش(Purple) = فوشیا (سیستم عامل جدید)
اکنون تکنولوژی های در حال گسترش فراتر از افکار ما هستند. هر هفته گزیده خبرهای ما با آپدیتهای تکنولوژی جدید پر میشود. یکی از این آپدیتهای هیجانانگیز اخیر، مربوط به گوگل است. این غول فناوری قرار است پس از اندروید و کروم، سیستمعامل دیگری را راهاندازی کند که Fuchsia نام دارد. در ابتدا اشاره کردم که صورتی + بنفش = فوشیا. صورتی(Pink) اولین تلاش اپل برای ساخت یک سیستم عامل مبتنی بر میکرو هسته شی گرا است و بنفش (Purple) نام مستعار آیفون است.
بنابراین، ذهن شما اکنون چند سوال خواهد داشت.
- فوشیا چیست؟
- چه مشکلی را حل خواهد کرد؟
قبل از بررسی دقیق مفاهیم تکنولوژی، ابتدا پاسخ سوالات فوق را می دهیم.
Fuchsia یک سیستم عامل open source است. Fuchsia اساساً برای اجرا بر روی دستگاههای عمومی مانند اتومبیلها، نمایشگرهای دیجیتال، سیستمهای تعبیهشده مانند چراغهای راهنمایی و تلفن، رایانه شخصی، ساعت هوشمند، تبلت و غیره ساخته شده است. این سیستمعامل واحد میتواند همه را مدیریت کند.
توسعه دهنده: google
Source model: open source
مجوز: BSD، MIT، Apache License 2.0
پلتفرم ها: ARM64، x86–64
نوشته شده در: C، C++، Dart، Go، Rust، Python
یک مرور کلی:
اگر به اکوسیستم اپل نگاهی بیندازیم، متوجه خواهیم شد که اپل بر سیستم عامل خود تسلط دارد. به عبارت ساده، اگر ما در حال خواندن چیزی در iPad هستیم و آن را کنار بگذاریم، می توانیم از نقطه ای که آخرین بار آن را کنار گذاشته ایم شروع کنیم. اما گوگل چنین اکوسیستمی را ندارد. حتی پس از نصب YouTube بر روی PC ما، برنامه از سیستم عامل اجرا نمی شود. روی instance کروم اجرا می شود، بنابراین منجر به تخلیه باتری زیادی می شود. اما Fuchsia می تواند این مشکل را حل کند، زیرا کنترل سیستم عامل را به دست می گیرد و ما می توانیم task ها را به صورت همزمان انجام دهیم. از آنجایی که گوگل در سرویس نرم افزاری قدرتمند است، فوشیا می تواند با قدرت بخشیدن به گوگل در زمینه سخت افزار ثابت کند که یک تغییر دهنده بازی است.
تاریخچه ای کوتاه:
در سال 2016، تصور می شد که گوگل در حال ساخت یک سیستم عامل جدید است که می تواند روی هر نوع دستگاهی اجرا شود. اما این خبر رسمی نبود.
در سال 2018، گوگل راهنمای نحوه اجرای Fuchsia Os را در کتاب Pixel منتشر کرد.
در I/O 2019، گوگل رسما Fuchsia را به عنوان یک سیستم عامل معرفی کرد.
در ژانویه 2019، یک device فوشیا به اکو سیستم اندروید اضافه شد.
پس از چند خبر و upgrade دیگر، گوگل در ماه می 2021 ، فوشیا را برای بازار مصرف کننده (consumer market) به کار گرفت و اعلام کرد که فوشیا یک پروژه ساختگی نیست بلکه آماده تولید است.
به مقدمه کوتاهی از فوشیا اشاره شد. بنابراین، بدون اتلاف وقت، بیایید به نکات فنی بپردازیم.
اول از همه، اصول اساسی که در طول توسعه سریع سیستم عامل در حال تکامل ، ثابت می مانند را باید درک کنیم:
1-ایمن بودن: سیستم عامل، حافظه را به کارهایی که لازم نیست اختصاص نمی دهد
2-قابل بهروزرسانی بودن: Updata ها را میتوان بر حسب تقاضا ارائه کرد و میتوان آن را فوراً نصب کرد.
3-فراگیر بودن (Inclusive): Fuchsia از زبانها، runtime ها و فریمورکهای مختلف از جمله C++، Web، Rust، Go، Flutter و Dart پشتیبانی میکند.
4- عمل گرا بودن(Pragmatic) : فوشیا یک سیستم عامل production-grade است و باید به اصولی مانند عملگرا بودن پایبند باشد.
سیستم عامل های معروفی مانند اندروید، اوبونتو و غیره بر اساس هسته لینوکس که نوعیMonolithic kernel (هسته یکپارچه) است، ساخته شده اند. از سوی دیگر، فوشیا به وسیله Zircon ، که یک micro kernel است، نیرو می گیرد.
در Monolithic kernel مانند لینوکس، پشتیبانی از قطعات کوچک و درایورها تقریباً همیشه در حافظه وجود دارد. بنابراین وقتی لینوکس را راهاندازی میکنیم، همه چیزهایی را که نیاز داریم در اختیار داریم. اما در مورد micro kernel ، به دلیل کوچک بودن و اثر کم، مواردی که لازم است در حافظه می آیند و می روند. وقتی درایور مورد نیاز نباشد، دیگر در حافظه باقی نخواهد ماند. بر خلاف MicroKernel که به راحتی قابل گسترش است، هسته Monolithic kernel به سختی قابل گسترش است.
kernel لینوکس از سیگنال استفاده می کند. بنابراین در لینوکس و یونیکس، یک event handler وجود دارد که به طور مداوم اجرا می شود. هر زمان که تغییراتی رخ دهد، یک سیگنال یا وقفه به عنوان یک رویداد تولید می شود. وقتی این رویداد دریافت شد، OS تصمیم می گیرد. Event Handler برای یونیکس و لینوکس در اجرا بسیار کند است. فوشیا سیگنال را پشتیبانی نمی کند. همچنین فوشیا بر مبنای برنامه نویسی رویداد محور و پترن observer کار می کند. اجرای عملی که توسط کاربر انجام می شود بسیار سریع است و main thread را مسدود(block) نمی کند.
بیایید در مورد لایه های فوشیا بحث کنیم
Zircon هسته ای است که درباره آن صحبت کردیم.
Garnet مکانی است که می توانید چیزهایی را که هر سیستم عامل نیاز دارد، مانند درایورهای دستگاه، المنت های شبکه، پشتیبانی گرافیکی و غیره پیدا کنید. نصب کننده نرم افزار همیشه در لایه Garnet وجود دارد. همچنین قابلیت آپدیت فوری نرم افزار را به ما می دهد. به عنوان مثال، هر زمان که یک آپدیت در مورد kernel لینوکس می آید، باید به کد لینوکس برویم. اما در فوشیا المنت های بیشتری در لایه گارنت وجود دارد، مانند:
- Google Escher به عنوان renderکننده گرافیکی
- Amber به عنوان آپدیت کننده نرم افزار
- Xi-code به عناون ویرایشگرهای کد و غیره
Peridot ، طراحی اپلیکیشن ماژولار Fuchsia را مدیریت می کند و دارای 2 کامپوننت Ledger و Maxwell می باشد . Ledger ، به همگام سازی(sync) فایل ها ، بین device ها با استفاده از سیستم ابری (Cloud system) کمک می کند. Maxwell جزء هوش مصنوعی است که فعالیت کاربر را در سیستم مشاهده می کند. بسته به فعالیت کاربر، به سیستم عامل پیشنهاد می کند کارهایی مانند خاموش کردن هر سیستمی، به جریان انداختن هر فیچر و غیره را انجام دهد. بنابراین برای مدیریت منابع سیستم بر اساس روش کار کاربر کمک می کند.
Topaz لایه بالایی است که از UI پشتیبانی می کند و Flutter ، UI استاندارد برای فوشیا، در اینجا آمده است. فوشیا مسیری با UI گرافیکی همانند لینوکس است ، همچنین لایههای واسط برای handle و مدیریت نحوه قرارگیری ویجتها روی صفحه می باشند.
کامپوننت دیگری به نام Sapphire وجود دارد که برای کنترل بلوتوث 5.0 استفاده می شود.
بنابراین، این کامپوننت اطلاعات بسیار بیشتری در مورد معماری فوشیا را دارد.
حالا بیایید اندروید و سیستم عامل کروم را با فوشیا مقایسه کنیم.
گوگل طبق مستندات خود می گوید فوشیا امن تر است و تنها دسترسی به اطلاعاتی را که لازم است داشته باشد بدست میآورد.
سیستم عامل اندروید و کروم مبتنی بر لینوکس است و همچنین یکپارچه (monolithic)و سنگین است. فضای زیادی را در هر دستگاهی می گیرد. بنابراین قرار دادن یک سیستم عامل مبتنی بر لینوکس در یک دستگاه IoT کمی پیچیده است و نیاز به تغییرات بسیار بیشتری دارد. از طرفی فوشیا سبک است و بر روی انواع دستگاه ها قابل اجراست. در فوشیا ، برای پشتیبانی از device می توان از 3 تا 4 هسته نگهداری کرد، جایی که ما می توانیم تمام دستگاه ها را تنها با یک هسته کنترل کنیم. بنابراین، از نظر اقتصادی نیز قدرتمند است.
در لینوکس، همه کارها با هم شروع می شود. در حالی که در فوشیا، کارها با فراخوانی وارد حافظه می شوند و زمانی که هیچ کاری باقی نمی ماند، حافظه را آزاد می کند. بنابراین عمر باتری در هر دستگاه مبتنی بر فوشیا بهتر از دستگاه سیستم عامل لینوکس است.
آیا این بدان معناست که اندروید و Chrome OS منسوخ خواهند شد؟
گوگل چیزی در این مورد بیان نکرده است. اما آنها می خواهند سیستم عامل Fuchsia را با جایگزین کردن سیستمعامل مبتنی بر لینوکس به کار ببرند.
برنامه های اندروید از طریق ماشین مجازی (virtual machine) در سیستم عامل فوشیا کاربردی خواند داشت؟ خیر. Starnix ، سیستمی در فوشیا است که به عنوان مترجم بین هسته لینوکس و هسته Zircon Fuchsia عمل می کند. بنابراین، می توانید امیدوار باشید که تجربه ای native استفاده از برنامه های اندروید در سیستم عامل Fuchsia داشته باشید.