20145304 《信息安全系统设计基础》第十周学习总结
20145304 《信息安全系统设计基础》第十周学习总结
教材学习内容总结
别出心裁的Linux系统
- 操作系统通过三抽象概念完成了「管家婆」的功能:
通过「文件」对I/O设备进行了抽象
通过「虚存」对主存和I/O设备进行了抽象
通过「进程」对CPU、主存和I/O设备进行了抽象 - 一般来说,操作系统通过三个服务完成了「服务生」的概念:
GUI:为小白用户提供服务,你只会用鼠标就可以使用操作系统
Shell: 为高级用户提供服务,你要记忆系统命令,更多通过键盘使用操作系统
系统调用:为专业用户程序员提供服务,你可以创建自己的工具让大家更好的使用操作系统 - 使用系统调用的三种方法:
1.通过 int 指令陷入:通过软中断指令int 0x80 来陷入内核态
2.使用 syscall 直接调用, glibc没有封装某个系统调用时可以
3.通过 glibc 提供的API调用,最方便的方法 - 学习系统调用可通过解决以下三个问题来实现:
1.它能做什么?
2.它是如何实现的?
3.能不能自己编写一个?
who命令
-
who能做什么?
每一行代表一个已登录的用户,所显示的内容从左向右依次是:用户名、终端名、登录时间、登陆地址(通常不显示)
-
who是如何实现的?
who命令通过打开utmp文件,读取信息,关闭文件。
-
编写who
who1运行结果
who2运行结果
ls命令
- ls能做什么
ls:读取文件名和文件属性,按照字典序排序后输出。
包含7个字段:
模式 每行的第一个字符表示文件类型,“-”代表普通文件,“d”代表目录文件。
链接数 指该文件被引用的次数
文件所有者 指出文件所有者的用户名
组 指出文件所有者所在的组
大小 显示文件的字节数
最后修改时间 文件的最后修改时间
文件名 文件名
常用命令:
ls -l 以长格式的形式查看当前目录下所有可见文件的详细属性
ls -a 列出的内容包含以“.”开头的文件
ls -lu 最后访问时间
ls -s 以块为单位的文件大小
ls -t 按时间排序
ls -F 显示文件类型
-ls是如何实现的?
文件树:文件和目录被组织成目录树(tree),节点是目录或者文件。目录是一种特殊文件,文件内容就是目录和文件的名字,与utmp类似,目录不会为空,至少包括.
和..
两项。
- 编写ls。
ls1.c运行结果
ls2.c运行结果
代码运行结果
-
cp1.c复制文件
-
echostate.c用来检查命令行中的提示符是否显示的,如果显示,输入的命令都可见,不显示则表示输入的命令不可见
-
fileinfo.c显示文件信息
-
filesize.c显示文件etc/passwd的大小
-
setecho.c可以改变符号显示状态,no是不显示符号,yes是显示
-
spwd.c显示到达当前目录的路径
-
testioctl.c统计当前命令行行数
本周代码托管截图
链接:https://git.oschina.net/20145304/computer-systems
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第五周 | 30/60 | 1/5 | 10/32 | |
第七周 | 0/160 | 1/7 | 8/48 | |
第八周 | 0/160 | 1/8 | 5/53 | |
第九周 | 157/317 | 1/9 | 7/60 | |
第十周 | 647/964 | 1/10 | 6/66 |