كنت اتساءل هل يمكن انشاء نظام تشغيل بلغة البايثون ؟ ارجوالاجابة بسرعة !
انشاء نظام تشغيل بلغة البايثون
نظم الشتغيل في السابق كانت عباره عن نواه (وضيفه النواة هي السيطرة على العتاد اي التحكم بالعتاد لانه لا يستحمل اخطاء حيث يمكن ان يعطب) وهذه النواة توفر اداوات او دوال تجعل استخدام العتاد "Hardware" امن وهي تسيطر على المشاكل وتنظم تدفق البيانات وتسلسل الاعمال على المعالج والذاكره وغيرها من خلال الطاقه 01010101
بعد ذالك يتم بناء طبقة تعتمد على النواة تحوي على القشرة التي تتحكم بشكل ما يظهر لك "واجهة المستخدم" وكذالك دوال برمجيه تستفد من دوال النواة ولكنها اقرب للانسان من الاله وتعمل بشروط صاحب النظام
اما جوابا على سؤالك فهو التالي
اذا كان الهدف انشاء نظام من النواة فما فوق هذا غير ممكن لانك تحتاج للغة معالج والمسماة لغة تجميع Assembly والتي بدورها تتحدث مع المعالج بالطاقه 01010101
اما اذا كان الهدف بناء ما فوق النواة وذالك بالاعتماد على نواة مثل لينكس فهنا الامر ممكن ولكن ستحتاج لاستخدام اللغة التي التي تفهمها النواة اولا لكي تجعلها تفهم البايثون او الجافا او اي لغه واللغة التي تفهمها النواة في الغالب هي C وستكون اغلب مكتباتها في النظام ولكن بهذه الحاله انت تولد طبقه جديده اخرى ولهذا تسمى تلك الغات بالطبيعية Native لان النظام يفهمها بدون مترجمات وسطيه اضافيه او بدون اله افتراضيه virtual machine كما في جافا
وللتوضيح اكثر ناخذ مثال الجافا
الكود الذي تكتبه بالجافا لا تفهمه غير الجافا نفسها فتقوم بتحويله الى bytecode "هذا ما تفهمه التها الافتراضيه" عبر ماكنتها الافتراضيه Java virtual machine وهذا البايت كود مهمته التحقق من الكود والتاكد منه وترجمته وهناك اكثر من طريقه لذالك مثلا JIT والتي يستخدمها اندرويد حاليا وستتغير مع الاصدار القادم لاندرويد L وبعد الترجمه والتاكيد يرسل الى المعالج ليعمل وهي نفس طريقه عمل البايثون تقريبا ولهذا تعتبر لغات بطيئه "بايثون ابطئ من جافا" ولكنها تعمل في مكان يمكن وضع الاله الافتراضيه فيه
طبعا هذا كله كان الدوره الطبيعيه لهذه اللغات، اما اذا كنت تطمح لتغيير بنيتها لتجعلها تتكلم مع العاتد مباشرتا بدون الحاجه لنظام اخر تعمل عليه فهذا بحث اخر وهو ما ذكره اعضاء هنا كمثال مشروع jnode وهو مفتوح المصدر يمكنك ان تستخدمه او تغيره مجانا
اسف على الاطاله :)
التعليقات