เราจะเรียนรู้อะไรในบล็อกนี้

  1. ข้อมูลเบื้องต้นเกี่ยวกับเคอร์เนล Linux (ส่วนที่ 1)
  2. พื้นที่เคอร์เนลและพื้นที่ผู้ใช้ (ส่วนที่ 1)
  3. การทำงานกับฮาร์ดแวร์ ("ตอนที่ 1")
  4. ลำดับการบูต Linux (ตอนที่ 2)
  5. เป้าหมายของระบบ (ระดับการวิ่ง) (ตอนที่ 2)
  6. ระบบไฟล์และลำดับชั้น (ตอนที่ 2)

ลำดับการบูต Linux

กระบวนการลำดับการบูต Linux ประกอบด้วย 4 ขั้นตอนง่ายๆ —

  1. โพสต์ไบออส
  2. บูตโหลดเดอร์ (GRUB2)
  3. การเริ่มต้นเคอร์เนล
  4. กระบวนการเริ่มต้น (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 ประเภท —

  1. ไฟล์ปกติ — ไฟล์ปกติคือไฟล์ประเภทต่างๆ ที่ประกอบด้วยข้อมูล ข้อความ รูปภาพ และการกำหนดค่าบางอย่างตามปกติ
  2. ไดเรกทอรี — เป็นไฟล์ประเภทพิเศษ มันมีไดเร็กทอรีและบางไฟล์อยู่ใต้ไดเร็กทอรี ตัวอย่าง - ผู้อำนวยการบ้านของคุณ
  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

  1. กระบวนการเริ่มต้นที่ใช้โดยระบบนี้คืออะไร?
  2. เป้าหมาย systemd เริ่มต้นที่ตั้งไว้ในระบบนี้คืออะไร?
  3. เปลี่ยนค่าเริ่มต้นนั้นเป็นเป้าหมายที่มีผู้ใช้หลายราย
  4. คุณจะถูกขอให้ติดตั้ง IDE บุคคลที่สามใหม่ในระบบ ไดเร็กทอรีใดที่เป็นตัวเลือกที่แนะนำสำหรับการติดตั้ง?
  5. ไดเร็กทอรีใดมีไฟล์ที่เกี่ยวข้องกับอุปกรณ์บล็อกที่สามารถมองเห็นได้เมื่อรันคำสั่ง lsblk
  6. ชื่อผู้จำหน่ายตัวควบคุมอีเทอร์เน็ตที่ใช้ในระบบนี้คืออะไร?

ลองตอบคำถามทั้งหมดนี้เพื่อทดสอบตัวเองและแจ้งให้เราทราบ

ขอให้มีความสุขกับการเรียนรู้ 😃

ติดตามเราบนTwitterเพื่อร่วมริเริ่มการเรียนรู้ Devops ใน 60 วันกับเรา

เจอกันใหม่บล็อกหน้า ขอให้มีความสุขนะ 😄