前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux之day4 Linux文件系统

Linux之day4 Linux文件系统

作者头像
心跳包
发布2020-08-28 11:39:23
4370
发布2020-08-28 11:39:23
举报

一、Linux文件系统目录结构

1./bin

包含基本命令,如ls、cp、mkdir,这个目录中的文件都是可执行的

2./sbin

包括系统命令,如modprobe、hwclock、ifconfig,大多涉及系统管理命令

3./dev

设备存储目录,应用程序通过对这些文件的读写和控制就可以访问实际的设备。

4./etc

系统配置文件的所在地,一些服务器的配置文件也在这里,如用户账号及密码配置文件。busy的启动脚本也存放在该目录。

5./lib

系统库文件存放目录

6./mnt

/mnt这个目录一般是存放挂载储备的挂载目录的

7./opt

opt是可选的意思

8./proc

操作系统运行时,进程及内核信息存放在这里

9./tmp

有时用户运行程序的时候,会产生临时文件,/tmp用来存放临时文件的

10./usr

11./var

var表示变化的意思,这个目录的内容经常变动

12./sys

Linux2.6内核所支持的sysfs文件系统被映射在此目录

二、Linux文件系统与设备驱动

由于字符设备的上层没有磁盘文件系统,说以字符设备的file_operations成员函数直接由设备驱动提供。

而对于块存储设备而言,ext2、fat、jffs2等文件系统中会实现针对VFS的file_operations成员函数,设备驱动层看不到file_operations的存在,磁盘文件系统和设备驱动将会对磁盘上的文件的访问最终转换成对磁盘上柱面和扇区的访问。

1.file结构题

代码语言:javascript
复制
struct file
{
	union{
	struct list_head fu_list;
	struct rcu_head fu_rcuhead;
	}f_u;
	struct dentry *f_dentry;/*与文件关联的目录入口结构体*/
	struct vfsmount *f_vfamnt;
	struct file_operations *f_op;
	atomic f_count;
	unsigned int f_flags;/*文件标志*/
	mode_t f_mode;/*文件读写模式*/
	loff_t f_pos;
	struct fown_struct f_owner;
	unsigned int f_uid,f_gid;
	struct file_ra_state f_ra;
	unsigned long f_version;
	void *f_security;
	void *private_data;
	...
	struct address_space *f_mapping;

};

文件读写模式mode、标志f_flags都是设备驱动关心的内容,而私有数据结构在设备驱动中被广泛应用,大多被指向设备驱动自定义用于描述设备的结构体

2.inode 结构体

VFS inode 包含文件系统访问权限、属主、组、大小、生成时间、访问时间、最后修改时间等信息。它是Linux管理文件系统的最基本单位,也是文件系统连接任何子目录、文件的桥梁。

代码语言:javascript
复制
struct inode{
	...
	umode_t i_mode;/*inode的权限*/
	uid_t i_uid;/*inode拥有者的id*/
	gid_t i_gid;/*inode所属的群组的id*/
        dev_t i_rdev;/*若是设备文件,此字段将记录*/
	loff_t i_size;/*inode所代表的文件大小*/

	struct timespec i_atime;/*inode最近一次的存取时间*/
	struct timespec i_mtime;/*inode最近一次的修改时间*/
	struct timespec i_ctime;/*inode产生时间*/

	unsigned long i_blksize;/*inode在做I/O时的区块大小*/
	unsigned long i_blocks;/*inode所使用的block数,一个block为512 byte*/

	struct block_device *i_bdev;/*若是块设备,为其对应的block_device结构体指针*/
	struct cdev *i_dcev;/*若是字节设备,为其对应的cdev结构体指针*/
	...
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云硬盘
云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档