إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

تشغيل برامج Linux على FreeBSD

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [شرح] تشغيل برامج Linux على FreeBSD

    السلام عليكم و رحمة الله و بركاته
    معروف أن لكل نظام بنية خاصة لملفاته التطبيقية أو ما يعرف ب Binary Executable، مما يستحيل تشغيلها في نظام آخر إلا بوسيط آخر كemulation الذي يقوم بعمل محاكاة، ليس شرطا أن يحاكي النظام كله ربما جزء منه كما يفعل FreeBSD لتشغيل الملفات التطبيقية للأنظمة الأخرى كSolaris, OpenSolaris, BSD based,Linux.
    FreeBSD لديه قابلية تشغيل معظم برامج Linux مما يجعلك تضرب عصفورين بحجر واحد، يعتمد على ذلك بوحدة أو module، هذه الوحدة تقوم بمحاكاة system call's الخاصة ب Linux على FreeBSD مما يعطي القابلية لتشغيل ملفات Linux عليه.
    كيفية تشغيل Linux emulation على FreeBSD:
    أولا علينا تشغيل الوحدة linux، نقوم أولا بإضافة خاصية تشغيلها في الملف rc.conf:
    كود:
    ee /etc/rc.conf
     linux_enable=”YES”
    كود:
    
    
    بعدها من سطر الأوامر و بصلاحيات جذر نفذ الآتي:
    كود:
    kldload linux

    هذا الأمر سيقوم بتشغيل الوحدة linux على مستوى النظام، للتأكد من تشغيلها ننفذ الآتي:

    كود:
    kldstat  
     .
     .
     .
      8    1 0xffffffff80c22000 1393f1   zfs.ko  
      9    1 0xffffffff80d5c000 1c39     opensolaris.ko  
     10    1 0xffffffff80d5e000 510b     linprocfs.ko  
     11    1 0xffffffff80d64000 2564e    linux.ko
    كود:
    
    
    يقوم FreeBSD بتشغيل ملفات Linux بصنع بيئة مشابهة لل Linux أو أقرب إلى أن تكون chroot، تكون هذه البيئة المصغرة في المسار التالي:
    كود:
    /usr/compat/linux
    لو نرى ما بداخلها نجدها مشابهة لبيئة Linux، حيث توضع جميع الملفات الأساسية لل Linux و كأنك في توزيعة aDSL، هذا سيجعل برامج Linux تجد نفس الإعدادات و الوحدات (shared object) التي هي في Linux، بعدها يقوم النظام بالمحاكاة.
    يجب عدم الخلط ما بين الملفات الموجودة في المسار usr/compat/linux/lib/مثلا و الموجودة في المسارlib/، حتى لو وجدت بنفس الإسم إلا أن كل ملف يحمل معلومات خاصة بنظامه الأصلي.
    تنصيب Linux emulation:
    ال port الخاص بالمحاكاة نجده في:
    كود:
    /usr/ports/emulators/linux_base-f10
    FreeBSD يعتمد على بيئة مشابهة ل Fedora 10 في المحاكاة، لأن كل توزيعة تحمل إصدارة نواة خاصة، و المحاكاة الخاصة ب FreeBSD لم تكتمل بعد لتدعم كل sys call's الخاصة ب Linux.
    الآن نتوجه إلى المسار السابق و نقوم بتنصيب طبقة المحاكاة:
    كود:
    cd /usr/ports/emulators/linux_base-f10
     make install clean
    كود:
    
    

    بعدها نقوم بالآتي حتى لا نضطر إلى إعادة تشغيل النظام
    :
    كود:
    /etc/rc.d/abi restart
     /etc/rc.d/sysctl restart
    كود:
    
    
    الكثير من برامج Linux تعتمد على نظام الملفات procfs لتخزن معلومات حول البرامج، لمحاكاة هذا النظام نضيفه إلى الملف etc/fstab/:
    كود:
    ee /etc/fstab
     linproc    /usr/compat/linux/proc        linprocfs    rw    0    0
     mount linproc
    كود:
    
    
    الآن يمكنك تشغيل برامج Linux على FreeBSD.
    تشغيل Flash في المتصفح Firefox 3.x:
    سنقوم الآن بتشغيل الفلاش على المتصفح Firefox، مثل ماهو معروف فإن أغلب المواقع تعتمد على Adobe Flash Player الذي لم توفر الشركة الأصلية نسخة للبيسداويين(لا علينا).
    سنقوم بتشغيل Flash 10 الآن لكن قبل ذلك علينا أن نضيف الآتي
    كود:
    OVERRIDE_LINUX_BASE_PORT=f10
    OVERRIDE_LINUX_NONBASE_PORTS=f10
    etc/make.conf/، بهذا سنعتمد على الحزم الخاصة ب fedora 10 فقط.
    نقوم الآن بتنصيب ال flash plugin:
    كود:
    cd /usr/ports/www/linux-f10-flashplugin10
    make install clean
    كود:
    
    
    تعتمد فكرة تشغيل الفلاش في FreeBSD على nspluginwrapper، ماهية عمل هذا الأخير هي تمكين تشغيل ال plugins لمنصة في منصة أخرى، و كأنه Cygwin لكن خاص بالمتصفح.
    كود:
    cd /usr/ports/www/nspluginwrapper 
    
     make install clean
    الآن يمكننا إيجاد الإضافة flash على المسار التالي:
    كود:
    /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
    الآن قم بغلق المتصفح و نفذ الآتي من دون صلاحيات جذر:
    كود:
    nspluginwrapper -v -i /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so

    تنفيذ الأمر السابق سيجعل الفلاش يشتغل للمستخدم الحالي، إن أردت تششغيل عند أي مستخدم آخر عليك أولا أن تقوم إلى الدخول إليه، عبر الطرفية مثلا، بعدها تنفذ الأمر السابق.
    مثال:
    كود:
    $su Brother
     $nspluginwrapper -v -i /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
     $exit
    كود:
    
    
    مشاكل تصادفك أثناء تشغيل ملفاتLinux:
    مثال 01:
    كما قلنا سابقا أن FreeBSD يقوم بتضمين الملفات الاساسية فقط في المسار usr/compat/linux/، لذا فإنه من الممكن أن تجد وحدات ناقصة تعتمد عليها برامج أخرى عند تشغيلها، كل ماعليك فعله هو البحث عن الملفات الناقصة و وضعها في المسار الصحيح تحت usr/compat/linux/، هنا عند محاولتي لتشغيل skype صادفت الرسالة التالية:
    ./
    كود:
    skype: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory
    فل ما كان علي فعله هو الذهاب إلى موقع http://rpm.pbone.net و البحث عن الحزمة المسؤولة عن الوحدة libasound.so.2 بعدها قمت بتحميلها عندي، إستخرجت الملفات من الحزمة و و ضعتها في مكانها المناسب، بلغة سطر الأوامر:
    كود:
    [LEFT][FONT=Arabic Transparent][SIZE=4]$[/SIZE][/FONT]wget http://archive.fedoraproject.org/fedora/linux/updates/10/i386/alsa-lib-1.0.21-2.fc10.i386.rpm
     $rpm2cpio | cpio -idm
     $ls
     $lib    usr    etc
     $su
     #cp -R lib/ usr/compat/linux/lib/
     #cp -R etc/ usr/compat/linux/etc/
     #cp -R usr/ usr/compat/linux/usr
    [/LEFT]
    لاحظوا أني نقلت المجلدات المستخرجة إلى usr/compat/linux/، نقلها إلى غير مكانها مثلا إلى lib/ يسبب عدم عمل بعض البرامج لديك و ربما حتى خلل في النظام.
    كرر هذه الخطوة مع كل ملف تجده ناقص :D.
    مثال 02:
    كود:
    skype: error while loading shared libraries: /usr/lib/libvorbisenc.so.2: ELF file OS ABI invalid
    سبب هذه الرسالة هو عدم تعرف النظام إلى أصل الملفات أهي خاصة ب FreeBSD أم ب Linux، ﻷن الملفات التطبيقية الخاصة بالنظام لاتحمل معلومات كافية، GNU بدء يقوم بإضافة معلومات إلى هذه الملفات أثناء الترجمة.
    لحل هذه المشكلة نقوم بوسم ملفات ال Linux حتى يتعرف عليها النظام كالآتي:
    http://0xsife.wordpress.com
    المجلة التقنية It-scoop.com

    أخبار التقنية أولا بأول لحظة وقوعها

  • #2
    هل جميع برامج لينكس تعمل ، خصوصا التي لاتوجد في ports ؟

    مثلا ، هل تستطيع تشغيل shutter ، uget?

    تعليق


    • #3
      هل جميع برامج لينكس تعمل ، خصوصا التي لاتوجد في ports ؟
      الجواب:
      FreeBSD لديه قابلية تشغيل معظم برامج Linux مما يجعلك تضرب عصفورين بحجر واحد، يعتمد على ذلك بوحدة أو module، هذه الوحدة تقوم بمحاكاة system call's الخاصة ب Linux على FreeBSD مما يعطي القابلية لتشغيل ملفات Linux عليه.
      جرب و سترى، ما أعرفه أنه بعض الأشخاص نجحوا في تشغيل skype، Flash player, Oracle server.
      هناك بدائل:
      كود:
      ftp/multiget
      ftp/gwget
      ftp/wxdfast
      أظن uget يشتغل على FreeBSD،لقد نجحت للتو و الحمد لله في تشغيله، أنظر إلى الصورة في المرفقات.
      أظنه يحتاج إلى هذه الحزم:
      كود:
      x11-toolkits/linux-f10-gtk2
      uget-1.5.0-1.fc10.i386.rpm
      libcanberra-0.12-1.fc11.i586.rpm
      الملفات المرفقة
      التعديل الأخير تم بواسطة SIFE; الساعة 15-11-2010, 03:47 PM.
      http://0xsife.wordpress.com
      المجلة التقنية It-scoop.com

      أخبار التقنية أولا بأول لحظة وقوعها

      تعليق


      • #4
        شكله متعب جدا

        هل هو نظامك اﻷساسي بدلا عن لينكس ؟

        وإذا كان ، فلماذا ؟

        تعليق


        • #5
          شكله متعب جدا
          أظنها الثيم فقط.
          هل هو نظامك اﻷساسي بدلا عن لينكس ؟
          نعم، لدي أيضا توزيعة CentOS و لكني لم أعمل بها بعد.
          وإذا كان ، فلماذا ؟
          التوزيعات الحالية إلى حد ما أصبحت تقدم تسهيلات في عمقها تعقيدات، فلو أردت أن تعدل شيئا ليناسب إحتياجاتك تجد نفسك غارقا.
          http://0xsife.wordpress.com
          المجلة التقنية It-scoop.com

          أخبار التقنية أولا بأول لحظة وقوعها

          تعليق


          • #6
            شكرا اخي

            سؤال ؟

            هل يدعم كروت الواير لييس ؟

            وما نوع الجهاز هذا الذي تعمل عليه ؟ اقصد يعني مواصفاته وهل هو ديسك او لاب


            وشكرا
            لااله الا الله محمد رسول الله

            تعليق


            • #7
              يدعمها لكن ليس كلها، القائمة المدعومة.
              وما نوع الجهاز هذا الذي تعمل عليه ؟ اقصد يعني مواصفاته وهل هو ديسك او لاب
              كنت أعمل على pentium 4 3.0Ghz أما الآن فأعمل على Phenom x3 2.1Ghz.
              و عفوا :D.
              http://0xsife.wordpress.com
              المجلة التقنية It-scoop.com

              أخبار التقنية أولا بأول لحظة وقوعها

              تعليق

              يعمل...
              X