التخطي إلى المحتوى الرئيسي

ماذا يخزن في القرص الصلب؟..والذاكرة العشوائية؟..وما الفرق بينهما؟

اجابتي في كورا العربية، مع المصادر

ما الذي يخزن في القرص الصلب؟

حسناً، لدينا في القرص الصلب مسارات وقطاعات، أهمها على اﻻطلاق هو قطاع الاقلاع الرئيسي (Master Boot Record) وهو دائما ما يكون القطاع اﻷول من المسار اﻷول في أول جزء من القرص الصلب، وهو كود تنفيذي يحمل التعليمات الضرورية لبدء اقلاع الحاسوب.

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

عادةً، ما يتم تحميل نظام التشغيل في القرص المنطقي اﻷول، (يسمى C في نظام ويندوز)، فمع بدء تشغيل الحاسوب، يكون أول ما يعمل هو شريحة تسمى BIOS، وهي دارة متكاملة تحمل النظام المبدئي على ذاكرة خاصة بها، يقرأ هذا النظام التعليمات من قطاع الاقلاع الرئيسي MBR، ثم يقوم بتحميل نظام التشغيل من القرص الصلب إلى الذاكرة العشوائية RAM..سنأتي لاحقاً على ذكرها..

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

طيب لماذا تسمى اﻷقراص المنطقية في ويندوز C, D, E؟

لماذا C؟ وليس A؟..حسناً، لم تكن كل أجهزة الكمبيوتر في 1984 مثلاً تملك قرصاً صلباً، كان لدينا ما يسمى بالقرص المرن، وهو يحمل نفس فكرة القرص الصلب من حيث المبدأ، إلا أنه يتيح لك ازالة وسط التخزين وتغييره، كان اسم مسار A محجوزاً للقرص المرن، وكذلك B، ﻷنه كان ثم نوعين من اﻷقراص المرنة، وكانت له اﻷولوية في تحميل نظام التشغيل، بمعنى أنك اذا شغلت حاسوب، فأول موضع سيبحث فيه BIOS عن نظام تشغيل هو القرص المرن A، فإن لم يجده انتقل إلى ما بعده وهكذا..وبذلك ظل حرف C محجوزاً للقرص المنطقي اﻷول على أنظمة DOS وويندوز فيما بعد.

بالمناسبة توزيعات لينوكس ﻻ تسمي اﻷقراص بهذا الشكل.

ماذا يخزن في الذاكرة العشوائية؟

الذاكرة العشوائية، هذه أبرز سماتها بالمقارنة بالقرص الصلب:

  1. سريعة، يمكنك جلب ما تشاء من بيانات مختزنة فيها فوراً، بخلاف القرص الصلب فهو محدود السرعة بالمقارنة لها.
  2. محدودة الحجم، أصغر بكثير من القرص الصلب
  3. متطايرة، تنسى كل شئ بمجرد فصل التيار الكهربائي عنها، بخلاف القرص الصلب

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

بالضبط، تحفظها على القرص الصلب في ملف! Save As

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

ﻻحظ أن معظم الأجهزة قد تملك أنواعاً أكثر من الذاكرة، فبخلاف BIOS, RAM, HDD هناك مستويات الكاش الخاصة بالمعالج، وهناك أحيانا ذاكرة RAM مخصصة فقط لمعالج كارت الشاشة GPU..بحسب تصميم الجهاز وما يناسبه أكثر.

اجتهدت في ترجمة المصطلحات التقنية إلى العربية، ربما ﻻ تكون الترجمات دقيقة لذا يحبذ الرجوع إلى المصادر للاستزادة

تعليقات

المشاركات الشائعة من هذه المدونة

كيف تضع المتغيرات في جملة SQL داخل البرنامج؟

من الأخطاء التي تبدو لي شائعة هي كيفية تكوين جمل SQL داخل البرامج، أصادف سطورا يكتبها بعض المبرمجين كالتالي:

"select * from users where UPPER(uname)= UPPER('".$uname."')"
هذه الطريقة في ادخال القيم إلى جملة SQL هي طريقة خطرة للغاية، فهي أولا تعيق عمل البرنامج عند ادخال أحرف معينة (أحد من عرفتهم حل المشكلة باخبار المستخدم بأن ادخال هذه الحروف ممنوع!)، وثانيا، وهو الأهم: أنها تترك قاعدة بياناتك عرضة للاختراق، أو التدمير، إذ يمكن للمخترق، وبمجرد اكتشافه للثغرة أن يقوم باغلاق جملة SQL الخاصة بك واضافة جملة جديدة كما يشاء، افترض مثلا أن قيمة المتغير uname (المدخلة بواسطة المستخدم) كالتالي:
');DROP TABLE users; -- في تلك الحالة تصبح جملة SQL الكاملة المنفذة بواسطة البرنامج هي: "select * from users where UPPER(uname)= UPPER('');DROP TABLE users; --')"
وبالطبع، تكون النتيجة هي محو بيانات المستخدمين "إن كان البرنامج يملك صلاحية تنفيذ الأمر".
تسمى هذه الطريقة SQL Injection وهي دائما فعالة مع البرامج المكتوبة بهذه الطريقة، فكتابة الك…

أوراكل وتحديد عدد الصفوف الناتجة

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

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

مثلا، إذا كانت جملتك هي:
SELECT f1,f2,f3 FROM my_table
عليك أولا أن تقوم باضافة حقل يحمل أرقام الصفوف كالتالي: SELECT ROWNUM rn, f1, f2, f3 FROM my_tableالآن صارت الجملة السابقة جدولا يمكنك وضعه كجملة فرعية في جملة تحديد أكبر، كالتالي: SELECT * FROM (SELECT ROWNUM rn, f1, f2, f3 FROM my_table) WHERE rn BETWEEN :Min AND :Max وهذه الطريقة ليست الأسرع وإن كانت الأوضح منطقيا في كتابتها، بهذه الطري…

ما هو متصفح تور؟ TOR

كتبت هذه الإجابة لموقع كورا العربي..

متصفح تور، هو مشروع مفتوح المصدر، مشتق من فايرفوكس، ويعمل على شبكة بتقنية تسمى (The Onion Routing) TOR، وهي شبكة تواصل عبر الانترنت تأسست في البدء لأغراض عسكرية، ثم أصبحت الشبكة تستخدم من عامة الناس بغرض السرية والخصوصية. فكرة العملالفكرة من شبكة تور، هو تفادي وجود نقطة ضعف وحيدة في الاتصال، بمعنى، أنك أثناء الاتصال العادي بانترنت، تكون نقطة ضعفك هي مقدم الخدمة، فهو يستطيع معرفة الكثير عنك أثناء تصفحك، لماذا؟..طبعاً لأن كل اتصالاتك تمر من خلاله ولا مفر من ذلك، فعند طلبك لموقع كورا، مثلاً، يطلب المتصفح (العادي) من خلال مقدم الخدمة أولاً عنوان الآيبي المرتبط بعنوان http://quora.com، وهكذا يستطيع القائم على تقديم الخدمة لك أن يتتبع اتصالك وان يراقب كثيراً من البيانات..كذلك في حالة شبكات VPN، فمن غير الأكيد أن مقدم خدمة VPN لا يسجل اتصالاتك ووجهتها أثناء استخدامك للخدمة؟هذه ليست الحال في شبكة تور، في شبكة تور، تطلب مبدئياً انشاء دائرة من نقاط التحويل، تتكون عادة من 3 سيرفرات عشوائية مختلفة يديرها متطوعين من مختلف بقاع الأرض، وهذه النقاط تق…