Jawabannya akan tergantung pada apakah Anda benar-benar berarti tanpa sistem file atau jika pertanyaan ini dimaksudkan untuk ditafsirkan sedikit berbeda dari bagaimana sebenarnya dinyatakan. Jawaban untuk sedikit variasi dalam bagaimana pertanyaan ditafsirkan adalah:
- Menjalankan Linux tanpa perangkat blok apa pun sepenuhnya dapat dilakukan dan berguna untuk beberapa kasus penggunaan khusus.
- Menjalankan Linux tanpa sistem file apa pun akan membutuhkan penulisan ulang beberapa bagian dari kode kernel dan sepertinya itu bukan upaya yang bermanfaat.
- Menjalankan Linux tanpa menggunakan deskriptor file apa pun akan membutuhkan banyak usaha. Saya cukup yakin itu tidak akan sepadan dengan usaha.
Alasan Anda harus menulis ulang bagian dari kode kernel untuk membuat sistem yang berfungsi tanpa sistem file adalah:
- Setiap utas memiliki direktori root dan direktori kerja saat ini yang harus mengarah ke beberapa sistem file.
- Program dimulai oleh
execve
pemanggilan sistem yang memerlukan eksekusi dari sistem file.
- Kernel menciptakan sistem file berbasis memori selama proses boot.
Setelah program mulai digunakan execve
, dimungkinkan untuk menghapus peta yang dapat dieksekusi dari mana ia dimulai, meskipun untuk melakukannya tanpa segera men-crash-nya terlebih dahulu harus membuat pemetaan memori yang dapat dieksekusi yang tidak didukung oleh file, dan harus menginisialisasi dengan beberapa kode yang berguna sebelum melompat ke sana dan unmapping yang dapat dieksekusi.
Dengan demikian program mode pengguna yang berjalan dapat ada dalam keadaan di mana ia tidak memiliki pemetaan memori yang didukung oleh file dan dapat menutup semua deskriptor file yang didukung oleh file. Itu tidak bisa berhenti memiliki direktori root dan direktori kerja saat ini, tetapi bisa menahan diri dari itu.
Jadi meskipun dalam kondisi ini Anda dapat menerapkan kode kernel untuk merobek sistem file dari bawah program dan membuatnya tetap berjalan, itu tidak terdengar seperti itu berguna. Dan memasuki kondisi akhir tanpa melalui kondisi perantara menggunakan sistem file akan menjadi lebih banyak pekerjaan tanpa manfaat yang bermanfaat.
Pengaturan yang berguna untuk beberapa kasus penggunaan khusus
Menghindari penggunaan perangkat blok dapat bermanfaat. Selama boot kernel menciptakan sistem file memori, dan itu juga dapat mengisi sistem file itu dengan konten dari cpio
arsip sebelum dieksekusi init
. Dengan begitu Anda dapat menjalankan sistem sepenuhnya dari sistem file berbasis memori tanpa perangkat blokir untuk mendukungnya.
Ini dapat berguna untuk sistem di mana Anda tidak ingin mempertahankan keadaan apa pun dan menyukai sistem untuk memulai dari yang bersih setelah me-reboot.
Tentu saja kernel dan arsip cpio harus mendapatkan entah bagaimana ada di memori sebelum kernel diberikan kontrol. Bagaimana mereka sampai di sana adalah pekerjaan untuk boot loader. Boot loader bisa memuatnya dari perangkat blok meskipun sistem terakhir yang berjalan tidak menggunakan perangkat blok. Tetapi boot loader juga dimungkinkan untuk mendapatkan arsip kernel dan cpio tanpa menggunakan perangkat blok misalnya dengan mem-boot melalui jaringan.
useful exposure to the outside world