LANOS - ชี้แจงชุดความรู้ชุดของ Linux0.12
这个工程的目标是梳理《Linux源码剖析》的知识点并从0.12版本的源码中抠出部分代码构建一个
能用现代linux发行版方便编译的迷你系统,从而验证各个知识点
การสอนวิดีโอ Bilibili
ทรัพยากรอ้างอิง
- "Linux Source Code Analysis" รุ่นอิเล็กทรอนิกส์ล่าสุด
- ซอร์สโค้ด Linux 0.1x
- เว็บไซต์อย่างเป็นทางการของ Oldlinux
- Orange's: การใช้ระบบปฏิบัติการ
ขอบคุณดร. Zhao Jiong อาจารย์ Yu Yuan, Mr. Hideshi Kawahiro และความเคารพสูงสุด!
คุณสมบัติของบทช่วยสอนนี้
- มีการอ้างอิงถึงแนวคิดการออกแบบของ Linux0.12 เพื่อสร้างการสาธิตซึ่งจะช่วยให้คุณอ่านซอร์สโค้ด Linux ในภายหลัง
- นำไปใช้ใหม่มากที่สุดเท่าที่จะเป็นไปได้
- ใช้นักเทียบท่าเพื่อรวบรวมทำให้สภาพแวดล้อมการรวบรวมง่ายต่อการสร้าง
วิธีการรวบรวมที่รวดเร็วเป็นพิเศษ (อาศัย Docker & Networking)
ดำเนินการคำสั่งต่อไปนี้เพื่อดึงรหัสและคอมไพล์ (จะช้าลงในการเรียกใช้ Make_os.sh เป็นครั้งแรกเพราะคุณต้องการดึงอิมเมจที่รวบรวมจากนักเทียบท่า)
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 คำอธิบายโดยละเอียดหลักการ
- การเรียงลำดับข้อมูลที่เกี่ยวข้องออนไลน์
เลือดและน้ำตา
- ข้ามไปที่โหมดผู้ใช้
- ส้อมดีบั๊กเบื้องต้น
- Fork+Copy on Write
- เกี่ยวกับตัวแปรทั่วโลก
คำแนะนำอื่น ๆ
- วิธีรวบรวมไฟล์ไบนารีที่กำหนดเอง
สิ่งที่ต้องทำ
การใช้งาน 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 มม.