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

参考资料

原文地址:https://www.cnblogs.com/LLLLLLQL/p/6082186.html