文件系统:
虚拟文件系统层:负责转换成相应的文件系统,需要文件系统驱动,让本操作系统认识该文件系统。 数据放在磁盘中,文件系统和磁盘中有。 Xv6:直接对文件系统中的文件和目录操作,驱动只有一个,调硬件的操作。 进程文件系统:将运行的进程映射到文件系统中。 大文件时,4G文件内容时:间接指针指向数据块。 超级块:用0,1标志块的使用情况。讲超级块缓存到内存中,再操作。 数据块:根据指针找数据块,多进程时,文件逻辑上是连续的,物理上不是连续的。碎片管理:在物理分布上做连续处理。 访问控制列表:ACL。针对每一个人设置对文件的访问权限。存在i节点中。 日志文件系统: 数据往磁盘写时没电了,写的过程掉电。解决:写操作时,先写日志文件,根据日志文件找,对文件系统结构做日志,不是对内容做日志。数据库是:只要是数据库数据做修改,就记录日志文件。 加载到可扩大的分区上,磁盘分区不能动态分配大小。 块数分配空间:如果块大,浪费空间。块大:浪费空间 块小:I/O太多,读的效率低。 树状结构存储:B树 找文件myfile: 在根目录下打开,找到temp目录的i结点,找到myfile的i结点,根据i结点找到文件详细信息。 物理链表的形式:(逻辑连续,物理不连续)文件第一块,通过指针指向文件第二块,文件扩大:直接找一个空块,用链表链过去。 间接指针,一个指针指向一个地址块。可以访问文件指定的位置。
Xv6文件系统:类似UNX文件, 要解决的问题: 目录:树状结构,记录哪个区域是空心啊的 支持崩溃恢复 不同的进程可同时操作文件系统,保证并行不会破坏文件系统的正常工作。 维护一个内存的Cache 文件系统结构: 自底向上: 底层:磁盘块,用cache数据,对应源码bio.c 事务:支持文件崩溃,log.c i结点和数据块的分配:fs.c 目录i结点:fs.c 递归查找,找目录:fs.c 系统函数调用:打开文件,file.c
对cache层,cache层的每一块同一时间内只有一个线程。缓存常用的块提高性能。 Bread:从磁盘中取出一块 Bwrite:把缓存区中的一块写到磁盘中 Log层:日志文件,使读写操作要么全完成,要么全不完成。先写日志,再写磁盘,磁盘上写完之后,清除日志。如果日志为空:代表磁盘写成功。如果日志非空:说明有问题。 问题:日志没写完,就崩溃,就算成该操作没做就行。 日志写完,数据块没写完:根据日志文件写到磁盘中,清空日志文件。 块分配:超级块,i结点指针,Log指针。 Balloc分配空间,首先计算块的位图,哪块空闲, i结点:file.h,操作:读文件readsb();
2019.5.22
用户:用户ID号,口令, Group权限:同一组的用户,对文件有相同的访问权限。上下文。 操作系统中存放用户信息:etc文件中,每个合法用户占一行, Username:password: 对passwd文件中,把数字ID号改成0,就变成了root.(不安全) Cd /etc more命令类似与cat命令,却比cat命令强大,不过会以一页一页的形式显示,支持vi中的关键字定位操作。cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。 More passwd Su 切到root /etc/group:查看定义了哪些 Vi group grep student group(在group中找student字符串) 获得root权限:root对操作系统有完全控制权,Root不受权限控制,所以显示用户使用root权限,不允许root远程登陆,使用root必须用su切换,可以设置哪些用户组可以使用su root,出现的问题:很多命令需要root权限。 Sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。使用权限:在 /etc/sudoers 中有出现的使用者。临时获得root权限,会过期失效。 Su – root:root是没有密码,需要先用sudo passwd设置密码。需要切换root下:su – root,用su切换,不是完全的root文件下。 Su ycy:切换用户 $表示普通用户 #表示超级用户,也就是root用户 chmod----改变一个或多个文件的存取模式(mode) https://www.runoob.com/linux/linux-comm-chmod.html alias: Linux alias命令用于设置指令的别名。alias[别名]=[指令名称] /ect/sudoers 用户名/用户组(%) 机器名(all代表多有机器)执行的命令 %wheel ALL =(ALL) ALL Wheel组可以可以执行所有机器名的所有指令。 用过sudo会在var/log/secure中记录。 增加用户:useradd,改用户:usermod,删除:userdel 文件的权限:r,w,x(执行),读权限是基本权限,x对目录来说是cd权限。写:创建目录。Ls -l查看文件权限。改权限:chmod 改文件主人需要root权限。Chown student foofile touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。 ls -l 可以显示档案的时间记录。 使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令: mkdir命令用于建立子目录 在工作目录下,建立一个名为 AAA 的子目录: mkdir AAA 在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。) mkdir -p BBB/Test
进程: ps aux ps -l:
作业:通过lab acl grade Data
