Câu hỏi này là về bảo trì và kiểm tra cấu hình.Làm thế nào để hạt nhân Linux duy trì số lượng lớn các tùy chọn cấu hình?
Khi sử dụng sai, #ifdef, #ifndef, #elseif, #elif, #else, #endif
hướng dẫn tiền xử lý không chỉ làm giảm khả năng đọc và bảo trì mã C, mà còn làm tăng nguy cơ lỗi hồi quy (ví dụ: khi cấu hình xây dựng cụ thể chưa được thử nghiệm trong một khoảng thời gian nhất định).
Tôi tự hỏi làm thế nào hạt nhân Linux có thể duy trì số lượng lớn các tùy chọn cấu hình mà không cần chạy vào một địa chỉ bảo trì hoàn chỉnh?
Tôi hiểu rằng điều này là cần thiết để linh hoạt cho tất cả các loại phần cứng khác nhau, nhưng số lượng tuyệt đối tùy chọn cấu hình trông thực sự đáng sợ với tôi với tư cách là nhà phát triển ứng dụng.
Bạn sẽ coi trọng câu nào sau đây?
- Hầu hết các nhà cung cấp chỉ sử dụng một tập hợp các cấu hình tiêu chuẩn cho nền tảng mục tiêu của họ, do đó hầu hết các kết hợp cấu hình có thể không phải là những thử nghiệm và cũng không sử dụng
- Một hướng dẫn mã hóa rất nghiêm ngặt tồn tại cho phép sự ra đời của mới
#ifdef's
chỉ cho các phần mã có thể phân tách rõ ràng, nơi có ý nghĩa vô hiệu hóa tính năng (và đúng người chịu trách nhiệm đưa ra các quyết định này) - Có rất nhiều người thử nghiệm cho mỗi bản phát hành hạt nhân mới mà lỗi liên quan đến cấu hình được khắc phục kịp thời, vì hầu hết trong số họ có khả năng chỉ xây dựng các hồi quy
EDIT: Tôi nhận ra rằng có các máy thử nghiệm chọn cấu hình ngẫu nhiên và kiểm tra xem chúng có tạo và khởi động hay không. Tuy nhiên, các thử nghiệm xây dựng/khởi động đơn giản này không thể phát hiện bất kỳ hồi quy nghiêm trọng nào khác ngoài các lỗi phá vỡ mọi thứ
Tùy chọn bị thiếu: (*) chỉ cho phép những người hợp lý quyết định điều gì sẽ xảy ra và làm thế nào nó vào. – wildplasser
Tôi không phải chuyên gia để trả lời, nhưng tôi có thể dự đoán rằng cấu hình chủ yếu chọn tệp nào đi ra khỏi xây dựng. Nếu bạn xây dựng thành kiến trúc X thì mọi kiến trúc khác sẽ được giữ trong quá trình xây dựng. –
Tôi không nghĩ rằng đây chỉ là về kiến trúc và toàn bộ trình điều khiển, vì có tồn tại các tùy chọn cấu hình cho vô số các tính năng cấp thấp – Mike76