سفارش تبلیغ
صبا ویژن

هرآنچه باید درباره کرنل و دلیل اهمیت آن بدانید

آیا می دانید هسته لینوکس چیست؟ برنامه های اندروید چیست، چرا به اندروید نیاز دارند و چگونه می توانم عملکرد گوشی اندرویدی خود را افزایش دهم؟ در این مقاله به این سوالات پاسخ خواهیم داد و هر آنچه را که باید در مورد کرنل و انواع مختلف آن بدانید را به شما می گوییم.

آیا تا به حال نام هسته لینوکس را شنیده اید؟ اندروید نیز از هسته لینوکس استفاده می کند. در واقع هسته اندروید که با نام هسته اندروید نیز شناخته می شود، بخش مهمی از سیستم عامل لینوکس است و تاثیر بسیار مهمی بر عملکرد گوشی شما دارد. اما هسته چیست؟

کلمه لینوکس به راحتی قابل درک است. در واقع کلمه لینوکس ترکیبی از دو کلمه لینوس و یونیکس است. Linus در واقع به Linus Torvalds، مهندس نرم افزار اشاره دارد و Unix نام نرم افزار است. لینوس توروالدز نام یک مهندس نرم افزار سیستم عامل یونیکس است. اما هسته چیست؟ منظور از هسته در کامپیوتر و سایر دستگاه ها چیست؟ منظور از هسته لینوکس چیست؟

هسته اجزایی مانند منابع CPU گوشی، حافظه سیستم، برخی سخت افزارها و فایل های سیستم و موارد دیگر مانند فرآیندهای مرتبط با شبکه را مدیریت می کند. هسته همچنین مسئول مدیریت تمام فرآیندها و وظایف (وظایف) در حال اجرا در تلفن هوشمند است.

هنگامی که شما واقعا یک برنامه را اجرا می کنید، این قسمت از اندروید برنامه را در حافظه بارگذاری می کند، فعالیت های پردازشی لازم را انجام می دهد و در نهایت برنامه را اجرا می کند. یعنی زمانی که یک برنامه به فضای حافظه نیاز دارد، هسته فضای مورد نیاز خود را فراهم می کند یا زمانی که یک برنامه به شبکه نیاز دارد، هسته پردازش های سطح پایینی را برای این فرآیند انجام می دهد.

هسته همچنین وظیفه هدایت و مدیریت دستگاه هایی مانند بلوتوث گوشی را بر عهده دارد و درایور این دستگاه ها در نظر گرفته می شود. زمانی که برنامه بخواهد عملیاتی را در پس‌زمینه سیستم‌عامل انجام دهد، تمام رشته‌های پس‌زمینه را مدیریت می‌کند (در رشته‌های پس‌زمینه، فعالیت‌های پردازشی مانند محاسبه عملیات روی ورودی دریافت‌شده توسط کاربر در پس‌زمینه سیستم‌عامل انجام می‌شود).

همچنین پس از بستن برنامه توسط کاربر، هسته تمامی اطلاعات ذخیره شده در حافظه و منابعی را که برنامه در حین اجرا از آن استفاده می کرد پاک می کند. همانطور که مشاهده می کنید، هسته بخشی جدایی ناپذیر اندروید است و با هدف ارائه عملکردی بی نقص به سیستم عامل تلفن همراه مطابق با انتظارات کاربر ساخته شده است.

نگاهی دقیق تر به هسته

هسته اندروید

هر سیستم عاملی که از چند وظیفه پشتیبانی می کند و می تواند چندین کار را همزمان انجام دهد، حداقل یک شکل دیگر از هسته دارد. بنابراین، سیستم عامل هایی مانند ویندوز، OS X و iOS و همچنین اندروید دارای هسته هستند. البته فقط اندروید از هسته لینوکس استفاده می کند. ویندوز دارای هسته دیگری به نام هسته NT است و iOS از هسته داروین استفاده می کند.

البته، انواع مختلفی از کرنل ها وجود دارد، از جمله هسته های مشابه یونیکس مانند هسته های مورد استفاده در پروژه های FreeBSD، OpenBSD و NetBSD، هسته های بلادرنگ مانند پروژه FreeRTOS، هسته های موجود در پروژه هایی مانند Zephyr و کرنل ها. شما به یک سیستم عامل با معماری ARM اشاره کردید. در واقع همه دستگاه های محاسباتی از یک هسته استفاده می کنند. از دستگاه‌های IoT و پوشیدنی‌ها گرفته تا ابررایانه‌ها.

هسته بخش پیچیده ای از سیستم عامل است که حاوی میلیون ها خط کد منبع است. محتویات هسته شامل تمام درایورها (بیشتر کدهای هسته مربوط به درایور است) و همچنین کدهای مورد نیاز برای پشتیبانی از معماری های مختلف از جمله ARM، x86، RISC-V و PowerPC می باشد.

هنگامی که یک هسته برای دستگاهی مانند تلفن هوشمند ایجاد می شود، تمام کدهای موجود در آن توسط دستگاه استفاده نمی شود. البته، حتی اگر کدهای غیر ضروری را که توسط کرنل استفاده نمی شود را جدا کنید، باز هم یک بخش پیچیده است.

مقایسه یکپارچه و ریزهسته

طبیعتاً هر سیستم پیچیده ای با رویکرد متفاوتی طراحی می شود و هسته نیز از این قاعده مستثنی نیست. هسته های لینوکس معمولا به عنوان هسته های یکپارچه شناخته می شوند. در واقع هسته یکپارچه رویکردی مبتنی بر این واقعیت است که هسته یک برنامه کامپیوتری است که از حافظه اختصاصی استفاده می کند. جایگزین اصلی برای رویکرد هسته یکپارچه، رویکرد میکروکرنل است. بر این اساس، بخش اصلی هسته در کوچکترین برنامه ممکن قرار می گیرد و با سایر کرنل های مورد استفاده برای اجرای سرویس های جداگانه تعامل دارد.

هنگامی که لینوکس جدید در سال 1992 ایجاد شد، لینوس توروالدز و پروفسور اندرو تاننباوم که بیشتر به خاطر نوشتن سیستم عامل ها و هسته های شبکه شناخته می شوند، استدلال کردند که طراحی و طراحی هسته یکپارچه پارامترهای متفاوتی دارند. برای پارامترهای میکروکرنل اندرو ریزهسته ها را ترجیح می دهد. با این حال، لینوس در حال نوشتن یک هسته یکپارچه بود. به همین دلیل لینوکس و همچنین هسته مورد استفاده در اندروید از ابتدا به هسته یکپارچه تغییر نکرده است.

زیرا لینوکس یک هسته یکپارچه است. بنابراین باید راهی برای فعال یا غیرفعال کردن بخش های خاصی از هسته وجود داشته باشد که مطابق با نیاز شما باشد. این در طول فرآیند کامپایل توسط سیستم امکان پذیر می شود و به هسته اجازه می دهد تا پیکربندی، حذف کدهای غیر ضروری و پیکربندی را انجام دهد.

برخی از تغییرات پیکربندی به پیکربندی فراتر از فعال یا غیرفعال کردن فعالیت ها هستند و همچنین می توانند رفتار هسته را تغییر دهند. این ویژگی ها هنگام تغییر قابلیت های سخت افزاری گوشی هوشمند شما مفید و کاربردی هستند. از آنجایی که لینوکس متن باز است و هسته اندروید به لطف پروژه متن باز اندروید (AOSP) این ویژگی ها را دارد، جامعه ای از توسعه دهندگان و علاقه مندان اندروید ایجاد شده و کرنل های مختلفی برای گوشی های اندرویدی منتشر شده است. البته محبوبیت و در دسترس بودن این هسته های منتشر شده به برند و مدل گوشی شما بستگی دارد.

نحوه استفاده اندروید از لینوکس

اندروید از لینوکس استفاده می کند

در ظاهر اندروید یک سیستم عامل با اپلیکیشن های محبوب مانند گوگل کروم برای جستجو، اپلیکیشن ها و بازی های شبکه های اجتماعی است، اما این سیستم عامل ساختار پیچیده ای دارد و زیرسیستم ها، کتابخانه ها و فریم ورک های زیادی پشت آن قرار دارد.

اندروید هنگام اجرای برنامه‌ها (چه در خود سیستم عامل یا مستقیماً روی ماشین جاوا) کتابخانه‌ها و چارچوب‌های زیادی را برای انجام کارهایی مانند نمایش اعلان‌ها، سرویس‌های موقعیت‌یابی، ارائه صفحات وب، سرویس SSL، مدیریت ویندوز و موارد دیگر ارائه می‌کند. سیستم عامل اندروید نیز دارای سرویس ویژه ای به نام SurfaceFlinger است که وظیفه ایجاد و جمع آوری تمامی موارد مورد نیاز برای نمایش گرافیک بر روی صفحه نمایش گوشی را بر عهده دارد.

فلینگر سطحی

در واقع هسته سیستم زیرمجموعه‌ای از چارچوب‌ها و کتابخانه‌های مخصوص اندروید است و علاوه بر مدیریت فرآیندها، حافظه و قدرت پردازش، حاوی کدهای مورد نیاز برای معماری‌های مختلف تراشه و درایورهای سخت‌افزاری است که توسط دستگاه اصلی پشتیبانی می‌شوند. این درایورها شامل درایورهای دوربین، بلوتوث، وای فای، فلش مموری، پورت های USB و درایورهای صوتی است.

برخلاف اندروید، ویژگی هایی را به هسته لینوکس اضافه می کند و آن را برای گوشی های اندرویدی مناسب تر می کند. یکی از این ویژگی ها قابلیت Low Memory Killer است. این ویژگی برای بررسی وضعیت حافظه، پاک کردن بی‌اهمیت‌ترین داده‌ها و فرآیندها و فراهم کردن فضای لازم ایجاد شده است. با ایجاد این قابلیت، سیستم بدون مشکل اجرا می شود و فرآیند Wake Lock هیچ مشکلی نخواهد داشت. Wake Lock در واقع روشی است که یک اپلیکیشن می تواند از آن استفاده کند تا به هسته بگوید کدام سخت افزار باید فعال بماند.

8 پروژه Android Treble به اندروید معرفی شد. این پروژه در واقع اختراع مجدد معماری اندروید است که یک رابطه کاملاً تعریف شده بین چارچوب سیستم عامل و نرم افزار سطح پایین اختصاصی در هر دستگاه ایجاد می کند. با تکیه بر اصول اولیه این پروژه، ما از ماژول‌های هسته لینوکس برای جدا کردن سیستم روی تراشه (SoC) و درایورهای خاص دستگاه از هسته اصلی استفاده می‌کنیم.