GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Antara Ukuran Blok Dan Ukuran Cluster?

Saya punya pertanyaan tentang ukuran blok dan ukuran cluster. Mengenai apa yang saya baca tentang itu, saya berasumsi sebagai berikut:

  • Ukuran blok adalah ukuran fisik sebuah blok, kebanyakan 512 byte. Tidak ada cara untuk mengubah ini.
  • Ukuran cluster adalah ukuran minimal blok yang dapat dibaca dan ditulis oleh OS. Jika saya membuat sistem file baru mis. ext3, saya dapat menentukan ukuran blok minimal ini dengan sakelar -b. Hampir semua program seperti dumpe2fs, mke2fs menggunakan ukuran blok sebagai nama untuk ukuran cluster.

Jika saya sudah mendapatkan output berikut:

$ stat test
File: `test'
Size: 13            Blocks: 4          IO Block: 2048   regular file
Device: 700h/1792d  Inode: 15          Links: 1

Apakah benar bahwa ukurannya adalah ruang sebenarnya dalam byte, blok adalah blok yang digunakan secara fisik (masing-masing 512 byte) dan blok IO terkait dengan ukuran blok yang ditentukan saat membuat FS?

Jawaban yang Diterima:

Saya pikir Anda bingung, mungkin karena Anda telah membaca beberapa dokumen yang menggunakan terminologi yang berbeda. Istilah seperti "ukuran blok" dan "ukuran cluster" tidak memiliki arti universal, bahkan dalam konteks literatur sistem file.

Sistem File

Untuk ext2 atau ext3, situasinya relatif sederhana:setiap file menempati sejumlah blok tertentu. Semua blok pada sistem file tertentu memiliki ukuran yang sama, biasanya berukuran 1024, 2048, atau 4096 byte. Sebuah file¹ yang ukurannya antara N blok ditambah satu byte dan N+1 blok menempati N+1 blok. Ukuran blok itu adalah apa yang Anda tentukan dengan mke2fs -b . Tidak ada pengertian cluster yang terpisah.

Sistem file FAT yang digunakan khususnya oleh MS-DOS dan versi awal Windows memiliki alokasi ruang yang sama sederhananya. Apa yang disebut ext2 memblokir, FAT memanggil cluster; konsepnya sama.

Beberapa sistem file memiliki skema alokasi yang lebih canggih:mereka memiliki blok berukuran tetap, tetapi dapat menggunakan blok yang sama untuk menyimpan beberapa byte terakhir dari lebih dari satu file. Ini dikenal sebagai subalokasi blok; Reiserfs dan Btrfs melakukannya, tetapi tidak ext3 atau bahkan ext4.

Utilitas

Utilitas Unix sering menggunakan kata "blok" yang berarti unit berukuran sewenang-wenang, biasanya 512 byte atau 1kB. Penggunaan ini tidak terkait dengan sistem file atau perangkat keras disk tertentu. Secara historis, blok 512B memang muncul karena disk dan sistem file pada saat itu sering dioperasikan dalam potongan 512B, tetapi penggunaan modern hanya sewenang-wenang. Utilitas dan antarmuka unix tradisional terkadang masih menggunakan blok 512B, meskipun blok 1kB sekarang sering lebih disukai. Anda perlu memeriksa dokumentasi setiap utilitas untuk mengetahui ukuran blok yang digunakan (beberapa memiliki sakelar, mis. du -B atau df -B di Linux).

Terkait:Sakelar – perbedaan antara sakelar pintar vs sakelar terkelola?

Dalam stat GNU/Linux utilitas, blocks angka adalah jumlah blok 512B yang digunakan oleh file. IO Block figure adalah ukuran yang lebih disukai untuk input-output file, yang pada prinsipnya tidak terkait tetapi biasanya merupakan indikasi ukuran blok sistem file yang mendasarinya (atau ukuran cluster jika Anda ingin menyebutnya demikian). Di sini, Anda memiliki file 13-byte, yang menempati satu blok pada sistem file ext3 dengan ukuran blok 2048; oleh karena itu file menempati 4 unit 512-byte (disebut "blok" oleh stat ).

Disk

Sebagian besar disk menyajikan antarmuka yang menunjukkan disk sebagai sekelompok sektor. Disk hanya dapat menulis atau membaca seluruh sektor, bukan bit atau byte individual. Sebagian besar hard disk memiliki sektor 512-byte, meskipun disk sektor 4kB mulai muncul beberapa tahun yang lalu.

Ukuran sektor disk tidak secara langsung terkait dengan ukuran blok sistem file, tetapi memiliki blok yang terdiri dari sejumlah sektor lebih baik untuk kinerja.

Pengecualian:file jarang menghemat ruang .


Linux
  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  3. Perbedaan Antara 2>&-, 2>/dev/null, |&, &>/dev/null Dan>/dev/null 2>&1?

  1. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  2. Perbedaan Antara Eot dan Eof?

  3. Perbedaan Antara [0-9], [[:digit:]] Dan D?

  1. Perbedaan Antara Aplikasi Gtk Dan Qt?

  2. Perbedaan Antara Perpipaan Dan Ekspansi Perintah?

  3. Perbedaan Antara Pengguna Sudo Dan Pengguna Root?