admin管理员组文章数量:1665526
文章目录
- Linux发行版简介
- 学习Linux的必备硬件知识
- 关键硬件器件——CPU
- 关键硬件器件——存储
- 关键硬件器件——内存
- 其他一些查看硬件信息的命令
- Linux开机过程(以Ubuntu16.04为例)
- 阶段1:BIOS
- 阶段2:boot Loader
- 阶段3:kernel
- 阶段4:systemd
- 阶段5:应用软件
Linux发行版简介
-
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核的操作系统。
-
Linux 的发行版简单说就是将 Linux 内核与应用软件做一个打包。知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux
-
Linux发行版主要有Debian与Redhat两大系列
Debian | Redhat | |
---|---|---|
发行版代表 | Debian,Ubuntu,Linux Mint | Redhat,CentOS,Fedora |
软件包管理方式 | dpkg(管理本地的软件包,无法处理依赖关系)、 apt(联网下载软件包,自动处理依赖关系) | rpm(管理本地的软件包,无法处理依赖关系)、 yum(联网下载软件包,自动处理依赖关系) |
安装包格式 | deb | rpm |
学习Linux的必备硬件知识
关键硬件器件——CPU
CPU是计算机的运算核心和控制核心,部分CPU内置核芯显卡
- x86架构:Intel、AMD、海光、兆芯等芯片
- ARM架构:飞腾、鲲鹏等
查看CPU的信息
lscpu
cat /proc/cpuinfo
关键硬件器件——存储
类型
- 固态硬盘(SSD):读写速度快,价格较高
- 机械硬盘(HDD):读写速度慢,价格便宜,容量大
- EMMC:多用于低端嵌入式设备,容量较小,云终端的EMMC有4GB、8GB、32GB几种规格
查看存储设备信息的命令
fdisk
blkid
smartctl
parted
lsblk
关键硬件器件——内存
目前最新是DDR4技术,速率可达3.2GHz
分为板载和插槽两种接口
云桌面的瘦终端采用1-2GB内存,胖终端标配4G或8GB内存,服务器一般是16GB*N的内存
查看内存的命令
free
cat /proc/meminfo
其他一些查看硬件信息的命令
查看PCI设备信息:lspci
查看USB设备信息: lsusb
查看网卡信息:ifconfig
、ethtool
、ip
Linux开机过程(以Ubuntu16.04为例)
- 命令行中输入
systemd-analyze plot > boot.svg
,用浏览器查看boot.svg
- 从上图可看出开机过程包含了BIOS(firmware)、boot loader、kernel、systemd这4个阶段,再加上启动应用软件,共5个阶段
- 虚拟中运行的Ubuntu则没有BIOS(firmware)和boot loader这两个阶段。
阶段1:BIOS
BIOS是(Basic Input Output System),是一组固化到计算机内主板上一个ROM芯片上的程序。它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。X86架构才有BIOS,ARM架构没有BIOS
DMI
-
DMI (Desktop Management Interface)是帮助收集电脑系统信息的管理系统。通过DMI可以在Linux中查询到包括CPU、内存、
I/O
扩展槽等在内的系统配置信息。DMI通常将上述信息存储在BIOS中一个4KB
大小的DMI数据区中 -
云终端的产品ID、产品型号、硬件版本、SN都存储在DMI中,可通过
dmidecode
命令查看。
BIOS与boot loader
- MBR与GPT
MBR:Master Boot Record,主引导扇区,它在硬盘上的三维地址为**(柱面,磁头,扇区)=(0,0,1)**。MBR中存放着boot loader(446字节)、分区表(64字节)和硬盘有效标志(55AA) 。MBR最多只能支持4个主分区,无法支持超过2T的硬盘。
GPT: GUID Partition Table ,是一个实体硬盘的分区结构。最多支持 128 个分区,允许大于 2 TB 的卷容量
Legacy BIOS 与UEFI BIOS
Legacy BIOS:传统BIOS。Legecy BIOS从MBR中寻找boot loader。目前云桌面的服务器大多还是用Legacy BIOS。
UEFI BIOS:只支持64位系统且磁盘分区必须为GPT模式,可引导大于2T的硬盘,更快的启动速度。 UEFI BIOS会自动搜索硬盘根目录的EFI目录,而boot loader就在EFI文件夹中。目前云终端都采用UEFI BIOS。
**总结:**BIOS从硬盘的特定位置寻找boot loader
阶段2:boot Loader
主要功能
- 提供选择菜单,让使用者选择不同的开机项
- 加载内核,启动操作系统
- 将开机管理功能转交其他boot loader负责
常见的boot loader有GRUB(GRand Unified Bootloader )
、uboot
、LILO
,云桌面的终端和服务器都使用GRUB
为什么平时一般见不到BootLoader的界面?因为超时时间被设为0了,直接从默认的启动项启动
-
修改终端的grub超时时间:vim.tiny /boot/grub/custom.cfg,将第一行的set timeout=0改为set timeout=3
-
查看grub.cfg:vi /boot/grub/grub.cfg
修改grub配置以及grub配置文件的各种设置选项:
https://help.ubuntu/community/Grub2/Setup
https://www.jianshu/p/a24d51276a82
https://blog.csdn/mr_zing/article/details/41055617
https://blog.csdn/dc_show/article/details/47396649
https://blog.csdn/shana_8/article/details/81455657
gurb.cfg
grub.cfg
中,会用到/boot/vmlinuz
和/boot/initrd.img
两个文件
vmlinuz
是可引导的、压缩的内核。“vm”代表 “Virtual Memory”,z代表用gzip压缩
initrd.img
是个RAM Disk(通过软件将一部分RAM模拟为硬盘的技术)的映像文件,里面包含了linux启动时需要的目录、可执行文件、内核驱动模块等。
阶段3:kernel
当前流行的Linux版本一般都采用模块化的内核,这种方式可以在不重新编译构建内核的情形下增加功能模块(ko)。但考虑一种场景,如果磁盘是EMMC的,但相应驱动没有编译进kernel,kernel就无法访问磁盘了,更谈不上加载ko了。这时候就需要用到RAM Disk技术了。
-
boot loader
载入kernel
和initrd.img
到内存中 -
kernel启动后自解压,将
initrd.img
的内容挂载为init
根文件系统 -
kernel从init根文件系统中加载所需功能模块
-
kernel会根据
grub.cfg
中“root=XXX”部分所指定的内容创建一个根设备,然后将根文件系统以只读的方式挂载,并切换到真正的根文件系统上 -
调用systemd程序,进入系统初始化阶段。
详细流程可以参考man initrd
Bootloader引导内核后,进入第三个阶段:内核。这边并不打算介绍内核的函数调用流程,因为目前我自己在工作中还没遇到需要解决的问题。今天想要介绍的是内核阶段可能存在两个根文件系统。
阶段4:systemd
systemd
是 Linux
系统中最新的初始化系统,它主要的设计目标是克服 sysv init
固有的缺点,提高系统的启动速度。
在硬件驱动成功后,kernel 会主动呼叫 systemd 。从右图可以看出,graphical.target
、multi-user.tartget
、basic.target
、sysinit.target
存在依次依赖的关系,systemd
按照依赖关系并发启动target
包含的服务后,完成图形界面的启动
rc-local.service
会执行/etc/rc.local
,自研脚本可以从/etc/rc.local
中进行启动
阶段5:应用软件
使用pstree
可以查看进程树。可以看到systemd
的PID为1,所有应用软件都是从systemd
派生出来的
学习完linux开机的5个阶段,请大家思考下,我们学习这部分知识的目的是什么,能解决什么问题?
1 开机速度的优化
2 定位BUG在哪个阶段发生
3 调试,例如grub选择内核,编辑启动参数
4 功能开发,例如自研脚本的加入,systemd服务的编写
版权声明:本文标题:操作系统基础——Linux操作系统简介 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1730049104a1220649.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论