วิธีการเรียนรู้เพิ่มเติมเกี่ยวกับเคอร์เนลลินุกซ์จากเครื่องของคุณเอง
เรียนรู้ที่จะทำงานร่วมกับ GNU / Linux โดยทั่วไปต้องการเรียนรู้การทำงานร่วมกับสภาพแวดล้อมเดสก์ท็อป เทคโนโลยีธีมช่วยให้ระบบเดสก์ท็อปเหล่านี้สามารถเลียนแบบอินเทอร์เฟซของ iOS, Microsoft Windows และ OS X ได้ วิธีนี้ช่วยลดปัญหานี้ให้มากที่สุดเท่าที่จะเป็นไปได้ หลายคนทำอะไรต่อไปและเรียนรู้การบริหารจัดการบรรทัดคำสั่งของ Unix ด้วย Bash หรือ tcsh shells อย่างไรก็ตามความรู้เกี่ยวกับ internals ของเคอร์เนลลีนุกซ์สามารถช่วยให้คุณเข้าใจได้ดียิ่งขึ้นว่าส่วนต่างๆของ opcode โต้ตอบกันอย่างไร
บางคนอาจยืนยันว่าควรทำตามขั้นตอนหลายขั้นตอนต่อไปและเรียนรู้เพิ่มเติมว่าคอมไพเลอร์แปลงรหัส C ลงในเครื่องของผู้สอนสำหรับไมโครโปรเซสเซอร์ ผู้สนับสนุนรหัสแอสเซมบลีจะเถียงว่าดีที่สุดในการเรียนรู้ ASM เพื่อเข้าใจการเขียนโปรแกรมบนแพลตฟอร์ม x86 และ x86_64 อย่างแท้จริง โดยไม่คำนึงถึงตำแหน่งเหล่านี้คำสั่งพื้นฐานของ Linux สามารถให้ข้อมูลมากมายเกี่ยวกับวิธีที่เคอร์เนลมองเห็นคอมพิวเตอร์ของคุณ การเรียนรู้ผ่านรูปลักษณ์ แต่ไม่ได้สัมผัสกระบวนทัศน์เป็นวิธีที่ดีในการควบคุมเคอร์เนลของตัวเอง ในขณะที่ใช้บัญชี root สำหรับตัวอย่างในหน้านี้ขอแนะนำให้คุณดูไดเร็กทอรีที่เชื่อมโยงกับเคอร์เนลผ่านบัญชีผู้ใช้เท่านั้น
วิธีที่ 1: ไดเรกทอรี / proc
ไดเรกทอรี / proc ตั้งอยู่ในพื้นที่หลักของไดเรกทอรีรากระดับบนสุดในโครงสร้างแฟ้มยูนิกซ์ใด ๆ มีสิ่งที่เรียกว่า proc file system ซึ่งเป็นที่รู้จักกันดีว่า procfs ซึ่งมีข้อมูลเกี่ยวกับวิธีการเข้าถึงทรัพยากรต่าง ๆ ของหน่วยความจำเคอร์เนล มีการแมปไปยัง / proc ในขณะที่บูตระบบ เนื่องจากโครงสร้างพร็อกซีนี้ทำหน้าที่เป็นส่วนติดต่อกับโครงสร้างข้อมูลภายในภายในเคอร์เนลเคอร์เนลจึงเป็นเรื่องที่ดีที่สุดในการสำรวจข้อมูลนี้ผ่านทางบัญชีผู้ใช้เท่านั้น ไฟล์ส่วนใหญ่ได้รับการจำแนกตามโครงสร้างไฟล์ที่มองเห็นได้เป็นแบบอ่านอย่างเดียว แต่อย่างไรก็ตามวิธีที่ดีที่สุดก็คือด้านความปลอดภัย
ที่ถูกกล่าวว่าแต่ละเหล่านี้เป็นไฟล์ข้อความเพื่อให้คุณสามารถดูได้หากต้องการ ใช้คำสั่ง cd เพื่อเข้าสู่ไดเร็กตอรี่ / proc จากนั้นจึงออก ls เพื่อดูว่ามีอะไรบ้าง ใช้คำสั่ง cat น้อยหรือมากกว่ากับไฟล์ใด ๆ เพื่อดูข้อมูลเหล่านี้ ไฟล์ cpuinfo เป็นจุดเริ่มต้นที่ดีเนื่องจากมีการแสดงเคอร์เนลที่จะดูไมโครโปรเซสเซอร์ของคุณ ดูไฟล์สถิติเพื่อดูกระบวนการทำงาน
การพิมพ์อุปกรณ์สำหรับแมวจะทำให้คุณได้ทราบว่ามีอะไรติดอยู่ในเครื่องของคุณบ้าง
โดยวิธีการที่คุณสามารถออกคำสั่งคน proc สำหรับ rundown ของวิธีการ / proc โครงสร้างแฟ้มที่เกี่ยวข้องกับเคอร์เนล หน้าที่แสดงมาจากคู่มือการใช้งาน Linux Programmer
วิธีที่ 2: ไดเรกทอรี / sys
หยุดถัดไปของคุณในการทัวร์ของเคอร์เนลของคุณคือ / sys ซึ่งเป็นไดเร็กทอรีอื่นที่แมปกับโครงสร้างไฟล์แกล้งทำเป็น นี้ตามแนวคิดทั่วไป Unix เป็น / proc ไม่ แต่แทนที่จะส่งข้อมูลอย่างแข็งขันเกี่ยวกับไดรฟ์อุปกรณ์ที่เกี่ยวข้องและจำนวนของระบบย่อยของเคอร์เนล ถ้าคุณเคยทำงานร่วมกับระบบ BSD แล้วคุณอาจจะคุ้นเคยกับ sysctl มากขึ้นในการทำงานเหล่านี้ อุปกรณ์บัส PCI, USB และ S / 390 ถูกแม็ปทั้งหมดในไดเร็กทอรี / sys
ใช้ cd / sys เพื่อไปที่ไดเร็กทอรีแล้วออกคำสั่ง ls หรือ dir คุณอาจมีไดเรกทอรีชื่อ block, class, device, fs, kernel และอื่น ๆ คุณสามารถสำรวจสิ่งเหล่านี้เพื่อดูไฟล์แบบแบนที่มีข้อมูลเกี่ยวกับระบบ แต่ทำอีกครั้งจากบัญชีผู้ใช้และดู แต่อย่าแตะต้องเกี่ยวกับตัวคุณเอง
วิธีที่ 3: ไดเรกทอรี / dev
ใช้คำสั่ง cd / dev เพื่อข้ามไปยังไดเร็กทอรี / dev ซึ่งอาจเป็นเคอร์เนลเสมือนจริงที่คุณคุ้นเคยมากที่สุดแล้ว ชื่อหมายถึงอุปกรณ์และมีการแสดงไฟล์อุปกรณ์ที่แนบกับระบบของคุณ คำสั่ง ls ในไดเร็กทอรีนี้จะส่งคืนไฟล์จำนวนมากแม้กระทั่งการกระจายเซิร์ฟเวอร์ที่ง่ายที่สุด
บางส่วนของเหล่านี้เป็นพิเศษมาก ไฟล์ / dev / null เป็นอุปกรณ์ null ที่ไม่มีอะไรเลย ถ้าคุณพิมพ์ cat / dev / null แล้วคุณจะได้รับอะไรออกจากมัน เรียกว่าบิตฝากข้อมูลและเอาต์พุตสามารถเปลี่ยนเส้นทางไปยังหน้าจอเพื่อให้หน้าจอสะอาด ไฟล์ที่เรียกว่า / dev / zero มีข้อมูลอะไร แต่เป็นศูนย์ซึ่งสามารถเขียนลงในดิสก์เป็นศูนย์ได้ ไฟล์แบบสุ่มและแบบสุ่มประกอบด้วยข้อมูลขยะแบบสุ่มสำหรับการสร้าง hashes การรักษาความปลอดภัย
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่ถ้าคุณเคยฟอร์แมตดิสก์อยู่แล้วคุณอาจมีประสบการณ์อย่างน้อยกับเคอร์เนลลินุกซ์ แต่ละดิสก์ที่เชื่อมต่อกับระบบจะมีชื่อเหมือน sda, sdb และอื่น ๆ สำหรับแต่ละดิสก์ ประเภทต่างๆของดิสก์มีชื่อแตกต่างกัน โปรดทราบว่าไดเร็กทอรี / dev ใช้นิยามทางวิทยาศาสตร์คอมพิวเตอร์ที่มีแนวโน้มว่าจะเป็นดิสก์มากกว่าวิธีที่เรามักใช้คำนั้น ซึ่งหมายความว่าฮาร์ดไดรฟ์, SSD, SD Card, การ์ด microSDHC, ระบบไฟล์สมาร์ทโฟนที่ติดตั้งผ่าน USB, USB sticks และแม้แต่เมาท์แท็บเล็ตจะเป็นดิสก์ทั้งหมดที่มีอยู่ในเคอร์เนล
ชื่อดิสก์แต่ละตัวใน Linux จะได้ตัวเลขหลังจากที่ระบุหมายเลขพาร์ทิชัน ถ้าคุณมี SSD กับพาร์ติชันหลักสองพาร์ติชันคุณอาจมี / dev / sda1 และ / dev / sda2 เป็นโวลุ่มที่ถูกต้อง ถ้าคุณใช้ Linux จากเดสก์ท็อปหรือแล็ปท็อปที่มีการแบ่งพาร์ติชันแบบ MBR คุณจะต้องมี / dev / sda1 ตั้งค่าพาร์ติชัน ext4 ที่ติดตั้ง Linux ไว้ มากกว่าจะเป็น / dev / sda2 เป็นพาร์ติชันเสริมที่ประกอบด้วย / dev / sda5 เป็นพาร์ติชัน swap โครงการนี้เป็นเรื่องปกติ แต่ไม่จำเป็นต้องมี โปรดสังเกตว่าตั้งแต่พาร์ทิชัน swap ในตัวอย่างทั่วไปนี้เป็นดิสก์ตรรกะภายในของพาร์ติชันเสริมจะได้รับ 5 แทน 3 เป็นตัวเลขของ
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับมุมมองเคอร์เนลและฟอร์แมตพาร์ทิชันคุณสามารถดูรายการพาร์ติชันที่รองรับโดยใช้คำสั่ง fdisk ได้ ในขณะที่ fdisk ไม่ได้เขียนตารางพาร์ทิชันจนกว่าคุณจะบอกให้ดีที่สุดลองนี้ด้วยสิ่งที่คุณไม่สนใจเกี่ยวกับการปิ้ง ขอแนะนำให้ชี้ไปที่บางอย่างเช่นแท่ง USB เปล่าที่คุณสามารถฟอร์แมตได้ง่าย
สมมุติว่าแท่งของคุณแสดงขึ้นเป็น / dev / sdc แล้วคุณสามารถใช้ sudo fdisk / dev / sdc เพื่อให้โหลดได้ ถ้าคุณมีพาร์ติชันที่ถูกต้องในไฟล์ให้พิมพ์ t เพื่อเปลี่ยนประเภทและประเภท L เพื่อโหลดรายการรหัสฐานสิบหก โปรดทราบว่ารูปแบบพาร์ทิชันของ MBR และ GUID พูดคุยกับเคอร์เนลแตกต่างกันดังนั้นจึงมีการกำหนดที่แตกต่างกัน
บ่อยกว่าไม่คุณจะมีไดรฟ์กำหนดให้พิมพ์ 83 ซึ่งเป็นไดรฟ์ Linux 82 ซึ่งเป็นพาร์ทิชัน swap Linux หรือหนึ่งในประเภทไฟล์ FAT FAT ย้อนกลับไปในรูปแบบใดรูปแบบหนึ่งหรืออีกแบบหนึ่งถึงปีพ. ศ. 2520 และยังคงเป็นที่ต้องการสำหรับอุปกรณ์เคลื่อนที่หลายประเภทรวมทั้งไดรฟ์แบบถอดได้ โปรดทราบว่าบางประเภทพาร์ติชันเช่น 0x0c ประเภทมีคุณลักษณะบางอย่างที่เรียกว่า LBA support
เมื่อโปรแกรมเมอร์ออกแบบเคอร์เนลสำหรับระบบปฏิบัติการพวกเขามีวิธีที่แตกต่างกันเล็กน้อยที่พวกเขาสามารถมองไปที่ดิสก์ได้ หนึ่งคือการแบ่ง platters ในถังหัวและภาค นี่เป็นวิธีคลาสสิกในการอ้างถึงฮาร์ดไดรฟ์เป็นเวลานานที่สุด รูปลักษณ์ของดิสก์ของแท้ไม่เคยมีความสำคัญกับ Linux มากนักและโครงการนี้ไม่มีที่อยู่หลังจากที่มีกิกะไบต์ไบนารีประมาณ 8 ตัว วิธีที่สองคือการใช้ Logical C / H / S addressing ซึ่งจะทำเช่นนี้ แต่จะช่วยให้ตัวควบคุมดิสก์สามารถทำแผนที่เลขกระบอกสูบหัวและเซกเตอร์ได้ทุกที่ที่ต้องการ นี่คือเหตุผลที่ระบบปฏิบัติการสามารถเรียกร้องได้ว่ามีหัวอยู่ในการ์ด SD หรือ USB เมื่อไม่สามารถใช้งานได้
วิธีที่สามคือการกำหนดที่อยู่แบบลอจิคัล (Logical Block Addressing) ซึ่งเป็นสิ่งที่ LBA หมายถึง แต่ละบล็อกทางกายภาพในไดรฟ์ข้อมูลได้รับตัวเลขในโครงการนี้ ระบบปฏิบัติการบอกให้ตัวควบคุมดิสก์เขียนไปยังบล็อกที่มีหมายเลขหนึ่ง แต่ไม่ทราบว่ามีการบล็อกโดยตรงในดิสก์หรือไม่ นี่เป็นโครงการที่ใช้กันมากที่สุดในปัจจุบันและใช้กันอย่างแพร่หลายในฮาร์ดดิสก์ตั้งแต่ช่วงกลางทศวรรษที่ 1990 เป็นต้นมา
ลินุกซ์สนับสนุนการสนับสนุนเคอร์เนลในการติดตั้งพาร์ติชันต่างๆมากมายโดยไม่ต้องมีการป้อนข้อมูลโดยตรง แต่ก็ยังดีที่สุดที่จะไม่แปลกประหลาดเกินไปเมื่อเลือก คุณสามารถปิ้งข้อมูลของคุณได้หากทำแบบพาร์ติชันที่แปลกมากเพื่อให้ระบบเลือกการจับคู่ระบบ
วิธีที่ 4: การเรียกระบบจากคู่มือการใช้งาน Linux Programmer
ผู้อ่านหน้าคนบนเรือที่มาพร้อมกับส่วนใหญ่ของลินุกซ์ที่กระจายได้จริงอาจทำให้เกิดความผิดพลาดในการเรียกระบบซึ่งจะช่วยให้การเรียนรู้เกี่ยวกับเคอร์เนลเป็นเรื่องใหญ่ เริ่มเบราว์เซอร์ของมนุษย์ xman กราฟิกหน้าจากเดสก์ท็อป link ถ้าคุณมีหรือหรือโดยการกดแป้น super และ R ในเวลาเดียวกันจากนั้นพิมพ์ xman และกด enter เลือกตัวเลือก Manual Page แล้วเลือกส่วนและสุดท้าย (2) System Calls จากเมนูแบบเลื่อนลง
เมื่อตัวเลือกการอ่าน บทแนะนำ ปรากฏขึ้นให้เลือกที่ หน้าเว็บจากคู่มือโปรแกรมเมอร์ Linux ที่จะสอนคุณเกี่ยวกับการโทรระบบจะทักทายคุณ
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่