2‏/5‏/2013

ماهو الفرق بين نظام تشغيل 32 بت و64 بت ؟


ماهو الفرق بين نظام تشغيل 32 بت و64 بت ؟

لقد كان السؤال الأكثر أهمية في سنين مضت هل الإنتقال لنظم تشغيل 64 بت يستحق التجربة وهل يوجد العديد من التطبيقات التي تدعم بيئة عمل 64 بت ؟
اليوم تغير هذا السؤال بشكل كبير ليصبح متى سيتم الإنتقال بشكل كلي لأنظمة تشغيل 64 بت ومتى سيتم التخلص من بيئات عمل الـ 32 بت بشكل نهائي ؟
سنتعرف اليوم على مفهوم حوسبة الـ 64 بت بنوع من التفصيل في بعض الأمور التقنية. 



نظام الترميز في الحاسب :
لقد تطورت أنظمة الأرقام عبر العصور لنصل اليوم إلى استعمال النظام العشري في تداولاتنا اليومية مع الأرقام .
يعتمد النظام العشري على 10 أرقام مكونة من 0 إلى الـ 9 لكل رقم أو خانة واحدة . وعند الرغبة بتمثيل رقم أكبر من 10 سيتم إضافة خانة جديدة رقم جديد في كل مرة ليمثل كل من الآحاد والعشرات والمئات الخ .
للأسف فإن الحاسب لن يفهم هذه الأبجدية بسبب طبيعة العمل بالمنطق الثنائي binary logic منطق الحقيقة المطلقة أو عدمها " على الرغم من وجود الكثير من الأفكار الأخرى كالمنطق الثلاثي القيم trinary logic أو الرباعي القيم Four-valued logic  أو المنطق الضبابي إلا أن المنطق الثنائي هو الأفضل من ناحية التنفيذ الكهربائي."
فلو تم إعتماد المنطق الثلاثي القيم لكنا سنجد بأن الأرقام التي سيفهمها المعالج هي 0 و1و 2 مثلاً.

إن الحاسب هو عبارة عن جهاز يتعامل مع الأرقام في كل شيء فالمعالج المركزي CPU هو آلة حاسبة ضخمة تقوم بعمليات جمع وطرح وقسمة وغيرها من العمليات الرياضية في نهاية المطاف وتتم هذه العمليات في مكان يدعى ALU وحدة المعالجة والمنطق .
الأرقام في الطبيعة غير نهائية فمثلا يوجد عدد غير نهائي من الأرقام فما بين الرقم 0 والرقم 1 عدد غير نهائي من الأرقام, كما يوجد عدد غير نهائي من الأرقام مابين الرقم 0 والرقم 0.1 .

سيضطر الحاسب لتمثيل هذه الأرقام بعدد محدود الأرقام فالأرقام في الحاسب ليست مستمرة وإنما متقطعة فقد لايوجد أي رقم بين الرقمين 0 و 0.1 .
هذا التقطع بالأرقام وعدم الاستمرارية تتطلب عدد معين من البتات لترميز الأرقام كما ستوضح الأمثلة :
إن البت Bit هو رقم يخزن قيمة إما 0 أو 1 , وتتالي 8 بتات يدعى باسم بايت Byte فمثلا هذا بايت 00010010 بسبب تتالي 8 أرقام من الأصفار والوحدات كما تدعى 16 بت باسم كلمة Word .

إن البت الواحد X يمكن أن يرمز رقمين إما صفر أو واحد , في حال وجود ثلاث بتات مثلا X X X وفي كل خانة يمكن وضع إما صفر أو واحد فيمكن تمثيل 2*2*2 = 8 رقم بواسطة 3 خانات للبتات أي 3 بتات من 1 إلى 8 أو مثلا من 10 إلى 18 .

في حالة وجود ثمان بتات X X X X X X X X فيمكن التعبير عن هذا الترميز ب 2*2*2*2*2*2*2*2 رقم أي 2 مرفوعاً للقوة 8 وهكذا يمكن تعميم الأمر .

فيمكن تمثيل الرقم 3 بنظام ترميز يعتمد على 3 بتات بالرقم التالي : 011 و على 8 بتات بالرقم التالي 00000011 وعلى 32 بت بالرقم التالي : 00000000000000000000000000000011 .

ولكن في الحقيقة هذا الترميز يقوم على مبدأ ترميز الأرقام الصحيحة بدون فواصل .
فمثلا الترميز السابق لن يقوم بترميز الرقم 3.2 وانما سيكون ترميزها هو 3 ففي حالة الفاصلة العائمة floating-point  سيتم تخصيص قسمين من الرقم قسم لترميز الأرقام الصحيحة وآخر لترميز الفاصلة الامر الذي يؤدي إلى تقليص مجال الأرقام
ففي حال كان الترميز على 32 بت ففي حال لا يوجد تمثيل للفاصلة العائمة سيتمكن الحاسب من الوصول من الرقم 1- إلى الرقم 4294967296 أو من الرقم -2147483648 إلى الرقم 2147483647 .

وفي حال تم تخصيص 16 بت للأرقام بعد الفاصلة و16 بت للأرقام بحيث يمكن تمثيل رقم مثل 3.12 سينقص عدد مجال الأرقام الصحيحة لنصف مجال الأرقام السابقة .
ففي حالة 4 بتات يمكن تمثيل الأرقام الموجبة مثلا من [1,16] أو  المجال [-16,15] في حال تم تمثيل الأرقام السالبة أيضاً .

هل يملك نظام ال 32 بت محدودية بالتعامل مع أرقام كبيرة ؟


إن أي نظام تشغيل 32 بت مقيد باستعمال ذاكرة أقل من 4096MB والسبب بكل بساطة عدم قدرة نظام ترميز 32 بت من تمثيل رقم أكبر .
ففي نظام تشغيل 32 بت كل برنامج يتم تشغيله سيُعطى سماحية للوصول لذاكرة إفتراضية من حجم 4GB والتي يتم تقسيمها إلى2GB كمساحة يمكن التعامل معها في كل مرة .
يمكن لبعض القراء المطلعين الإشادة إلى وجود تقنية PAE والتي تدعمها بعض الرقائق الحديثة في المعالجات وهي تتيح إمكانية التعامل مع ذاكرة أكبر وصولاً لـ 64GB حتى في نظام تشغيل 32 بت ولكن هذه التقنية تتطلب برامج خاصة جداً وحصرية تدعمها كما تعاني من مشاكل توافقية مع برامج القيادة Drivers .
حقيقة إن مشكلة قيود 32 بت هي مشكلة تعاني منها جميع أنظمة التشغيل ولكن يوجد بعض الطرق المستعملة لتحاول تخطيها فمثلا لينكس يستعمل جدول تقابل  للسماح للوصول لذاكرة أكبر , بينما نظام الماك OS X Snow Leopard لايستطيع الوصول لكل الذاكرة .

مشاكل أكثر بنظم الـ 32 بت :

لاتملك نظم تشغيل ال 32 بت مشاكل تتعلق بمحدودية عنونة الذاكرة فحسب بل يوجد مشكلة أن تكون الذاكرة المتاحة أقل بكثير من الذاكرة التي يفترض أن تعمل حتى لو كانت أقل من 4GB .
فمثلا في بعض الحالات يمكن لكل من كرت الشاشة أو البيوس أن يقوم بحجز جزء من الرام قد تصل لحدود 4GB الأمر الذي يعني بأن الذاكرة الفعلية المخزنة هي أقل بكثير من المتاحة نظرياً .
خبير مايكروسوفت Mark Russinovich وجد بأن نظام تشغيل ويندوز 32 بت مع ذاكرة 4GB مع جهاز يملك كرتي شاشة سعة كل واحد منهما 1GB سيجعل السعة الفعلية للرام المتاح هو 2.2GB لنظام التشغيل.
لذا فقد خرج بنتيجة : كلما تحسن كرت الشاشة وزادت ذاكرته كلما قلت المساحة الفعلية من ذاكرة ال 4GB المتاحة لنظام التشغيل.
هل يدعم معالجك بيئة 64 بت ؟
من المهم إجراء اختبار إمكانية دعم المعالج للعمل ضمن بيئة الـ 64 بت بهدف إما تنصيب نظام تشغيل 64 بت أو ربما للتأكد من عمل بعض الميزات الخاصة بمعالجات الـ 64 بت .
يوجد الكثير من الادوات المجانية مثل SecurAble التي تقوم باختبار المعالج لتحديد فيما كان يدعم نظام تشغيل 64 بت أم لا .
كما تقوم باختبار دعم المعالج لخاصية D.E.P مثلا والتي تعتبر تقنية أمنية مصممة لحماية الاجهزة من هجومات “unchecked buffer”كمايقوم بفحص دعم الجهاز لفكرة hardware virtualization .

فهم بيئة ال 64 بت :

هاردوير 64 بت :

لقد كان إنتشار الأجهزة التي تعمل على معالجات 64 بت كبيراً في المخدمات فيما مضى بينما أصبح اليوم جميع الأجهزة المتاحة للجميع تعمل وفق هذا الترميز الجديد .
في بنيان الحاسب فإن مصطلح 64 بت يعني بشكل رئيسي تصميم سجلات معالج الوحدة المركزية CPU ذات عرض 64 بت .
كما أن هذا المصطلح يرتبط بحجم بيانات المتبادلة مابين المعالج واللوحة الأم في مسار نقل المعلومات ال bus .
فالجهاز الذي يملك معالج 64 بت مع مسرى نقل بيانات 64 بت أيضا هو أفضل تصميم معالج موجود .
كما يجب التأكيد على أن ليست جميع الأجهزة ال64 بت متشابهة فمعالجات انتل إيتانيوم Intel Itanium الخاصة بمعالجات ال 64 بت تستخدم طريقة أخرى لعمل البرامج الأمر الذي يتطلب تصميم جديد للبرامج بحيث لا تكون متوافقة مع معالجات ال 64 بت التقليدية التي يعمل عليها ويندوز مثلا .

برمجيات 64 بت :

إن فوائد معالجات  الـ 64 بت لا يمكن تحقيقها إلا في حال وجود برامج تستثمر هذا الأمر وفي بدايات ظهور معالجات الـ 64 بت في الأجهزة المتاحة للجميع عانت نظم تشغيل 64 من قلة البرامج التي ستعمل عليها وكان مثلا إنتشار Windows XP 64 بت ضعيفاً بسبب قلة البرامج التي ستعمل عليه .
اليوم أصبحت معظم البرامج تعمل في بيئة 64 بت وتم إعادة برمجة وكتابة البرامج القديمة التي تعمل على 32 بت لتستثمر الميزات الجديدة المضافة.

نظرة سريعة للمعالج :
يقوم أي معالج باتباع تعليمات مبرمجة مسبقا وهذه التعلميات هي عبارة عن أرقام ثنائية نتعامل معها نظام العد الستة عشري بغرض التبسيط .
تنقسم خطوط اتصال أي معالج مع العالم الخارجي لثلاث أنواع "إضافة لخطوط التغذية" :


خطوط تحكم Control :
تقوم خطوط خرج التحكم بتحديد سمة العملية "قراءة أو كتابة أو إدخل أو إخراج.." التي يقوم بها المعالج والوحدة المعنية بالاتصال "ذاكرة ثابته ، ذاكرة متطايرة ، وحدة تخزين ، وحدة إدخال وإخراج..." .
بينما يتلقى المعالج الطلبات عبر مجموعة خطوط تحكم بغرض توجيهه لعملية معينة (خطوط مقاطعة واعادة وضع "اعادة الوضع هي أمر مقاطعة غير قابل للرفض يوجه المعالج لعنوان البداية"..الخ)


عناوين: Address  
مخارج يخاطب المعالج من خلالها محيطياته "ROM-RAM-I/O الخ" يتم التعامل مع هذه العناوين بواسطة الأرقام الثنائية أيضا وبالتالي ترسم خطوط العنونة حدوداً للمعالج لا يمكن تخطيها إذ لا يمكن لمعالج يملك 16 خط عنونة التعامل مع ذاكرة أوسع من 65535 بايت "إلا بخدع برمجية تبطئ من أداء المعالج"
بينما لو أصبحت خطوط العنونة 17خط لتضاعف حجم الذاكرة التي يمكن للمعالج التعامل معها وهذا عائد لطبيعة الأرقام الثنائية التي استمدت فكرتها من القصة لاختراع الشطرنج
وبالتالي يحدد عدد بيتات خطوط العنونة المساحة التي يمكن للمعالج تغطيتها.يقوم المعالج باستدعاء المعلومات التي يحتاجها من خلال تحديد الوسط المعني بالاستدعاء عبر خطوط التحكم ويحصل على المعلومات عبر خطوط الـ DATA.


معلومات Data :
يمثل العدد الثنائي الوارد للمعالج عبر خطوط Data الإجابة لطلب الاستدعاء أو التعليمة أو سلسلة التعليمات الواجب على المعالج اتباعها.في الواقع تتألف البايت من ثمانية بيت "خانة" مما حصر التعليمات بـ255 تعليمة كحد اقصى للمعالجات ذوات 8 بت ، لتجاوز هذه العقبة تم استنباط نوع من التعليمات يحوي 2 بايت أو 3 بايت حيث يتم اجبار المعالج على قراءة العنوان التالي للحصول على كامل التعلمية ولكن هذا أدى على الأقل لمضاعفة زمن التعليمة هنا برزت الحاجة لزيادة عدد بيتات مداخل الداتا.

ماهي الحوسبة ال64 بت ؟
إن عدد البتات 64 أو 32 يرمز لعدد بتات التي يملكها كل سجل معالج general-purpose registers (GPRs) , فعندما نقول بأن معالج هو 64 بت فهذا يعني بان عدد البتات التي يمكن لسجل المعالج تخزينها هو 64 بت .
الصورة التالية توضح الاختلاف مابين معمارية معالج 64 بت و 32 بت بشكل بسيط للغاية لتوضيح الفكرة :

تدل المربعات السوداء إلى التعليمات Code التي يجب تنفيذها بينما المربعات البيضاء إلى المعطيات Data التي تحملها التعليمات والمربعات الرمادية هي نتائج عملية المعالجة.  
يمكن ملاحظة بعدم كون جميع المعطيات المخزنة في الذاكرة والكاش cache  او السجل registers هي 64 بت ويتم ملاحظة ذلك من خلال المربعات الحمر وذلك بهدف التوافقية مع عمل البيئات القديمة 32 بت .
يتعامل المبرمجون مع هذا النموذج عند برمجة المنخفضة المستوى كبرمجة الأسمبلي :

يوضح الشكل السابق أن عرض السجل في المعالج 64 بت أعرض بمرتين من السجل الموجود في معالج 32 بت , كما يظهر في الشكل بأن حجم سجل التعليمات instruction register (IR) الذي يحمل معلومات التعليمة المراد تنفيذها متساو في كلا المعالجين . كما تضاعف عرض عداد البرامج PC أو counter.
والآن لتسهيل الإجابة على سؤال ماهي الحوسبة 64 بت في حال اخذنا بالحسبان انواع بنى المعطيات التي يتعامل معها المعالج :
إن أبسط معالج يمكن معالجة نوعين من البيانات الارقام وعناوين الذاكرة والتي هي حالة خاصة من الأرقام يتم تخزينها في سجل الأغراض العامة كما أن الارقام والعناوين يتم حسابها ب ALU .
تدعم المعالجات الحديثة نمطين من المعطيات إضافية الفواصل العائية floating point و الأشعة Vector ولكل من هذه الأنماط مجموعة السجلات الخاصة بهم ووحدات تنفيذ خاصة لتنفيذ كل نوع من العمليات يبين الجدول التالي أهم أنواع المعطيات في الحاسب في معالج 64 و 32 بت :

يمكن أن نجد أن الاختلاف في معالجات 64 بت يكمن في تمثيل الأرقام أي الأرقام والعناوين فقط .

فوائد وميزات الحوسبة 64 بت :

عنونة الذاكرة :

- الذاكرة الفيزيائية RAM :

إن معظم نظم تشغيل ال 32 بت محدودة بقدرة للتعامل مع ذاكرة بحدود 4GB , بينما تستطيع نظم ال 64 بت نظرياً من التعامل مع أكثر من 17  بليون GB من الرام .
كما يجدر الذكر بأن بعض نسخ نظم التشغيل قد تحمل محدودية بالتعامل مع كم كبير من الذاكرة لأمور تجارية تتعلق بالرخصة .
فمثلا الويندوز 7 الـ 64bit مثلا محددة بالتعرف على 16GB النسخة المنزلية , بينما النسخة الاحترافية Professional و Ultimateيمكنها التعرف على 192GB من الذاكرة.

- الذاكرة الإفتراضية Virtual Memory :

في معمارية 32 بت فإن نظام ويندوز 32 بت سيُجبر التطبيقات على عدم حجز أكثر من 2GB في الذاكرة الرام , فالكثير من البرامج المتطلبة للذاكرة بشكل كبير كألعاب الفيديو , برامج تحرير الصور و برامج تنصيب نظم تشغيل داخل نظام التشغيل virtual machinesقد تتطلب كمية كبيرة من الذاكرة والتي قد لا تسع في الرام ولا في الذاكرة الإفتراضية .
في نظم تدعم مفهوم 64 بت فإنه يمكن حجز رقم كبير من الذاكرة الإفتراضية قد يصل إلى 8TB هذا رقم أكثر من كاف لأكثر البرامج جنوناً في الإستهلاك .

يمكن لنسخة ويندوز Windows Server التعامل مع 16 TB من الذاكرة الإفتراضية عن طريق استعمال نموذج العنونة المسطحةflat addressing model .

يتم تقسيم الذاكرة الإفتراضية بشكل متساو مابين التطبيقات ومابين نظام التشغيل فحتى تطبيقات ال 32 بت يمكنها الاستفادة من زيادة مساحة عناوين الذاكرة الإفتراضية عندما تعمل في بيئة 64 بت .

فعلى سبيل المثال تمنع تطبيقات ال 32 بت من حجز مساحة 4GB ولكن بالمقابل لا يتوجب على هذه التطبيقات مشاركة فضاء الذاكرة مع نظام التشغيل الأمر الذي يؤدي الى زيادة مساحة الذاكرة الافتراضية وزيادة الفعالية .


- ذاكرة مستمرة :

إن أداء نظم ال 32 بت الضعيفة لا يأتي بسبب قلة كمية الذاكرة ولكن بسبب عدم توافر كتل كبير مستمرة في الذاكرة . فمثلا كلاً من البرامج التالية :

 Windows SharePoint Services 3.0 deployment, Windows, Internet Information Services (IIS), common language runtime (CLR), ASP.NET, SharePoint Products and Technologies

يمكنها ان تتطلب كمية جيدة من إتاحية الذاكرة الإفتراضية في المخدم بحيث تترك فضاء عناوين 32 بت مجزءاً فعندما يطلب برنامج معين مثل SharePoint كتلة ذاكرة إضافية فمن الصعب إيجاد قطعة ذات مساحة 64 MB في فضاء عناوين ال32 بت الممتلىء بينما توفر نظم ال 64 بت عملياً مساحة غير محدودة للبرامج .


- معالجة تفرعية أفضل :

هل تساءلت لم كروت شاشة الاحترافية اغلى من العادية ؟ الفرق بكل بالسعر يرجع للبرامج المكتوبة بشكل أفضل , وحقيقة فإن برمجة تطبيقات بشكل تفرعي يزيد من أداء البرامج بشكل كبير جداً .
ستستفيد البرامج التي تعتمد في عملها على التفرع في تنفيذ التعليمات أو التفرع في معالجة المعطيات بشكل كبير من الحوسبة ال64 .

- معمارية مسار نقل معطيات bus architecture  أسرع :

عدد اكبر للسجلات العامة الاغراض general-purpose registers : كما زاد  عدد السجلات وحجمها كلما استطاع المعالج أن يتعالج مع مساحات كبيرة من الذاكرة بشكل تفرعي simultaneously
بحيث يمكنه التعامل مع المتحولات variables ومع المصفوفات بشكل أكثر كفاءة  و تمرير متحولات التوابع في السجلات عوضاً عن الstack الأبطأ
الأمر الذي يسرع بشكل كبير من عمل البرنامج ككل فكلما زادت عدد السجلات كلما قلت الحاجة للكتابة على المعطيات كما ان استداعات التوابع ستكون أسرع بسبب إمكانية تمرير متحولات التوابع الى السجلات عوضاً عن سحبها من الذاكرة .

- أمان أكثر :

- خصائص أمنية متقدمة : يمكن لنظام ويندوز 64 بت أن يقدم خصائص أمنية قد لاتكون متوفرة لمستخدمي 32 بت بما في ذلك خاصيةhardware D.E.P. و Kernel Patch Protection التي تقوم بحماية نواة النظام من الإختراق .
توفر مثلا نسخة الويندوز 64 بت الخاصة بالمخدمات Windows Server الخصائص الأمنية المحسنة التالية :

حماية من إغراق المخزن المؤقت  من المعطيات Buffer overflow protection
يمكن أن يغرق المخزن المؤقت Buffer بالمعطيات في المعالج أو مايعرف بظاهرة overflow عندما يتملى المخزن بكم كبير جدا من المعطيات مما يقدر على تحملها .
Data execution protection DEP
تدعم معالجات إنتل و AMD تقنية data execution prevention (DEP).  بحيث يقوم مخدم الويندوز باستعمال DEPللحماية من تنفيذ أي كود خبيث "فيروس مثلا " في الذاكرة , حقيقة حتى لو لم تدعم المعالجات هذه التقنية فيوجد تقنيات عديدة موجودة في نظام ويندوز الخاص بالمخدمات .
Patch Guard
تمنع هذه التقنية أي برنامج غير منتج من قبل مايكروسوفت من تنفيذ أي تعديل patch في نواة النظام Kernel فمثلا ستمنع هذه التقنية برامج القيادة من التوسع أو استبدال خدمات نواة نظام التشغيل بخدماتها . كما يتم منع تطبيقات الطرف الثالث Third party Application من حجر أي شيء في الستاك الخاص بنواة النظام أو التعديل على اي جزء من نواة النظام .

تخفيف الكلفة المالية :

كل الفوائد السابقة تتيح القيام بالمزيد بالقليل المتوفر . فنظام يدعم بيئة 64 بت التحكم بمعطيات أكثر , تخديم مستخدمين أكثر , عمل برامج أكثر بينما يتم استخدام موارد هاردوير أقل . وعندما يتم تقليل استعمال الهاردوير ستنخفض الكلفة

-RamDisk :
وهي تقنية تقوم على استثمار كم الذاكرة الكبير بهدف تسريع تشغيل التطبيقات بشكل سريع للغاية وتتطلب مثل هكذا تقنية استعمال نظام تشغيل ومعالج 64 بشكل قطعي .

- زيادة كفاءة بالأداء :
سيجد مستخدموا الأنظمة التي تدعم ال 64 بت استعمال أكثر كفاءة للرام بسبب طبيعة عناوين ال 64 بت في السجلات كما أن آلية تخزين في الذاكرة ستكون فعالة أكثر وسيتم تقليل من المساحات المهدورة في الرام . إن معظم البرامج التي تعمل على نظام 64 ستعمل بشكل أفضل من ذي قبل .

بعض المساوىء :
- عدم إيجاد برامج قيادة للاجهزة القديمة :
ستفضل شركات تصنيع الهاردوير دعم برامج قيادة 64 بت للمنتجات الجديدة كي تشجع المستخدمين على شراءها عوضاً عن دعم المنتجات القديمة .
- قد لا تدعم اللوحة الأم ذواكر أكثر من 4GB "
على الرغم من ندرة وجود هكذا لوحات هذه الأيام إلا أنه موجودة بحيث تدعم بعض لوحات الأم معالجات 64 بت في حين لاتستطيع تقديم دعم للذواكر اكتر من 4 غيغا .
- البرامج القديمة لن تعمل بشكل أمثل :
بعض البرامج التي لم تقم بإصدار نسخ 64 بت قد لاتعمل بشكل صحيح فمثلا نسخة الويندوز 7 و8 ال64 بت لن تدعم عمل أي تطبيق 16 بت بدون برامج محاكاة طرف ثالث وسيطة virtualize .
كما ان التطبيقات ال64 بت لاتعني بأن plugins و extensions قد تدعم 64 بت أيضا وهي مشكلة يعاني منها Photoshop وFirefox بشكل كبير.
- ذاكرة إفتراضية أكبر :
عادة تتطلب مخدمات 64 بت ذاكرة افتراضية أكبر من مخدمات الـ 32 بت . بحيث تقوم مخدمات ال 64 بت بحجز قطع من مساحات الذاكرة بناء على عدد المعالجات المتوفرة فمثلا مخدم يملك 4 معالجات يجب ان يملك 5GB على الأقل من الذاكرة الإفتراضية بينما معالج يملك 8 معالجات يجب أن يملك ذاكرة 6GB من الذاكرة الإفتراضية .
إن قدرة تطبيقات ال 64 بت على الوصول لمساحة أكبر من الذاكرة الفيزيائية أو الذاكرة الإفتراضية يعني جدول عنونة أكبر الأمر الذي يؤدي لزيادة حجم كمية المعطيات المتبادلة . لذا فإن المهام المتكررة والصغيرة بشكل كبير ستعمل أبطا في بيئة 32 بت .

 

هل ستعمل تطبيقات 32 بت ضمن بيئة 64 بت ؟

الغالبية العظمى من تطبيقات ال32 بت ستعمل في بيئة 64 بت بدون أي مشاكل فمثلا الويندوز يملك طبقة تدعى WoW64 بحيث تقوم بنقل وضع المعالج من 64 بت إلى 32 بت بناء على التعليمة المراد تنفيذها الأمر الذي يجعل هذه التطبيقات تعمل بسلاسة .
ولكل قاعدة استثناء فإن برامج القيادة Driver الخاصة بتعريف الهاردوير والبرامج المكتوبة على مستوى منخفض LowLevelكمضادات الفيروسات وبعض برامج التعامل مع الملتميديا Mediaplayers لن تعمل بشكل جيد في بيئة 64 بت .
ويمكن تلخيص القاعدة كالتالي :
أي نظام تشغيل 64 بت سيعمل فقط على معالج 64 بت
أي برنامج موجه لمنصة 64 بتسيعمل فقط على معالج 64 بت ونظام تشغيل 64 بت .
أي نظام تشغيل 32 بت سيعمل على أي معالج سواء كان 64 أو 32 بت
أي برنامج 32بت سيعمل على 64 أو 32 بت .

يدل الرمز x86 إلى كل من تطبيقات 32 و 16 بت .
شكر خاص لصديقنا Faisal AL Otari لمساعدته القيمة في إعداد المقالة .

19‏/4‏/2013

Android 4.0 in VirtualBox تشغيل نظام اندرويد على الكمبيوتر

Android 4.0 in VirtualBox

This information is a little hard to find on the Internet. This is how to install Android 4.0 (Ice Cream Sandwich) in VirtualBox, in a "do it yourself" way (installing from an ISO image). There are some people who have made pre-installed VirtualBox images, but one problem you may run into going that route is that the Android serial number will match everybody else who's using the same image as you, since Android generates this number on its first boot.

Getting an Android ISO

The folks at Android-x86 have been making x86 builds of the Android OS for quite a while now, and none of this would be possible without them. They have ISO images for various versions of Android available, but most of them don't work very well in VirtualBox. For example, their "eeepc" image for Android 4.0 has issues with the audio drivers and the network (it has no Ethernet support built in, etc.) So this means using one of the Android-x86 images from there won't get you too far because audio and networking won't work. Fortunately, somebody has put together an ISO image that's been custom tailored to VirtualBox. I don't remember where I found this ISO image; if it's yours, leave me a comment and I'll edit this post. ;) I found the ISO here: android-x86 VirtualBox/VMWare support (thanks @jakimfett!)
I have a copy of this ISO hosted here: android-x86-vm-20120130.iso (244MB). This ISO works much better.

Create a Virtual Machine

In VirtualBox, create a new machine for Android.
  • Machine Name: "Android ICS" (you can name it anything you want)
  • Machine Type: "Linux 2.6"
  • Memory: I gave my VM 1024MB of memory.
  • Hard Disk: I created a new 16GB VDI image that dynamically expands.
All the default settings worked fine for me. Here's what the defaults were on my system:
  • Networking:
    • Type: NAT
    • Adaptor: "Intel Pro/1000 MT Desktop (82540EM)"
  • Audio: Intel AC'97
  • Storage Layout:
    • IDE Controller:
      • CD Device
    • SATA Controller:
      • Hard Disk
Update: In the comments, @Ni mentions this:
Make sure you add the SATA Controller if it does not appear, when you setup the virtual box and then add the ISO image and virtual disk image to this. If you try and add the ISO image and virtual disk image to the IDE Controller this will not work at. This information maybe useful to someone making this mistake.
It worked for me as listed above (IDE CD drive, SATA hard disk), but this is something to keep in mind if you have any issues booting the CD or installing it to disk.

Installation

Make sure the VM boots from the ISO image.
  1. On the boot screen, select "Installation - Install Android-x86 to harddisk"
  2. Choose "Create/Modify Partitions". This takes you into cfdisk.
    1. Choose "[New]"
    2. Choose "[Primary]"
    3. Press enter to accept the default partition size (mine was 17174.38)
    4. Choose "[Bootable]"
    5. Choose "[Write]"
    6. Type "yes" to confirm writing.
    7. Choose "[Quit]"
  3. Choose to install on the sda1 device (Linux VBOX HARDDISK)
  4. Choose to format the drive "ext3"
  5. Pick "Yes" to confirm formatting.
  6. Pick "Yes" when it asks to install the GRUB bootloader.
  7. Pick "Yes" when it asks to mount /system as read-write (this will be important later to install the Google apps).
  8. Create a fake SD card when it prompts. I made mine 2047MB (the maximum allowed).
  9. Choose "<Reboot>"
Make sure you detach the ISO image from the virtual machine so that it will boot into the installed OS. If you see the "Installation" option again, it means you're booting from the ISO still!

Tips for Running Android

You'll want to disable mouse integration to be able to interact with the GUI at all. This can be done from choosing the "Machine" menu in the VM window and clicking "Disable Mouse Integration" -- or pressing HostKey+I. The Escape key on your keyboard corresponds to the Back key in Android. The context menu key on your keyboard corresponds to the Menu button in Android (the context menu key is usually next to the right Windows key).
To power off the VM, press HostKey+H. This will cause Android to pop up the shutdown dialog that you'd expect on a real phone. You can also use the "Machine->Send Shutdown Signal" to do the same.

Install the Google Apps

You may notice that this Android VM doesn't include the Android Market, GMail, or Google Maps. These are some of the Google Apps and due to some licensing restrictions Android-x86 doesn't include them "out of the box". On a real Android device that's been rooted and flashed with a custom ROM, you'd install the Google apps by flashing them in recovery mode. But you can't get into recovery mode on VirtualBox. Thus, the method for installing the Google Apps is kinda sketchy, but it works (and if you know of a better way, feel free to tell me).
You'll need a file with a name like "gapps-ics-20120304-signed.zip". These are the Google apps (the date part might be different). You can Google them, but I have a copy of them here to download too.
You don't really need the entire Google Apps file, actually. Just the "system" folder inside the zip file. Create a new tar file of the "system" folder so that it will be easy to get it into your Android device. I have a prepared "system.tar.gz" for you if you just want to use mine.
The steps to install the Google Apps are as follows:
  1. Download system.tar.gz to your Android VM somehow. I used the Web Browser app and downloaded it there. You could probably also use the Email app, or if you're really Android savvy, push it with the Android Debugger.
    • If Android tells you that there is no SD card so it can't download the Google Apps, that's because you skipped that step while first installing your Android system. The very last step of the installer asks if you'd like to create a virtual SD card partition, and you should've had it do that. If you didn't, the only easy solution I know of is to reinstall the OS.
  2. Open the "Terminal Emulator" app in Android.
  3. Enter these commands (note: don't type the $ or # symbols at the beginning of these lines. These symbols indicate the prompt.)
    $ cd /sdcard/Download
    $ tar -xzvf system.tar.gz
    $ su
    # cd /sdcard/Download
    # cp -rf system/* /system/
    Pay special attention to the cp -rf command. Make sure the slashes and *'s are in the right places.
  4. Reboot the phone.
You should now see the Market app, GMail and the others in your app menu. Note: in my experience, the Market app will be somewhat unstable. When you start the app, it will Force Quit after 10 or 15 seconds. However, if you're fast enough you should be able to quickly search for a specific app you'd like and begin the download process before Market crashes, and the app will continue to download and install regardless.
I imagine that the unorthodox way of installing the Google Apps might be partly to blame for the Market being unstable. The other Google apps seem to work fine though.

Custom Screen Resolutions

This is a tip I discovered somewhere a while back for getting custom resolutions to work in your Android VM (for example, to mimic the screen dimensions of the Galaxy Nexus phone, or just to run the VM at a higher resolution like 1024x768). I've found that you can use just about any arbitrary resolution you want, but when the resolution isn't a standard 4:3 one (like 1024x768), the VM seems to get somewhat laggy. The general steps are as follows. Substitute 1024x768 with whatever resolution you want. You can add multiple video modes by changing "CustomVideoMode1" to be "CustomVideoMode2", etc.
  1. In your Terminal or Command Prompt window on the host system, run this command:
    VBoxManage setextradata "Android ICS" "CustomVideoMode1" "1024x768x32"
    Substitute "Android ICS" with the name of your VM (but keep the quotes).
  2. Start your Android VM, and when you see the bootloader screen:
    1. Press the "e" key to edit the boot arguments
    2. Press "e" again to edit the kernel boot line
    3. Add UVESA_MODE=1024x768 to the end of the boot arguments (make sure to hit Space first), and press Enter.
    4. Press "b" to boot.
There should theoretically be a way to edit the GRUB config file and add more boot options that have the custom resolutions already configured, but I'll leave that as an exercise for the reader. :)

No Warranty

Android is primarily an ARM architecture operating system and the x86 version isn't supported by Google. While a lot of apps will work in Android-x86, some may crash in weird ways. If you're an Android developer though, this can be pretty useful because Android-x86 will run a lot faster on your hardware than the standard emulator from the SDK does, so you can test your apps much more rapidly (the Android-x86 site has some documentation on how to connect ADB to your virtual machine). Your mileage may vary.

Updates

To answer common questions that come up in the comments...
  • Adobe Flash, Netflix, others... -- these apps won't work in Android-x86, because they aren't pure Java. They include C code that's compiled for the ARM processor found in most Android devices. They won't run on x86 processors.
  • Apps that rotate your screen... -- apps that force the orientation into portrait mode (thus turning your screen sideways) can be dealt with by changing your VM's screen resolution to be taller than it is wide (i.e. 800x1280). The app will recognize the portrait resolution and not rotate. However, your VM may be laggy when it's not in a standard 4:3 resolution. Alternatively, find an app that forces/locks your orientation to one direction or another -- however, some apps misbehave when forced to use the wrong resolution and may not be usable.
  • Don't expect a lot of apps to work -- for various reasons, apps that work on real Android devices may not function properly on Android-x86.
  • Text messaging and phone calls won't work -- Your virtual machine is not a phone. It doesn't have a cellular connection to AT&T or Verizon or anybody. The standard texting apps like Messaging and Handcent SMS are useless on an Android VM (this also goes for most Android tablets that don't have cell connections). If you want to text from your VM, you might try using the Tablet Talk app, connect it with your actual cell phone, and text through that app. If you want to make phone calls, you might have luck with a Voice over IP app -- however, I can't guarantee your microphone and such will work with the VM, as I haven't tested it.
I'll update the list above as more common questions come in from the comments below.

تحميل برنامج فيرتوال بوكس من هنا
تحميل نسخة الايزو لنظام اندرويد 4 من هنا
المصدر من هنا
رابط نسخ متعددة للاندرويد من هنا

 لمزيد من المعلومات يمكنكم مراسلتنا بريدياً على الايميل التالي:
kinansyria@mail.com

25‏/3‏/2013

adobe flash player 11.7

إصدار جديد من مشغل الفلاش Adobe Flash Player لجميع المتصفحات ومتصفح الانترنت اكسبلورر بالاصدار 11.7

يمكنكم التحميل مباشرة من الموقع الرسمي بإحدى الروابط التالية:

الرابط الاول: لمتصفح انترنت اكسبلورر من هنا

الرابط الثاني: لجميع المتصفحات من هنا


وللمستخدمين من سوريا وبسبب حجب شركة ادوبي تحميلاتها عن سوريا يمكنكم تحميل برنامج تغيير البروكسي hostpot من الرابط التالي:

Hotspot Shield

30‏/1‏/2013

Super Simple Wall v7.0 cs 1.6


Super Simple Wall v7.0


Filesize 137KB
Status Detected
Date added Nov 10, 2010

source page
Download


Alternative mirrors
Mirror 1 (RapidShare)
Mirror 0 (Tobys)  




Password
www.tobys.dk

Features:
Perfect Depthrange Style Walls
NoFlash
NoSmoke
NoSky
NoAds (Banners Above Scoreboard & Banners On Walls)
Lambert
Crosshair
F8 (Toggle Crosshair On/Off)
F9 (Toggle Walls DR/ASUS/Off)
F10 (Toggle NoSky On/Off)
F11 (Toggle NoFlash On/Off)
F12 (Toggle Lambert On/Off)