ใน Linux / Ubuntu ในพื้นที่ของฉันฉันมีสองไดเรกทอรีสำหรับ Linux src
/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic
ฉันพบรหัสใน 3.16.0 มากกว่าใน 3.16.0 ทั่วไป ฉันสงสัยว่าทำไมและไดเรกทอรีทั้งสองนั้นแตกต่างกันอย่างไร (และพวกเขาเป็นตัวแทนอะไร)
ใน Linux / Ubuntu ในพื้นที่ของฉันฉันมีสองไดเรกทอรีสำหรับ Linux src
/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic
ฉันพบรหัสใน 3.16.0 มากกว่าใน 3.16.0 ทั่วไป ฉันสงสัยว่าทำไมและไดเรกทอรีทั้งสองนั้นแตกต่างกันอย่างไร (และพวกเขาเป็นตัวแทนอะไร)
คำตอบ:
ทั้งสองไดเร็กทอรีจัดทำโดยแพ็คเกจที่สอดคล้องกันซึ่งมีไฟล์ส่วนหัวสำหรับเคอร์เนล ใช้dpkg
คำสั่งเพื่อค้นหาแพ็คเกจที่มีไดเรกทอรี
$ dpkg -S /usr/src/linux*
linux-headers-X.XX.X-XX: /usr/src/linux-headers-X.XX.X-XX
linux-headers-X.XX.X-XX-generic: /usr/src/linux-headers-X.XX.X-XX-generic
...
ไดเร็กทอรีแรก/usr/src/linux-headers-X.X.XX-XX
ประกอบด้วยไฟล์ส่วนหัวสำหรับสถาปัตยกรรมหลายอันรวมถึง x86, amd64, powerpc และอื่น ๆ ทำให้มีจำนวนไฟล์มากขึ้นและมีขนาดใหญ่ขึ้น
ไดเรกทอรีอื่น/usr/src/linux-headers-X.X.XX-XX-generic
ดูเหมือนจะประกอบด้วยซอร์สโค้ดส่วนใหญ่ที่เกี่ยวข้องกับสถาปัตยกรรม x86 ที่มีการกำหนดเป้าหมายสำหรับการติดตั้งในเครื่อง
แพคเกจที่เกี่ยวข้องได้บอกใบ้ในคำอธิบายตัวอย่างเช่น:
$ apt-cache show linux-headers-3.16.0-25 | grep -A3 Description-en
Description-en: Header files related to Linux kernel version 3.16.0
This package provides kernel header files for version 3.16.0, for sites
that want the latest kernel headers. Please read
/usr/share/doc/linux-lts-utopic-headers-3.16.0-25/debian.README.gz for details
เท่าที่ฉันทราบไดเรกทอรีทั้งสองมีรหัสแหล่งที่มาเท่านั้นและไม่ไบนารี และความแตกต่างระหว่างทั้งสองส่วนใหญ่เป็นสถาปัตยกรรมเป้าหมายของรหัสที่มา
ที่เกี่ยวข้อง: แผนผังแหล่งเคอร์เนลประกอบด้วยอะไร? สิ่งนี้เกี่ยวข้องกับส่วนหัวเคอร์เนลของ Linux หรือไม่
เนื่องจากทั้งสอง
x86
รหัสที่เกี่ยวข้องกับร้านค้าอะไรคือความแตกต่างของx86
รหัสในสองไดเรกทอรี - Richard Jul 29 '15 เวลา 19:11
ไดเรกทอรีและไฟล์ส่วนใหญ่ที่อยู่ใน/usr/src/linux-headers-X.X.XX-XX-generic
นั้นเป็นลิงก์สัญลักษณ์ซึ่งชี้ไปยังไดเรกทอรีและไฟล์/usr/src/linux-headers-X.X.XX-XX
จริง ในคำอื่น ๆ ที่arch/x86
พบในสองไดเรกทอรีเหล่านี้เป็นเพียงความแตกต่างของการเชื่อมโยงที่เกิดขึ้นจริงและสัญลักษณ์ที่มีไฟล์ที่เหลือบางส่วนของasm
ส่วนหัวใน*-generic
คู่
ระหว่างแพ็กเกจทั้งสองแพ็คเกจหนึ่งอาจสังเกตเห็นความแตกต่างที่สำคัญอีกอย่างหนึ่งคือการมีอยู่ของconfig
และgenerated
ไดเร็กทอรีใน*-generic
คู่กัน
ในความเข้าใจที่ดีที่สุดของฉันฉันจะคิดว่า*-generic
ไดเรกทอรีเก็บไฟล์ส่วนหัวที่จำเป็นสำหรับการกำหนดค่าและรวบรวมโมดูลที่เกี่ยวข้องกับx86
สถาปัตยกรรมโดยไม่ต้องมีการเปลี่ยนแปลง accidential linux-headers-x.x.xx-xx
ไปยังไดเรกทอรีแหล่งที่มาของ
เหนือสิ่งอื่นใดไดเรกทอรีทั้งสองอาจเป็นวิธีที่ "สะอาด" ในการทำแพ็กเกจและรวบรวมแพ็คเกจบนแพลตฟอร์มที่เกี่ยวข้อง แม้ว่าฉันจะไม่สามารถชี้แจงเรื่องนี้ได้
คำตอบของผู้ตอบ : ฉันเขียนคำตอบอย่างไร้เดียงสาในเวลานั้น - ไม่แน่ใจว่าอะไรถูกหรือผิด - และคำอธิบายบางอย่างอาจหายไประหว่างนั้น ดังนั้นคำตอบนี้จึงกลายเป็นวิกิชุมชนเพื่อให้ทุกคนที่มีชื่อเสียงน้อยที่สุดสามารถปรับปรุงโพสต์นี้เพื่ออธิบายความแตกต่างได้อย่างเต็มที่
x86
รหัสที่เกี่ยวข้องกับร้านค้าอะไรคือความแตกต่างของx86
รหัสในสองไดเรกทอรี