توزيعه من نوع فريد, فلسفه جديده NixOS , GuixSD


(Ahmed Khaled) #1

بدايه القصه

كنت قد مررت علي عدد توزيعات و تركت الكثير. استخدمت اوبنتوا في اول رؤيه لي مع لينكس. و تركتها ثم كرهتها -لاحقاً لم اعد اكره توزيعه بعينها- و استخدمت فيدورا و احببتها ولكن عانيت معها قليلاً فانتقلت الي ارتش و استقريت عليها و لكن كرهت فيها AUR و الهراء الذي يحدث فيه بسبب اعتماديهم لباكج من اناس غير موثوق فيهم حيث ان [1]

|Registered Users |52738|
|Trusted Users |48|

لاحظ عدد المسجلين في AUR هذا الرقم, عدد الموثوق منهم هم 50 شخصاً. ايضاً واجهتني مشاكل مع الكومبيلينج و لم احد احب بصراحه ان يكون حجم التحديثات يومياً ما يقارب 200 ميجا
و انتقلت الي فويد ولكن اخطأت خطاء في التنصيب و هو استخدام مكاتب muslc بدلاً من مكاب جنو. و فعد الي ارتش -لم احذفا بلاساس- و بينما افكر في اعاده تنصيب فويد و استخدامها بدلاً من ارتش. و بينما اقراء علي الانترنت قرأت خبر علي ان اصدار جديد من NixOS قد صدر -اظنها تقراء نيكس- و قرات انها توزيعه بفلسفه مختلفه. قلت ما يهم جميع الناس تقول ان توزيعاتهم مخلفه. ولكن عندما عرفت ان خارقوا جنو اعجبتهم و قاموا ببناء توزيعه مشابهه لها و تسمي GuixSD -تقراء جييكس- قلت لا بد ان اعرف ما ورائها.

الفلسفه

ببساطه اعتماد اعدادات التوزيعه علي لغه برمجه واحده وليس 9999 اسكريبتات لكل شئ فيها.
قد يكون الامر هين او غير معبر لاغلب القراء ولكن ما يعنيه هذا انك تجعل المستخدم يقوم ببرمجه كل شبر في التوزيعه حرفياً.
وبهذا يخلق نوعاً من التخصيص بدرجه لا تصدق -اشبهه بما فُعٍلَ مع Emacs-.
اذا لم تفهم جيداً اليك هذا المثال :
لو قمت بفتح ملف /etc/resolv.conf ستجد ان لا يوجد برمجه فيها و ان كل ما فيه هو nameserver ثم IP الخاص بسيرفر DNS خاصتك التي تستخدمه.
ماذا اذا ارتد ان يستخدم بعض البرامج DNS و البعض الاخر DNS مختلف ؟
ماذا اذا كنت تريد ان يكون DNS هذا متغير اوتوماتك بطريقه ما… لاحظ يدك مقصوره جداً هنا.

الموضوع يبدوا لا بس منه ولكن انا اتكلم عن DNS. ماذا لو تكلمت عن جدران نيريه او انظه التحقيق علي الشبكه.
ماذا اذا كنت اتكلم علي توزيعه ستعمل كسيرفر و تريد ان تكون التوزيعه كلها ديناميكيه و مرنه.

#مميزات
حسنا تكلمنا عن الفلسفه و اذا لم تصدمك فالتري بعض المميزات التي تترتب علي الفلسفه هاذه

  1. التخصيص المتناهي تقريباً : حسنا ها هي حقيقه. تستطيع تخصيص اي شي و كل شي في توزيعتك من النواه و الي الباكج العاديه. و التخصيص برمجي بحتي بحيث انك تستطيع بناء دوال - بيئه برمجيه متاكمله -
  2. التوزيعه مرنه لابعد الحدود. هل جربت تنصيب برنامج و من ثم حذفه فوجد ان نظامك قد قام بابقاء بعض الاثار (هذا سيكون اكثر وضوحاً اذا قمت بتنصيب برامج من AUR) مثلاً تنصب برنامج تجد انه سياخذ مساحه 30 ميجا, و عند الحذف تجد انه يحذف 27ميجا فقط (المثال للتوضيح فقط). هنا الامر يختلف تماماً. و كانت ويكبييديا تتكلم عن هذه الميزه في التحديثات و قالت

upgrading a system is as reliable as reinstalling from scratch.

  1. لنتكلم عن مميزات الباكج
  • تيتح لك كلا الخيارين بايناري او مصدري: بيناري كمدراء apt, pacman و اغلب تويزعات لينكس و المصدري ك Gentoo و غيره و هذا ليكتمل مرتبه التخصيص
  • التحديثات مصغره (تحديثات انوويه) و هو مصطلح يطلق علي ليس البرنامج بالكامل هو ما يحدث و انما اجزاء البرنامج, لذالك اذا كان حجم 200 ميجا (والتي تصل الي جيجا و 2 جيجا كما في فيدورا) تحديثات تتعبك, قل لها وداعاً
  • العوده للوراء : نعم يمكنك بكل سهوله العوده بالباكج الي الوراء فمثلاً بعد التحديث اكتشفت ان هناك مشكله او عضب لن تضطر الي المعاناه حتي التحديث القادم. فقط عد الي تحديث اقدم (الباكج هنا يشمل النواه و اظنها الاكثر ازاعاجاً)
  • تنصيب التوزيعه علي جهاز اخر صار الان اسهل بكثير: فكل اعداداتك الان ( اعدادات النظام كامل بما فيها البرامج و الكيرنل) صارت مكتوبه برمجيا و مشاركه هذا الملف(او الملفات) من توزيعه الي اخري يعني بالنص نقل التوزيعه بكل ما فيها من هنا الي هناك
  • طبعاً اذا تكلمت عن كيفيه تخصيص الباكج لن انتهي ولكن اختم بانه يمكن للمستخدم ان يكون له برامج غير المستخدم الثاني, بل يمكن للمستخدم الاول ان يكون له برامج باصدار مختلف عن المستخدم الثاني في نفس النظام
  1. المزايا كثير واختم انها من التوزيعات المصغره اي انها ستعمل علي امكانيات قليله و تاتي بعدد بكج قليل
    و غيرها ايضاً من المزايا

عيوب :

  1. قال احدهم علي reddit: من العيوب التي اراها ان النظام بني علي طبقه كبيره من التجريد بحيث انك ان واجهتك مشكله قد لن تفهم ما يحدث هنا.
  2. التنصيب من المصدر باستخدام make: حسناً في هذه التوزيعه لا يوجد مكان مثل /usr/share او شي مثل هذا الذي يتعرف عليه برنامج make لهذا اذا ارت تنصيب من المصدر يجب عليك تحويل make الي ملف تنصيب بلغه nix او scheme لكي يفهمها النظام.
  3. اختلاف هرم الملفات المعروف في توزيعات لينكس الاخري
    و غيرها ايضاً من العيوب

ماذا لدينا؟

حسنا كما قلت لدينا توزيعتين بنيتا بهذه الفلسفه, NixOS و GuixSD. الثانيه هي توزيعه جنو حره بالكامل. ولكن ما الفرق؟
/-- ان انني ساذكر هنا اهم الفروق وليس كلها–/

  1. توزيعه NixOS بنيت علي مدير حزم Nix -يا الله علي الانبهار- و نفس الشي في Guix. و هنا الفكره ان هذين المديرين مخلفين تماما كما ياتي
  • الاول بني بلغه Nix. و هي لغه برمجيه وظيفيه بحته (Pure Functional Programmin Language).
  • Guix تستخدم لغه Scheme احد اقوي لغات البرمجه و تستخدم Guile كاموظف لها Implementation
  1. التوزيعه نيكس تستخدم systemd وهو غير قابل للتغير ولن تجد توزيعه مبنيه علي نيكس (غير موجود في وقتنا الحالي) سيستخدم شي اخر غير systemd. اما جيكس فستستخدم init syste خاص بجماعه Gnu لا اذكر اسمه بالحقيقه
  2. كما قلت نيكس توزيعه عاديه و قد تجد بها حزم محتكره. اما جيكس فهي توزيعه تهتم بخصوصيه المستخدم و هي حره بالكامل

ملاحظات علي مشروع جيكس

مشروع جيكس للاسف لا يزالك في مرحله الاستقرار للمستخدم النهاي و انما في مرحله التطوير.
ايضاً المشروع سياتي ليعمل بنواتين : نوه لينكس و نواه هيرد (عجل الله انهاء تطويرها) للاسف نواه هيرد لا تزال ايضاً في مرحله التطوير
شعار نواه لينكس

شعار نواه هيرد

ماذا يجب عليك الان : الاطلاع عليها و اظن ان مشروع نيكس و جيكس هو لالهام اي شخص فينا ان يفكر خارج الصندوق.


[1] المصدر :الموقع الرسمي
بعض المصادر الاخري :slight_smile:

  1. مراجعه موقع دسترو واتش
  2. جنو جيكس
  3. فلوج لشخص انتقل من ارتش الي نيكس

فهرس تنصيب/شرح اشهر التوزيعات الحره خطوه بخطوه
(Ahmed Khaled) #2

فيديوا علي اليوتيوب لأخونا الامازيغي ينصب توزيعه جيكس


(زِيَادٌ الْعُتَيْبِيُّ) #3

لكن كرهت فيها AUR و الهراء الذي يحدث فيه بسبب اعتماديهم لباكج من اناس غير موثوق فيهم حيث ان [1]

اقرأ:

هراء :thinking:

A Trusted User, in short TU, is a person who is chosen to oversee AUR and the community repository. They are the ones who maintain popular PKGBUILDs in community, and overall keep the AUR running.


(Ahmed Khaled) #4

لم افهم ماذا يستفاد من هذا. انا فقط قلت انهم 50 شخص يشرفوا علي اكثر من 52 الف شخص

الاقتباس للتسهيل :

I've seen a few posts around where some have mentioned that it is very easy for someone to update a package in the AUR that would be malicious to your machine, is this true?

Yes, it would be easy to do. Anyone can make an AUR account and either upload new packages or adopt and update existing orphaned packages. The owner of a package can abandon it at any time and it can be picked up by someone else. It would be trivial to make a script injecting evil code into the most popular orphaned packages and bumping the pkgrel to trigger upgrades.

If so is there any way to protect against it (besides analysing all updates)

No, you’re supposed to look over the code. You can stick to the official repositories if you only want packages from trusted sources. The whole point of the AUR is that anyone can upload packages. You could make an account and upload a package right now. There’s no review involved

ولكن سبحان الله. عندما كتبت المنشور كنت متاكد ان هناك من سيدخل فكأنه لم يقراء كامل المنشور و يذهب مباشراً للدفاع عن ارتش
لا مشكله بالنسبه لي. AUR مثل المستدوعات الاجنبيه في دبيان, او فيدورا.
و هي غير محصنه وللاسف ارتش بدون AUR لا اظن انها ستكون لها قائمه.
في اللحظه انا استخدمت ارتش و فويد و اقول ان فويد افضل من ارتش و خاصاً في مدير الحزم. ولكن بالاساس المنشور ليس لمحاربه او ذم احد فقط المنشور عن توزيعتين نيكس و جيكس. و كانت هذه مقدمه