MINAIot  

1.内核是啥玩意儿
操作系统的核心程序

2.内核做啥事情
进程调度
内存管理
提供文件系统
创建或终止进程
管理设备
管理网络
提供系统调用API

3.CPU的工作模式
用户模式/用户态
内核模式/内核态

4.简述文件系统IO模型
内核视角看,就一种字节流序列
用户视角看:文本文件和二进制(数据)文件
内核提供了通用的系统调用执行IO操作
通用的几个IO系统调用函数:open、read、write、close

5.何为文件描述符
本质是一个非负的整数
作用代替一个打开的文件
SHELL程序启动的进程默认继承三个文件描述符:0-标准输入,1-标准输出,2-标准错误

6.简单说进程
就是正在执行的程序实例
内核的处理过程:

将程序代码加载到虚拟内存中
为程序分配变量空间
建立内核记账数据结构
记录与进程相关的各种信息

从内核看来进程是一个个的实体
内核必须处理它们之间的各种计算机资源共享

7.进程的内存布局

文本:存储程序代码
数据:存储程序静态变量
堆:程序动态分配的内存空间
栈:函数调用,链接信息,局部变量分配的内存空间

8.进程ID和父进程ID

每一个进程都有一个唯一的整数进程标识符(PID)
每一个进程都有一个父进程的标识符(PPID)
进程拥有用户ID(UID)和用户组ID(GID)信息

9.进程的创建和执行
使用fork函数创建进程,使用execve家族的系统调用函数执行程序

10.进程终止
使用_exit系统调用API,或是向进程传递信号,将其杀死
无论何种方式退出,进程都会生成终止状态

11.特权进程
是指有效用户ID为0(超级用户)的进程

12.INIT进程
内核创建的第一个进程,所有进程之父

13.进程间的通信方式

信号(signals)
管道(pipes)
套接字(sockets)
文件锁(file locking)
消息队列(message queues)
信号量(semaphores)
共享内存(shared memory)

14.线程
一个进程可以有多个线程
线程可以想象为共享同一虚拟内存以及其他属性的进程
线程之间的通信使用共享的全局变量进行通信
优点一在于协同线程之间的数据共享更为容易
优点二某些算法实现上,比多进程更加自然

15.系统调用
受控的内核入口
使得进程可以请求内核以自己的名义执行某些动作
特点:
系统调用将处理器从用户态切换到内核态以便CPU访问受到保护的内核内存
系统调用的组成是固定的都有一个唯一的数字来标识
每个系统调用都有一组参数指定从用户态传递到内核态的信息,反之亦然

16.处理系统调用和库函数的错误
系统调用失败后,会设置全局变量errno的值
使用perror函数可以打印上一次系统调用失败的错误消息
使用strerror函数获得errno对应的错误信息

原文链接:https://www.cnblogs.com/y2ghost/p/11692912.html

posted on 2020-04-21 19:34  MINAIot  阅读(87)  评论(0编辑  收藏  举报