ما هو النواة؟ إذا كنت تقضي أي وقت في قراءة منتديات أندرويد أو المدونات أو المنشورات الإرشادية أو المناقشة عبر الإنترنت فسوف تسمع قريبًا أشخاصًا يتحدثون عن النواة. النواة ليست شيئًا فريدًا بالنسبة إلى Android - iOS و MacOS لها واحدة ، Windows لديها واحدة ، BlackBerry's QNX لديها واحدة ، في الواقع جميع أنظمة التشغيل عالية المستوى لديها واحدة. الذي يهمنا هو Linux ، لأنه يستخدم Android. دعونا نحاول تفصيل ما هو وماذا يفعل.
تستخدم أجهزة Android نواة Linux ، وتراهن أن كل هاتف يستخدم نسخته الخاصة منه. حافظ مشرفو نواة Linux على كل ما هو متاح ومتوفر ، والمساهمون (مثل Google) يضيفون أو يغيرون الأشياء لتلبية احتياجاتهم بشكل أفضل ، والأشخاص الذين يصنعون الأجهزة يساهمون كذلك ، لأنهم يحتاجون إلى تطوير برامج تشغيل الأجهزة للأجزاء التي يستخدمونها من أجل إصدار kernel الذي يستخدمونه. هذا هو السبب في أن مطوري Android والمتطفلين المستقلين يستغرقون بعض الوقت لتوصيل الإصدارات الجديدة إلى الأجهزة القديمة والعمل بكل شيء. قد لا تعمل برامج التشغيل المكتوبة للعمل مع إصدار واحد من kernel للهاتف مع إصدار مختلف من البرنامج على نفس الهاتف. وهذا مهم ، لأن إحدى وظائف kernel الرئيسية هي التحكم في الجهاز. إنها مجموعة كاملة من التعليمات البرمجية المصدر ، مع وجود المزيد من الخيارات أثناء بنائها مما تتخيل ، لكنها في النهاية هي الوسيط بين الجهاز والبرنامج.
عندما يحتاج البرنامج للجهاز للقيام بأي شيء ، فإنه يرسل طلبًا إلى kernel. وعندما نقول أي شيء ، فإننا نعني أي شيء. من سطوع الشاشة ، إلى مستوى الصوت ، إلى بدء مكالمة عبر الراديو ، حتى يتم التحكم في ما يتم رسمه على الشاشة بواسطة النواة. على سبيل المثال - عندما تضغط على زر البحث على هاتفك ، فإنك تخبر البرنامج بفتح تطبيق البحث. ما يحدث هو أنك لمست نقطة معينة على التحويل الرقمي ، والتي تخبر البرنامج أنك لمست الشاشة في تلك الإحداثيات. يعرف البرنامج أنه عند لمس تلك النقطة المحددة ، من المفترض أن يتم فتح مربع حوار البحث. النواة هي ما يُخبر المحول الرقمي بالبحث (أو الاستماع ، يتم "الاستماع" إلى الأحداث) من أجل اللمسات ، ويساعد على معرفة المكان الذي لمسته ، ويخبر النظام الذي لمسته. بدوره ، عندما يتلقى النظام حدث اللمس في نقطة محددة من النواة (من خلال برنامج التشغيل) ، فإنه يعرف ما الذي يجب رسمه على الشاشة. يتواصل كل من الجهاز والبرنامج في كلا الاتجاهين مع kernel ، وهكذا يعرف هاتفك متى يفعل شيء ما. يتم إرسال الإدخال من جانب كإخراج إلى الجانب الآخر ، سواء كنت تلعب Angry Birds ، أو تتصل Bluetooth في سيارتك.
هذا يبدو معقدًا ، وهو كذلك. ولكنه أيضًا منطق منطقي للكمبيوتر - يوجد إجراء من نوع ما يتم إنشاؤه لكل حدث ، وهذا يتوقف على هذا الإجراء في البرامج قيد التشغيل. بدون قبول النواة للمعلومات وإرسالها ، سيتعين على المطورين كتابة التعليمات البرمجية لكل حدث منفرد لكل قطعة من الأجهزة في جهازك. مع kernel ، كل ما عليهم فعله هو التواصل معه من خلال واجهة برمجة تطبيقات نظام Android ، ويتعين على مطوري الأجهزة فقط جعل أجهزة الجهاز تتواصل مع kernel. الشيء الجيد هو أنك لا تحتاج إلى معرفة بالضبط كيف ولماذا تفعل النواة ما تفعله ، وفهم أن الانتقال من البرامج إلى الأجهزة يمنحك فهمًا جيدًا لما يحدث تحت الزجاج.
نوع من يعطي نظرة جديدة تماما نحو هؤلاء الزملاء الذين يقيمون طوال الليل للعمل على النواة لهاتفك ، أليس كذلك؟