<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OS-P01NTs on P01NT</title><link>https://outofsrvc.github.io/ar/os/</link><description>Recent content in OS-P01NTs on P01NT</description><generator>Hugo</generator><language>ar</language><lastBuildDate>Wed, 26 Aug 2026 01:30:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/ar/os/index.xml" rel="self" type="application/rss+xml"/><item><title>البنية الأساسية لأنظمة التشغيل</title><link>https://outofsrvc.github.io/ar/os/os-0x0/</link><pubDate>Tue, 25 Aug 2026 22:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x0/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>السلام عليكم ورحمة الله وبركاته. أريد اليوم أن أحدثكم عن البنية الهيكلية لأنظمة التشغيل بشكل عام، وسأحاول تغطية النقاط التالية:&lt;/p>
&lt;ol>
&lt;li>البنية المعمارية الخاصة بـ Von Neumann.&lt;/li>
&lt;li>المهام الأساسية لنظام التشغيل (OS Central Tasks).&lt;/li>
&lt;/ol>
&lt;p>لنبدأ على بركة الله.&lt;/p>
&lt;h2 id="ما-هو-نظام-التشغيل-what-is-an-operating-system">ما هو نظام التشغيل؟ (What Is an Operating System?)&lt;/h2>
&lt;p>&lt;img alt="نظام التشغيل بين المستخدم والعتاد" decoding="async" loading="lazy" src="https://outofsrvc.github.io/assets/img/os/os-0x0/intro-os.png">&lt;/p>
&lt;p>كل شخص منا في هذا العصر الغني بالحداثة والتقنية قد تعامل مع نظام تشغيل بشكل أو بآخر، وكل منا يسمع المصطلح «أنظمة التشغيل (Operating Systems) أو OS». ولكن!&lt;/p></description></item><item><title>مدخل إلى أنظمة التشغيل</title><link>https://outofsrvc.github.io/ar/os/os-0x1/</link><pubDate>Tue, 25 Aug 2026 23:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x1/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>السلام عليكم ورحمة الله تعالى وبركاته.&lt;/p>
&lt;p>ستغطي هذه السلسلة المواضيع التالية:&lt;/p>
&lt;ol>
&lt;li>إدارة العمليات (Processes).&lt;/li>
&lt;li>إدارة الذاكرة (Memory Management).&lt;/li>
&lt;li>إدارة الملفات (File System).&lt;/li>
&lt;li>الجدولة (Scheduling).&lt;/li>
&lt;li>المقاطعات (Interrupts).&lt;/li>
&lt;/ol>
&lt;p>وكما اعتدنا، لن تكون السلسلة مملة ونظرية فحسب؛ بل ستجري فيها أمثلة عملية بلغة C ورسومات لتوضيح الفهم أكثر. أحببت أن أذكر ما ستأخذه من هذه السلسلة حتى يعرف القارئ ما في انتظاره. وأسأل الله التوفيق والسداد.&lt;/p>
&lt;p>ويُفضل قبل البدء بهذه السلسلة الاطلاع على &lt;a href="https://outofsrvc.github.io/ar/arch/">سلسلة معمارية وتنظيم الحاسوب&lt;/a> في المدونة.&lt;/p></description></item><item><title>المقاطعات</title><link>https://outofsrvc.github.io/ar/os/os-0x2/</link><pubDate>Tue, 25 Aug 2026 23:30:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x2/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>بعد التعرف على بنية أنظمة التشغيل، سيكون هذا المقال بإذن الله مرجعاً لك لفهم المقاطعات في أنظمة التشغيل.&lt;/p>
&lt;p>منهجيتنا في هذه السلسلة ستكون ربط مثال بالمصطلحات والمفاهيم التي نأخذها، وستجد إن شاء الله صوراً توضيحية وأكواداً لتعميق الفهم أكثر.&lt;/p>
&lt;h2 id="تنظيم-نظام-الحاسوب-computer-system-organization">تنظيم نظام الحاسوب (Computer-System Organization)&lt;/h2>
&lt;p>قبل أن ندخل في لب موضوعنا يجب أن نفهم تنظيم نظام الحاسوب — والسبب أن المفاهيم الرئيسية لا تصلح دون أساسيات يبنى عليها الفهم؛ فلا يُباع السمك لمن يقف على شاطئ البحر.&lt;/p></description></item><item><title>العمليات والخيوط</title><link>https://outofsrvc.github.io/ar/os/os-0x3/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x3/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>هذا المقال خاص بالعمليات والخيوط (Process &amp;amp; Threads) الموجودتين في جميع أنظمة التشغيل.&lt;/p>
&lt;h2 id="العمليات-processes">العمليات (Processes)&lt;/h2>
&lt;p>باختصار، العملية (Process) هي برنامج قيد التنفيذ (A Program in Execution).&lt;/p>
&lt;p>للعملية بنية داخل النواة Kernel اسمها KProcess أو كتلة التحكم بالعملية (Process Control Block – PCB)، وتستخدمها النواة للتحكم بعمليات هذه البروسيس.&lt;/p>
&lt;p>وتحتوي الـ PCB على حقول كثيرة، أهمها:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Process State:&lt;/strong> حالة العملية.&lt;/li>
&lt;li>&lt;strong>Process Number:&lt;/strong> رقم العملية.&lt;/li>
&lt;li>&lt;strong>Program Counter:&lt;/strong> عداد البرنامج.&lt;/li>
&lt;li>&lt;strong>Registers:&lt;/strong> السجلات الخاصة بالعملية.&lt;/li>
&lt;/ol>
&lt;p>&lt;img alt="بنية PCB وحقولها" decoding="async" loading="lazy" src="https://outofsrvc.github.io/assets/img/os/os-0x3/pcb-fields.png">
&lt;em>شكل (1): بنية كتلة التحكم بالعملية&lt;/em>&lt;/p></description></item><item><title>جدولة العمليات</title><link>https://outofsrvc.github.io/ar/os/os-0x4/</link><pubDate>Wed, 26 Aug 2026 00:30:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x4/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>في هذا المقال سنتحدث عن جدولة العمليات بشكل عام.&lt;/p>
&lt;h2 id="أنواع-العمليات">أنواع العمليات&lt;/h2>
&lt;p>إذا كانت لدينا أكثر من عملية موجودة في الذاكرة، فكيف ينفذ نظام التشغيل هذه العمليات؟&lt;/p>
&lt;p>في البداية لا بد أن نعرف أن هناك أنواعاً للعمليات:&lt;/p>
&lt;p>&lt;strong>1. عمليات مرتبطة بالإدخال/الإخراج (I/O-Bound Processes):&lt;/strong>
عمليات تتطلب الإدخال والإخراج بشكل متكرر (مثل قراءة الملفات)، فتقضي وقتاً طويلاً في انتظار اكتمال عمليات الإدخال/الإخراج.&lt;/p>
&lt;p>&lt;strong>2. عمليات مرتبطة بالمعالج (CPU-Bound Processes):&lt;/strong>
عمليات تستهلك وقتاً مرتفعاً من المعالج وتقل فيها عمليات الإدخال/الإخراج (مثل العمليات الحسابية المعقدة).&lt;/p></description></item><item><title>إدارة الذاكرة</title><link>https://outofsrvc.github.io/ar/os/os-0x5/</link><pubDate>Wed, 26 Aug 2026 00:45:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x5/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>بعد أن تحدثنا عن الجدولة في &lt;a href="../os-0x4/">الدرس السابق&lt;/a>، سننتقل اليوم إلى أحد أعمدة أنظمة التشغيل: إدارة الذاكرة الرئيسية. وقد سبق أن لمسنا جانباً عملياً منها في درس &lt;a href="https://outofsrvc.github.io/ar/cworkshop/virtual-memory-stack-vs-heap/">الذاكرة الافتراضية&lt;/a> ضمن ورشة لغة C؛ وهذا الدرس هو الأساس النظري الذي يقف عليه ذلك كله.&lt;/p>
&lt;h2 id="الخلفية-background">الخلفية (Background)&lt;/h2>
&lt;p>نظام التشغيل الحديث يجب أن يتيح لأعداد كبيرة من العمليات أن تكون في الذاكرة في وقت واحد للتنفيذ المتزامن، وهذا ما يجعل مهمة إدارة الذاكرة معقدة. وتوجد مجموعة واسعة من خوارزميات إدارة الذاكرة، ومعظمها يتطلب أشكالاً خاصة من دعم العتاد.&lt;/p></description></item><item><title>واجهة نظام الملفات</title><link>https://outofsrvc.github.io/ar/os/os-0x6/</link><pubDate>Wed, 26 Aug 2026 01:30:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/os/os-0x6/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>بعد أن أنهينا إدارة الذاكرة في &lt;a href="../os-0x5/">الدرس السابق&lt;/a>، نختم بهذا الدرس السلسلة: واجهة نظام الملفات (File-System Interface).&lt;/p>
&lt;p>تنفيذ أنظمة الملفات جانب رئيسي من معمارية أنظمة التشغيل؛ فعلى المصممين أن يقرروا كيف يرسمون معلومات نظام الملفات على أجهزة التخزين الفيزيائية، وأي طرائق يوفرون للوصول إليها والتلاعب بها. وأنظمة الملفات كثيراً ما تكون عنق زجاجة في الأداء، فتحدي كفاءتها ليس هيناً.&lt;/p>
&lt;p>ويتكون نظام الملفات من جزأين: مجموعة من الملفات، وبنية أدلة (Directory Structure) هدفها توفير المعلومات عن الملفات وتنظيمها.&lt;/p></description></item></channel></rss>