– 5 –
Lưu ý
: đối với loạt nhân 2.6.x, bạn có thể dùng các bước như trên. Tuy nhiên bước
"
make dep
" không cần thiết nữa. Bài viết này bao gồm cho cả phiên bản 2.4.x và 2.6.x
nên có một số chi tiết không cần thiết cho kernel 2.6.x. Tuy vậy, những chi tiết này sẽ
không ảnh hưởng đến sự thành công của quy trình biên dịch nhân.
2 Tại sao cần biên dịch lại nhân Linux?
Đối với người dùng đã quen với những hệ điều hành "đóng" thì khái niệm biên dịch lại
nhân là một khái niệm hết sức lạ lẫm. Điều này cũng dễ hiểu vì kernel của các hệ điều
hành "đóng" hiển nhiên là "đóng" và người dùng bình thường không thể có cơ hội tiếp
cận với mã nguồn của nhân để có thể biên dịch lại nhân nếu muốn. Trong khi đó, mã
nguồn của nhân Linux hoàn toàn "mở" và đây là điều kiện rất thuận lợi cho vấn đề biên
dịch lại nhân. Câu hỏi được đặt ra là tại sao lại cần phải biên dịch lại nhân Linux ?
Câu trả lời ngắn
: không cần nếu như không cần và cần nếu như cần :)
Câu trả lời dài
: có vô số lý do khiến cho người dùng cần phải biên dịch lại nhân Linux.
Sau đây là một số trường hợp thường gặp nhất:
a. tái biên dịch kernel để chữa lỗi của nhân. Nếu các lỗi này thuộc về lõi của nhân thì
phải vá nguồn của nhân và biên dịch lại nó để sửa chữa các lỗi được công bố.
b. biên dịch lại nhân để nâng cao hiệu năng của nhân. Theo mặc định, các bản phân
phối Linux thường kèm một phiên bản nhân được biên dịch với hầu hết những thành
phần có sẵn để có thể đáp ứng rộng rãi cấu hình phần cứng (có thể hiện diện trên các
máy). Đây là điểm lợi tổng quát lúc khởi điểm. Tuy nhiên, sau khi đã cài thành công
và nắm chắc máy có những thiết bị gì (sound card, graphic card, network cards, SCSI
card
..... ) và biết rõ cần những thành phần nào cho cấu hình của máy thì không có
lý do gì phải bao gồm trọn bộ các thứ không cần thiết và không dùng. Đối với nhân
2.4.x, mức độ nâng cao hiệu năng không rõ rệt (ngoại trừ dùng phương pháp test load
để đo). Tuy nhiên, từ phiên bản 2.6.x trở đi, việc biên dịch lại và điều chỉnh "driver"
cho nhân tạo hiệu xuất rõ rệt, nhất là trong việc điều chỉnh "thời biểu" (scheduling)
của các công tác mà hệ thống phải đảm nhiệm.
c. biên dịch lại nhân để loại bỏ những "drivers" không được dùng và có thể gây "hiểu
lầm" cho nhân, tạo ra trường hợp máy có những triệu chứng hoạt động thiếu ổn định
và hay gây lỗi.
d. biên dịch lại nhân để thử nghiệm một chức năng hoặc một module mình vừa tạo ra.
Trường hợp này không nhiều như các trường hợp trên nhưng cũng nằm trong các lý
do phổ biến.