Hạt nhân không có MMU?


10

Tôi muốn thử biên dịch kernel mmu-less. Từ những gì tôi tìm thấy trong cấu hình, không có tùy chọn cho một điều như vậy. Có thể được thực hiện?

Câu trả lời:


13

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 xconfigvà 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 .configtập tin một cách rõ ràng để thay đổi CONFIG_MMU=ythà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/*/Kconfigtương ứng với kiến ​​trúc của bạn và thay thế khổ thơ bắt đầu CONFIG MMUbằ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).


Cảm ơn bạn, Điều này cung cấp thông tin tôi cần. Tôi đã muốn sử dụng nó trên trình giả lập x86_64, dường như nó không thể biên dịch được. Dù sao đó cũng là thử nghiệm cho prt của luận án của tôi.
pfulop 17/03/2015

Điều đó không còn hiệu quả nữa. Quá trình xây dựng thay đổi CONFIG_MMU=nđể CONFIG_MMU=yvà xây dựng hạt nhân với MMU.
JohnnyFromBF

@JohnnyFromBF Tôi nghĩ rằng thuộc phạm vi của bạn, 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ộ.
Gilles 'SO- ngừng trở nên xấu xa'

1
Tôi yêu sự hài hước của những tin tặc hạt nhân.
Ciro Santilli 冠状 病毒 审查

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.