Linux CheatSheet
BIOS:
Basic Input Output System的缩略词,直译"基本输入输出系统"。
它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
GRUB:
GRand Unified Bootloader简称“GRUB”,是一个来自GNU项目的多操作系统启动程序。
UEFI
Unified Extensible Firmware Interface,全称“统一的可扩展固件接口”
是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。
可扩展固件接口(Extensible Firmware Interface,EFI)是Intel为PC固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在OS加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的BIOS的继任者。UEFI是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织。
Systemd
init进程是Linux系统Booting之后的首个进程,其作为守护进程运行直至系统关闭;传统的Linux中的服务控制方式也主要依赖于sysvinit机制:
$ sudo /etc/init.d/apache2 start
$ service apache2 start
当sysvinit系统初始化的时候,它是串行启动,并且会将所有可能用到的后台服务进程全部启动运行;系统必须等待所有的服务都启动就绪之后,才允许用户登录,导致启动时间过长与系统资源浪费。并且init进程只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,使得脚本复杂度增加很多。Systemd就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。
用户进程
Linux在操作这些物理内存时,不会直接操作物理内存,而是建立一个虚拟地址(可以理解成跟物理内存相对应的映射),即在物理内存跟进程之间增加一个中间层。
系统将虚拟地址分为两部分:一部分专门给系统内核使用,另一部分给用户进程使用。对于32位的系统,虚拟地址范围是0x00000000 ~ 0xFFFFFFFF,即最大虚拟内存为2^32 Bytes = 4GB,系统将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)分配内核使用,此区域称作内核空间;另外将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。由于虚拟地址是物理内存的映射,相当于系统将物理内存分成两部分单独使用。所以,现在有两个概念:
内核空间:系统内核使用的内存空间;当一个进程执行调用系统命令(例如read, write)时,会进入内核代码的执行,进程此时的状态我们称之为内核态。
用户空间:用户进程使用的内存空间;当一个进程执行用户自己的代码时,该进程此时的状态为用户态。
Links