السلام عليكم ورحمة الله وبركاته
أعمل على أول نواة نظام عربية بالكامل تنافس اللينوكس
ما الذي تود رؤيته بها ؟
و عليكم السلام و رحمة الله و بركاته
تحيتي إليك و إلي طموحك الواضح، و إليك بعض مما أراه جديراً بالانتباه إليه:
لا تتحدث عن مشروعك مطلقاً في الفترة الأولي و قبل أن تُنشيء أساساً جيداً يمكنك عرضه علي الآخرين؛ فمهما كان طموحك قوياً و ذكاؤك حاداً و خبرتك واسعة فمن السهل جداً أن تُصاب بالإحباط في المراحل الأولي من المشروع بسبب النقد (بل "النقض") غير البنَّاء الذي سيوجهه لك الكثيرون، سيوجه الكثيرون إليك كثيراً من السخرية أو النصائح المبطنة بالتهكم مما سيصيبك بالإحباط (أو علي الأقل سيقلل من حماسك بعض الشيء)، لكن حينما يكون لديك منتج مبدئي سيكون بإمكانك أن تتحدث براحةٍ أكبر، و كون المنتج مبدئياً يعني أن معظم الانتقادات التي ستوجَّه إليه قد يمكن التغلب عليها بالتعديل في تلك النواة المبدئية.
الاعتماد علي تصميم النواة المُصغَّرة micro-kernel و تصميم server-client architecture الذي أري أنه أفضل و له المستقبل الأوسع (ميزة واضحة في نواة GNU hurd، التي تستخدم mach micro kernel)، و لكني أنبهك إلي أنه يجعل تطوير النواة معقداً للغاية، فانظر ماذا تري.
دعم القدرة علي استبدال مكونات النظام بأخري أثناء عمله بالفعل و دون الحاجة إلي إعادة التشغيل (ميزة توجد في نواة الـminix)؛ مما يعطيك القدرة علي تحديث النظام "علي الطاير" بدون الحاجة إلي إعادة التشغيل كما هو المعتاد حالياً (حتي مع نواة اللينوكس)، بالإضافة إلي أن هذا يعطيك القدرة علي معالجة الأخطاء التي تحدث أثناء عمل النواة بدون أن يحس المستخدم النهائي (ربما يحس ببعض "البطء" حينما تحدث بعض المشاكل، لكن كل شيء سيستمر في العمل كما لو أن مشكلةً لم تحدث).
عمل نظام لـ"التحزيم packaging و التنصيب installing و حل مشاكل الاعتمادات dependencies solving" مُوحَّد لنواتك؛ لتفادي الفوضي التي توجد في عالم اللينوكس بين حزم الـdeb و الـrpm ....
عمل بيئة سطح مكتب رسومية تتفادي بها فوضي الواجهات المختلفات في عالم اللينوكس (هي ميزة و عيب في نفس الوقت)، أو علي الأقل يمكنك أن تضع مواصفات قياسية يسترشد بها من يريد أن يبرمج واجهة رسومية لنواتك؛ و بالتالي تكون هناك أصول موحدة يعتمد عليها المبرمجون في بناء التطبيقات لنواتك للحصول علي أكبر قدر ممكن من الحرية لهم، و ضمان عمل برامجهم بكل قوتها علي مختلف أنواع الواجهات.
اكتب النواة بلغة برمجة تدعم النمط الكائني oop؛ فيكون لك ميزة أن واجهة نواتك البرمجية API كائنية، علي العكس من نواة اللينوكس ذات الواجهة الإجرائية procedural، و هذه الميزة توجد في نظام BeOS و شبيهه نظام haiku (أعني بشبيهه أنه BeOS-like).
أنصحك باستخدام لغة برمجة تبني بها نواتك تكون لها القدرة علي بناء برمجيات المستخدم ببساطة (مثل لغة object pascal)؛ و ميزة هذا الأمر أن النظام كله سيكون متوالفاً مع بعضه البعض، بحيث يجد المطورون أن للنواة و لبرمجيات المستخدم نفس النمط و الأساس المنهجي.
ادعم أقل عدد ممكن من أنواع العتاد المشهورة في البداية، ثم اهتم بالبقية بعد أن تجعل المشروع مفتوح المصدر؛ فهذا سيجعلك تركز علي الأساس المهم في البداية و لا توزع جهودك علي ما يمكن تأجيله فيما بعد.
افتح مصدر النواة في الوقت المناسب، بحيث تكون قد وصلتَ إلي مرحلة جيدة و استكملتَ التوثيقات التي ستساعد من سينضمون إليك في المشروع علي الإحاطة بالتفاصيل العامة علي الأقل بسرعة.
بالتوفيق في مسعاك، و نفع الله بك.
السلام عليكم ورحمة الله وبركاته
أخي كلامك رائع ومهم وسأخذه بعين الإعتبار
بالنسبة للواجهة ستكون بنمط واحد لأن هذا كان سبب فشل لينوكس
بالنسبة للمستخدمين وبالنسبة للتطبيقات والبرمجيات ستكون
بصيغة واحدة ( aac. ) وقد تتغير الصيغة بمراحل المشروع والنظام
سيكون مفتح المصدر ولكن محكوم بنمط واحد في الواجهة كما الأندرويد الأن وشكرا على نصائحك اخي اعتقد ان تعليقك هو الأفضل
و عليكم السلام و رحمة الله و بركاته
جزاك الله خيرا، لا تنس النصيحة الأولي فربما تكون هي الأهم، من الأفضل أن تغيب عنا عامين أو ثلاثة أعوام ثم تعود لنا بنواة قوية من أن تتحدث عما تريد فعله حتي يصيبك الإحباط مما سيُقال لك.
العمل بصمت له ميزة أنه سيجعلك قادراً علي تغيير قراراتك التصميمية حينما تقتنع بأهمية التغيير، بينما لو تحدثت بشكل مبالغ فيه عن مشروعك من البداية فستقع عند الرغبة في التغيير في "حيص بيص" و ستشعر بأن كل ما قلتَه من قبل كالقيد في يديك. بالإضافة إلي ذلك فستكون في بداية المشروع لديك بعض المعلومات الخاطئة أو القليلة عن كثيرٍ من الأمور في عالم أنظمة التشغيل (لا تنس أنك ستكون في البداية و لم تقم بوضع يدك في صندوق تروس هذا العالم الضخم، و بالتالي لم تكتسب الخبرة الكبيرة)، لكن مع العمل الكثير سيتضح لك كثيراً مما كان خافياً عليك، و بالتالي سيجعل هذا مركزك أقوي حينما ترد علي الاعتراضات التي ستُجابَه بها فيما بعد.
لهذا كله فلا يهمني مدي خبرتك الحالية في عالم أنظمة التشغيل، و لا يهمني حتي مدي خبرتك في عالم البرمجة من الأصل، بل و لا يهمني حتي شهادتك الجامعية و نوع تعليمك؛ فما يهمني هو قدرتك علي تحصيل العلوم التي تحتاج إلي تحصيلها، و علي الرد علي الاعتراضات الوجيهة التي ستظهر فيما بعد، و كذلك علي تخيل ما لم ينتبه إليه الآخرون و النظر إلي المشكلات من وجهة نظر تختلف عن وجهات النظر التي لهؤلاء الآخرين.
لذلك: دعك مني و من غيري و انطلق في مشوار تحصيل العلوم التي تحتاجها، و لا تيأس إن قابلتك كثير من العقبات و المتاعب فهذا أمر طبعي، و احلم كما تريد بشرط أن تمتلك الهمة التي تستطيع بها محاولة تحقيق أحلامك و طموحاتك. و تذكر أنه ليس هناك شيء مستحيل إلا ما قال الله تعالي و/أو أحد أنبيائه صلوات الله و سلامه عليهم أنه كذلك.
التعليقات