1.用户和用户组

每个用户是一个或多个用户组的一名成员,组由唯一的用户组标识符(user group ID)标识。每个文件的相关权限也恰好与一个组相对应。

root为超级用户,

2.模块

为了达到微内核理论上的很多优点而又不影响性能, Linux内核提供了模块(module)。模块是一个目标文件,其代码可以在运行时链接到内核或从内核解除链接。这种目标代码通常由一~组函数组成,用来实现文件系统、驱动程序或其他内核上层功能。与微内核操作系统的外层不同,模块不是作为一个特殊的进程执行的。就向是一个静态链接的内核函数-样,代表当前进程在内核态下执行。

3.文件目录

路径名由斜杠及- -列指向文件的目录名交替组成。如果路径名的第一个字符是斜杠,那么这个路径就是所谓的绝对路径,因为它的起点是根目录。否则,如果第- -项是目录名或文件名,那么这个路径就是所谓的相对路径,因为它的起点是进程的当前目录。

当标识文件名时,也用符号“."和“.”。 它们分别标识当前工作目录和父目录。如果当前工作目录是根目录,“.”和“.." 就是一致的。

4.硬链接和软连接

硬链接ln P1 P2,不允许对目录,不允许对不同种文件系统

软链接 ln -s P1 P2。

软连接只记录了链接文件的目录关系,硬链接相当于复制了一份文件,之后的文件修改也会对硬链接文件同步进行

5.文件类型

Unix文件可以是下列类型之一:

普通文件(regular file)

目录

符号链接

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

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

管道(pipe) 和命名管道(named pipe) ( 也叫FIFO)

套接字(socket)

6,特殊线程

内核线程:运行在内核地址空间,不与用户交互,通常在启动时创建一直活跃直到系统关闭。

7.可重入内核

内核要是可重入的,即内核运行程序当需要磁盘请求时,可以让磁盘控制器去处理请求并恢复执行其他进程,然后等处理完再回来执行这个进程。

管只修改局部变量不改全局的

RAM的三个功能:

满足内核对缓存、描述符及其他动态内核数据结构的请求。

满足进程对一般内存区域的请求及对文件的内存映射的请求。
用高速缓存的方法从磁盘及其他缓神设备获得较好的性能。

 

RAM是有限的,必须在请求类型之间平衡。临界极限时可用页框回收算法。虚拟内存必须解决的一个主要问题是内存碎片。

内核内存分配器(KMA)应有特点:

必须快。实际上,这是最重要的属性,因为它由所有的内核子系统调用(包括中断处理程序)。

必须把内存的浪费减到最少。

必须努力碱轻内存的碎片(fragmentation) 问题。

必须能与其他内存管理子系统合作,以便借用和释放页框。

算法:

资源图分配算法( allocator)

2的幂次方空闲链表

McKusick- Karels分配算法

伏伴{Buddy)系統

Mach的区域(Zone)分配算法:

Dynix分配算法

Solaris的slab分配算法

脏缓冲区的概念:(内存中)缓冲区内容与对应磁盘块的内容不一样

设备驱动程序: 可以把设备的代码写成模块,动态装入内核,通过接口规范增加设备,不用时也可以卸载该模块

深入理解Linux内核 学习笔记(1)的更多相关文章

  1. 深入理解Linux内核 学习笔记(5)

    第五章  定时测量 内核必须显式地与三种时钟打交道:实时时钟(Real Time Clock, RTC).时间标记计数器(Time Stamp Counter, TSC)及可编程间隔定时器( Prog ...

  2. 深入理解Linux内核 学习笔记(4)

    第四章 中断和异常 中断通常被分为同步中断和异步中断,同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断异步中断是由其他硬件设备依照CPU时 ...

  3. 深入理解Linux内核 学习笔记(3)

    第三章 进程 可以看到很多熟悉的结构体 进程状态: 可运行状态(TASK_ RUNNING) 进程要么在CPU上执行,要么准备执行. 可巾断的等待状态(TASK_ INTERRUPTIBLE) 进程被 ...

  4. 深入理解Linux内核 学习笔记(2)

    第二章 :内存寻址 略.基本同计算机组成原理中的讲述 内核代码和数据结构会存储在一个保留的页框中. 常规Linux安装在RAM物理地址0x00100000开始的地方.因为:页框0是由BIOS使用,存放 ...

  5. 深入理解Linux内核 学习笔记(8)

    第八章 系统调用 API定义了一个给定的服务:系统调用是通过软中断向内核发出一个明确的请求. API可能不调用系统调用,也可能调用多个系统调用. Linux系统调用必须通过执行int 0x80,系统调 ...

  6. 20135316王剑桥Linux内核学习笔记

    王剑桥Linux内核学习笔记 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的 个人理 ...

  7. Linux内核学习笔记-2.进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  8. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  9. Linux内核学习笔记二——进程

    Linux内核学习笔记二——进程   一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...

随机推荐

  1. C#和C++除了语法上的差别外,还有什么其他的区别

    C#与C++的区别: 1.C#有垃圾自动处理机制,所以程序员不用担心对象的内存的释放问题: 2.C#严禁使用指针,但是非要使用的话,只能在unsafe程序块中的使用: 3.C#只有单继承: 4.C#必 ...

  2. bzoj2120 数颜色 分块

    分块大法好 orz 处理出每个点的前驱和后继位置. 暴力修改,查询就在每个整块里查询pre<l的,暴力跑两边就好了 #include<cstdio> #include<cstr ...

  3. python中的异常

    Python提供了两个非常重要的功能来处理异常和错误: 1) 异常处理try-.except 2) 断言assert 异常和断言,可以用于我们调试python程序,跟踪程序执行状态,尽快排查问题. 3 ...

  4. 【TCP协议】(3)---TCP粘包黏包

    [TCP协议](3)---TCP粘包黏包 有关TCP协议之前写过两篇博客: 1.[TCP协议](1)---TCP协议详解 2.[TCP协议](2)---TCP三次握手和四次挥手 一.TCP粘包.拆包图 ...

  5. Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFa

    Springboot通过application启动报错 2019-01-25 14:02:33.810 ERROR [restartedMain] org.springframework.boot.S ...

  6. Asp.Net Core&Docker部署到树莓派3B中

    花了一点时间将吃灰数月的树莓派装上了Docker,并在容器中部署了一个Asp.Net Core应用程序,通过花生壳映射树莓派中的程序,可以使用外网访问树莓派,玩起来很有意思(外网访问地址:http:/ ...

  7. 我的Windows装机必备软件与生产力工具

    目录 系统工具 工作学习 开发工具 VS插件 2018年12月21日,最近要装新电脑,借此将自己常用的工具总结一下. 系统工具 wox,软件快速启动工具,有翻译等插件 everything,本地文件文 ...

  8. spring源码 — 五、事务

    spring提供了可配置.易扩展的事务处理框架,本文主要从一下几个方面说明spring事务的原理 基本概念 事务配置解析 事务处理过程 基本概念 事务隔离级别 在同时进行多个事务的时候,可能会出现脏读 ...

  9. 服务端预渲染之Nuxt (使用篇)

    服务端预渲染之Nuxt - 使用 现在大多数开发都是基于Vue或者React开发的,能够达到快速开发的效果,也有一些不足的地方,Nuxt能够在服务端做出渲染,然后让搜索引擎在爬取数据的时候能够读到当前 ...

  10. DSAPI多功能.NET函数库组件

    DSAPI.dll不定期更新,增加功能,故无法每次都发到网上,如果需要获得最新版DSAPI.dll的,请到QQ群:419130936群共享里下载. 简介     dsapi.dll是一款基于.net平 ...