có gì khác biệt giữa src phiên bản 3. * và 3. * - chung


10

Trong Linux / Ubuntu cục bộ của tôi, tôi có hai thư mục cho Linux src

/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic

Tôi thấy mã trong 3.16.0 nhiều hơn mã 3.16.0 chung. Tôi tự hỏi tại sao và làm thế nào hai thư mục đó khác nhau (và chúng đại diện cho cái gì?)

Câu trả lời:


1

Hai thư mục được cung cấp bởi các gói tương ứng, chứa các tệp tiêu đề cho kernel. Sử dụng dpkglệnh để tìm gói nào cung cấp các thư mục.

$ 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
...

Thư mục đầu tiên /usr/src/linux-headers-X.X.XX-XXbao gồm các tệp tiêu đề cho nhiều kiến ​​trúc, bao gồm x86, amd64, powerpc và các tệp khác, dẫn đến số lượng tệp nhiều hơn và kích thước gói lớn hơn.

Thư mục khác /usr/src/linux-headers-X.X.XX-XX-genericdường như chứa hầu hết các mã nguồn có liên quan đến kiến ​​trúc x86 được nhắm mục tiêu cho cài đặt cục bộ.

Gói tương ứng đã gợi ý trong mô tả, ví dụ:

$ 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

Theo như tôi biết, cả hai thư mục chỉ chứa mã nguồn và không có mã nhị phân. Và sự khác biệt giữa cả hai chủ yếu là kiến trúc đích của mã nguồn.

Liên quan: Cây nguồn chứa gì? Điều này có liên quan đến tiêu đề kernel Linux không?

Câu trả lời mở rộng (2015 / 07.30)

Vì cả hai lưu trữ x86mã liên quan, sự khác biệt btwn x86mã trong hai thư mục là gì? - Richard ngày 29 tháng 7 '15 lúc 19:11

Hầu hết các thư mục và tệp chứa trong /usr/src/linux-headers-X.X.XX-XX-genericlà các liên kết tượng trưng, ​​trỏ đến các thư mục và tệp thực tế trong /usr/src/linux-headers-X.X.XX-XX. Nói cách khác, arch/x86tìm thấy trong hai thư mục đó chỉ là sự khác biệt của các liên kết thực tế và biểu tượng, với một số tệp còn lại của các asmtiêu đề trong *-genericbản sao.

Giữa hai gói đó, người ta có thể nhận thấy một sự khác biệt lớn khác là sự hiện diện configvà các generatedthư mục trong *-genericđối tác.

Theo hiểu biết tốt nhất của tôi, tôi sẽ nghĩ rằng *-genericthư mục chứa các tệp tiêu đề cần thiết để định cấu hình và biên dịch các mô-đun có liên quan đến x86kiến trúc, mà không thực hiện các thay đổi chính thức cho thư mục nguồn của linux-headers-x.x.xx-xx.

Trên hết, hai thư mục có lẽ là cách tiếp cận "sạch" để đóng gói và biên dịch các gói trên các nền tảng tương ứng. Mặc dù, tôi không ở vị trí để làm rõ vấn đề này.


Lưu ý của người trả lời: Tôi đã viết câu trả lời này một cách ngây thơ vào thời điểm đó - không chắc điều gì đúng hay sai - và một số lời giải thích có thể bị thiếu ở giữa. Do đó câu trả lời này hiện là một wiki cộng đồng, để bất kỳ ai có uy tín tối thiểu đều có thể cải thiện bài đăng này để giải thích đầy đủ về sự khác biệt.


Vì cả hai lưu trữ x86mã liên quan, sự khác biệt btwn x86mã trong hai thư mục là gì?
Richard

@Richard Tôi đã cập nhật câu trả lời của mình như trên với kiến ​​thức tốt nhất của mình, càng đơn giản càng tốt. Câu trả lời của tôi có thể được xem là ngây thơ, vì vậy bạn có thể muốn tìm kiếm câu trả lời tốt hơn từ người khác thay thế.
Clearkimura
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.