(Agak terlambat untuk jawabannya ...)
Bagaimana sebuah file menjadi ukuran nol sedikit lebih rumit daripada yang disediakan oleh jawaban di atas. Pertanyaan ini ditandai dengan Win7, tetapi melihat sistem file "sederhana" lainnya seperti FAT atau NTFS , mungkin berguna karena konsepnya sama.
Disk tidak "tahu" apa itu file dan apa itu direktori; itu semua data dalam blok kecil. OS membedakan antara arti dari blok data. Beberapa yang pertama khusus, tetapi sisa blok menyimpan informasi tentang data (misalnya: nama file, panjang file, blok data pertama yang menyimpan data), atau data itu sendiri.
Direktori adalah "file" khusus yang "data" -nya dimengerti oleh OS adalah blok informasi yang berisi informasi tentang file, bukan konten file. Analogi yang baik adalah perpustakaan fisik dan katalog kartu. Pikirkan blok informasi sebagai katalog kartu dan rak sebagai blok data (katalog kartu juga berada di struktur seperti rak).
Ketika Anda "membuat" file (katakan dengan touch
perintah UNIX ), OS pertama-tama membuat entri di blok informasi (direktori), dengan yang berikut ini:
- Name = My_File.txt
- Panjang = 0
- Memulai Blok Data = N / A
- Info tambahan (pemilik, izin, tanggal dibuat / diperbarui / dimodifikasi), dll
Hanya jika ada beberapa data untuk "menulis", ia mencoba untuk menemukan blok data kosong untuk menyimpan data. Tetapi blok data datang dalam ukuran tetap (katakanlah 32K) nyaman untuk disk untuk sampai dan OS untuk membaca. Jika Anda hanya menulis "Halo", sebagian besar bloknya "kosong" (sebenarnya mungkin bukan nol, tetapi sampah dari apa yang ada di sana sebelumnya), jadi tabel tersebut juga memperbarui ukuran dengan panjang (misalnya 5 karakter + Akhir dari File) sehingga Anda tidak mendapatkan hal-hal buruk.
Ketika Anda memperbarui "file" ke panjang> ukuran blok, OS menulis data ke blok baru dan memperbarui blok data untuk mengatakan file berlanjut ke blok berikutnya SETELAH yang pertama (dan seterusnya) dan panjangnya diperbarui panjang baru (detail berbeda).
Yang akhirnya Anda dapatkan adalah kumpulan blok data informasi (direktori atau daftar) dengan informasi tentang rantai blok data (konten file).
Logikanya, ini juga menjelaskan mengapa suatu file bergerak pada sistem file yang sama berkedip cepat sementara salinannya memakan waktu lama. OS hanya perlu mengedit 2 blok direktori untuk menghapus entri dari satu direktori (blok data informasi) dan menambah yang lain. Hapus file: cukup hapus entri di blok direktori, membebaskan blok data file yang akan dialokasikan kembali.
ps: Hanya karena katalog kartu memiliki entri untuk sebuah buku tidak berarti itu ada di rak (mungkin sudah hilang atau hilang); ukuran file 0.
pps: Buku yang salah tempat di dalam perpustakaan menyiratkan perpustakaan pencarian, atau dalam istilah komputer: chkdsk atau disk perbaikan!
Pemahaman yang lebih besar dapat diperoleh dengan membaca tentang UNIX inode atau menghargai bagaimana sistem kontrol versi (ClearCase, TFS, Git, dll.) Mengelola tidak hanya file dan direktori, tetapi juga versi file dan bahkan versi direktori. Dalam kebanyakan kasus, semuanya disimpan dalam database dan disajikan kepada pengguna untuk tampil sebagai struktur dan file direktori klasik!