เราจะเรียนรู้อะไรในบล็อกนี้
- ข้อมูลเบื้องต้นเกี่ยวกับเคอร์เนล Linux (ส่วนที่ 1)
- พื้นที่เคอร์เนลและพื้นที่ผู้ใช้ (ส่วนที่ 1)
- การทำงานกับฮาร์ดแวร์ ("ตอนที่ 1")
- ลำดับการบูต Linux (ตอนที่ 2)
- เป้าหมายของระบบ (ระดับการวิ่ง) (ตอนที่ 2)
- ระบบไฟล์และลำดับชั้น (ตอนที่ 2)
ลำดับการบูต Linux
กระบวนการลำดับการบูต Linux ประกอบด้วย 4 ขั้นตอนง่ายๆ —
- โพสต์ไบออส
- บูตโหลดเดอร์ (GRUB2)
- การเริ่มต้นเคอร์เนล
- กระบวนการเริ่มต้น (systemd)
ลำดับการบูต Linux ควรเริ่มต้นเมื่อใด
เมื่อใดก็ตามที่ระบบของคุณอยู่ในโหมดหยุดหรือหยุดทำงาน หรือเมื่อใดก็ตามที่คุณเพิ่งรีบูตระบบ ลำดับการบูต Linux นี้จะเกิดขึ้น
ตอนนี้มาเจาะลึกแต่ละข้อและดูว่าพวกเขามีส่วนช่วยในลำดับการบูต Linux อย่างไร
1 . BIOS POST — จริงๆ แล้วการทดสอบนี้ไม่เกี่ยวข้องกับ Linux การทดสอบหลังนี้ เช่น การทดสอบการเปิดเครื่อง จะเริ่มตั้งแต่ขั้นตอนแรก การทดสอบนี้จะตรวจสอบการกำหนดค่าฮาร์ดแวร์ทั้งหมดว่าพร้อมที่จะเปิดใช้งานหรือไม่ หากมีปัญหาใดๆ ในกระบวนการเริ่มต้น ก็จะไม่ไปสู่ลำดับที่สอง
<แข็งแกร่ง>2. Boot Loader (GRUB2) — GRand Unified Bootloader (GRUB2) เป็นบูทโหลดเดอร์ที่ทันสมัยที่สุดและมีการสร้างไว้ล่วงหน้าใน Linux distro ส่วนใหญ่ ลำดับนี้จะเข้าควบคุมหลังจาก BIOS POST โดยพื้นฐานแล้วสิ่งนี้จะทำให้คุณมีตัวเลือกในการเลือกการกำหนดค่าของคุณ หน้าที่ของมันคือรับช่วงต่อจาก BIOS ในเวลาบูต โหลดตัวเอง โหลดเคอร์เนล Linux ลงในหน่วยความจำ จากนั้นจึงโอนการดำเนินการไปที่เคอร์เนล โดยจะส่งผ่านพารามิเตอร์ที่จำเป็นสำหรับการเริ่มต้นเคอร์เนลและโหลดเข้าสู่หน่วยความจำเคอร์เนลสำหรับขั้นตอนถัดไป นั่นคือ การเริ่มต้นเคอร์เนล
<แข็งแกร่ง>3. การเริ่มต้นเคอร์เนล —กระบวนการนี้เริ่มต้นเคอร์เนลโหลดหน่วยความจำ ตรวจสอบพารามิเตอร์ กำหนดหน่วยความจำ ทำการจัดการหน่วยความจำทั้งหมด เริ่มการจัดการกระบวนการ เช่น ที่จำเป็นสำหรับกระบวนการบริการเพื่อเริ่มต้นในขั้นตอนถัดไป
<แข็งแกร่ง>4. กระบวนการ INIT (systemd) —และนี่คือกระบวนการสุดท้ายของลำดับการบูต Linux ซึ่งเราจะเริ่มบริการพร้อมกับเนื้อหา GUI/CLI บางส่วน systemd มีหน้าที่รับผิดชอบในการตั้งค่าลำดับไฟล์และอีกมากมาย เราจะเรียนรู้ systemd อย่างละเอียดมากขึ้น ก่อน systemd มี systerm5 ซึ่งทำงานเหมือนกัน แต่ข้อได้เปรียบหลักของการใช้ systemd บน system5 (sis5) เนื่องจากใช้เวลาน้อยกว่ามากเมื่อเริ่มบริการบูทในโหมดขนาน ดังนั้นจึงค่อนข้างเร็วกว่า sysstem5
หากต้องการตรวจสอบสิ่งที่คุณใช้ system5 หรือ systemd ให้รันคำสั่งต่อไปนี้
เป้าหมายของระบบ (ระดับการวิ่ง)
หลังจากลำดับการบูตของ Linux คนส่วนใหญ่จะเห็นหน้าจอเช่นนี้ซึ่งมีอินเทอร์เฟซผู้ใช้แบบกราฟิก ในขณะที่มืออาชีพที่ทำงานส่วนใหญ่มีหน้าจอบรรทัดคำสั่งแทนหน้าจอ GUI เหตุใดจึงเกิดเหตุการณ์เช่นนี้ มาดูและแก้ไขปัญหานี้เพื่อให้คุณเป็นนักพัฒนา CLI Linux
ให้ฉันบอกคุณว่าทำไมสิ่งนี้ถึงเกิดขึ้น😅
หากคุณจะรันคำสั่งนี้ คุณจะได้รับเอาต์พุตนี้ในขณะที่ฉันรันคำสั่งเดียวกัน ฉันก็จะได้รับเอาต์พุตนั้น
ใช่แล้ว พวกคุณทำถูกแล้ว นี่คือเกมทั้งหมดที่เล่นตามระดับการวิ่ง
อยากดำดิ่งลงลึกเพื่อสัมผัสถึงบรรยากาศ ไปกันเถอะ 😝
เมื่อใดก็ตามที่ระบบของคุณบูทใน กระบวนการเริ่มต้นที่มี systemd ซึ่งจะเริ่มต้นหรือเปิดใช้งานบริการตัวจัดการการแสดงผล โดยที่ runlvel เปลี่ยนจาก 5 และด้วยเหตุนี้ คุณจะได้รับหน้าจอ GUI
ฟังก์ชันที่บูทเข้าสู่อินเทอร์เฟซแบบกราฟิกเรียกว่ารันระดับ 5 และมีค่า systemd.target = graphical.target
ในขณะที่
ฟังก์ชันที่บูทเข้าสู่อินเทอร์เฟซแบบหลายผู้ใช้เรียกว่ารันระดับ 3 และมีค่า systemd.target = multi-user.target
นี่คือคำตอบของคุณเกี่ยวกับวิธีเปลี่ยนหน้าจอ GUI เริ่มต้นของคุณให้เป็นหน้าจอ CLI เริ่มต้น
ในที่สุดคุณก็เป็นผู้พัฒนา CLI ยินดีด้วย 😚 ยินดีต้อนรับสู่ทีม Homey!
ฉันได้ทำการเปลี่ยนแปลงมากมายในการกำหนดค่าเริ่มต้นเพื่อแสดงตัวอย่าง ตอนนี้ฉันต้องเปลี่ยนกลับ 😝 ฉันใช้ความพยายามอย่างมาก ดังนั้นโปรดกดไลค์แชร์บล็อกนี้ให้เพื่อนของคุณ
ประเภทไฟล์ใน Linux
ทุกสิ่งใน Linux ก็คือไฟล์ แม้แต่ไดเร็กทอรีก็เป็นประเภทไฟล์
โดยทั่วไปไฟล์ Linux จะถูกแบ่งออกเป็น 3 ประเภท —
- ไฟล์ปกติ — ไฟล์ปกติคือไฟล์ประเภทต่างๆ ที่ประกอบด้วยข้อมูล ข้อความ รูปภาพ และการกำหนดค่าบางอย่างตามปกติ
- ไดเรกทอรี — เป็นไฟล์ประเภทพิเศษ มันมีไดเร็กทอรีและบางไฟล์อยู่ใต้ไดเร็กทอรี ตัวอย่าง - ผู้อำนวยการบ้านของคุณ
- ไฟล์พิเศษ- ไฟล์พิเศษแบ่งออกเป็น 5 ประเภทเพิ่มเติม
ก) ไฟล์อักขระ — ไฟล์อักขระคือไฟล์ประเภทที่ช่วยให้ระบบปฏิบัติการสื่อสารกับ IO และอยู่ในตำแหน่งภายใต้ dev. ตัวอย่าง — เมาส์ คีย์บอร์ดของคุณ
b) บล็อกไฟล์ — เราได้กล่าวถึงไฟล์ BLOCK DEVICE โดยละเอียดแล้ว ดู part-1 eg-ram, hard-disk
ค)ลิงก์- ลิงก์คือวิธีเชื่อมต่อสองไฟล์เข้าด้วยกัน
ฮาร์ดลิงก์- ในไฟล์ประเภทนี้ สองไฟล์จะใช้ข้อมูลเดียวกันร่วมกัน และการลบไฟล์หนึ่งจะทำให้อีกไฟล์ถูกลบ
ซอฟต์ลิงก์-ในประเภทนี้ ไฟล์หนึ่งจะชี้ไปยังอีกไฟล์หนึ่งเป็นตัวชี้ และการลบข้อมูลไฟล์หนึ่งจะไม่ส่งผลให้มีการลบไฟล์อื่น
d)ไฟล์ซ็อกเก็ต- ไฟล์ซ็อกเก็ตเป็นไฟล์ประเภทพิเศษที่ช่วยให้สามารถสื่อสารระหว่างกระบวนการได้
จ)ไปป์ที่มีชื่อ- ไฟล์ที่มีชื่อคือไฟล์ที่เชื่อมต่อกระบวนการหนึ่งเป็นอินพุตของกระบวนการอื่น การไหลของข้อมูลในไฟล์ประเภทนี้เป็นแบบทิศทางเดียว เราจะเรียนรู้ชื่อไปป์โดยละเอียด ดังนั้นไม่ต้องกังวลไป 😃
จะตรวจสอบได้อย่างไรว่าไฟล์นั้นเป็นประเภทไหน?
เรียกใช้คำสั่ง File และใช้ชื่อไฟล์ , file dir เป็นข้อโต้แย้ง
คุณสามารถใช้คำสั่งอื่นได้เช่นกัน เช่น
ที่นี่ตัวอักษรตัวแรกของผลลัพธ์จะเป็นตัวกำหนดประเภทไฟล์ ตรวจสอบตัวอักษรตัวแรกตามรูปด้านล่างแล้วบูม 😅
ไฟล์ ลำดับชั้น
นี่คือไดเร็กทอรีไฟล์หลักที่คุณจะพบขณะทำงานกับ Linux มาเรียนรู้กันทีละบรรทัด
/home — เป็นโฮมไดเร็กตอรี่ที่ข้อมูลทั้งหมดอยู่คาดว่าจะเป็นรูทหนึ่ง
/root— เป็นไดเร็กทอรีหลักและรูทของไดเร็กทอรีทั้งหมด
/opt — เป็นไดเร็กทอรีที่คุณสามารถดาวน์โหลดบุคคลที่สาม .lets สมมติว่าเราต้องดาวน์ลีดเว็บเซิร์ฟเวอร์ ดังนั้น /opt จะเป็นตัวเลือกที่เหมาะสม
/bin - เป็นไดเร็กทอรีที่มีคำสั่ง Linux พื้นฐาน เช่น mkdir, mv และคำสั่งเหล่านั้นทั้งหมด
/dev — เป็นไดเร็กทอรีที่มีไฟล์อุปกรณ์บล็อกและไฟล์อักขระทั้งหมดอยู่
/etc— ใช้เพื่อจัดเก็บไฟล์การกำหนดค่าส่วนใหญ่ของ Linux
/lib— เป็นไดเร็กทอรีที่มี libs ที่แชร์ทั้งหมด เช่น lib_64 โดยโปรแกรมอยู่
/media — เป็นไดเร็กทอรีที่มีสื่อทั้งหมดอยู่เหมือนกับเนื้อหาของไดรฟ์ usb ที่เราใส่ไว้ในบล็อกที่แล้ว 😅
/var — ในกรณีที่คุณพบข้อผิดพลาด ไดเรกทอรีนี้จะมีบันทึกซึ่งจะช่วยคุณได้
/tmp— เป็นไฟล์ชั่วคราวที่มีข้อมูลชั่วคราวทั้งหมดอยู่
/mnt — สมมติว่าเราได้ดาวน์โหลดแอปของบุคคลที่สามแล้ว และเนื่องจากปัญหาช่องโหว่บางประการ เราจึงต้องเมานต์ไฟล์เหล่านั้น ดังนั้นเราจะเมานต์ไฟล์เหล่านั้นที่นี่
/usr- เป็นที่ที่ข้อมูลของผู้ใช้ทั้งหมดอยู่เช่น Firefox
แบบฝึกหัดประสบการณ์ตรง
มีคำถามบางชุดเกี่ยวกับแนวคิดหลักของ Linuxที่คุณได้เรียนรู้ข้างต้น ตอนนี้ถึงเวลาทดสอบตัวเอง ดังนั้นอย่าลืมทดสอบตัวเองก่อนที่จะย้ายไปบล็อกถัดไป แสดงความคิดเห็นในบล็อกและแจ้งให้เราทราบว่าคุณได้คะแนนเท่าไร ในกรณีที่มีข้อสงสัย/คำถาม/ข้อเสนอแนะ โปรด Dm ฉันที่Twitter
- กระบวนการเริ่มต้นที่ใช้โดยระบบนี้คืออะไร?
- เป้าหมาย systemd เริ่มต้นที่ตั้งไว้ในระบบนี้คืออะไร?
- เปลี่ยนค่าเริ่มต้นนั้นเป็นเป้าหมายที่มีผู้ใช้หลายราย
- คุณจะถูกขอให้ติดตั้ง IDE บุคคลที่สามใหม่ในระบบ ไดเร็กทอรีใดที่เป็นตัวเลือกที่แนะนำสำหรับการติดตั้ง?
- ไดเร็กทอรีใดมีไฟล์ที่เกี่ยวข้องกับอุปกรณ์บล็อกที่สามารถมองเห็นได้เมื่อรันคำสั่ง lsblk
- ชื่อผู้จำหน่ายตัวควบคุมอีเทอร์เน็ตที่ใช้ในระบบนี้คืออะไร?
ลองตอบคำถามทั้งหมดนี้เพื่อทดสอบตัวเองและแจ้งให้เราทราบ
ขอให้มีความสุขกับการเรียนรู้ 😃
ติดตามเราบนTwitterเพื่อร่วมริเริ่มการเรียนรู้ Devops ใน 60 วันกับเรา
เจอกันใหม่บล็อกหน้า ขอให้มีความสุขนะ 😄