ITPub博客

首页 > > > Linux操作系统的一些基本概念

Linux操作系统的一些基本概念

作者:unnamed persona 时间:2019-12-14 14:45:34 0 删除 编辑

操作系统的核心——内核

管理和分配计算机资源的核心层软件,其职责如下:

1. 进程调度

2. 内存管理

3. 提供文件系统

4. 创建和终止进程

5. 对设备的访问(驱动)

6. 联网

7. 提供系统调用应用编程接口api

现代CPU至少可以在两种不同状态下运行:用户态(Ring 3)和内核态(Ring 0),虚拟内存空间也被划分为用户空间部分和内核空间部分。在用户态运行时,不可以访问内核空间部分的内存;在内核态时,两部分内存均可访问

shell

主要用于读取用户输入的命令,并执行相应的程序,比较流行的有Bourne shell(shell)、C  shell(csh)、Korn shell(ksh)、Bourne again shell(bash)

用户和组

系统会对每个用户的身份做唯一标识,用户可以隶属于多个组,相关的文件有/etc/passwd, /etc/shadow等,root的uid为0

单根目录层级、目录、链接以及文件

文件类型:普通文件、设备、管道、套接字、目录以及符号链接

软链接和硬链接:硬链接所指的inode都一致,软链接的inode指向单独文件,其存储内容为执行的实际文件。

文件权限

文件I/O模型

Linux系统I/O模型最为显著的特征之一是其I/O通用性概念。也就是说,同一套系统调用所执行的I/O操作,可以施加在所有文件类型上,也就是“一切皆文件”

进程

进程的内存布局:

1. 文本段

2. 数据段

3. 堆

4. 栈

_exit()函数退出进程

用户相关id:

1. 真实用户id和组id:标识进程所属的用户和组(谁启动的这个东西)。新进程会从其父进程处继承

2. 有效用户id和组id:进程在访问受保护资源时,会使用这两个id来确定访问权限

3. 补充组id:用来标识进程所属的额外组

capabilities:始于内核2.2, linux把传统上赋予超级用户的权限划分为一组相互独立的单元(也就是“能力”)。每次特权操作都与特定的能力有关,仅当进程具有特定能力时,才能执行相应的操作。可以赋予某个进程部分能力,使得其能够执行某些特权操作,又能防止其执行其他特权操作

软资源限制:进程可以消耗某类资源的总量

硬资源限制:软限制调整的上限,只能调低,不能调高

内存映射

由某一进程所映射的内存可以与其他进程的映射共享。具体可以通过属性参数传递控制。

mmap()会在调用进程的虚拟地址空间中创建一个新的内存映射,有文件和匿名两种方式

静态库和共享库

动态链接器:GOT, PLT

进程间通信以及同步

信号(软中断),管道,套接字,文件锁,消息队列,信号量,共享内存

线程

共享同一数据区域和堆,每个线程都有自己的栈,用来装载本地变量和函数调用链接信息

进程组和shell任务控制

进程组id = 组长进程id

会话、控制终端和控制进程

会话指的是一组进程组,会话中所有进程都具有相同的会话标识符。通常,会话都会与某个控制终端相关,控制终端建立与会话首个进程初次打开终端设备之时。一个终端最多只能称为一个会话的控制终端

打开控制终端会致使会话首进程称为终端的控制进程。一旦断开了与终端的链接,控制进程将会收到SIGHUP信号

在任意时刻,会话中总有一个前台进程组,可以从终端中读取输入,向终端发送输出。一个会话可以拥有任意数量的后台进程组,有以“&”字符结尾的命令来创建

伪终端

伪终端是一对相互连接的虚拟设备,也称为主从设备,在这对设备之间,设有一条IPC通道,可供数据进行双向传递

日期和时间

真实时间:UTC 1970年1月1日凌晨其实

进程时间:系统CPU时间和用户CPU时间

/proc文件系统

是一种虚拟文件系统,以文件系统目录和文件形式,提供一个指向内核数据结构的接口。一般只有特权级进程才能修改/proc目录下的文件内容

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949628/viewspace-3164904/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-12-04

  • 博文量
    158
  • 访问量
    0