Lanos - توضيح سلسلة نقاط المعرفة من Linux0.12
这个工程的目标是梳理《Linux源码剖析》的知识点并从0.12版本的源码中抠出部分代码构建一个
能用现代linux发行版方便编译的迷你系统,从而验证各个知识点
Bilibili الفيديو التعليمي
الموارد المرجعية
- "تحليل رمز مصدر Linux" أحدث إصدار إلكتروني
- رمز المصدر Linux 0.1x
- موقع Oldlinux الرسمي
- Orange: تنفيذ نظام تشغيل
شكرا لك الدكتور تشاو جيونج ، المعلم يو يوان ، السيد هيدشي كاواهيرو ، وأعلى الاحترام!
ميزات هذا البرنامج التعليمي
- الكثير من الإشارات إلى أفكار تصميم Linux0.12 لإنشاء عروض تجريبية ، والتي ستساعدك على قراءة رمز مصدر Linux لاحقًا
- إعادة تنفيذ أكبر قدر ممكن من التعليمات البرمجية التي تم تنفيذها في Linux مع C لتحسين قابلية القراءة وتقليل تكاليف التعلم
- استخدم Docker للتجميع ، مما يجعل بيئة التجميع سهلة للغاية للبناء
طريقة تجميع سريعة فائقة (الاعتماد على Docker & Networking)
قم بتنفيذ الأمر التالي لسحب الرمز وتجميعه (سيكون أبطأ تنفيذ Make_os.sh لأول مرة لأنك تريد سحب صورة Docker المترجمة)
git clone https://github.com/freelw/LanOS.git
cd LanOS
./make_os.sh
تأثير التنفيذ
dantadeMacBook-Pro:yard danta$ git clone https://github.com/freelw/LanOS.git
Cloning into 'LanOS'...
remote: Enumerating objects: 517, done.
remote: Counting objects: 100% (517/517), done.
remote: Compressing objects: 100% (322/322), done.
remote: Total 1316 (delta 304), reused 379 (delta 181), pack-reused 799
Receiving objects: 100% (1316/1316), 2.78 MiB | 42.00 KiB/s, done.
Resolving deltas: 100% (788/788), done.
dantadeMacBook-Pro:yard danta$ cd LanOS
dantadeMacBook-Pro:LanOS danta$ ./make_os.sh
builing lan os...
cleaning temp files...
file [a.vfd] is our os image with a simple ramdisk filesystem.
كتالوج نقاط المعرفة
- كيفية تجميع وتشغيل العرض التوضيحي
- توضيح سلسلة نقطة المعرفة Linux 0.12 لجعل التجميع إلى C لم يعد بعيدًا
- توضيح خط عنوان A20 لسلسلة نقطة المعرفة Linux0.12
- توضيح التهيئة ومقاطعة الساعة 8259a في سلسلة نقطة المعرفة Linux0.12
- 8259A وصف مفصل
- فرز المعلومات ذات الصلة عبر الإنترنت
الدم والدموع
- القفز إلى وضع المستخدم
- شوكة تصحيح أولي
- شوكة+نسخة على الكتابة
- حول المتغيرات العالمية
تعليمات أخرى
- كيفية تجميع ملف ثنائي مخصص
تودو
تطبيق print_str تم 20200224 PRINT_NUM تنفيذ تم 20200224 تنفيذ LAN_FS تم 20200224 تنفيذ exec تم 20200224 التنفيذ الخروج تم 20200304
عرض التأثير النهائي
هناك قذائف وأنظمة ملفات بسيطة يمكنها تنفيذ برامج LS
دعم مكالمات نظام exec ، يمكن تنفيذ التطبيقات
أثناء تشغيل برنامج قابل للتنفيذ ، قم بتنفيذ برنامج آخر ، مما يشير إلى أن المهام المتعددة مدعومة
تنفيذ برنامج الحلقة
انظر هنا للحصول على التفاصيل
الرابط التجريبي النهائي
انظر هنا للحصول على التفاصيل
الترتيب التجريبي التاريخي
- ASM_INT_80
- ASM_CALL_C
- LDS_Test
- protect_mode_demo
- protect_mode_cpp_demo
- a20_not_open
- A20_OPEN
- مم
- user_mode_demo
- fork_demo
- cp_on_write
- print_str_demo
- FS_DEMO
- exec_demo
- Shell_demo
- ls_demo
- exit_demo
- common_header_demo
B وثيقة موقع الويب
- 01 الأهداف والاستعدادات
- 02 مقارنة بين اتجاهين
- 03 التحكم في الملفات الثنائية
- 04 حماية الوضع السريع
- 05 خط عنوان A20
- 06 8259A
- 07 مم