2010-07-20 32 views
6

Nếu tôi muốn thực thi chương trình người dùng (không phải là mô-đun hạt nhân) trong không gian hạt nhân Linux, tôi có những tùy chọn nào?Thực hiện chương trình trong không gian hạt nhân trong Linux

Tôi đã xem KML (Linux chế độ hạt nhân) nhưng đó là đặc trưng cho kiến ​​trúc IA-32. Tôi muốn có một giải pháp mà là nền tảng chéo và có thể làm việc trên các hệ thống Linux nhúng.

+0

Tại sao chương trình này cần chạy ở chế độ lõi? –

Trả lời

3

Lập trình hạt nhân là khá nhiều theo nền tảng định nghĩa cụ thể, vì hạt nhân cho các nền tảng khác nhau đều khác nhau.

5

Chương trình người dùng không thực thi trong không gian hạt nhân - đó là điều làm cho chúng trở thành chương trình người dùng.

Nếu bạn muốn thực thi mã trong không gian hạt nhân, bạn có hai tùy chọn: xây dựng nó vào hạt nhân, hoặc tải nó bằng một mô-đun hạt nhân.

+0

Bởi chương trình người dùng tôi có nghĩa là một chương trình được biên dịch để chạy trong không gian người dùng tức là bởi exec * các cuộc gọi hệ thống hoặc bất kỳ cách nào khác. Mô hình hạt nhân Linux hoặc KML cho phép chúng ta chạy các chương trình này trong không gian hạt nhân Linux mà không có bất kỳ sửa đổi nào nhưng nó đặc trưng cho kiến ​​trúc IA32. Tôi đang tìm kiếm có thể làm việc trên nhiều kiến ​​trúc. – binW

4

Bạn đã viết trong một câu hỏi khác mà bạn là người mới đến lập trình hạt nhân. Việc sử dụng KML rất độc đáo và sẽ phức tạp hơn nhiều khi thực hiện mọi việc theo cách tiêu chuẩn. Điều đó sẽ làm cho việc học của bạn khó khăn hơn nhiều. Tôi sẽ đề nghị rằng lựa chọn tốt nhất của bạn là đánh giá lại lý do tại sao bạn muốn chạy một ứng dụng không gian người dùng trong không gian hạt nhân và tìm cách không làm điều đó.

Có thể có lý do chính đáng để làm một điều như vậy, nhưng không rõ lý do đó có thể là gì. Một điều bạn nên hiểu với phát triển hạt nhân là chỉ vì một cái gì đó là có thể, nó không nhất thiết phải làm điều gì đó.

Nếu bạn thực sự muốn có giải pháp nền tảng chéo, bạn sẽ phải tự viết nó. Kiến trúc duy nhất được KML hỗ trợ là IA32 và AMD64.

3

Hãy xem FemtoLinux. Về cơ bản, nó là một KML cho các hệ thống nhúng và xử lý nhúng như ARM và MIPS

+0

Tôi có thể lấy femtolinux ở đâu. Họ không có liên kết tải xuống ở đó. – binW

+0

Hãy thử gửi email cho họ – Demiurg

3

call_usrmodehelper

+0

Tôi hơi muộn trò chơi, nhưng tôi chỉ đang tìm kiếm một điều tương tự, và đây sẽ là câu trả lời đúng. Để được chính xác, đây là cách bạn gây ra một chương trình không gian người dùng để bắt đầu từ không gian hạt nhân, đó là những gì tôi tin rằng ý định ban đầu của OP. – John

0

Nếu bạn muốn bắt đầu một chương trình sử dụng từ vũ trụ hạt nhân, hãy nhìn vào run_init_process(). Đó là cách hạt nhân chạy chương trình init.

Các vấn đề liên quan