Programming Freaks  | دورات ومقالات برمجيه

Please login or register.

Login with username, password and session length
Advanced search  

News:

Programming-Fr34ks.net
Up and running

Author Topic: How hard disks work | كيف يعمل الهارد ديسك  (Read 1779 times)

St0rM

  • [C programmer]
  • Administrator
  • Active Member
  • *****
  • Posts: 209
  • Why So serious ?
    • View Profile
    • WWW
    • Email
How hard disks work | كيف يعمل الهارد ديسك
« on: October 04, 2009, 06:36:17 AM »
كيف يعمل الهارد ديسك

اول جزء في السلسله : ياتري انا ليه اخترت الموضوع دوت عشان ابدأ بيه ؟

مبدئيا في ناس كتيره بالفعل متعرفش الهارد ديسك "مبدئيا" بيشتغل اذاي  , محدش قال اننا هنتدخل في التفاصيل بشكل معقد او هنتوسع في ال electric engineering لان ده مش كورس باور
"صباح الفل علي هندسة الباور في اسكندريه :D لو شفت وشكم في سوتر هروحكم متقطعين"
ايا كان , نرجع لموضوعنا
دلوقتي هنتكلم بشكل مبسط عن تكنولوجيا الهارد ديسك , الهار د ديسك في ابسط ابسط ابسط حالاته عباره عن مغناطيس , هنتخيل انهجزء مغناطيس واحد يقدر يمثل شحنه سالبه او شحنه موجبه مثلا جميل ؟

بس ايه الي هنستفيده من كده , رجع ضهرك لورا وامسك سجارتك بشده وارمي الشوز بتاعك علي مرمي البصر عشان ححكيلك حكايه
كل الي انت شايفه قدامك من الوان وصور وحروف وحركات ماهي الا مجموعه من الاصفار والواحد وديت مش لغه ! ده نظام ترقيم يدعي بالنظام الترقيم الثنائي BINARY SYSTEM APPENDIX A
تقدر تتطلع علي الملحق عشان معلومات زياده
 الترقيمات ديت بيتم حفظها في مكان ما , سواء ان كان علي القرص الصلب او كان علي الذاكره العشوائيه RAM
معني كده اني اقدر اسجل اي حاجه ايا كانت علي الهارد ديسك بالاصفار والواحد, بس اذا هسترجعها , بكده انا مش هقدر اقرا الملف الي كتبته لانه هيكون مستجل صفر وواحد صفر صفر واحد وهكذا , الغه ديت انا مش بفهمها , لحسن الحظ ان الكومبيوتر بتاعك بيفهمها , وبيقوم بالتعامل معاها وعمل عملية encoding او decoding عشان تقدر من خلالها انك تفهم البيانات او تسجل البيانات , ودوت بيتم علي اكتر مستوي النظام مش مستوي ال hardware.



تلخيص للكلام دوت , انك تقدر تسجل اي حاجه ايا كانت بالترقيم الثنائي , وتسترجعها او تتقاطع معاها باي اسلوب عشان تقدم اي قيمه تانيه انت عاوزها
مثلا : 0000100 ممكن تمثل الرقم 4 اذا قمت بالتقاطع معها علي اساس انها int او ممكن تمثل الحرف الي ترميزه هيكون 4 في ال ascii table او ممكن تكون اي قيمه تانيه float , double , short وهكذا

مثال تاني
 
Code: [Select]
00000000000000100

هو هو نفس القيمه ولكن تفرق في حاجات تانيه , اذا قمت بتقاطعها علي انها
int هتساوي 4
char هتساوي 2 char واحد منهم قيمة 0 معروف بال null character والتاني الترميز الخاص في جدول ال ascii الي بيقدمه ال record رقم 4 في الجدول
short هتساوي 2 short واحد 0 والتاني 4
وهكذا , علي حسب طريقة ال interpretation ال binary numbers الي مستجله علي ال physical disk مثلا ليكون ليها معني


ودلوقتي , دوت هفيدنا في ايه ؟ انك تصدر تسجل مجموعه متسلسله من ال binary numbers عشان تمثل مجموعه او قيمه من البيانات علي حسب طريقتك في ال  interpretation ونرجع لجزء الجزئ المغناطيسي تاني
يقدر يسجل 0 او 1 فقط , بس تخيل لو ملاين الجزيئات ديت موجوده علي صفيحه معنديه واحده تسمي بال disk ؟ بشكل او باخر شبه ال cd الي انت بتدخله في ال cdrom ? "لاحظ انا بقول شبه مش طبق الاصل زي في اختلاف رهيب "
هتقدر ساعتها انك تسجل مجموعه من الارقام مع بعض وتقدر تتعامل معاها وتقاطعها وتقدم بيانات مختلفه من خلالها وبذلك هو دوت حجر الاساس في كيفية عمل الهارد ديسك او تقريبا اي حاجه بتقدم بيانات ليك !زي ال ipod بتاعك او ال flash memory او ال memory card او ال ram memory هو ده حجر الاساس


ولكن اذاي دوت بيحصل ؟

مبدئيا خلينا نشوفه صوره لهارد ديسك مفتوح عشان هشرح شوية حاجات تانيه عليها
وبما اني مكسل اكتب بيانات علي صوره او حتي ارسم صوره ديت ال perfect image من جوجل






نسرد الاجزاء : خلينا نبدا بال spindle دوت الي بيحرك ال platters الي موجوده في ال hard disk
ال platters : صفائح معنديه مرصوصه فوق بعضها , اعتبرها مجموعة سيديهات مرصوصه فوق بعضها
read/write head : هو ده الي بيكتب او بيسترجع البيانات من علي الهارد ديسك

بس للاسف الصوره مش كافيه , لان لحد دلوقتي معرفناش بيكتب فين او بيقرا منين , واذاي بيعرف مكان البيانات المطلوبه ؟

ال hard disk نفسه بيقوم بعمل عنونه للبيانات باستخدام مبدء هندسي بسيط
ال cylinder , head , sector 
ال cylinder "الاسطوانات" بتكون موجوده علي بعد ثابت من ال spindle علي كل ال platters ودوت معناه انك عن طرق رقم cylinder تحدد ال track الي من خلاله هتقدر تحصل علي البيانات 
لو الكلام غامض بالنسبالك ثواني وهتعرف ايه الموضوع , ال tracks ديت بتحتوي علي ال sectors الي من خلالها هتقدر تحصل علي البيانات ولكن اذاي هقدر اعرف ال platter المطلوب من ضمن ال platters الموجوده في ال hard disk ? عن طريق ال HEAD ودوت الي من خلاله هتقدر تحدد ال read/write head وبالتبعيه ؟ال platter المطلوبه
يعني احنا اولا قللنا ال المساحه من ال hard disk كله ل track موجود علي بعد ثابت من ال spindle في كل ال platter
وبعدين باستخدام ال head قمنا بتقليل مساحة البحث ل track محدد علي platter محدد
وعن طريق ال sector قمنا بتحديد مكان ال sector المطلوب بالظبت
بس يعني ايه sector ويعني ايه track ??






مبدئيا انت مش بتقوم بحفظ البيانات بنفسك , اذا كنت معتقد لان مجرد دخول directory وحفظ ملف انت كده بتقوم بترتيب الملفات علي الهارد ديسك تبقي غلطان , لان الهارد ديسك ملوش اي علاقه بال file systems الي هنتكلم عليها في موضوع تاني منفصل لوحده
الهارد ديسك ليه علاقه وليه علاقه فقط بالبيانات المسجله عليه الاصفار والواحد , بس كما ان البروسيسور مش بيتعامل مع بايت واحده ده بيتعامل مع words او double words في ال cycle الواحده بالتعبيه اكيد الهارد ديسك مش ممكن يقوم بعمل access علي البيانات byte by byte ولذلك ال sector هو اصغر واحده يمكن معرفة عنوانها من ال hard disk وتحتوي علي مجموعه من ال bytes "في الغالب 512 بيكون حجم السيكتور يمكن اكبر بس مش اقل من 512 byte بالنسبة لل hard disks الي موضوعنا منصب حولها"
جميل جدا
وبعد منعرف ال Cylinder Head Sector (CHS) الملطلوب ايه الي بيحصل ؟


الهارد ديسك بيقوم بتحويل ال read/write head علي الموقع المطلوب فوق ال sector المحدد الي موجود بداخل ال track وال track ماهو الا مجموعه معينه من ال sectors - وبيقوم ال read/write head بالكتابه فوق او القرائه من ال sector المطلوب حسب العمليه المطلوبه اذا كانت  read/write بشكل واضح اظن !


ولكن اذا برده ال read/write head بيشتغل ؟

هشرح الموضوع في ابسط حالاته لان فيه technologies لل write/read head اتطورت علي مر الزمن بداية من شريط الكاست لحد الهارد ديسك الموجود دلوقتي مع العلم ان التشابه او الوظيفه الاساسيه بالفعل واحده !
شريط الكاست بتاعك هتلاقي  فيه جزء مغناطيسي واذا كنت من هواة التخريب وانت صغير واقتلعت شريط كاست ودغتغته ستين حته عشان عاوز تعرف ايه الي جواه , هتفتكر انك لاقيت حاجه فوق كده صغيره كنا بنسميها المغناطيس  , وهي فعلا مغناطيس علي شكل حرف ال C
حرف ال c زي منتوا شايفين بيحتوي علي gap :D عاوز امنع نفسي اني اتكلم عن الاليكتريكس باي طريقه ماشي
ال gap ديت بيتم توجيها فوق او تحت ملفوفه ب coil wire , عن القرائه بيتم توجيجها لتحت والمغناطيس الي بنتكلم عنه بيركز المجال المغناطيسي الي بينتج عنه توليد تيار بيتم نقله في ال coil wire وبالتالي الحصول علي البيانات الموجوده وتوجيهها للمصدر الي تم طلب القرائه منه
في حالة ال write ال coil wire بيولد تيار الي بينتج عنه ان ال gap الموجوده في الجزء المغناطيسي بتحتوي علي مجال وبيتم مغنطة الجزء المراد مغنطته في المكان المطلوب . بالبساطه ديت  ???


طبعا مع اننا مشرحناش الاجزاء التقنيه الحقيقه وده لاني مش في مركز يسمحلي اني اشرحها ده اذا كنت انا اعرفها اساسا  :D ولكن دوت الي مطلوب منك تعرفه لحد دلوقتي ويخليك تفهم الاساسيات


ولكن اراهن ان في حاجه دلوقتي بتدق في دماغك

هو ال system بيعرف منين ال CHS value ديت ؟

في حاجه جميله جدا في ال hard disks انها مش بتجبر ال system انه يعرف القيمه ديت بشكل محدد ولكن بتقدم ليه خريطه تسمي بال physical address وديت بتبقي عبارة عن number of blocks بيكون كدليل ملاحي للنظام
كل physical block number قيمة بترمز الي CHS value الهارد بيقوم بالتعرف عليها  عن طريقة عملية بتسمي بال logical block addressing LBA وده بتطبيق المعادله الي هتقوم بتوليد ال physical block number او عن طريق حل ال physical block number دوت ل CHS value .

 لحد كده وكفايه جدا لاني مش هشرح دلوقتي ال file systems
الجزء دوت مهم جدا لانك من خلاله هتقدر تعرف ال read/write calls بتتم اذاي بشكل متقدم ويعني ايه io schedulers وايه لزمتها
وطريقة تعاملها وهكذا
 
النهايه
« Last Edit: October 04, 2009, 12:32:49 PM by Ahmed Youssef »
Logged

black ray

  • Global Moderator
  • Just Joined
  • *****
  • Posts: 10
  • Be Stupid As Much As You Can
    • View Profile
Re: How hard disks work | كيف يعمل الهارد ديسك
« Reply #1 on: October 04, 2009, 04:30:48 PM »
really nice work stormy  ;)
Logged
Why Does Unripe Fruit Looks So Delicious ?

St0rM

  • [C programmer]
  • Administrator
  • Active Member
  • *****
  • Posts: 209
  • Why So serious ?
    • View Profile
    • WWW
    • Email
Re: How hard disks work | كيف يعمل الهارد ديسك
« Reply #2 on: October 04, 2009, 04:34:56 PM »
Logged

Cipher

  • Just Joined
  • *
  • Posts: 3
    • View Profile
    • Email
Re: How hard disks work | كيف يعمل الهارد ديسك
« Reply #3 on: October 07, 2009, 11:20:24 PM »
nice effort St0rM...keep on it ; )
Logged

techdude

  • Just Joined
  • *
  • Posts: 2
    • View Profile
Re: How hard disks work | كيف يعمل الهارد ديسك
« Reply #4 on: December 30, 2009, 09:45:03 AM »
مشكور اخوي , معلومات قيمة ورجعت لي معلومات قد درستها في مادتة نظم التشغييل
Logged