31

مصادر لمن يرغب في برمجة وإنشاء أنظمة التشغيل

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

كتب

Structure and Interpretation of Computer Programs

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

http://mitpress.mit.edu/sicp

Think OS: A Brief Introduction to Operating Systems

http://www.greenteapress.co...

How to Make a Computer Operating System

http://samypesse.github.io/...

Compilers: Principles, Techniques, and Tools

https://en.wikipedia.org/wi...

كل كتب Andrew S. Tanenbaum، مدرس في جامعة ومتخصص في أنظمة التشغيل ومشهور بحواره مع لينوس تورفالدس في بدايات لينكس

http://www.cs.vu.nl/~ast

The Little Schemer

كتاب آخر غير متخصص في أنظمة التشغيل لكنه في رأيي مهم لكل المبرمجين

http://mitpress.mit.edu/boo...

The Design of the Unix Operating System

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

The Elements of Computing Systems

كتاب يبدأ من أبسط أساسيات الحاسوب ومن الأرقام الثنائية ومنطق الأرقام الثنائية وحتى بناء حاسوب ونظام تشغيل، تطبيقاته تعتمد على ملفات يمكنك تنزيلها لتتعلم منها مباشرة

How to Design Programs

كتاب مجاني ومتوفر بنسخة مطبوعة، ليس عن أنظمة التشغيل لكنه مهم

http://www.htdp.org

Linux Kernel Development

مواقع

the Operating System resource center

http://www.nondot.org/sabre...

OSDev.org

أحد أفضل المواقع في هذا المجال

Pierre's Library

pierrelib.pagesperso-orange.fr

http://mikeos.sourceforge.net

نظام تشغيل تعليمي، كتب ليكون مثالاً لمن يريد تعلم تطوير أنظمة التشغيل وهو نظام بسيط

هذا موقع مفيد، اصبر واقرأ كل الروابط المتوفرة فيه

http://c2.com/cgi/wiki?Oper... http://c2.com/cgi/wiki?Oper...

Principles

Minix3

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

http://www.minix3.org/docum...

Operating System Development Series

http://www.brokenthorn.com/...

فيديو

ملاحظات

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

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

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

إن كان لديك مصادر أخرى فشاركنا بها.

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

جزاك الله خيراً أخي عبد الله لإنجازك ما وعدت

وأظنك تقصد

https://arabia.io/go/7460/5...

بصراحة كانت الفكرة في طرح الموضوع

https://arabia.io/go/11278

هي أنه لماذا علينا تثبيت كامل نظام التشغيل بإيجابياته وسلبياته إن كان الشخص يحتاج الجهاز لأمر بسيط

وأقصد بالبسيط أي مثلا يحتاجه من أجل تطبيق واحد متخصص لا يتطلب كل مكونات نظام التشغيل مثل ويندوز 8.1 أو لينكس

من هنا كانت الفكرة أنه لو يتم تطوير نظام بسيط بحده الادنى لتشغيل ذاك التطبيق

خذ مثالا :

تطبيق لتشغيل آلة بأوامر محدودة

بالأمس نزل الخبر التالي :

https://arabia.io/go/11523

إذا أليس من الجيد أن يكون هناك أدوات تتيح برمجة نظام تشغيل مبسط يؤدي الغرض بدلا من نظام 8.1 كاملا

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

أردوينو حل آخر، يمكن برمجتها دون برمجة نظام تشغيل كامل.

هل يمكن أن تذكر لنا أمثلة للتطبيقات التي تقصدها؟

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

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

طبعا التقييد نابع من منطلق أمني سواء على الهجمات الخارجية أو من التسريبات الداخلية

وقس عليه الأتطبيقات الحساسة التي تتطلب العمل في الزمن الحقيقي

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

بعد أن بدأت بالتعليق هنا خطر لي أن أحوله لموضوع

https://arabia.io/go/11623

يظهر أنه حقا نظام تشغيل مصغر

عندما وضع الرابط الأخ إسلام

https://arabia.io/go/11278/...

وشاهدت الصورة

ظننته من باب الدعابة

تعلمها جميل ومهم لفهم مبادىء الحاسوب ، أما تطويرها من الصفر -كما قلت- مضيعة للوقت.

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

السلام عليكم،

شكرا جزيلا على هذا الموضوع الرائع!!!

أنا أيضا مهتم جدا بموضوع الأنظمة خاصة لينكس، وحاليا قد بدأت في تعلم Linux API.

هل أنت متقن لهذا الأمر أم أنك في طور التعلم مثلي ؟

-1

سبب انتقالي من الديسكتوب الى الويب هو برمجة نظم التشغيل!

تعلمت برمجة سي بلس بلس ثم أردت البدأ بالاسمبلي لكنهم أفشلوني!!!!!

لكنني لن أعود...

الان أنا مرتاح في الويب

لكن شكرا لك فهي جدجدجدجدجد مفيدة اخي

واصل

بعض الروابط أعلاه مفيدة لكل المبرمجين بغض النظر عن مجال البرمجة، أرجو أن تطلع عليها.

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

حاولت لكن اقصى شيئ وصلت اليه هو الادخال فقط

()