linux系统编程第一章

LINUX系统编程,学一下这本书,今天,2015年10月2日,要把这本书看懂,并把要点总结在这篇博客里。

1章

系统软件基于内核,c库实现

3大基石:系统调用,c库,c编译器

调用系统调用,执行内核允许的代码

应用程序用寄存器告诉系统调用哪个系统调用,每个系统调用一个编号。参数也在寄存器中,多的话用一个寄存器指向存储参数的用户空间。

glibc

一切皆文件

内核使用文件描述符,元数据到文件的映射。

写文件是覆盖的,不要顾虑。

文件末尾后追加,中间变0

linux中文件位置符64位

系统为每个打开的文件实例弄一个文件描述符

索引节点与文件关联,在本文件系统中是唯一的,在系统眼里,inode就是文件

链接:文件名--》inode

目录使用文件储存的,目录也有关联的索引节点,这地方不太懂?估计是软链接的集合。

搜索目录的时候是一个索引节点链接到另一个索引节点

目录不同于普通文件,不支持普通操作。

索引节点有链接计数,如果为0就删除文件,软链接算不算链接计数?对,软链接不影响链接计数

软链接跨文件系统,实现快捷方式

字符设备文件,块设备文件:磁盘,设备驱动吧字节映射到可寻址的设备上

fifo特殊文件,命名管道,一个进程的输出是另一个进程的输入

套接字进程间通信

linux系统命名空间是全局的

添加删除文件系统,挂载和卸载,挂载到命名空间的某个位置,哦,在命名空间中找个位置叫挂载

第一个挂载的是根文件系统

内存中的虚拟文件系统

块设备用扇区《文件系统块《内存页

进程关联的系统资源由内核管理

bss段描写不太懂?

linux内核实现了独特的线程模型:可共享某些资源的进程。

用户空间内使用glibc库

进程树,第一个进程是init,如果子进程先死,其父进程是init

僵尸进程?一个数据结构:进程号,运行时间,退出状态。占用进程号,可能造成别的进程没号了。

pid全局唯一

运行的进程对应一个uid

uid是用户标识,/etc/passwd中用户名映射到uid

用户登录后,uid就是shell进程的uid,子进程继承父进程uid。好,连起来了。

root的uid为0

组?

权限:所有者,所有组,其他人,读写执行,在inode中储存

特殊文件忽略执行权限

目录读是列出,写是添加链接,执行?
















参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

王神

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值