Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

Programming Language

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Ngôn ngữ lập trình

Nhân Linux được viết bằng ngôn ngữ lập trình C [c-ngôn ngữ]_. Chính xác hơn, nó thường được biên dịch bằng ZZ0001ZZ [gcc] trong ZZ0002ZZ [gcc-c-dialect-options]: phương ngữ GNU của ISO C11. ZZ0003ZZ [clang] cũng được hỗ trợ; xem tài liệu trên ZZ0000ZZ.

Phương ngữ này chứa nhiều phần mở rộng cho ngôn ngữ [gnu-extensions], và tất nhiên nhiều trong số chúng được sử dụng trong kernel.

Thuộc tính

Một trong những phần mở rộng phổ biến được sử dụng xuyên suốt kernel là các thuộc tính [gcc-thuộc tính-cú pháp]_. Thuộc tính cho phép giới thiệu ngữ nghĩa do việc triển khai xác định cho các thực thể ngôn ngữ (như các biến, chức năng hoặc loại) mà không cần phải thực hiện những thay đổi cú pháp đáng kể sang ngôn ngữ (ví dụ: thêm từ khóa mới) [n2049].

Trong một số trường hợp, các thuộc tính là tùy chọn (tức là trình biên dịch không hỗ trợ chúng vẫn phải tạo mã phù hợp, ngay cả khi nó chậm hơn hoặc không hoạt động như nhiều lần kiểm tra/chẩn đoán tại thời điểm biên dịch).

Hạt nhân xác định các từ khóa giả (ví dụ ZZ0000ZZ) thay vì sử dụng trực tiếp cú pháp thuộc tính GNU (ví dụ ZZ0001ZZ) để phát hiện tính năng nào có thể được sử dụng và/hoặc rút ngắn mã.

Vui lòng tham khảo ZZ0000ZZ để biết thêm thông tin.

rỉ sét

Kernel có hỗ trợ ngôn ngữ lập trình Rust [ngôn ngữ rỉ sét]_ dưới ZZ0000ZZ. Nó được biên dịch với ZZ0001ZZ [rustc] dưới ZZ0002ZZ [phiên bản rỉ sét]_. Ấn bản là một cách để giới thiệu những thay đổi nhỏ đối với ngôn ngữ không tương thích ngược.

Ngoài ra, một số tính năng không ổn định [rust-unstable-feature] được sử dụng trong hạt nhân. Các tính năng không ổn định có thể thay đổi trong tương lai, do đó đây là một điều quan trọng mục tiêu đạt đến điểm chỉ sử dụng các tính năng ổn định.

Vui lòng tham khảo Rust để biết thêm thông tin.