struct super_block {
struct list_heads_list /* Keep this first */
dev_ts_dev /* search index_not_ kdev_t */
unsigned chars_dirt
unsigned chars_blocksize_bits
unsigned longs_blocksize
loff_ts_maxbytes /* Max file size */
struct file_system_type*s_type
const struct super_operations*s_op
const struct dquot_operations*dq_op
const struct quotactl_ops*s_qcop
const struct export_operations *s_export_op
unsigned longs_flags
unsigned longs_magic
struct dentry*s_root
struct rw_semaphores_umount
struct mutexs_lock
ints_count
atomic_ts_active
#ifdef CONFIG_SECURITY
void*s_security
#endif
const struct xattr_handler **s_xattr
struct list_heads_inodes /* all inodes */
struct hlist_heads_anon /* anonymous dentries for (nfs) exporting */
#ifdef CONFIG_SMP
struct list_head __percpu *s_files
#else
struct list_heads_files
#endif
/* s_dentry_lru and s_nr_dentry_unused are protected by dcache_lock */
struct list_heads_dentry_lru /* unused dentry lru */
ints_nr_dentry_unused /* # of dentry on lru */
struct block_device*s_bdev
struct backing_dev_info *s_bdi
struct mtd_info*s_mtd
struct list_heads_instances
struct quota_infos_dquot /* Diskquota specific options */
ints_frozen
wait_queue_head_ts_wait_unfrozen
char s_id[32] /* Informational name */
void *s_fs_info /* Filesystem private info */
fmode_ts_mode
/* Granularity of c/m/atime in ns.
Cannot be worse than a second */
u32 s_time_gran
/*
* The next field is for VFS *only*. No filesystems have any business
* even looking at it. You had been warned.
*/
struct mutex s_vfs_rename_mutex /* Kludge */
/*
* Filesystem subtype. If non-empty the filesystem type field
* in /proc/mounts will be "type.subtype"
*/
char *s_subtype
/*
* Saved mount options for lazy filesystems using
* generic_show_options()
*/
char *s_options
}
超级块(SuperBlock)包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。MBR(MasterBootRecord),中文意为主引导记录。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partitiontable区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。他是不属于任何一个 *** 作系统,也不能用 *** 作系统提供的磁盘 *** 作命令来读取它。但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。附:liunx和unix是为了做服务器用途的,它必须保证365*24运行,它的设计就决定不需要整理磁盘碎片。一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。大部分UNIX文件系统种类具有类似的通用结构,即使细节有些变化。其中心概念是超级块superblock,i节点inode,数据块datablock,目录块directoryblock,和间接块indirectionblock。超级块包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。i节点包括除了名字外的一个文件的所有信息,名字与i节点数目一起存在目录中,目录条目包括文件名和文件的i节点数目。i节点包括几个数据块的数目,用于存储文件的数据。i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间。这些动态分配的块是间接块;为了找到数据块,这名字指出它必须先找到间接块的号码。UNIX文件系统通常允许在文件中产生孔(hole),意思是文件系统假装文件中有一个特殊的位置只有0字节,但没有为这文件的这个位置保留实际的磁盘空间(这意味着这个文件将少用一些磁盘空间)。这对小的二进制文件经常发生,Linux共享库、一些数据库和其他一些特殊情况。(孔由存储在间接块或i节点中的作为数据块地址的一个特殊值实现,这个特殊地址说明没有为文件的这个部分分配数据块,即,文件中有一个孔。)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)