چندپارگی اندروید (Android fragmentation) یکی از مشکلات همیشگی محبوبترین سیستم عامل موبایلی دنیاست. اگرچه کاربران تلفنهای هوشمند رده بالا هر سال نسخه جدید اندروید را دریافت میکنند، اما این آپدیتها آن قدر دیر منتشر میشوند که معمولا زمان زیادی تا معرفی نسخه بعدی باقی نمانده است. از سوی دیگر، در گروه گوشیهای مقرون بهصرفه، خیلی از کاربران تا مدتها آپدیتهای جدید را دریافت نمیکنند و از بهلحاظ امنیتی با مشکلات زیادی روبرو میشوند.
گوگل در سالهای اخیر تلاش زیادی کرده تا این مشکل را برطرف کند، اما نمیتوان با اطمینان گفت که این مشکلات چه زمانی بالاخره حل خواهد شد. پروژه تربل به بسیاری از کاربران کمک کرد تا زودتر اندروید پای را نصب کنند و این نسخه از اندروید توانست در سال نخست عرضه سریعتر از تمام نسخههای قبلی روی دستگاههای کاربران نصب شود. حالا انتظار داریم که اندروید ۱۰ عملکرد بهتری نسبت به اندروید پای داشته باشد، چرا که شرکتهای بسیاری از مدتها پیش دست به انتشار نسخههای بتای این آپدیت زدهاند.
با این حال، علیرغم تمام تلاشهایی که در زمینه انتشار سریعتر نسخههای مختلف اندروید و بهروزرسانیهای امنیتی صورت میگیرد، نحوه عملکرد این سیستم عامل به گونهای است که مانع از ظهور راهکاری ایدهآل برای این مشکل میشود. گوگل امسال در کنفرانس Linux Plumbers راهکار دیگری برای حل این مشکل معرفی کرد تا دستگاههای اندرویدی به جای استفاده از هسته یا کرنلهای سفارشی از یک کرنل عمومی لینوکس استفاده کنند.
در این بخش سعی میکنیم توضیحات کوتاه و سادهای ارائه کنیم، زیرا مبحث کرنلها به خودی خود پیچیده و خستهکننده است. کرنل رابطی میان سختافزار و نرمافزار موبایل شماست. برای مثال، اگر میخواهید نرمافزار دستگاه شما بتواند با سختافزار دوربین صحبت کند، به کرنل نیاز دارید. اندروید متکی بر کرنل لینوکس است چون این سیستم عامل از سیستم عامل لینوکس منشعب شده است.
در بحث اندروید، توسعه کرنل لینوکس به سه فاز مجزا تقسیم میشود. هر کدام از این فازها باعث جدایی هرچه بیشتر اندروید از کرنل لینوکسِ دارای پشتیبانی بلند مدت (LTS) میشود. در فاز اول کرنل مشترک اندروید وجود دارد که بر تمامی قابلیتهای خاص اندروید حاکم است و با LTS پیوند دارد. این کرنل به دست تولیدکنندگان چیپستها (نظیر کوآلکام، سامسونگ و هوآوی) میرسد تا آنها وصلههای سختافزاری خود را به آن اضافه کنند. سپس تولیدکنندگان تلفنهای هوشمند آن را دریافت میکنند تا وصلههای سختافزاریِ مختص هر دستگاه را در آن اعمال کنند. این مرحله شامل افزودن پشتیبانی از صدا، دوربین، نمایشگر و سایر ویژگیهاست.
در نتیجه، تمامی دستگاهها از کرنلهای خاص خودشان استفاده میکنند. در اندروید، هر سختافزار یکتا نیازمند یک کرنل یکتاست و بهروزرسانی هر بخش مستلزم بهروزرسانی تمام سیستم است. نسخههای جدید اندروید باید قبل از رسیدن به دست کاربر به تایید شرکتهای مختلفی برسند. به همین دلیل است که تلفنهای امروزی معمولا پشتیبانی بلند مدت دو ساله دارند و به همین خاطر است که آپدیتها این قدر دیر به دست کاربران میرسد.
پروژه تربل سعی دارد با جداسازی سیستم عامل اندروید و فریمورکهای سختافزاری (HAL) این مشکل را حل کند. این سازوکار به نرمافزارها اجازه میدهد به شکلی مستقلتر امکان بهروزرسانی داشته باشند. گوگل حالا میخواهد همین کار را برای کرنل سطح پایین لینوکس انجام داده و به جای استفاده از کرنل عمومیِ کامل از کرنلهای ماژولار استفاده کند.
هدف گوگل حرکت به سوی استفاده از یک کرنل عمومی مرکزی و چندین ماژول کرنل مختلف است. ماژولهای کرنل بیشتر مبتنی بر سختافزار هستند، در حالی که کرنل عمومی شامل وصلههای ضروری برای هسته اندروید است. این راهکار سرانجام به اندروید اجازه میدهد تا سازوکاری مشابه کامپیوترهای شخصی داشته باشد که در آن ماژولهای کرنل مثل درایورهای PC بهروز میشوند. بنابراین کرنل مرکزی سیستم عامل به صورت جداگانه آپدیت میگردد تا نسخههای جدید LTS سریعتر در دسترس کاربران قرار بگیرد.
از لحاظ تئوری، با این روش خیلی راحتتر میتوان آپدیتهای نرمافزاری و امنیتی را منتشر کرد بدون این که لازم باشد نگران سختافزار باشیم. ولی احتمالا همچنان به آزمایشهای سازگاری نیاز خواهیم داشت و سازندگان چیپستها و سختافزارها نیز در موقعیتهای مختلف باید در این پروسه دخیل شوند. چگونگی مدیریت تمام این فرآیندها سوالی است که هنوز پاسخی برای آن مطرح نشده است.
البته گفتنی است که طرح جدید گوگل یک محدودیت مهم دارد. در حال حاضر، گوگل صرفا میگوید که کرنل باید برای نسخههای منفرد LTS پایدار باشد. هدف آپدیت شدن میان نسخههای لینوکس نیست بلکه این شرکت فقط میخواهد بستری فراهم کند تا یک کرنل عمومی به جای هزاران انشعابی که از شرکتهای گوناگون بیرون میآید روی دستگاههای مختلف کار کند. به این ترتیب امکان انتشار آپدیتهای امنیتی و وصلههای کوچک بسیار آسانتر خواهد شد، اما آپدیتهای بزرگ سیستم عامل همچنان به این راحتی صورت نخواهد پذیرفت.
با وجود این که گوگل اشتیاق زیادی برای خلق نسخهای متحدالشکل از کرنل اندروید نشان داده، اما هیچ تضمینی وجود ندارد که آنها بتوانند به چنین هدفی دست یابند و مطمئنا چنین اتفاقی به این زودی نخواهد افتاد. سازگاری و یکپارچگی نرمافزارها و سختافزارهای اندروید در سطوح پایین مسئلهای بغرنج و بسیار پیچیده است. شاید گوگل در آینده با سیستم عامل فوچسیا بتواند این مشکل را حل کند. ولی با توجه به شرایط اندروید بعید به نظر میرسد که حتی با پیادهسازی این طرح لزوما تغییری در وضعیت انتشار آپدیتهای بزرگ و حیاتی به وجود آید.