[ad_1]
آیا می دانید هسته لینوکس چیست؟ کاربرد آن در اندروید چیست، چرا در اندروید مورد نیاز است و چگونه می تواند عملکرد گوشی اندرویدی را تقویت کند؟ در این مقاله به این سوالات پاسخ خواهیم داد و هر آنچه را که باید در مورد سرهنگ و انواع آن بدانید را به شما می گوییم.
آیا تا به حال نام هسته لینوکس را شنیده اید؟ اندروید نیز از هسته لینوکس استفاده می کند. در واقع هسته اندروید که به آن هسته اندروید نیز می گویند، جزء لاینفک سیستم عامل لینوکس است و تاثیر بسزایی در عملکرد گوشی شما دارد. اما سرهنگ چیست؟
کلمه لینوکس به راحتی قابل درک است. در واقع کلمه لینوکس ترکیبی از Linus و Unix است. Linus در واقع به Linus Torvalds، مهندس نرم افزار اشاره دارد و Unix نام نرم افزار است. لینوس توروالدز نام یک مهندس نرم افزار سیستم عامل یونیکس است. اما سرهنگ چیست؟ هسته در رایانه ها و دستگاه های دیگر به چه معناست؟ هسته لینوکس به چه معناست؟
هسته منابع CPU گوشی، حافظه سیستم، برخی از سخت افزارها و فایل های سیستم و فرآیندهای مربوط به شبکه را مدیریت می کند. هسته همچنین مسئول مدیریت تمام فرآیندها و عملکردها (وظایف) است که در تلفن هوشمند اجرا می شود.
در واقع زمانی که یک اپلیکیشن را اجرا می کنید، این قسمت از اندروید اپلیکیشن را در حافظه بارگذاری می کند، فعالیت های پردازشی لازم را انجام می دهد و در نهایت اپلیکیشن را اجرا می کند. به عبارت دیگر، زمانی که برنامه به فضای حافظه نیاز دارد، هسته فضای مورد نیاز را فراهم می کند و یا زمانی که برنامه به شبکه نیاز دارد، هسته فرآیند سطح پایینی را برای این فرآیند انجام می دهد.
همچنین هسته وظیفه هدایت و مدیریت دستگاه هایی مانند بلوتوث گوشی را بر عهده دارد و درایور این دستگاه ها به حساب می آید. هنگامی که برنامه ای می خواهد در پس زمینه سیستم عامل کار کند، تمام رشته های پس زمینه را مدیریت می کند (در رشته پس زمینه، فعالیت های پردازشی در پس زمینه سیستم عامل انجام می شود، مانند عملیات رایانه روی اطلاعات ورودی دریافتی توسط کاربر. ).
علاوه بر این، پس از بستن برنامه توسط کاربر، هسته تمام اطلاعات ذخیره شده در حافظه و منابع مورد استفاده در حین اجرای برنامه را پاک می کند. همانطور که می بینید، هسته بخشی جدایی ناپذیر اندروید است و به گونه ای طراحی شده است که عملکرد یکپارچه را برای سیستم عامل گوشی مطابق با انتظارات کاربر ارائه دهد.
نگاهی دقیق تر به هسته بیندازید
تمام سیستم عامل هایی که از چند وظیفه پشتیبانی می کنند و می توانند چندین کار را به طور همزمان انجام دهند، یک یا چند نوع هسته مختلف دارند. بنابراین سیستم عامل هایی مانند ویندوز، OS X و iOS و البته اندروید دارای هسته هستند. البته فقط اندروید از هسته لینوکس استفاده می کند. ویندوز دارای هسته دیگری به نام هسته NT است و iOS از هسته داروین استفاده می کند.
البته، انواع مختلفی از کرنلها وجود دارد، از جمله هستههایی مانند یونیکس، هستههای مورد استفاده در پروژههای FreeBSD، OpenBSD و NetBSD، هستههای بلادرنگ مانند پروژههای FreeRTOS، هستههای جاسازی شده در پروژههایی مانند Jefier و کرنلها. سرهنگ سیستم عامل با معماری ARM نشان داده شده است. در واقع، تمام دستگاه های کامپیوتری از هسته استفاده می کنند. از دستگاه های اینترنت اشیا و گجت های پوشیدنی گرفته تا ابررایانه ها.
هسته بخش پیچیده ای از سیستم عامل است که حاوی میلیون ها خط کد منبع است. محتوای هسته شامل تمام درایورها (اکثر کدهای هسته برای درایورها هستند) و همچنین کدهای مورد نیاز برای پشتیبانی از معماری های مختلف از جمله ARM، x86، RISC-V، PowerPC و غیره را شامل می شود.
لازم به ذکر است که وقتی یک هسته برای دستگاهی مانند گوشی هوشمند ایجاد می شود، تمام کد آن توسط دستگاه استفاده نمی شود. البته، جدا کردن کدهای غیر ضروری استفاده نشده از هسته هنوز یک بخش پیچیده است.
مقایسه هسته های یکپارچه با میکروکورنل ها
البته همه سیستم های پیچیده متفاوت طراحی شده اند و هسته نیز از این قاعده مستثنی نیست. هسته لینوکس معمولا به عنوان هسته یکپارچه شناخته می شود. در واقع هسته یکپارچه رویکردی است که بر اساس آن کرنل یک برنامه کامپیوتری است که از حافظه اختصاصی استفاده می کند. جایگزین اصلی برای رویکرد هسته یکپارچه، رویکرد میکروکورنال است. بر اساس آن بخشهای اصلی کرنل تا حد امکان در برنامه کوچک نگه داشته میشوند و با سایر کرنلهای مورد استفاده برای اجرای سرویسها یا سرویسهای مختلف تعامل دارند.
در سال 1992، زمانی که لینوکس تازه ایجاد شده ایجاد شد، یک بحث آنلاین داغ (در واقع درگیری) بین لینوس توروالدز و پروفسور اندرو تاننبام، معروف به نوشتن سیستم عامل ها و هسته های شبکه وجود داشت که در آن پارامترهای طراحی با طراحی هسته یکپارچه متفاوت بود. با پارامترهای microcornal. اندرو سرهنگ خرد را ترجیح داد. اما لینوس در حال نوشتن یک کلنل یکپارچه بود. به همین دلیل، هسته مورد استفاده در لینوکس و همچنین اندروید، یک هسته یکپارچه است و از ابتدا تغییری نکرده است.
زیرا لینوکس یک هسته یکپارچه است. بنابراین، باید راهی برای فعال یا غیرفعال کردن بخشهای خاصی از هسته وجود داشته باشد تا نیازهای کاربر را برآورده کند. این در طول فرآیند کامپایل از طریق سیستم هایی امکان پذیر است که به هسته اجازه پیکربندی، حذف کدهای غیر ضروری و پیکربندی می دهد.
تغییرات ایجاد شده توسط برخی از تنظیمات فراتر از فعال یا غیرفعال کردن فعالیت ها است و همچنین توانایی تغییر رفتار هسته را دارد. چنین قابلیتی در هنگام تغییر ویژگی های سخت افزاری یک گوشی هوشمند یک ویژگی مفید و کاربردی است. از آنجایی که لینوکس یک منبع باز و هسته اندروید است، پروژه منبع باز اندروید (AOSP) جامعه ای از توسعه دهندگان و علاقه مندان به اندروید ایجاد کرده است و هسته های مختلفی را برای گوشی های اندرویدی منتشر می کند. البته محبوبیت و در دسترس بودن این هسته منتشر شده به برند و مدل گوشی شما بستگی دارد.
نحوه استفاده اندروید از لینوکس
ظاهرا اندروید یک سیستم عامل با اپلیکیشن های محبوب مانند گوگل کروم برای مرور، اپلیکیشن ها و بازی های شبکه های اجتماعی است، اما این سیستم عامل ساختار پیچیده ای دارد و زیرسیستم ها، کتابخانه ها و فریم ورک های زیادی پشت آن قرار دارد.
اندروید انواع کتابخانه ها و فریم ورک ها را برای اجرای برنامه ها (به طور مستقیم از سیستم عامل یا از یک ماشین جاوا) برای انجام عملکردهایی مانند نمایش اعلان ها، خدمات موقعیت یابی، ارائه صفحات وب، ارائه SSL، مدیریت ویندوز و غیره ارائه می دهد. علاوه بر این در سیستم عامل اندروید سرویس ویژه ای به نام SurfaceFlinger وجود دارد که وظیفه ایجاد و جمع آوری تمامی موارد لازم برای نمایش گرافیک بر روی صفحه نمایش گوشی را بر عهده دارد.
در واقع هسته سیستم زیرمجموعه ای از فریم ورک ها و کتابخانه های مخصوص اندروید است و علاوه بر مدیریت فرآیند، حافظه و قدرت پردازش، حاوی کدهای مورد نیاز برای معماری های مختلف تراشه و درایورهای سخت افزاری است که از دستگاه اصلی پشتیبانی می کنند. این درایورها شامل درایورهای دوربین، بلوتوث، وای فای، فلش مموری، پورت های USB و درایورهای صوتی است.
برخلاف اندروید، ویژگی هایی را به هسته لینوکس اضافه می کند که آن را برای گوشی های اندرویدی مناسب تر می کند. یکی از این ویژگی ها، قابلیت کشنده حافظه کم است. این ویژگی برای بررسی وضعیت حافظه و پاک کردن بی اهمیت ترین داده ها و فرآیندها برای ارائه فضای مورد نیاز طراحی شده است. این ویژگی به سیستم اجازه می دهد تا در فرآیند wake lock به راحتی و بدون هیچ مشکلی کار کند. Wake lock راهی است که برنامهها میتوانند از آن استفاده کنند تا به هسته بگویند چه سختافزاری باید فعال بماند.
۸ پروژه Android Travel در اندروید معرفی شد. این پروژه در واقع بازسازی معماری اندروید است که یک رابطه کاملاً مشخص بین چارچوب سیستم عامل و نرم افزار سطح پایین متعلق به هر دستگاه ایجاد می کند. بر اساس اصول اولیه این پروژه، سیستم روی تراشه (SoC) و درایورهای خاص دستگاه با استفاده از ماژول های هسته لینوکس از هسته اصلی جدا می شوند.
چنین ویژگی به سازندگان تلفن اجازه می دهد تا بدون تغییر هسته اصلی روی ویژگی های خاص کار کنند. در واقع، پروژه Trebl برای کمک به سازندگان گوشی ایجاد شد تا بدون نگرانی در مورد کدهای سطح پایین، بهروزرسانی گوشیهای خود را آسانتر کنند.
چگونه کرنل را با گوشی اندروید تغییر دهیم
با توجه به تنوع بسیار بالای گوشی های اندرویدی، هسته مورد استفاده در هر گوشی اندرویدی با برند و مدل آن کمی متفاوت است. هر تلفن دارای درایورهای اختصاصی برای اجزایی مانند سیستم روی تراشه و همچنین GPS، صدا و موارد دیگر است.
همه سازندگان گوشی با سازندگان تراشه مانند کوالکام و مدیاتک همکاری میکنند و هسته را طوری پیکربندی میکنند که برای مدل خاصی از گوشی با توجه به قابلیتهای آن بهترین باشد. این بدان معناست که سازندگان تلفن در حال تغییر پیکربندی هسته کلی و اضافه کردن درایورهای جدید به هسته لینوکس هستند.
تغییرات در زمانبندی CPU نمونه خوبی از تغییر هسته است. کرنل زمانی که تصمیم میگیرد کدام وظایف بعدی و در کدام هسته اجرا شود از زمانبندی CPU استفاده میکند. بسیاری از گوشی های اندرویدی دارای سیستم های چند پردازنده ای ناهمگن (HMP) هستند. به عبارت دیگر تمامی هسته های به کار رفته در پردازنده این گوشی ها یکسان نیستند و برخی از آنها بازدهی بالایی و برخی از مصرف پایینی دارند. با استفاده از Energy-Aware Scheduler (EAS)، هسته می تواند تأثیر یافته های خود را بر مصرف انرژی CPU و همچنین سطح عملکرد موجود تخمین بزند.
سازندگان گوشی می توانند با افزایش مصرف انرژی با تغییر پارامترهای تایمر آگاه از انرژی و یا برعکس، کاهش سطح عملکرد، کاهش مصرف برق گوشی و در نتیجه افزایش عمر باتری آن، عملکرد گوشی را بهبود بخشند. سازندگان تلفن می توانند تایمر سیستم عامل را با تایمری که طراحی و ساخته اند جایگزین کنند.
هر سازنده گوشی تلاش می کند تا پیکربندی هسته را به بهترین شکل ممکن بهینه کند تا از تمام ویژگی های مورد نظر با بهترین عملکرد و کمترین مصرف انرژی ممکن استفاده کند. برخی از مهندسان شرکت های سازنده گوشی با مشارکت مهندسان فعال در شرکت های تولید کننده تراشه، سعی می کنند نرم افزار و سیستم عامل گوشی را شخصی سازی کنند تا بیشترین بهره را از سخت افزار آن ببرند.
البته، سازندگان تلفن هنگام پیکربندی هسته لینوکس یا تصمیم گیری اشتباه در مورد آن اشتباه نمی کنند. اما گاهی اوقات اقدامات غیرواقعی برای حفظ یا افزایش باتری گوشی انجام می دهند. به عنوان مثال، برای حفظ عمر باتری OnePlus 9 Pro، OnePlus سطح عملکرد آن را کاهش داده و عمدا سرعت برخی از برنامه های خود را به میزان قابل توجهی کاهش داده است. سایر شرکت ها نیز به تقلب مشتریان خود شهرت دارند و زمانی که گوشی های خود را با بنچمارک تست می کنند، به طور مصنوعی عملکرد CPU خود را افزایش می دهند.
آینده استفاده از هسته لینوکس در اندروید
یکی از نقاط ضعف لینوکس تغییر سریع آن است. البته، برای ایجاد سطح مناسب پایداری، میتوانید از نسخههای پشتیبانی بلندمدت (LTS) کرنل استفاده کنید که میتواند برای سالها پشتیبانی شود. Android Common Kernel که با نام Android Common Kernel یا AKC نیز شناخته می شود، از هسته اصلی لینوکس مشتق شده و حاوی پوشه های مخصوص اندروید است.
با انتشار اندروید 11، از هسته های مشترک اندروید برای ایجاد تصاویر هسته عمومی (GKI) استفاده شد. آنها را می توان در هر دستگاهی استفاده کرد.
هدف از استفاده از این کرنل حل مشکل تکه تکه شدن هسته با مونتاژ هسته اصلی و خارج کردن بدنه اصلی سیستم از هسته آبی روی تراشه و انتقال آن به ماژول های قابل بارگذاری است. اگرچه اجزای سختافزاری خاصی را از هسته اصلی حذف میکند، اما استرس روی تعمیر و نگهداری هسته را برای تولیدکنندگان گوشی کاهش میدهد.
با انتشار اندروید 12، انتشار بسیاری از دستگاه ها از جمله تصاویر هسته عمومی آغاز شد. گوگل همچنین متعهد است که به طور منظم تصاویر فایل boot.img را منتشر کند و مهم ترین اشکالات را برطرف کند. از آنجایی که تصاویر هسته عمومی بسیار پایدار هستند، میتوان آنها را بدون هیچ تغییری روی درایورهای مخصوص سختافزار نصب کرد.
این می تواند راه را برای گوگل هموار کند تا هسته جدید لینوکس را برای استفاده عمومی منتشر کند. علاوه بر این، چنین پیشرفت هایی می تواند امنیت گوشی را افزایش داده و زمان پشتیبانی از گوشی را برای انتشار به روز رسانی های نرم افزاری جدید و رفع باگ ها افزایش دهد.
[ad_2]