Linux系统一般有4个主要部分:

内核、shell、文件系统、应用程序

KERNEL 内核:负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

SHELL系统的用户界面,提供了用户与操作系统进行交互操作的一种接口,是一个命令解释器

FILESYSTEMS 文件系统:简称FS,用于管理数据的存储和检索,常见的FS格式有,ext3、ext4、ntfs、fat、xfs、btrfs

应用程序 USER APP、PROGRAMS、UTILITIES、TOOLS

Linux系统启动的几个重要阶段

1.BIOS:基本输入输出系统,硬件主板固件
2.GRUB :引导程序,主要引导内核启动
3.Kernel : 内核
4.Initrd:虚拟根文件系统,启动中的跳板
5.systemd:系统init进程,初始化系统
6.lightdm:负责显示管理

BIOS(Basic Input Output System):基本输入输出系统。BIOS都存放在ROM中,通过烧录的方式烧录进ROM,其中的内容只能读不能改。BIOS的更新指重新烧录BIOS的内存。

•上电自检:(POST:Power-On-Self-Test)是BIOS功能的一个主要部分。它负责完成对CPU、主板、内存、软硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等的检测。当计算机上的某一个硬件出现问题时,BIOS阶段就会报错,无法启动系统。
•Boot Squence:在完成POST自检后,BIOS将按照系统中设置启动顺序搜寻软硬盘驱动器及CDROM、网络服务器等有效的启动驱动器 ,继续读入操作系统的GRUB引导,将系统控制权交给GRUB引导。

系统启动流程—BIOS

GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windows,linux。

•主要流程:解析GRUB程序的配置文件grub.conf,并依配置文件决定是否显示系统启动菜单。然后加载内核和initrd文件至内存中,而后把系统控制权交给内核。
•grub需要引导分区(boot),boot分区会存放内核镜像(vmlinuz),initrd镜像(initrd.img),grub配置文件(grub.cfg)

grub菜单

grub第二个选项的子菜单

按e进入编辑模式,ctrl+x或者F10进入系统引导

grub的启动配置文件(/boot/grub/grub.cfg),相关参数:

•boot分区: set root='hd0,msdos1'

hd0 中的 0 代表第 1 块硬盘,msdos1 中的 1 代表硬盘的第 1 个分区

•linux : 加载内核vmlinux和内核参数
•initrd : 加载initrd.img
•启动参数: root=UUID=e78cf7f9-b..... (rootfs主系统地址)

quiet (等价于loglevel=4),日志参数

splash启动屏幕显示动画

security 麒麟系统安全功能

一、简介:

内核(Kernel:负责管理系统的进程、内存、设备驱动程序、文件和网络系统

内核是image镜像文件,版本号为:5.4.18-32,体系结构为X86

二、微内核Microkernel 与宏内核Monolithic Kernel

•宏内核(集成式内核、单体式内核):运行在单一地址空间的单一的进程。内核提供的所有服务,都以特权模式在内核地址空间中运作,这个地址空间被称为内核态(kernel space)
•微内核:将系统服务的实现与系统的基本操作规则区分开来。将核心功能模块化,划分成几个独立的进程,各自运行。所有的服务进程,都运行在不同的地址空间。

vmlinuz启动

•初始化系统中各种设备的相关配置工作,其中包括CPU、I/O、存储设备等
•解压Initrd,调用虚拟根文件系统的init脚本。
•创建内核态kernel_init进程,等待initrd调用执行用户态的init进程

、简介

initrd(Initial RAM Disk):在grub阶段被拷贝到了内存中,在内核中被解压,是一个临时的虚拟根文件系统。

•initrd(Initial RAM Disk)与initramfs(Init Ram filesystem)区别在于initrd将磁盘作为虚拟根文件系统,而initramfs将内存直接作为虚拟根文件系统。Linux2.6以后,均是以内存作为虚拟根文件系统,只是Initrd的名称被保留了下来。
•initrd.img是cpio格式的压缩文件,解压缩后会得到cpio格式的文件。

二、作用

内核为了精简,只保留了最基本的模块,并没有各种硬件的驱动程序,而initrd虚拟根文件系统装载了必要的驱动模块。当Kernel启动时,内核从initrd中装载必要的驱动模块,完成硬件的初始化。直到挂载真正的rootfs主系统,将控制权转交给rootfs主系统。

initramfs系统:(grub参数中加上”break=init,console=tty1”可在屏幕上显示。如下图)

内容:init脚本文件,必要驱动模块,基本的依赖库

•init脚本文件:
•驱动模块:显卡模块等
•依赖库:

initrd文件中init脚本(/usr/share/initramfs-tools/init)的主要启动流程:

•挂载虚拟根文件系统/proc,/sys, /dev, /dev/pts
•init-top阶段:加载内核驱动,udev事件处理。
•init-bottom阶段:运行安全脚本,plymouth动画显示
•init阶段:跳转到真正的rootfs主系统,执行一号init进程,即systemd

Plymouth 提供美化启动图形界面的功能,它依靠内核设置显示器的原始分辨率,显示开关机动画。在系统开机、关机过程中生效,主要用于遮盖枯燥的系统log输出及后台流程,提升用户体验。

• Plymouth包括:客户端plymouth和服务端plymouthd

Linux下有三个特殊进程:

idle进程(pid=0)

idle进程其前身是系统创建的第一个进程,0号进程,也唯一一个没有通过fork或者kernel_thread产生的进程,由系统自动创建,运行在内核态。0号进程在创建了init进程后,演变成为idle进程。

init进程(pid=1)

init进程由0号进程创建。内核态调用用户态init程序,从而进入用户空间。init进程继续完成系统的初始化,是第一个用户进程,也是其他所有用户进程的父进程。

kthreadd进程(pid=2)

kthreadd进程由idle通过kernel_thread创建,始终运行在内核空间,负责内核进程的调度和管理

用户态/sbin/init进程与systemd的关系

简介:

systemd(system daemon):是一个 Linux 系统基础组件的集合,提供了系统和服务管理。是运行为 PID 1的进程并负责启动其它进程。

内核初始化的最后一步就是启动 PID 为 1 的 init 进程。这个进程是系统的第一个进程。它负责产生其他所有的用户进程。init进程以守护进程(也就是服务)的方式存在,是所有其他进程的祖先。它负责组织和运行许多独立的或相关的初始化工作,如启动网络、声音、显示等等。从而让计算机系统进入某种用户预定义的运行模式,比如命令行模式或图形界面模式。

systemd的功能

•提供按需启动能力:某个服务被真正请求的时候才启动它。
•跟踪和管理进程的生命周期:当进程创建子进程时,子进程会继承父进程的资源。当停止进程时,systemd 可以确保找到所有的相关进程。
•启动挂载点和自动挂载的管理:确保挂载点在系统启动过程中被挂载。
•实现事务性依赖关系管理:系统启动过程是由很多的独立工作共同组成的,保证所有相关的服务都可以正常启动而不会出现互相依赖,以至于死锁的情况。
•日志服务:systemd 自带日志服务 journald, 用二进制格式保存所有日志信息,用户使用 journalctl 命令来查看日志信息。

lightdm(Light Display Manager):是一个全新的、轻量的Linux桌面的桌面显示管理器

display-manager.service是lightdm.service的软连接

systemd将系统启动和运行相关的对象,表示为各种不同类型的单元。并用target进行进行逻辑分组(依赖关系和顺序关系)

•sysinit.target:为系统运行环境做初始化
•basic.target:  在环境初始化完成后执行一些基本任务
•default.target :default.target是一个软链接,链接到不同的target表示进入不同的运行级别。图形终端的graphical.target和多用户字符终端multi-user.target

Xorg负责屏幕的绘制
lightdm-greeter: lightdm子进程,专门创建ukui-greeter
ukui-greeter登录界面进程
ukui-session桌面环境管理器

ukui-panel:桌面任务栏

ukui-menu:桌面菜单

ukui-kwin-*:桌面窗口管理器

进程是操作系统资源调度的基本单位,线程是任务的调度执行的基本单位

简单理解:进程是程序运行的过程,线程是程序运行中进行的任务

•查看进程:

•查看进程中的线程:

线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。

•资源开销:每个进程都有独立的代码和数据空间,程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
•包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
•内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的
•影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
•执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行

Linux系统启动(银河麒麟)相关推荐

  1. 使用VMware Workstation安装(Linux内核)银河麒麟系统

    1.下载软件:VMware Workstation Kylin-x86_64.iso(Linux内核)银河麒麟系统镜像包. 2.安装完成VMware Workstation并运行. 3.创建新的虚拟机 ...

  2. Linux以及银河麒麟系统的一些基本认识

    一.操作系统知识(Windows Linux 银河麒麟系统) 1.Windows操作系统(美国微软公司): 简介:Windows操作系统是美国微软公司研发的一套操作系统: 优点:图形化界面,易上手,方 ...

  3. 中标linux+银河麒麟=中标麒麟

    两天前,国内两大操作系统"中标Linux"和"银河麒麟"在上海举行了合并仪式,今后"中标Linux"和"银河麒麟"都不会 ...

  4. 银河麒麟系统共享打印机方法

    银河麒麟操作系统是一款国产的电脑操作系统,具备高安全.高可靠.高可用.跨平台.中文化等多种特性,是目前我国通过认证的安全等级最高的操作系统!那么国产linux系统银河麒麟怎么共享打印机,国产linux ...

  5. 玩银河麒麟操作系统终端,忆国外unix主机上偶遇隔壁同胞

    最近单位分配了一台国产电脑,国产电脑上使用的是基于Linux的银河麒麟系统,目前银河麒麟系统中的GUI应用程序还是比较少,所以很多操作要通过终端使用命令行命令来完成,比如要获取网卡MAC,还得使用if ...

  6. 中标麒麟linux卸载qt,国产化 银河麒麟编译Qt程序的问题汇总 | 阿拉灯

    Run in terminal 莫名奇妙软件无法在QtCreator中运行或者调试,main函数都无法进入,QtCreator中一运行就崩溃,并跳到汇编界面,这多半和代码没什么关系,我这里是将项目-& ...

  7. 麒麟Linux关闭telnet,银河麒麟系统管理员使用手册(30页)-原创力文档

    银河麒麟系统管理员使用手册 目 录 一. 管理员使用 3 1. MATE 终端 3 1.1 打开MATE 终端 3 1.2 终端切换root 管理员 3 2. 网络设置 4 3. 软件安装 5 4. ...

  8. 银河麒麟(linux)wireshark 打开抓包报错 The capture session could not be initiated on interface ‘enp2s0‘(You...

    版本:银河麒麟桌面操作系统V10(SP1) 内核:Linux 5.4.18-28.23-bj-generic CPU:Loongson-3A5000 终端输入 uname -m 查看 架构: loon ...

  9. linux 银河麒麟V10 VSFTPD服务端安装、配置的图文教程

    前言:本篇文章,集互联网好友的成果.本菜鸟实践摸索的结果,整理综合而得.本人在CSDN.百度.B站等各大网站进行了有限的搜索,都没有看到完全适配的答案. 如果你也是国产电脑的受"益" ...

最新文章

  1. 解决pytorch-gpu 安装失败方案
  2. linux目录名含义
  3. Java 生成有序 UUID
  4. 160个Crackme018
  5. 漂亮的花样边框html代码,手把手教你制作精美边框素材HTML代码
  6. [蓝桥杯2018初赛]日志统计-双指针
  7. iphone控制电脑_苹果远程控制电脑软件免费下载-超控Controlax(iPhone远程控制Windows)v1.1 最新版...
  8. Angular2或Angular4使用echarts , ngx-echarts的方法
  9. Visual Studio 2008创建项目(ATL)
  10. java ftp取远程服务器时间_在 Java 中如何获取 FTP 服务器上的文件修改时间
  11. fm足球经理Football Manager 2022 for mac(真实模拟游戏)中文版
  12. (转)Rust: Rust的 Deref 运算符
  13. 史上最强的10大管理定律
  14. FIFO设计中的注意问题与技巧
  15. Docker Swarm secrets
  16. 如何把Windows主机中的文件拉到centOS虚拟机中
  17. java计算机毕业设计海康物流MyBatis+系统+LW文档+源码+调试部署
  18. 【数据库设计】学籍管理的数据库系统
  19. 计算机--计算机寓言
  20. ORACLE之热备份

热门文章

  1. 当造车成为风潮,谁帮助“造车党”连接未来?
  2. Python之变量作用域
  3. 统计模式识别的原理与方法
  4. [bzoj2055]80人环游世界 上下界费用流
  5. nginx篇07-启用HTTP2和TLSv1.3
  6. Dzzoffice部署
  7. ios apple企业账号申请流程
  8. unity获取游戏对象及修改游戏对象的属性,对于游戏对象的基本操作
  9. GBase 8s数据库的备份与恢复-基于ontape
  10. 国庆节到了 祝福祖国