操作系统Linux系统,在Linux系统中,如果一个盘块的大小为1KB?
楼上复制回来的东西
一个UNIX/Linux文件,如果一个盘块的大小为1024B,每个盘块占4个字节,直接寻址为10块,一次间接寻址为256块,二次间接寻址为256*256块,三次间接寻址为256*256*256块,那么,偏移为272383节处的数据在( )。
答:UNIX/Linux文件系统中,一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放256个地址。直接寻址为10块,一次间接寻址为256块,二次间接寻址为256二次方块,三次间接寻址为256三次方块。
首先将逻辑文件的字节偏移量转换为文件的逻辑块号和块内偏移。方法是:将逻辑文件的字节偏移量/盘块大小,商为文件的逻辑块号,余数是块内偏移;再将文件的逻辑块号转换为物理块号,使用多重索引结构,在索引节点中根据逻辑块号通过直接索引或间接索引找到对应物理块号。
偏移为263168字节的逻辑块号是:263168/1024=257。块内偏移量=263168-257×1024=0。由于10
1KB = 1024B
同理可得 9999/1024 =9…..783 故选AA. i.addr+ 783,第十块的783处
linux在新分区建立文件系统的命令?
mkfs
创建文件系统: 磁盘分区之后要创建文件系统,即格式化。在LINUX下可以用命令mkfs来完成文件系统的创建工作。实际上,不同种类的文件系统,都有特定的程序格式化,mkfs只是一个为了建立不同文件系统类型,确定运行不同程序的一个前端,比如用mkfs建立ext2文件系统,mkfs将调用mkefs命令来完成。
Linux系统下生成一个指定大小的文件要注意什么?
用dd命令或者 truncate 命令。
dd if=/dev/zero of=file bs=1024 count=10if 表示inputfile 输入文件of 表示 outputfile 输出文件bs 表示 blocksize 块大小count 表示 bs 的数量 被复制的文件大小为 bs × count以上命令从/dev/zero 读取 0字节 去填充file文件。大小为 1024*10字节rm -f file#删除file 文件truncate -s $((10*1024)
) filetruncate命令专门用于 截短或扩增文件到指定大小。-s选项表示 size 单位默认是字节创建 10M 空文件
linux存储架构详解?
大部分的Linux文件系统(如ext2、ext3)规定,一个文件由目录项、inode和数据块组成:
目录项:包括文件名和inode节点号。
Inode:又称文件索引节点,包含文件的基础信息以及数据块的指针。
数据块:包含文件的具体内容。
一、目录块
Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。
目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。
ls命令只列出目录文件中的所有文件名: ls /etc
ls -i命令列出整个目录文件,即文件名和inode号码: ls -i /etc
如果要查看文件的详细信息,就必须根据inode号码,访问inode节点,读取信息。ls -l命令列出文件的详细信息。 ls -l /etc
二、Inode
1、inode是什么
理解inode,要从文件储存说起。
文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4KB,即连续八个sector组成一个block。
文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的“元信息”,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
inode包含文件的元信息内容(除了文件名之外所有的文件信息)
文件的字节数。
文件类型。
文件拥有者的User ID。
文件的Group ID。
文件的读、写、执行权限。
文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
链接数,即有多少文件名指向这个inode。
文件数据block的位置(数据块指针)。
2、inode的大小
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。
3、inode号码
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。
这里值得重复一遍,Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。三、数据块
数据块就是在磁盘上存储数据的地方,使用文件的时候由操所系统索引inode来调用相应的文件
补充:创建一个新文件的操作
存储属性
内核先找到一个空闲的 i 节点(这里是131074 )
内核把文件信息记录到其中存储数据
该文件需要存储在三个磁盘块,内核找到了三个空闲块:300、500、800
将内核缓冲区的第一块数据复制到300,下一块复制到500,以此类推记录分配情况
文件内容按顺序 300、500、800存放,内核在 inode 上的磁盘分布区记录了上述块列表。
linux usb是属于块设备还是字符设备?
linux usb是属于块设备。
Linux按照信息组织特征将设备分为三类,分别是
字符设备:以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有寻道操作。例如打印机,网络接口,鼠标。
块设备:把信息存储在固定大小的块中,每个块有自己的地址。通常块的大小在512字节和65536字节之间。所有传输以一个或多个完整的(连续的)块为单位。基本特征:每个块都能独立于其他块而读写。例如硬盘,蓝光光盘,USB盘。
网络设备:通过套接字完成通信
块设备和字符设备的区别:
字符设备只能顺序读取,块设备可以随机读取;
块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接读取物理磁盘,不经过系统缓存。在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生,而块设备利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作。因此,块设备主要是针对磁盘等慢速设备设计的,以免消耗过多的CPU时间来等待;
在操作系统设备管理功能中设备按照独占性设备,共享性设备,虚拟设备进行设备分配 而独占型设备包含所有的字符设备,共享型设备包含所有的块设备。