ما هو نظام UNIX

  • ما هي الأدوات المستخدمة في أنظمة التشغيل الأخرى؟

    تختلف الأدوات المستخدمة في أنظمة التشغيل الأخرى بناءً على نوعية النظام وغرض استخدامه، ولكن بشكل عام يمكن ذكر بعض الأدوات الشائعة في بعض الأنظمة الأخرى كما يلي:

    1- أنظمة تشغيل Linux: تستخدم أدوات مثل Bash shell وgcc وGDB وEmacs وVim والكثير من الأدوات الأخرى.

    2- أنظمة تشغيل macOS: تستخدم أدوات مثل Terminal وXcode وVisual Studio Code وغيرها من الأدوات المتاحة في App Store.

    3- أنظمة تشغيل Unix: تستخدم أدوات مثل Shell وawk وsed وPerl وغيرها من الأدوات الخاصة بنظام Unix.

    4- أنظمة تشغيل Windows: تستخدم أدوات مثل Command Prompt وPowerShell وVisual Studio وغيرها من الأدوات المتاحة في Windows Store.

  • ما هي فوائد نظام تشغيل ماك أو إس (macOS) في تطوير الأنظمة الحاسوبية؟

    توفر نظام تشغيل ماك أو إس (macOS) العديد من الفوائد للمطورين في تطوير الأنظمة الحاسوبية ، ومن بين هذه الفوائد:

    1- كفاءة أكبر في نظام التشغيل وأداء أعلى: يتم تصميم نظام تشغيل ماك أو إس ليتوافق تماماً مع أجهزة Apple وأجهزة الحاسوب الشخصية المصنعة من شركاء آخرين وهذا يؤدي إلى توفير أداء محسن وسرعة أكبر في التطبيقات.

    2- إمكانية استخدام Xcode: يعتبر Xcode هو بيئة التطوير الأساسية لمطوري Apple وهو يوفر للمطورين الكثير من الميزات والأدوات القوية لتطوير التطبيقات بسهولة.

    3- بنية UNIX: يتم تشغيل macOS بنظام UNIX المسمى macOS Unix، وهذا يعني أن المطورين لديهم إمكانية الوصول إلى الكثير من أدواتها المتقدمة والمشتركة مع اللينكس.

    4- دعم اتصال AirDrop: يمكن لمطوري macOS الاستفادة من ميزة AirDrop وهي تقنية متوفرة فقط في نظام التشغيل الخاص بأجهزة Apple، مما يسمح للمطورين بمشاركة الملفات بسهولة مع الجميع.

    5- دعم الإصدارات الجديدة: تقوم Apple بتحديث نظام التشغيل macOS بشكل دوري وبإصدار المزيد من الميزات والدعم الذي يعني أن المطورين ليسوا بحاجة للانتظار لإعادة كتابة التطبيقات بشكل جديد.

  • ما هي أنظمة التشغيل الأساسية للحاسب الآلي المختلفة؟

    توجد العديد من أنظمة التشغيل الأساسية للحاسوب المختلفة، وهي:

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

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

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

    4. Unix: يستخدم نظام Unix في العديد من الأنظمة والخوادم والأجهزة الطرفية.

    5. أنظمة التشغيل المدمجة: تستخدم أنظمة التشغيل المدمجة في مجموعة متنوعة من الأجهزة الطرفية والأجهزة المدمجة، بما في ذلك مجموعة واسعة من الأجهزة الإلكترونية مثل الهواتف الذكية وأجهزة الصراف الآلي والأدوات الصناعية.

  • يونكس Unix نظام تشغيل

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

    أنظمة التشغيل الثلاثة الأكثر شيوعاً لأجهزة الكمبيوتر هي Microsoft Windows و Mac OS X و Linux. وفي هذه المقالة سنتحدث عن يونكس Unix وهو أحد أنظمة التشغيل الشهيرة.

    ما هو نظام تشغيل يونكس Unix ؟

    يونكس Unix هو نظام تشغيل متعدد المهام ومتعدد المستخدمين، تم تطويره في سبعينيات القرن الماضي وكان من أوائل أنظمة التشغيل التي كُتبت بلغة C،

    تم تطوير Unix بناءً على فلسفة أن قوة النظام تأتي من العلاقات بين البرامج، وليس من البرامج نفسها.

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

    هذه الصفات جعلت بيئة يونكس Unixعنصر أساسي في تطور الإنترنت وتقنيات التواصل،

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

    طور “كين طومسون” و “دينيس ريتشي” وآخرون البناء الأساسية لليونكس بما في ذلك نظام ملفات هرمي كما تم تطوير عدة أجيال من Unix للعديد من الأجهزة.

    وتم تصميم برامج Unix لتناسب العديد من المهام والأغراض.
    أنظمة Linux مبنية على النواة الأساسية لـ Unix إذ تدير النظام والعمليات الأخرى.

     

  • UNIX كيف بدأ نظام يونكس

    فى زمن كان كل ما كمبيوتر جديد بينزل السوق كان بيتعمله لغة برمجة جديدة كان فى اتنين موظفين فى معامل بيل (Bell Labs) اسمهم دينس ريتشي وكين تومسون الشباب دول عملوا نظام تشغيل صغير “بسيط” وسموه UNIX كانوا بيشتغلوا على كمبيوترات اسمها PDP أحجام كبيرة جداً بمواصفات قوية جداً ساعتها ولكنها حاجة تضحك النهاردة لو قلتلك ان العملاق PDP7 كان فيه 9KB memory فأنت غالباً هتقف شوية تستوعب الرقم ده صح ولا غلطة فى الكتابة بس هو صح تسعة كيلو بايت ذاكرة.

     

    فى الوقت ده لغات زي Fortran و CPL و حتى BCPL وغيرهم كانوا موجدين فى الدنيا .. وكين تومسون كان عايز يحط لغة منهم على ال PDP7
    لكن ال 9 كيلو بايت بتوع PDP مكنوش كفاية علشان اللغة تشتغل وده لأن متاح ليها نصف مساحة الذاكرة فقط .. والعهدة على كين تومسون فى الكلام ده.
    وبدأ يعمل لغة جديدة عبارة عن نسخة مستوحاة من BCPL و Fortran علشان تقدر تشتغل على 4k فقط من الذاكرة .. وسماها B .. وكان ده الهدف من اللغة .. انها تشتغل على 4K فقط من الذاكرة.

    جدير بالذكر ان BCPL كانت نسخة مبسطة من CPL .. وب B نسخة مبسطة او معدلة من النسخة المبسطة بتاعة ال CPL .. واللى عايز اقوله ان CPL كانت لغة متكاملة وفيها حاجات كتير من اللى انت تعرفها النهاردة زي ال data types وال call by reference و call by value وحتى ال lambda expressions .. وكان فيها pointers اللى انت بتحبها .. وتخيل كان فيها garbage collector !!
    وغيرها من ال features .. بس كانت مشكلتها ان مع كتر ال features دي بقى صعب ان تكتب لها compiler لكل كمبيوتر .. وصاحبها اضطر يشيل منها feature كتير علشان تبقى سهل تنزل على كمبيوترات كتير وسمى النسخة المبسطة منها BCPL.

    خدت بالك ان الشباب مشاكلهم مع اللغات مش ان اللغة ضعيفة ولا بعيده عن الهاردوير ولا اى كلام من ده! .. مشكلتهم ان اللغة مش مناسبة للمكنة اللى هيشتغلوا عليها.

    المهم بعد كدة بفترة قصيرة الشركة المنتجة لأجهزة PDP نزلت اصدار جديد اسمه PDP11 بمواصفات اعلى .. فبدأ كين وريتشي يفكروا فى استغلال المواصفات الأعلى دي فى انهم يعيدوا كتابة Unix بلغة high level شوية .. لأن Unix الى هذا الوقت كان مكتوب بـ Assembly.
    دينس ريتشي هو اللى اخد على عاتقه تحويل لغة B الى لغة جديدة وسماها C علشان يستخدموها فى إعادة كتابة Linux.

    = الـ C تبقى high level اازى معلش ؟؟
    يا عم ده كلام اللي عملوها .. متتكلمش معايا انا .. روح اتخانق مع كين ودينس.UNIX interview questions | LaptrinhX

     

    المهم .. دينس بدأ يضيف data types للـ C .. ودي مكنتش موجودة فى ال B .. لأن على كلام كين ان PDP7 الميمورى بتاعته كانت متقسمة words فلغة B كانت معتمدة ان كل داتا عندها تبقى word وخلاص .. لكن فى PDP11 بدأت تتقسم لـ bytes .. وبما ان الـ word تساوي اتنين byte يبقى احنا عندنا امكانية توفير كبيرة فى الذاكرة .. لأن كان ممكن يكون احتياجك من وحدة الذاكرة مثلاُ 4 bits فقط لكنك مضطر تخزنها فى أصغر وحدة فى الجهاز وهى word فى الحالة دي هيضيع مننا 12 bits مش هنقدر نستخدمها .. لكن لو اصغر وحدة فى الميمورى هى byte يبقى اللى هيضيع مننا 4 bits فقط .. وكل ما وحدة الميمورى تقل كل ما المساحة الضائعة هتقل.

    لو انت مش مستوعب الكلام ده فالموضع ببساطة ان ال memory اللى فى جهاز الكمبيوتر فيها مخازن كتير للداتا والمخزن ده له مساحة ثابته .. وانت ونصيبك مع البيانات اللى بتتخزن فيه .. يا تاخد المخزن بالكامل يا تاخد جزء منه يا تاخد اكتر من مخزن .. الفكرة هنا ان لو فى مخزن تم استخدام جزء منه فمش هينفع نستخدم الجزء الفاضى لأى بيانات اخرى. لأن الجزء الفاضي فى الحقيقة مابيبقاش فاضي فعلاً.. بس مش موضوعنا.

    المهم .. على حد قول كين فلغة B هى C بس بدون data types .. وكانت أهم سمة فى الـ C انك تقدر تـ Build ال program بتاعك على اكتر من compiler مش compiler واحد فقط بتاع جهاز واحد فقط .. وكمان انك تعملها compiler جديد مكنش بصعوبة اللغات اللى قبلها .. والكلام ده بأكد ان زمان كان حوار اصعب من النهاردة .. المهم الوضع الجديد ده ادى الى ان Unix ممكن نعمله build ونستخدمه على اى machine جديدة .. مش هنقعد نكتب نسخة Unix جديدة لكل machine .. وده طبعاً مصلحة.

    ومش عارف هتتقبل المعلومة دي ازاى بس Unix فى الأساس كان معمول للاستخدام الشخصي .. كين تومسون كان عامله لنفسه بالتعاون مع دينس .. وأقنع معامل بيل بصعوبة واكتر من مرة انه يبقى الـ OS اللى الشركة كلها تعتمد عليه .. وده لأن الشركة كان عندها تجربة سيئة حديثة فى المشاركة مع MIT فى بناء نظام تشغيل معقد اسمه multics (مالتيكس) وخرجوا منه من غير ما يكملوا شغل فيه.

    وبالمناسبة كين ودينس اتعرفوا على لغة BCPL لما كانوا شغالين فى مشروع Multics وده لأن صاحب اللغة كان معاهم فى المشروع.

    وفى معلومة كدة مش مهمة وهى ان الـ C compiler اتكتب بلغة الـ C .. دي معلومة تخليك مش عارف تنام .. يلا عيش معاها.

    فى الوقت ده فى واحد محترم اسمه Brian Kernighan كان زميل كين ودينس فى معامل بيل وحالياً بروفيسور علوم حاسب فى إحدى الجامعات الأمريكية .. الراجل ده اشتغل مع دينس وطلعوا كتاب اسمه “C Programming Language” .. وكان هدف الكتاب ده انه يعلم الناس اللى مش نينجا فى نفسهم ازاى يستخدموا لغة الـ C بأسلوب مبسط .. وده طبعاً ادى الى انتشار اللغة بشكل أسرع.

    الـ Unix كان من ضمن اهدافه انه يبقى OS بسيط ومرن وغير معقد .. وكمان انه يوفر building blocks جاهزة تقدر تستخدمها كمبرمج بدل ما تضطر تكتب البرنامج بتاعك from scratch .. والكلام ده فاهمه كويس اى حد اتعامل مع Linux .. عندنا كمية commands جاهزة كتير اللى هى عبارة عن برامج جاهزة بتعمل حاجة واحدة فقط .. ممكن نستخدمها ونرصها فى bash script يعملنا task معقدة بدون ما نحتاج نكتب كل حاجة بنفسنا.

    شكل الـ Applications بتاعة النهاردة دي مكنش فى دماغ اى حد من الشباب اللى عملوا C و Unix .. الحقبة الزمنية مختلفة والمجال كان مختلف وال requirements مختلفة .. والمؤكد أن صناعة لغات البرمجة ما وقفتش عند النقطة الزمنية دي .. من الحكاية اللى حكيناها كان ديماً فى دافع للغة جديدة مالوش علاقة بضعف أو قوة اللغات المتاحة .. له علاقة بالـ use case اللى محتاجين فيها اللغة و ال environment اللى هتشتغل عليها اللغة .. ودى الفكرة اللى العلماء المحترمين دول كانوا متبنينها .. وكين تومسون لو ماتعرفش فأخر أعماله كانت لغة Go .. نسأل نفسنا بقى .. ليه تومسون ماتوقفش عند الـ C وقرر بعد العمر يشارك فى كتابة لغة جديدة؟

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر