XDU-OS-Course-Design
เนื่องจากผลกระทบของ COVID-19 จึงต้องดำเนินการระดับระบบปฏิบัติการที่บ้าน ตามการประชุมควรดำเนินการในห้องคอมพิวเตอร์เนื่องจากห้องคอมพิวเตอร์ได้รับการควบคุมโดยนักเรียนและควรมีความเสถียรค่อนข้างและห้องคอมพิวเตอร์มักจะสอดคล้องกับซอฟต์แวร์ที่ครูจัดหาให้
อย่างไรก็ตามมีคนเสร็จสิ้นการตั้งค่าหลักสูตรนี้ที่บ้านโดยใช้ VMware15 และ Ubuntu18.04 ที่เขาติดตั้งแล้วซึ่งไม่สามารถใช้งานได้อย่างจริงจังกับเวอร์ชันวิดีโอหลักสูตร เขาก้าวไปสู่ข้อผิดพลาดนับไม่ถ้วนและติดตั้งใหม่มากกว่าสิบครั้ง ตอนนี้ฉันใช้ประสบการณ์ที่เจ็บปวดเพื่อเติมเต็มหลุมสำหรับทุกคน
ในช่วงเวลาของข้อผิดพลาดในการดำเนินการเริ่มต้นวันอื่น ก่อนทำการทดลอง $ k $ โปรดทำการทดลอง $ i $ ( $ forall i, i leqslant k $ ) อ่านมัคคุเทศก์ทั้งหมด
ก่อนการทดลองและข้อควรระวัง!
มีการทดลองเล็ก ๆ สองสามครั้งก่อนการทดลองอย่างเป็นทางการ นี่คือข้อควรระวังบางประการ หากคุณไม่พบมันไม่ได้หมายความว่าคุณจะไม่พบมันในการทดลองครั้งต่อไป:
- หน่วยความจำ 2-4G (หากคอมพิวเตอร์เปิดอยู่บ่อยครั้งเคอร์เนลจะแนะนำให้มีหน้าจอสีดำเคอร์เนลกำลังบูตหน้าจอสีดำ), 4-6 คอร์, อย่างน้อย 35 กรัมสำหรับฮาร์ดดิสก์ (ผู้เชี่ยวชาญไม่สามารถ 35 กรัม), โหมดสะพานเครือข่าย;
- VMware ใช้เวอร์ชัน 14 และ 15 และ Ubuntu 18+ สามารถก้าวไปข้างหน้าได้อย่างต่อเนื่อง ไฟล์ด้านบนมีมิเรอร์ Ubuntu และ VMware สามารถดาวน์โหลดได้ด้วยตัวเอง
- การติดตั้งเครื่องมือ VMware มีแนวโน้มที่จะไม่ทำงานโปรดคลิกที่บทความก่อนหน้าเพื่อจัดการ
- เครื่องมือการลาก VMware อาจ ติดอยู่ โปรดรีสตาร์ทกระบวนการฆ่า ทำซ้ำ n ครั้งและคุณจะประสบความสำเร็จเพียงครั้งเดียว อย่าลืมเขียนภาพหน้าจอลงในรายงาน
- วิธีการถ่ายโอนไฟล์เมื่อเครื่องมือ VMware ติดอยู่บ่อยครั้ง? ลุงเหวินจะไปที่นั่น
- VMware ช้าใน "Inside the Wall" และโปรดช่วยตัวเอง
สถานที่นอกเหนือจากกฎหมาย ความเร็วในการดาวน์โหลดกำลังสัมผัสและเครื่องสามารถป้อนได้ สถานที่นอกเหนือจากกฎหมาย อ้างถึงบทความก่อนหน้า; - การกู้คืนของเครื่องเสมือนโดยไม่ได้ตั้งใจ: แถบเมนู -> ไฟล์ -> สแกนเครื่องเสมือน (สแกนในเส้นทางการติดตั้งของเครื่องเสมือนเดิมของคุณ);
- หากฮาร์ดดิสก์ไม่ใหญ่พอโปรดดูเครื่องเสมือน VMware จะขยายพื้นที่ดิสก์ของระบบ Ubuntu
ทำไมไม่ใช้เวอร์ชันโรงเรียน ?
- สภาพแวดล้อมคอมพิวเตอร์ของคุณ! = สภาพแวดล้อมคอมพิวเตอร์ของโรงเรียน
- ซอฟต์แวร์และเคอร์เนลที่จัดทำโดยโรงเรียนมีอายุมากและไม่มีการรับประกันปัญหาใด ๆ
- หากคุณใช้รุ่นโรงเรียนบางส่วนเวอร์ชันที่ไม่ใช่โรงเรียนบางส่วนมักจะทำให้คุณโกรธและยากที่จะระงับอารมณ์ของคุณ
การรวบรวมเคอร์เนล Lab1
เคล็ดลับ:
อย่ารวบรวมเคอร์เนลที่โรงเรียนจัดหาให้ ดาวน์โหลดเว็บไซต์ล่าสุดจากเว็บไซต์อย่างเป็นทางการหรือใช้งานโดยฉันในโฟลเดอร์“ การรวบรวมเคอร์เนล Lab1” (มิฉะนั้นจะมีความไม่สอดคล้องกันในเวอร์ชัน GCC ข้อผิดพลาดในการรวบรวม ฯลฯ ) ขอแนะนำอย่างยิ่งให้เลือกรุ่น 4 (จะไม่มีข้อผิดพลาดมากเกินไปเมื่อเทียบกับรุ่นที่ต่ำกว่าและข้อดีเมื่อเทียบกับรุ่น 5 จะสะท้อนในการทดลองครั้งที่สอง);
ขอแนะนำให้ดูวิดีโอของโรงเรียนก่อน เข้าใจขั้นตอน จากนั้นอ้างถึงเคอร์เนลรุ่น CSDN Tutorial 4 และเคอร์เนล CSDN Tutorial 5 รุ่นเพื่อทำการรวบรวมเคอร์เนล
เพื่อรวบรวม 5 เวอร์ชันภายใต้ Ubuntu ในสภาพแวดล้อม 18.04:
sudo apt-get install gcc make libncurses5-dev openssl libssl-dev
sudo apt-get install build-essential
sudo apt-get install pkg-config
sudo apt-get install libc6-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libelf-dev
- เครื่องมือการปรับปรุงประสิทธิภาพ : การรวบรวมแบบมัลติเธรด (หากคุณมีหลายคอร์เมื่อกำหนดค่า) โปรดทำสิ่งนี้เมื่อทำ (ถ้า 4 คอร์เขียน -j4 ถ้า x คอร์ถูกเขียน -jy โดยที่y≤x):
- ทำไมคุณไม่เห็นตัวเลือกเมื่อคุณเริ่มต้นคอมพิวเตอร์: ทำตาม ". lab1 การรวบรวมเคอร์เนล", ค้นหา "/etc/default", ป้อนด้วงและนับบรรทัดที่ 7 จากบนลงล่าง grub_timeout_style = ซ่อนด้วย # คำอธิบายประกอบ #
- ทำไมต้องรวบรวมเมล็ดที่แตกต่างกัน?
- มันยากที่จะทำงานให้เสร็จสมบูรณ์ของโรงเรียน เคอร์เนลรุ่นที่แตกต่างกันมีคะแนนโบนัสและเคอร์เนลรุ่นใหม่นั้นง่าย
การโทรระบบ LAB2
เคล็ดลับ:
- ขอแนะนำอย่างยิ่งให้ใช้เคอร์เนลรุ่นที่ 4 สำหรับการรวบรวมเนื่องจากการปรับเปลี่ยนรหัสการโทรของระบบของเวอร์ชันที่สูงขึ้นนั้นแตกต่างกันในขณะที่มีบทเรียนน้อยสำหรับเวอร์ชันที่ 5
- หลังจากดูวิดีโอของโรงเรียนดูการโทรระบบเพิ่มใน Ubuntu 18.04
โมดูลเคอร์เนล lab3
การทดลองนี้มีสองส่วน คนแรกมีดังนี้สิ่งที่ครูพูดและสิ่งสำคัญคืออันที่สอง
ประโยชน์ที่ใหญ่ที่สุดของการทดลองนี้คือไม่จำเป็นต้องรวบรวมเคอร์เนล
อ้างถึงสองวิธีในการเพิ่มการโทรของระบบภายใต้ Linux/Ubuntu18.04 (วิธีการรวบรวมเคอร์เนล | การเพิ่มโมดูล) และ [การใช้วิธีโมดูลเคอร์เนลเพื่อเพิ่มการโทรระบบอย่างง่าย
หมายเหตุ: ก่อนอื่นให้ทำตามพรอมต์บล็อกเพื่อค้นหาหมายเลขโทรระบบที่มีอยู่ให้ดูที่ที่อยู่ของตารางการโทรผ่านคำสั่งที่กำหนดโดยบล็อก (หากมีที่อยู่ตารางหลายตารางให้ดูชื่อปกติที่สุด) และตรวจสอบให้แน่ใจว่าได้แก้ไขรหัสบล็อกโดยตรงตามรหัสบล็อกที่ทำงานก่อน
ไดรเวอร์อุปกรณ์ LAB4
- สิ่งสำคัญคือต้องเข้าใจสิ่งที่ครูพูดก่อนเริ่ม
- ข้อผิดพลาดที่ปลดล็อค _ioctl (ข้อผิดพลาดคำเตือนคือข้อผิดพลาด), int-> ยาวอ้างอิงถึงฟังก์ชัน IOCTL และ Unlock_IOCTL เพื่อพูดคุย
- หากตารางพารามิเตอร์ฟังก์ชั่นว่างเปล่าอย่าลืมเขียนโมฆะบางครั้งมันก็จะรายงานข้อผิดพลาดเช่นกัน
- ฉันได้ให้ซอร์สโค้ดที่เกี่ยวข้อง สำหรับการอ้างอิง เท่านั้น มันเกี่ยวข้องกับข้อมูลเช่นชื่อและหมายเลขนักเรียนและชื่อตัวแปรค่อนข้างพิเศษดังนั้นฉันต้องเขียนมันกับครู
- LAB4 เป็นรหัสทดสอบและยังมีไว้ สำหรับการอ้างอิง เท่านั้น