Câu trả lời:
Bạn có thể biên dịch nhân Linux mà không cần hỗ trợ MMU trên hầu hết các kiến trúc bộ xử lý, bao gồm x86. Tuy nhiên, vì đây là cấu hình hiếm chỉ dành cho người dùng biết họ đang làm gì, nên tùy chọn này không được bao gồm trong menu được hiển thị bởi make menuconfig
, make xconfig
và tương tự, ngoại trừ một vài kiến trúc cho các thiết bị nhúng trong đó thiếu MMU là tương đối phổ biến. Bạn cần chỉnh sửa .config
tập tin một cách rõ ràng để thay đổi CONFIG_MMU=y
thành CONFIG_MMU=n
. Ngoài ra, bạn có thể làm cho tùy chọn xuất hiện trong menu bằng cách chỉnh sửa tệp arch/*/Kconfig
tương ứng với kiến trúc của bạn và thay thế khổ thơ bắt đầu CONFIG MMU
bằng
config MMU
bool "MMU support"
default y
---help---
Say yes. If you say no, most programs won't run.
Ngay cả khi bạn làm cho tùy chọn xuất hiện trong các menu, bạn có thể cần phải điều chỉnh cấu hình kết quả để làm cho nó phù hợp với nội bộ. Các hệ thống x86 không có MMU rất bất thường.
Cách dễ nhất để thử nghiệm với hệ thống không có MMU là chạy hệ thống không có MMU chính hãng trong trình giả lập, sử dụng cấu hình nhân Linux do nhà cung cấp phần cứng cung cấp hoặc với trình giả lập.
Trong trường hợp điều này không rõ ràng, các hệ thống Linux bình thường cần có MMU. Nhân Linux có thể được biên dịch cho các hệ thống không có MMU, nhưng điều này đưa ra các hạn chế ngăn không cho nhiều chương trình chạy. Bắt đầu bằng cách đọc hỗ trợ ánh xạ bộ nhớ No-MMU . Tôi không nghĩ rằng bạn có thể sử dụng glibc mà không cần MMU, thay vào đó , ClClCl thường được sử dụng. Tài liệu từ dự án chanhClinux cũng có thể có liên quan (GianClinux là dự án ban đầu cho Linux không có MMU, mặc dù hiện nay hỗ trợ cho các hệ thống không có MMU đã được tích hợp vào cây nhân chính vì vậy bạn không cần sử dụng chanhClinux).
CONFIG_MMU=n
để CONFIG_MMU=y
và xây dựng hạt nhân với MMU.
hãy xem ELKS (tập hợp nhân linux có thể nhúng) hoặc verison 1 của Minix