10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)

- الإعلانات -

نطرح اليوم في مقالنا التالي سلسة جديدة من المعلومات والمقتطفات التقنية المفيدة لمتابعي وزوار موقع قاعة التقنية ، سوف نتطرق الي بعض المعلومات التقنية التي لم تعرفها او تسمع عنها من قبل ، بإذن الله سوف نقدم لكم هذا النوع من المقالات لاحقاً اذا لاقي استحسان زوارنا .

وسط المقالة

1-     خطأ طرح الكسور

10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)
10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)

الأرقام العشرية كغيرها من الأرقام تخزن في الحاسوب بنظام الترقيم الثنائي، ولكن الأرقام العشرية لا يمكن تخزينها بشكل دقيق مئة بالمئة، عندما تكتب نتيجة  كرقم عشري فالقيمة الصحيحة هي عدد لانهائي من رقم 3 بعد العلامة العشرية ولذلك البعض يكتب 0.33° أو 0.333° لإستحالة كتابة قيمة لانهائية! وبالمثل لا يمكن للحاسوب تخزين قيمة لا نهائية لذلك تحفظ قيمة تقريبية للرقم بدلاً من ذلك.

فإن كنت حديث العهد بالبرمجة وفوجئت بأن نتيجة التحقق من صحة هذا الشرط 0.1 + 0.2 == 0.3 أو ما يكافئه هي false فإعلم أن الخطأ ليس منك ولا من لغة البرمجة التي تستخدمها بل هي نتيجة لأساس تعامل الحاسوب مع الـ floating numbers وستجد العديد من الدوال البرمجية التي تعمل على إعادة طباعة الناتج النهائي الذي كنت تتوقعه. للمزيد

2- إستخدام Bash على ويندوز

Bash هو شل ولغة تنفيذية مجانة تعمل على أنظمة يونكس كبديل لـ bourne shell أطلق للمرة الأولى في 1989 وإستخدم في معظم توزيعات لينكس والإصدارات الأقدم من macOS الخاص بشركة أبل.

ومنذ إصدار ويندوز 10 (64 بت) أضافت ميكروسوفت ميزة أنظمة لينكس الفرعية والتي يمكنك تفعيلها من مميزات النظام وبعد إعادة التشغيل وتثبيت “Ubuntu” من متجر ميكروسوفت ستحصل على نافذة أوامر تدعم Bash وتعمل في بيئة مخصصة على نظامك (سيتوجب عليك إستخدام بعض الطرق الغير مباشرة لتصل لملفات الويندوز من نافذة bash والعكس)، أيضاً بإستخدام بروتوكول العرض x يمكنك إستخدام تطبيقات لينكس الرسومية على ويندوز بعد تثبيتها من خلال bash .

3- No Script

10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)
10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)

إن كنت تعتقد أن إلغاء تفعيل جافاسكربت في متصفحك يحقق الحماية المطلقة على الويب فأنت مخطئ.

الكثير من الآليات الهجومية لا تعتمد بالأساس على جافاسكربت أو يمكن للمهاجم إستخدام بدائل لإتمامها مثل مسجلات ضغطات لوحة المفاتيح التي تعمل فقط عبر css، نعم لقد قرأتها بشكل صحيح يستطيع المهاجم حقن أكواد  css تعمل على إستدعاء صور ما لصفحة الويب فقط إن تحقق شرط أن الحرف الأول من حقل إدخال هو “a” مثلاً وبإضافة أمر إستدعاء لصور مختلفة مختلفة لباقي الأحرف ولباقي الخانات من خادم يملكه المهاجم فسيتمكن في النهاية من معرفة مدخلات المستخدم بمراجعة الطلبات التي وردت للخادم بغض النظر عن التشفير المستخدم في الإتصال وبغض النظر عن تعطيل جافاسكربت.

بالتأكيد تعطيل جافاسكربت يجعل مهمة المهاجم أكثر تعقيداً في سيناريوهات أخرى ولكن إعلم أنه لا يحميك بشكل كامل، كما أن جافا سكربت ضرورية لتصفح أغلب المواقع.

4 – جوجل ngram

إحدي خدمات جوجل الرائعة التي لا يعرفها الكثيرون هي Google Ngram وهي خدمة للبحث عن عدد مرات تكرار كلمة أو جملة معينة في الكتب في الحقبة الزمنية التي تحددها.

وهي خدمة بحث قابلة للتخصيص والبحث المرن مثل محرك جوجل فيمكنك مثلاً كتابة university of * للحصول على أشهر كلمة مستخدمة محل النجمة كما تظهر أنها كاليفورنيا في الصورة السابقة وعدد مرات تكرار الكلمة. المزيد من آليات البحث المخصصة.

5- Watchdog timer

10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)
10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)

مؤقت watchdog يستخدم في كثر من أنظمة الحواسيب لإكتشاف وإصلاح الخلل آلياً، حيث يقوم النظام بشكل دوري بإعادة ضبط المؤقت قبل أن ينتهي العد التنازلي، فإن أصيب النظام بخلل لسبب ما فلن يتم تصفيير المؤقت وبإنتهاءه يتم إستدعاء أمر ما تم إعداده للعمل في حالة خطأ النظام مثل “إعادة التشغيل”.

عادة يستخدم مؤقت watchdog في الأنظمة المضمنة التي لا يستطيع العامل البشري ملاحظة وجود خلل بها أو التعامل معها بعد تحديد الخلل، ويستخدم أيضاً في أنظمة sandbox لوضع حد أقصى لوقت إستخدام المعالج لمنع بعض هجمات حجب الخدمة. المزيد.

6- Waterhole attack

هجوم waterhole أو “ينبوع الماء” هو التحكم بإحدى أو بعض الخدمات الموثوقة للهدف وإستغلالها في إصابة نظامة، ويستخدم المهاجمون هذا الأسلوب مع الأهداف قليلة الثقة والتفاعل مع الجهات المجهولة، وتم إستلهام هذا الإسم من الطبيعة حيث تتجه الحيوانات للشرب من مصادر الماء التي تثق بها وهناك تتصيد لها الحيوانات الأخرى المفترسة.

7-  قابلية إستكمال التحميل

10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)
10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)

لا يوجد ما يعرف ببرنامج تحميل يدعم الإستكمال، الذي يدعم أو لا يدعم إستكمال التحميل بعد إيقافه أو إنقطاع الإتصال عرضاً هو الخادم الذي تقوم بالتحميل منه.

عند التحميل عبر الويب بإستخدام بروتوكول http فيجب أن يدعم الخادم هيدر bytes-range ويمكن معرفة ذلك بملاحظة ردود الخادم إذا كانت تحتوي على هيدر Accept-Ranges: bytes فالخادم يدعم الإستكمال ويمكن لعميل التحميل إستغلال تلك الخاصية.

بالمثل إن كنت تستخدم ftp في تحميل (أو رفع) الملفات فيجب أن يدعم الخادم أمر REST لبدء الإتصال من جديد من موضع معين.

إذا كان الخادم لا يدعم إستكمال التحميل فلا سبيل لذلك أياً كان عميل التحميل المستخدم.

8- الحجم والحجم على القرص

إذا نظرت في خصائص ملف على نظام ويندوز ستجد أن له حجماً وحجم آخر على القرص، والفرق بينهم أن الحجم المجرد هو الحجم الحقيقي للملف أي أنك عند تحميله من الإنترنت مثلاً فهذا هو القدر الذي سينقصه الملف من باقة الإنترنت لديك وهو الذي يحدد الزمن الذي يستغرقه نقل الملف، أما الحجم على القرص فهو المساحة التي يشغلها ذلك الملف فعلياً على وحدات التخزين.

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

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

9- إلغاء تجزئة القرص الصلب (الهارد ديسك)

10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)
10 معلومات تقنية مفيدة (مقتطفات تقنية الجزء الأول)

تستغرق أقراص التخزين الدوارة وقتاً أطول في قراءة البيانات عندما تكون مجزئة في أماكن مختلفة من القرص، بما أن الأقراص الدوارة تعتمد على قراءة أو كتابة البيانات بشكل متتابع فإنها تستغرق وقتاً أقصر في قراءة البيانات التي تم تخزينها جنباً إلى جنب مما تستغرقه في قراءة البيانات التي تم توزيعها في عناوين متباعدة على القرص.

لذلك تتيح أنظمة التشغيل مثل ويندوز إستخدام خيار إلغاء التجزئة والذي يعمل على إعادة تجميع أجزاء البيانات المتباعدة في عناوين متقاربة وعليه تلاحظ تحسين ملحوظ في سرعة الحاسوب.

ولكن إحذر من إستخدام خيار إلغاء التجزئة Defragmentation في الأقراص من نوع ssd فهي لا تعتمد على القراءة المتتابعة للبيانات فلا يؤثر على سرعتها تباعد عناوين الملف بل على العكس من ذلك عند إجراء عملية إلغاء تجزئة في هذا النوع من الأقراص سيؤدي ذلك لتقليل دورة حياة القرص فقرص ssd يشبه الفلاش ميموري في آلية عمله وكلاهما يبلى مع كثرة الكتابة عليه، لذلك ربما عليك تفقد خاصية إلغاء التجزئة في نظام ويندوز وتعطيلها لقرص ssd أو خفض معدلها.

لهذا السبب أيضاً تدعم العديد من الأقراص أمر TRIM والذي يحدد ما هي البيانات التي يمكن للنظام الكتابة عليها فعندما تقوم بحذف البيانات في الواقع ستظل مخزنة ولكن لن يتم عرضها لك ولن يتم محوها فعلياً إلا عند الكتابة عليها وذلك لحصر عملية الكتابة على القرص عند الحاجة فقط لتمديد العمر الإفتراضي ولكن إعلم أن الإصدارات الأقدم من أنظمة التشغيل لا تدعم خاصية TRIM/unmap وتفتقر لكثير من الإجراءات الهامة في التعامل مع الهاردوير.

10-  اللغات المفسرة والمجمعة

عندما يكتب المبرمج كود لأداء وظيفة معينة أيا كانت لغة البرمجة المستخدمة فهذا الكود المصدري للبرنامج يجب أن يتم تحويله إلى لغة الآلة لكي يصبح قابل للتشغيل على الحواسيب، وهناك ثلاث طرق لتحويل الكود المصدري للغة الآلة:

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

أما التفسير interpreting فيعمل عبر قراءة الكود المصدري كل مرة وتفسيرة للغة الآله وهنا لا نهتم حقاً بنوعية المعالج المستخدم سنرسل الكود المصدري للعميل والمفسر على حاسوبه سيهتم بتحويله بما يناسب بنية المعالج لديه، فمميزات هذه الطريقة إذا المرونة ودعم كافة الأنظمة ولكن يصبح الكود المصدري للبرنامج متاح للعامة! أمثلة للغات تعتمد على التفسير: js, php .

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

وهكذا اخواني قدمنا لكم في موضوعنا اليوم بعض المقتطفات والمعلومات التقنية المفيدة ،،،

التعليقات متوقفه

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More