Linux kernel | ما هي نواة لينكس وكيف تعمل وما هي وظائفها؟

Linux kernel | ما هي نواة لينكس وكيف تعمل وما هي وظائفها؟
Linux kernel | ما هي نواة لينكس وكيف تعمل وما هي وظائفها؟

لفهم ما هي نواة لينكس (Linux kernel) يجب أن نذكر أولا ، تعريف Linux هو البرنامج المفتوح المصدر الأكثر استخداما في تاريخ الحوسبة ، ويمكن العثور عليه في أي مكان تقريبا. في المركبات ذاتية الدفع والغواصات والطائرات وأجهزة الكمبيوتر والخوادم والهواتف المحمولة وأجهزة التلفزيون وحتى محطة الفضاء الدولية! 

ربما يكون عدد أقل من الأفراد على دراية بالطبيعة الحقيقية للنواة وعملها. بدون شك ، لم يتم تناول الحل الكامل في هذه المقالة ؛ ومع ذلك ، سنناقش كيفية عمل المكونات الوظيفية الرئيسية لنواة Linux.

ما هي نواة لينكس (Linux kernel)؟

لقد تجاوزت نواة لينكس كل التوقعات لتصبح العنصر الذي يعرف نظام التشغيل Linux منذ إطلاقه الأولي في 17 سبتمبر 1991. يشار إلى نظام التشغيل باسم GNU / Linux وتم نشره للعامة بواسطة Linus Torvalds. 

ساعدت أجهزة Android التي تستخدم Linux kernel Linux على تجاوز منافسيها من حيث القاعدة المثبتة ، حيث احتلت الصدارة بين جميع أنظمة التشغيل ذات الأغراض العامة. هنا هو تاريخ Linux kernel.

هناك ثلاثة أنواع من النواة: نواة متجانسة (monolithic) و النواة الدقيقة (microkernel) و نواة هجينة (hybrid) (مثل OS X و Windows 7). على غرار نظام UNIX ، فإن Linux kernel عبارة عن نواة نظام تشغيل كمبيوتر متجانسة. 

بناء على هذا النواة ، توجد عائلة أنظمة تشغيل Linux ، والتي تعرف غالبا باسم توزيعات Linux. على عكس microkernel ، تشتمل النواة المتجانسة أيضا على برامج تشغيل الأجهزة ومكالمات خادم النظام وإدارة نظام الملفات بالإضافة إلى وحدة المعالجة المركزية والذاكرة و IPC. 

إنهم يتفوقون في التعامل مع العديد من الوظائف في وقت واحد والتفاعل مع الأجهزة. نتيجة لذلك ، تتفاعل العمليات في هذا المكان بسرعة.

ومع ذلك ، فإن العيوب القليلة هي الذاكرة الكبيرة ومتطلبات التثبيت والأمان غير الكافي الذي توفره حقيقة أن كل شيء يعمل في وضع المشرف. في المقابل ، نظرا لعدم تكامل خدمات المستخدم والنواة ، قد تستجيب النواة الدقيقة لمكالمات التطبيق ببطء. 

نتيجة لذلك ، فهي أصغر من النواة المتجانسة. يمكن توسيع النوى الصغيرة بسهولة ، على الرغم من أن كتابة واحدة تتطلب المزيد من التعليمات البرمجية. يتم استخدام لغات البرمجة C و Assembly لإنشاء Linux kernel.

ما هي النواة؟

نواة نظام التشغيل ، أو kernel ، مسؤولة عن تخصيص موارد النظام من التطبيقات الأخرى ، مثل وحدة المعالجة المركزية والذاكرة. في رأيي ، تعمل النواة كبنية تحتية وهيكل أساسي. يمكن استخدام جميع الأدوات لتطوير البنية التحتية. 

على سبيل المثال ، يجب استخدام ثلاجتنا وفريزرنا في منطقة دائمة بها منفذ. تشمل البنية التحتية الرئيسية للمبنى المطبخ والمنافذ الكهربائية والأسلاك التي توفر المواد الأساسية ، مثل الطاقة ، للمعدات اللازمة.

للمبرمجين الذين يرغبون في إنشاء تطبيقات لمنصتهم ، تقدم النواة مفاهيم مجردة. يعد تبسيط الأنشطة المعقدة أحد هذه المفاهيم المجردة (على سبيل المثال ، فيما يتعلق بالمفاهيم المجردة ، وضع ملف على القرص الصلب. 

لست بحاجة إلى معرفة موقع الكتل والعناقيد لذلك ؛ تحتاج فقط إلى معرفة أي منها الكتلة الموجودة على القرص الصلب هي موطن للملف X (على سبيل المثال ، أنت تعلم أن محرك الأقراص C هو المكان الذي يتم فيه الاحتفاظ بالملف X).

النواة ليست واحدة من أهم مكونات نظام التشغيل ؛ بدلا من ذلك ، هو فقط أحد مكونات البرنامج الذي يتضمن مفاهيم مجردة. لا تحتاج النواة إلى تعلم كيفية التحدث إلى المكونات الأخرى لأن برامج تشغيل الأجهزة تتواصل (أو تتحدث بالفعل) معهم من خلال النواة.

المكونات المادية التي يتم إنتاجها بشكل منفصل. هذا هو ما يمكن النواة من العمل بمفردها على مجموعة واسعة من الشركات المصنعة للأجهزة ونماذجها.

الوظائف الرئيسية للنواة هي:

  • الوصول إلى موارد الكمبيوتر: يمكن للنواة الوصول إلى موارد مختلفة ، مثل وحدة المعالجة المركزية وأجهزة الإدخال والإخراج والموارد الأخرى. يعمل كجسر بين المستخدم وموارد النظام.

  • إدارة الموارد: من واجب النواة مشاركة الموارد بين العمليات المختلفة بطريقة تجعل الوصول إليها موحدا.

  • إدارة الذاكرة: كل عملية تحتاج إلى بعض مساحة الذاكرة. لذلك ، يجب تخصيص الذاكرة وإلغاء تخصيصها للتنفيذ. كل هذه الإدارة تتم بواسطة النواة.

  • إدارة الجهاز: تستخدم العمليات الأجهزة الطرفية المتصلة بالنظام. يتم إدارة تخصيص هذه الأجهزة بواسطة kernel.

ما هي بالضبط الأفكار المجردة في لينكس؟

عندما نناقش المفاهيم المجردة ، يجب علينا أولا تحديد ما نعنيه بالمفاهيم المجردة. المفاهيم المجردة المرتبطة ب Linux تشبه إلى حد بعيد المفاهيم المجردة المستخدمة في الفن ، والمفاهيم المجردة بشكل عام هي نوع المفهوم الذي لا يمكن لأحد اكتشافه. بشكل عام ، التجريد في الحوسبة هو تقنية لإخفاء التعقيدات والمفاهيم المعقدة وراء العملية.

ضع في اعتبارك قراءة وكتابة متغيرات ذاكرة الوصول العشوائي كأمثلة. يمكن العثور على وحدات تحكم الذاكرة من عدة أنواع على كل لوحة أم. 

قد تكون معالجات جهاز الكمبيوتر الخاص بك هي ARM أو Intel أو AMD أو SPARC أو POWERPC أو MIPS ، ولكن هذا ليس له تأثير على برنامج Hello World الذي أنشأته لأن النواة تميز بين الأجهزة المختلفة على أساس الواجهة. يتم عرضه بطريقة عامة ومجردة.

استخدام هذه الواجهة للمطورين يمكن مقارنته باستخدام استدعاء دالة ، لكنه يختلف قليلا لأنه استدعاء نظام. استدعاء النظام هو وظيفة تطلب من النواة شيئا ما. في هذه المرحلة ، بغض النظر عن الأجهزة الموجودة في النظام ، تقوم النواة بتنفيذ الطلب (تستخدم نواة Linux معيار POSIX لمكالمات النظام).

أنواع نواة لينكس

بالطبع ، هناك عدة طرق لإنشاء نواة وعوامل معمارية يجب مراعاتها عند إنشاء واحدة من البداية. النوى المتجانسة والنواة والهجينة هي الأنواع الثلاثة التي تستخدمها غالبية أنظمة التشغيل. 

بينما يحتوي OS X (XNU) و Windows 7 على نواة مختلطة ، فإن Linux لديه نواة متجانسة. حتى نتمكن بعد ذلك من الخوض في مزيد من التفاصيل ، دعنا نوضح كل نواة من الفئات الثلاث.

النواة الدقيقة Micro Kernel

تعمل النواة الدقيقة Micro Kernel فقط من خلال التحكم في وحدة المعالجة المركزية والذاكرة و IPC الضرورية. يمكن التعامل مع جميع المكونات الأخرى للكمبيوتر تقريبا كملحقات ويمكن التحكم فيها في وضع المستخدم. 

طالما استمر نظام التشغيل في محاولة الوصول إلى الأجهزة بنفس الطريقة ، فلا داعي للقلق إذا قمت باستبدال البطاقة المرئية أو حتى نظام التشغيل الخاص بك. 

بالإضافة إلى امتلاك ذاكرة صغيرة جدا وبصمة تثبيت ، تميل النوى الدقيقة أيضا إلى أن تكون أكثر أمانا نظرا لأنه يسمح فقط لبرامج معينة بالعمل في وضع المستخدم ، والذي يتمتع بحقوق أقل من وضع المشرف.

الإيجابيات:

  • قابلية التنقل

  • بصمة تثبيت صغيرة

  • بصمة ذاكرة صغيرة

  • حماية

سلبيات:

  • يتم تجريد الأجهزة بشكل أكبر من خلال السائقين

  • قد تتفاعل الأجهزة بشكل أبطأ لأن السائقين في وضع المستخدم

  • يجب أن تنتظر العمليات في قائمة انتظار للحصول على المعلومات

  • لا يمكن للعمليات الوصول إلى العمليات الأخرى دون انتظار

نواة متجانسة Monolithic Kernel

يتمثل الاختلاف بين النواة المتجانسة والنواة الدقيقة في أن الأول لا يشمل فقط وحدة المعالجة المركزية والذاكرة و IPC ولكن أيضا برامج تشغيل الأجهزة وإدارة نظام الملفات واستدعاءات خادم النظام. 

نظرا لأن لديهم طريقا مباشرا إلى الذاكرة أو العمليات النشطة الأخرى ، غالبا ما تكون Monolithic Kernel أفضل في الوصول إلى الأجهزة وتعدد المهام لأن البرنامج لا يتعين عليه الانتظار في قائمة انتظار لإنجاز المهام عندما يتطلب معلومات من أي منهما. 

ومع ذلك ، قد يكون هذا مشكلة نظرا لأنه كلما زاد عدد العمليات التي تعمل في وضع المشرف ، زادت فرصة أن يتسبب أحدها في تعطل نظامك.

الإيجابيات:

  • المزيد من الوصول المباشر إلى الأجهزة للبرامج

  • أسهل للعمليات للتواصل بين بعضها البعض

  • إذا كان جهازك مدعوما ، فيجب أن يعمل بدون تثبيتات إضافية

  • تتفاعل العمليات بشكل أسرع نظرا لعدم وجود قائمة انتظار لوقت المعالج

سلبيات:

  • مساحة تثبيت كبيرة

  • بصمة ذاكرة كبيرة

  • أقل أمانا لأن كل شيء يعمل في وضع المشرف

نواة هجينة Hybrid Kernel

الأمر متروك للنواة الهجينة لتقرر ما تريد تنفيذه في وضع المشرف وما تريد تشغيله في وضع المستخدم. يتم تنفيذ برامج تشغيل الأجهزة ونظام الإدخال / الإخراج بشكل متكرر في وضع المستخدم ، بينما يتم الاحتفاظ بمكالمات IPC والخادم في وضع المشرف. 

يجمع هذا بين أفضل ما في العالمين ، ولكنه يعني في كثير من الأحيان أنه سيتعين على صانع الأجهزة بذل المزيد من الجهد لأنهم وحدهم المسؤولون عن برامج التشغيل. بالإضافة إلى ذلك ، يمكن أن تواجه بعض مشكلات وقت الاستجابة التي تأتي مع microkernels.

الإيجابيات:

  • يمكن للمطور اختيار واختيار ما يتم تشغيله في وضع المستخدم وما يتم تشغيله في وضع المشرف

  • بصمة تثبيت أصغر من نواة متجانسة

  • أكثر مرونة من النماذج الأخرى

سلبيات:

  • يمكن أن تعاني من نفس تأخر العملية مثل microkernel

  • تحتاج برامج تشغيل الأجهزة إلى إدارتها بواسطة المستخدم (عادة)

ما هي أهم وظائف Linux kernel؟

النواة لديها 4 وظائف:

  • إدارة الذاكرة: تتبع مقدار الذاكرة المستخدمة لتخزين ماذا وأين

  • إدارة العمليات: حدد العمليات التي يمكنها استخدام وحدة المعالجة المركزية (CPU) ومتى ومدة

  • برامج تشغيل الأجهزة: العمل كوسيط / مترجم بين الأجهزة والعمليات

  • مكالمات النظام والأمن: تلقي طلبات الخدمة من العمليات

النواة ، إذا تم تنفيذها بشكل صحيح ، تكون غير مرئية للمستخدم ، وتعمل في عالمها الصغير المعروف باسم مساحة النواة ، حيث تقوم بتخصيص الذاكرة وتتبع مكان تخزين كل شيء. ما يراه المستخدم - مثل متصفحات الويب والملفات - يعرف باسم مساحة المستخدم. تتفاعل هذه التطبيقات مع النواة من خلال واجهة استدعاء النظام (SCI).

ضع في اعتبارك أن النواة هي مساعد شخصي مشغول لرئيس تنفيذي قوي (للأجهزة). تتمثل وظيفة المساعد في نقل الرسائل والطلبات (العمليات) من العمال وعامة الجمهور (المستخدمين) إلى الرئيس التنفيذي ، وتذكر ما يتم تخزينه في الموقع (الذاكرة) ، وتحديد من يمكنه الوصول إلى الرئيس التنفيذي ومتى ومدة ذلك.

كيف تقوم نواة لينكس بجدولة المهام؟

تعد جدولة المهام المختلفة مسألة معقدة ومهمة للغاية في Linux. لذلك ، نحن لا نتحدث عن جدولة الخوارزميات ، بل نتحدث فقط عن مسؤوليات ومهام النواة ، وكيف تحدد النواة ترتيب كل عملية لاستخدام وحدة المعالجة المركزية ، حتى لو كانت هناك مئات العمليات المختلفة التي تعمل في نفس الوقت زمن.

قبل ظهور المعالجات متعددة النواة ، كان بإمكان أجهزة الكمبيوتر القيام بمهمة واحدة فقط في كل مرة. كان لكل عملية مقدار متساو من الوقت للمعالجة بالتتابع ، ولكن تم القيام بذلك بسرعة كبيرة بحيث أعطت انطباعا خاطئا بأن العمليات كانت تعمل بشكل متزامن.

قبل المعالجات متعددة النواة ، كان على مصنعي الكمبيوتر وضع أكثر من معالج واحد على اللوحة الأم لتشغيل أكثر من عملية في نفس الوقت.

لا يزال هذا يتم ، ولكن مع المعالجات متعددة النواة التي تستخدم مفهوما يسمى Hyperthreading الذي يسمح لعمليتين بالعمل في نفس الوقت على نفس النواة في بعض طرز معالجات Intel (تسمح هذه الميزة للأنظمة بالسماح بتشغيل أكثر من مئات الخيوط في وقت واحد.

تتطلب كل عملية وقت معالجة وحدة المعالجة المركزية والنواة هي ما يضمن جدولة كل عملية في الوقت المحدد. بالإضافة إلى ذلك ، يجب أن تتأخر بعض العمليات ، والتي قد تكون بسبب انتظار عمليات الإدخال / الإخراج أو أي شيء آخر. الآن ، بدلا من شغل وحدة المعالجة المركزية أثناء انتظارها ، قد تأتي عملية أخرى وتذهب ، وقد تعود العملية الأصلية إلى العمل بعد مرور الوقت المطلوب.

نتيجة لذلك ، فإنه يزيد من الأداء العام للنظام. بشكل عام ، تعني الجدولة أن المطور لا داعي للقلق بشأن إجراء عمليات أخرى على الكمبيوتر وعليه فقط القلق بشأن التنفيذ السلس للبرنامج.

أين تتناسب النواة مع نظام التشغيل؟

لوضع النواة في السياق ، يمكنك التفكير في جهاز Linux على أنه يحتوي على 3 طبقات:

  • الجهاز: الجهاز الفعلي هو المكون الأساسي للنظام ، ويتألف من وحدة المعالجة المركزية (CPU) والذاكرة (RAM) ومكونات الإدخال / الإخراج (I / O) مثل التخزين والشبكات والرسومات. يتم تنفيذ العمليات الحسابية بواسطة وحدة المعالجة المركزية ، والتي تقرأ أيضا من الذاكرة وتكتبها.

  • Linux kernel: المكون المركزي للنظام. (هل ترى؟ إنه بالضبط في المركز.) برنامج يعمل في الذاكرة يوجه وحدة المعالجة المركزية إلى ما يجب القيام به.

  • عمليات المستخدم: هذه هي التطبيقات قيد التشغيل حاليا والتي تتحكم فيها النواة. تتكون مساحة المستخدم من عمليات المستخدم ككل. مجرد العمليات هو اسم آخر لعمليات المستخدم. بالإضافة إلى ذلك ، قد تتواصل هذه الخوادم والعمليات مع بعضها البعض بفضل النواة (المعروفة باسم الاتصال بين العمليات ، أو IPC).

يستخدم النظام أحد وضعي - وضع kernel أو وضع المستخدم - لتشغيل التعليمات البرمجية على وحدات المعالجة المركزية (CPU). بينما يحد وضع المستخدم من الوصول إلى وحدة المعالجة المركزية والذاكرة إلى SCI ، فإن كود وضع kernel لديه حق الوصول الكامل إلى الأجهزة. 

تقسيم الذاكرة قابل للمقارنة (مساحة النواة ومساحة المستخدم). بالنسبة لبعض العمليات المعقدة ، مثل تقسيم امتيازات الأمان ، وإنشاء الحاويات ، وإنشاء أجهزة افتراضية ، يعمل هذان العنصران الصغيران كأساس.

بالإضافة إلى ذلك ، فإنه يشير إلى أن الضرر ضئيل ويمكن للنواة إصلاحه إذا فشلت العملية في وضع المستخدم. ومع ذلك ، قد يؤدي فشل عملية kernel إلى توقف النظام بأكمله بسبب وصوله إلى الذاكرة ووحدة المعالجة المركزية. 

غالبا لا تؤدي أعطال عملية المستخدم إلى العديد من المشكلات نظرا لوجود عناصر تحكم في المكان والأذونات مطلوبة لتجاوز القيود. بالإضافة إلى ذلك ، لا يوجد وقت تعطل عند نشر التصحيحات لإصلاحات الأمان نظرا لأن Linux kernel قد يستمر في العمل خلال التصحيح المباشر.

كيف تخزن Linux kernel المعلومات؟

هناك طريقتان لتخزين المعلومات ، التخزين المؤقت والتخزين الدائم. حتى التخزين المؤقت لنفس ذاكرة الوصول العشوائي ؛ يجب تخزين كل شيء في ذاكرة الوصول العشوائي بشكل دائم. مثال على فهم أفضل لهذا هو عند تصفح الإنترنت. لا تريد أن يتم تخزين كل صفحة تعرضها بشكل دائم على جهاز الكمبيوتر الخاص بك.

يسمح لك Linux kernel بقراءة البيانات وكتابتها على ذاكرة الوصول العشوائي بشفافية ، بغض النظر عن الأجهزة المستخدمة. لا يهم ما إذا كنت تقوم بتشغيل Linux على معالجات Intel i386 الأقدم أو أحدث الطرز المستندة إلى ARM على هواتف Android. في الوقت نفسه ، لا تحتاج إلى إجراء أي تعديلات أو تغيير الرمز على الإطلاق.

لاحظ أن النواة هي جزء من Linux تم تعديله لدعم أجهزة مختلفة ، وتسمح لك التغييرات في kernel باستخدام الواجهة العامة دون استخدام أجهزة متكاملة.

بالإضافة إلى ذلك ، تخزن النواة جميع العمليات في ذاكرتهم ، مما يعني أن عملياتهم لا تحتاج إلى معرفة أي جزء من ذاكرتهم لأن كل الذاكرة المرئية لهم تخصهم. في الواقع ، تزيد هذه الطريقة من تخصيص ذاكرة الأمان دون الحاجة إلى تدخل تطوير.

التخزين الدائم هو التخزين على محرك الأقراص الثابتة أو محرك أقراص فلاش. وبالمثل ، يختلف مقشر kernel فيما يتعلق ب SATA و PATA و SCSI و USB و M.2 وبروتوكولات التخزين الأخرى ، مما يسمح للبرنامج بقراءة الملفات وكتابتها على أي واجهة باستخدام أي بروتوكول معروف وسيعمل نظام الملفات

بدون أي تغييرات في البرنامج ، وتعطي ميزة kernel هذه قوة لا تضاهى لكل من المطورين والمستخدمين ، كما أنها تزيد من إعادة استخدام الكود وإنتاجية المطور لأنه لا توجد حاجة لكتابة تعليمات برمجية منفصلة لتكوينات مختلفة.

كيفية وصول نواة لينكس إلى الشبكة

عندما يتعلق الأمر بالشبكات ، تختلف الأمور قليلا لأن كل بروتوكول له تنسيقه الخاص. لذلك ، هناك حاجة إلى تشفير منفصل لدعم كل من بروتوكولات الشبكة (لحسن الحظ ، يتم استخدام IPv4 و IPv6 فقط على نطاق واسع ، وإلا سيكون من الصعب جدا على مطوري Linux kernel). 

بالطبع ، العديد من البروتوكولات الأخرى مثل DECnet و IPX و AppleTalk مدعومة في Linux ، لكن استخدامها ودعمها ليس مفيدا جدا في البرامج الأحدث.

دعنا نعود إلى IPv4 و IPv6. كلاهما لهما هياكل عنونة مختلفة تماما ، لكن هذا مفيد بقدر ما هو إشكالي. يتم تحديد البروتوكول المطلوب - للكشف عن kernel - بسهولة عن طريق عنوان IP. بالإضافة إلى ذلك ، يوفر kernel دعما ل TCP و UDP و SCTP و ICMP ، ويمكن الوصول إلى كل منها عبر مكالمات النظام.

لا يهم ما إذا كان النظام الخاص بك متصلا بالشبكة عبر إيثرنت أو LTE أو الطلب الهاتفي. ستبقى مكالمات النظام.

تجميع Linux Kernel

خلافا للاعتقاد الشائع ، فإن بناء نواة Linux عملية مباشرة. تم وصف التقنية بالتفصيل أدناه باستخدام إحدى توزيعات Linux ، Fedora 13 KDE. (ينصح بنسخ بياناتك احتياطيا و grub.conf في حالة حدوث خطأ ما.)

من موقع الويب http://kernel.org ، قم بتنزيل المصدر.

  • أثناء وجودك في دليل التنزيلات ، استخرج مصدر kernel من الأرشيف عن طريق إدخال الأمر التالي في Terminal:

tar xvjf Linux-2.6.37.tar.bz2

  • استخدم الأمر make mrproper لمسح منطقة البناء قبل أي تجميع

  • استخدم تكوينا مثل xconfig ، تم تصميم هذه التكوينات لتسهيل تشغيل أي برنامج في Linux.

  • حدد الوحدات والميزات التي تريد أن يحتوي عليها النواة الخاصة بك

  • بعد الحصول على ملف .config ، فإن الخطوة التالية هي الانتقال إلى Makefile

  • قم بتشغيل الأمر make وانتظر حتى تتم عملية التجميع

  • قم بتثبيت الوحدات النمطية باستخدام الأمر make modules_install

  • انسخ kernel الخاص بك وخريطة النظام إلى / boot

  • قم بتشغيل new-kernel-pkg لإنشاء قائمة تبعيات الوحدة النمطية وأشياء مثل grub.conf

استنتاج أخير

الوظيفة الأساسية في نواة لينكس (Linux kernel) هي إدارة الموارد ، حيث تعمل كطبقة مجردة للتطبيقات. النواة ، التي تتفاعل مع الأجهزة وتدعم البرامج ، متصلة بالتطبيقات. Linux هو نظام تشغيل متعدد المهام يتيح تشغيل العديد من العمليات في وقت واحد. 

نظرا لطبيعته مفتوحة المصدر ، والتي تمكن المستخدمين من تعديل النواة إلى ما هو مقبول بالنسبة لهم ولأجهزتهم ، فإن Linux kernel محبوب جيدا. لذلك ، على عكس أنظمة التشغيل الأخرى ، يمكن استخدامه لمجموعة من الأجهزة.

تمنح الطبيعة المعيارية لنواة Linux لمستخدميها متعة إضافية. هذا بسبب النطاق الواسع من التعديلات التي يمكن إجراؤها هنا دون فرض إعادة تعيين النظام. يتمتع المستخدمون بالكثير من الحرية لإحياء تخيلاتهم بسبب التنوع.

أخيرآ ، تخيل أنك بحاجة إلى إصدارات مختلفة من Chrome أو Firefox اعتمادا على ما إذا كنت تستخدم WiFi أو Ethernet. كان تنفيذ هذه الطريقة مملا للمطورين. لكن ميزة Linux kernel هذه هي أيضا مفهوم قوي جدا وتوفر مرونة كبيرة تزيد من إنتاجية المطورين وراحة المستخدم.



google-playkhamsatmostaqltradent