Bisakah file disimpan tidak secara berurutan pada disk? Maksud saya, bagian dari file terletak di bawah alamat fisik X dan bagian lainnya di bawah alamat fisik Y yang tidak dekat dengan X + offset).
Iya nih; ini dikenal sebagai fragmentasi file dan tidak jarang, terutama dengan file yang lebih besar. Sebagian besar sistem file mengalokasikan ruang sesuai kebutuhan, lebih atau kurang secara berurutan, tetapi mereka tidak dapat menebak perilaku di masa mendatang - jadi jika Anda menulis 200MiB ke file, kemudian menambahkan 100MiB lebih lanjut, ada peluang bukan-nol bahwa kedua set data akan disimpan di area disk yang berbeda (pada dasarnya, penulisan lain yang membutuhkan lebih banyak ruang pada disk, yang terjadi setelah penulisan pertama dan sebelum yang kedua, dapat dilakukan di antara keduanya). Jika sistem file hampir penuh, situasinya biasanya akan menjadi lebih buruk: mungkin tidak ada area bersebelahan dari ruang kosong yang cukup besar untuk menampung file baru, sehingga harus dipecah-pecah.
Dapatkah saya entah bagaimana mengontrol urutan file? Saya ingin mengalokasikan file besar 10GB. Saya ingin berurutan dalam disk dan tidak dibagi di antara berbagai offset.
Anda bisa memberi tahu filesystem tentang ukuran target file Anda ketika itu dibuat; ini akan membantu sistem file menyimpannya secara optimal. Banyak sistem file modern menggunakan teknik yang dikenal sebagai alokasi tertunda, di mana tata letak pada-disk dari file baru dihitung selambat mungkin, untuk memaksimalkan informasi yang tersedia ketika perhitungan dilakukan. Anda dapat membantu proses ini dengan menggunakan posix_fallocate(3)
fungsi untuk memberi tahu sistem file berapa banyak ruang disk yang harus dialokasikan secara total. Sistem file modern akan mencoba melakukan alokasi ini secara berurutan.
Apakah itu bertindak secara berbeda antara berbagai jenis?
Sistem file yang berbeda berperilaku berbeda, ya. Filesystem berbasis log seperti NILFS2 tidak mengalokasikan penyimpanan dengan cara yang sama seperti filesystem berbasis luas seperti Ext4, dan itu hanya satu contoh variasi.