《深入理解LINUX内核》第三版 读后笔记----第一章 绪论

内核版本为2.6.11的正式版,下载地址http://www.kernel.org

linux版本,每个版本号用三个数字描述,由圆点分隔。前两个数字用来表示版本号,第三个数字表示发布号。第一位版本号2从1996年开始就没有变过。第二位版本号表示内核的类型:如果为偶数,表示稳定的内核;否则,表示开发中的内核。

操作系统必须完成两个主要目标:

①、与硬件部分交互,为包含在硬件平台上的所有低层可编程部件提供服务。

②、为运行在计算机系统上的应用程序(即所谓用户程序)提供执行环境。

多用户系统就是一台能并发和独立地执行分别属于两个或多个用户的若干应用程序的计算机。

并发意味着几个应用程序能同时处于活动状态并竞争各种资源,如CPU、内存、硬盘等。

独立意味着每个应用程序能执行自己的任务,而无需考虑其他用户的应用程序在干些什么。

硬链接有两方面的限制:

①、不允许用户给目录创建硬链接。因为这可能把目录变为环形图,从而就不可能通过名字定位一个文件。

②、只有在同一文件系统中的文件之间才能创建链接。这带来比较大的限制,因为现代Unix系统可能包含了多种文件系统,这些文件系统位于不同的磁盘和/或分区,用户也许无法知道它们之间的物理划分。

软链接也称为符号链接。符号链接是短文件,这些文件包含有另一个文件的任意一个路劲名。路径名可以指向位于任意一个文件系统的任意文件或目录,甚至可以指向一个不存在的文件。

Unix文件类型:

·普通文件(regular file)

·目录

·符号链接

·面向块的设备文件(block-oriented device file)

·面向字符的设备文件(character-oriented device file)

·管道(pipe)和命名管道

·套接字

三种附加标记

suid(Set User ID)

进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件suid的标志位,进程就获得了该文件拥有者的UID。

sgid(Set Group ID)

进程执行一个文件时保持进程组的用户组ID。然而,如果设置了可执行文件sgid的标志位,进程就获得了该文件用户组的ID。

sticky

设置了sticky标志位的可执行文件相当于向内核发出一个请求,当程序执行结束以后,依然将它保留在内存。

几种方式激活内核例程:

·进程调用系统调用。

·正在执行进程的CPU发出一个异常(exception)信号,异常时一些反常情况,例如一个无效的指令。内核代表产生异常的进程处理异常。

·外围设备向CPU发出一个终端(interrupt)信号以通知一个事件的发生,如一个要求注意的请求、一个状态的变化或一个I/O操作已经完成等。每个终端信号都是由内核中的中断处理程序(interrupt handler)来处理的。因为外围设备与CPU异步操作,因为,中断在不可预知的时间发生。

·内核线程被执行。因为内核线程运行在内核态,因此必须认为其相应程序是内核的一部分。

进程可以以两种方式对接收到的信号做出反应:

·忽略该信号

·异步地执行一个指定的过程(信号处理程序)。

五种可能的默认操作:

·终止进程。

·将执行上下文和进程地址空间的内容写入一个文件(核心转储,core dump),并终止进程。

·忽略信号。

·挂起进程。

·如果进程曾被暂停,则恢复它的执行。

不过,SIGKILL和SIGSTOP信号不能直接由进程处理,也不能由进程忽略。

 

内核分配给进程的虚拟地址空间由以下内存区组成:

·程序的可执行代码

·程序的初始化数据

·程序的未初始化数据

·初始程序栈(即用户态栈)

·所需共享库的可执行代码和数据

·堆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值