B.3. آلية العمل الداخلية للحاسوب: طبقات الحاسوب المختلفة
يتم التعامل مع الحواسيب بأسلوب تجريدي غالبًا، وتكون الطبقة الظاهرة منه أبسط بكثير من التعقيد الداخلي للحاسوب. ينتج هذا التعقيد جزئياً عن عدد القطع المكونة للحاسوب. إلا أننا نستطيع تصنيف هذه المكونات في طبقات، حيث تتعامل كل طبقة مع الطبقة التي تليها أو تسبقها فقط.
يمكن للمستخدم العادي أن يتدبر أمره دون معرفة هذه التفاصيل… طالما أن كل شيء يعمل على ما يرام. لكن عند مواجهة مشكلة مثل ”الإنترنت لا يعمل!“، فالخطوة الأولى هي تحديد الطبقة التي تسبب المشكلة. هل تعمل بطاقة الشبكة (عتاد)؟ هل تعرَّف عليها الحاسوب؟ هل تستطيع النواة لينكس رؤيتها؟ هل إعدادات الشبكة مضبوطة بشكل صحيح؟ يعزل كل واحد من هذه الأسئلة طبقة مناسبة ويركز على مصدر محتمل للمشكلة.
Let us start with a basic reminder that a computer is, first and foremost, a set of hardware elements. There is generally a main board (known as the motherboard), with one (or more) processor(s), some RAM, device controllers, and extension slots for option boards (for other device controllers). Most noteworthy among these controllers are IDE (Parallel ATA), SCSI, and Serial ATA, for connecting to storage devices such as hard disks. Other controllers include USB, which is able to host a great variety of devices (ranging from webcams to thermometers, from keyboards to home automation systems) and IEEE 1394 (Firewire). These controllers often allow connecting several devices so the complete subsystem handled by a controller is therefore usually known as a “bus”. Option boards include graphics cards (into which monitor screens will be plugged), sound cards, network interface cards, and so on. Some main boards are pre-built with these features, and don't need option boards.
B.3.2. مفتاح التشغيل: BIOS أو UEFI
العتاد وحده غير قادر على تنفيذ مهام مفيدة دون البرمجية المناسبة التي تقوده. إن التحكم والتفاعل مع العتاد هو هدف نظام التشغيل والتطبيقات. وهذه بدورها تحتاج إلى عتاد سليم لتعمل.
This symbiosis between hardware and software does not happen on its own. When the computer is first powered up, some initial setup is required. This role is assumed by the BIOS or UEFI, a piece of software embedded into the main board that runs automatically upon power-up. Its primary task is searching for software it can hand over control to. Usually, as you may have learned in
قسم 9.1, “إقلاع النظام”, in the BIOS case, this involves looking for the first hard disk with a boot sector (also known as the
master boot record or
MBR), loading that boot sector, and running it. From then on, the BIOS is usually not involved (until the next boot). In the case of UEFI, the process involves scanning disks to find a dedicated EFI partition containing further EFI applications to execute.
يحتوي القطاع الإقلاعي (أو قسم EFI) بدوره على برمجية أخرى، تدعى مُحمِّل الإقلاع (bootloader)، غرضها العثور على نظام التشغيل وبدء تشغيله. نظراً لأن محمل الإقلاع هذا ليس مضمَّناً في اللوحة الرئيسية بل يتم تحميله من القرص، يمكن أن يكون متطوراً أكثر من بيوس، ما يفسر عدم تحميل نظام التشغيل بوساطة بيوس نفسه. مثلا، يمكن لمحمَّل الإقلاع (غالباً ما يكون GRUB على نظم لينكس) أن يسرد نظم التشغيل المتوفرة وأن يطلب من المستخدم اختيار واحد منها. عادة، يتم توفير خَيَار إفتراضي يتم اختياره تلقائياً بعد انقضاء فترة زمنية معينة. يمكن أحياناً أن يختار المستخدم أيضاً إضافة خيارات لتمريرها للنواة، وهكذا. في النهاية سيُعثَر على نواة ما، وسَتُحمَّل إلى الذاكرة، ويبدأ تنفيذها.
بيوس (أو UEFI) مسؤول أيضاً عن التعرف على عدد من الأجهزة وتهيئتها. من الواضح أن هذا يتضمن أجهزة IDE/SATA (عادة الأقراص الصلبة وسواقات الأقراص الليزرية)، وأيضًا أجهزة PCI. غالبًا ما تُسرَد الأجهزة التي تم التعرف عليها على الشاشة أثناء عملية الإقلاع. إذا كانت هذه القائمة تختفي بسرعة، استعمل مفتاح Pause لتجميدها فترة تكفيك لقراءتها. أجهزة PCI التي لا تظهر هي نذير شؤم. في أسوأ الحالات، الجهاز معطوب. وفي أفضلها، الجهاز غير متوافق مع إصدارة بيوس الحالية أو غير متوافق مع اللوحة الرئيسية. فمواصفات PCI في تطور، ولا أحد يضمن أن اللوحات الرئيسية القديمة ستتوافق مع أجهزة PCI الأحدث منها.
يعمل كلُّ من بيوس أو UEFI ومحمّل الإقلاع لثوان قليلة فقط لكل منهما؛ لقد وصلنا الآن إلى البرمجية الأولى التي تعمل لفترة أطول، ألا وهي نواة نظام التشغيل. تتولى النواة مهمة المايسترو في الأوركسترا، وتكفل التناغم بين العتاد والبرمجيات. هذا الدور يتضمن عدة مهام منها: قيادة العتاد، إدارة العمليات، والمستخدمين والصلاحيات، ونظام الملفات، وغيرها. تقدم النواة قاعدة مشتركة لجميع البرامج الأخرى في النظام.
بالرغم من أننا نستطيع جمع كل ما يحدث خارج النواة معًا تحت اسم ”فضاء المستخدم user space“، إلا أنه يمكن تقسيم هذه الأحداث إلى طبقات برمجية. على أية حال، فإن التفاعلات بين هذه الطبقات أعقد من سابقتها، وقد لا تكون تصنيفات هذه الطبقات بالسهولة نفسها. من الشائع أن تستفيد التطبيقات من المكتبات، والتي بدورها تستعين بالنواة، وقد تدخل برامج أخرى في هذه الاتصالات، أو يمكن أن تستدعي عدة مكتبات بعضها البعض.