Câu trả lời sẽ phụ thuộc vào việc bạn thực sự có nghĩa là không có hệ thống tập tin hay nếu câu hỏi được dự định sẽ được giải thích một chút khác biệt so với cách nó được nêu thực sự. Các câu trả lời cho các thay đổi nhỏ trong cách giải thích câu hỏi là:
- Chạy Linux mà không có bất kỳ thiết bị khối nào là hoàn toàn khả thi và hữu ích cho một số trường hợp sử dụng chuyên biệt.
- Chạy Linux mà không có bất kỳ hệ thống tệp nào sẽ yêu cầu viết lại một số phần của mã hạt nhân và nó không chắc là một nỗ lực hữu ích.
- Chạy Linux mà không sử dụng bất kỳ mô tả tệp nào sẽ đòi hỏi rất nhiều nỗ lực. Tôi khá chắc chắn rằng điều đó sẽ không đáng để nỗ lực.
Những lý do bạn phải viết lại các phần của mã hạt nhân để tạo ra một hệ thống làm việc không có hệ thống tệp là:
- Mỗi luồng có một thư mục gốc và một thư mục làm việc hiện tại phải trỏ đến một số hệ thống tệp.
- Các chương trình được bắt đầu bằng lệnh
execve
gọi hệ thống cần thực thi từ hệ thống tệp.
- Nhân tạo một hệ thống tệp dựa trên bộ nhớ trong quá trình khởi động.
Sau khi một chương trình đã được bắt đầu sử dụng, execve
nó có thể hủy sơ đồ thực thi mà nó đã được khởi động, mặc dù vậy, để làm như vậy mà không bị sập ngay lập tức, trước tiên phải tạo một ánh xạ bộ nhớ thực thi không được hỗ trợ bởi một tệp, và nó phải khởi tạo nó với một số mã hữu ích trước khi nhảy tới nó và hủy ánh xạ thực thi.
Do đó, một chương trình chế độ người dùng đang chạy có thể tồn tại ở trạng thái không có ánh xạ bộ nhớ được hỗ trợ bởi các tệp và nó có thể đóng tất cả các mô tả tệp được hỗ trợ bởi các tệp. Nó không thể ngừng có một thư mục gốc và thư mục làm việc hiện tại, nhưng nó có thể kiềm chế những thư mục đó.
Vì vậy, mặc dù trong trạng thái này, bạn có thể triển khai mã hạt nhân để tách hệ thống tệp ra khỏi chương trình và để nó tiếp tục chạy, nhưng nó không có vẻ như nó hữu ích. Và đi vào trạng thái cuối cùng mà không trải qua trạng thái trung gian sử dụng hệ thống tệp sẽ còn làm việc nhiều hơn mà không có lợi ích hữu ích.
Một thiết lập hữu ích cho một số trường hợp sử dụng chuyên biệt
Tránh sử dụng các thiết bị khối có thể hữu ích. Trong quá trình khởi động, kernel tạo ra một hệ thống tệp bộ nhớ và nó cũng có thể tạo ra hệ thống tệp đó với nội dung từ cpio
kho lưu trữ trước khi thực hiện init
. Bằng cách đó, bạn có thể chạy một hệ thống hoàn toàn từ một hệ thống tệp dựa trên bộ nhớ mà không cần bất kỳ thiết bị chặn nào để sao lưu nó.
Điều này có thể hữu ích cho các hệ thống mà bạn không muốn duy trì bất kỳ trạng thái nào và như hệ thống bắt đầu từ một bảng xếp hạng sạch khi khởi động lại.
Tất nhiên, kho lưu trữ kernel và cpio phải tồn tại bằng cách nào đó tồn tại trong bộ nhớ trước khi kernel được kiểm soát. Làm thế nào họ có được một công việc cho bộ tải khởi động. Bộ tải khởi động có thể đã tải những thứ đó từ một thiết bị khối mặc dù hệ thống đang chạy cuối cùng không sử dụng các thiết bị khối. Nhưng bộ tải khởi động cũng có thể có được kho lưu trữ kernel và cpio mà không cần sử dụng thiết bị chặn chẳng hạn bằng cách khởi động qua mạng.
useful exposure to the outside world