首页 > 其他分享 >4.内核及启动流程和systemd及awk

4.内核及启动流程和systemd及awk

时间:2023-05-21 18:34:31浏览次数:47  
标签:systemd target 文件系统 etc awk 内核 加载

总结内核设计流派及特点

宏内核(monolithic kernel):又称单内核和强内核,unix,Linux吧所有系统服务都放在内核里,所有功能集成于同一个程序,分层实现不同功能。其实Linux在单内核实现了模块化,也就相当于吸收了微内核的优点

微内核(micro kernel):windows,Solaris,HarmonyOS。简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护,每种功能使用一个单独子系统实现,将内核功能移到用户空间,性能差。

总结centos 6 启动流程,grub工作流程

1.加载BIOS的硬件信息,获取第一个启动设备

2.读取第一个启动设备的MBR引导加载程序(grub)的启动信息

3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

4.核心执行init程序,并获取默认的运行信息

5.init程序执行/etc/rc.d/rc.sysinit文件,重新挂载根系统文件

6.启动核心的外挂模块

7.init执行运行的各个批处理文件(scripts)

8.init执行/etc/rc.d/rc.local

9.执行/bin/login程序,等待用户登录

10.登录后开始以shell控制主机

GRUB启动阶段

primary boot loader

1st stage:加载MBR的前446字节

1.5 stage:MBR之后的扇区,让stage 1中的bootloader能识别stage 2所在的分区(/boot)上的文件系统(xfs)

secondary boot loader

2nd stage,分区文件/boot/grub

GRUB的作用是为了引导并加载kernel,要加载kernel首先得找到kernel所在的路径,因此首先就得有文件系统,要有文件系统首先要加载文件系统驱动,而文件系统驱动文件的大小远大于446字节(大约400+KB),而MBR之后的扇区可以存放一部分文件系统驱动,此时加载的文件系统驱动是grub2阶段所需文件(/boot下文件)需要的文件系统驱动,此时就可以使用/boot/grub/grub.conf,此配置文件中定义了kernel文件的位置,然后就可以加载kernel。

手写chkconfig服务脚本,可以实现服务的开始,停止,重启

总结systemd服务配置文件

/usr/lib/systemd/system #每个服务最主要的启动脚本,类似之前的/etc/init.d

/lib/systemd/system #ubuntu的对应目录,兼容centos7,8和Ubuntu

/run/systemd/system #系统执行过程中产生的服务脚本,比上面目录优先运行
/etc/systemd/system #管理员建立的执行脚本,类似/etc/rc.d/

总结system启动流程

1.UEFI或BIOS初始化,运行POST开机自检

2.选择启动设备

3.引导装载程序,centos7是grub2,加载装载程序的配置文件

a. /etc/grub.d/

b. /etc/default/grub

c. /boot/grub2/grub.cfg

4.加载initramfs驱动模块,即通过/boot下的简化版linux加载操作系统根所需文件系统的驱动

5.加载内核选项

6.内核初始化,centos7使用systemd代替init

7.执行initrd.target所有单元,包括挂载/etc/fstab

8.从initramfs根文件系统切换至磁盘根目录

9.systemd指定默认target配置,配置文件/etc/systemd/system/default.target

10.systemd执行sysinit.target初始化系统及basic.target准备操作系统

11.systemd启动muti-user.target下的本机与服务器服务

12.systemd执行muti-user.target下的/etc/rc.d/rc.local

13.systemd执行muti-user.target下的getty.target及登录服务

14.systemd执行graphical需要的服务

总结awk工作原理,awk命令,选项,示例

1,主要的作用:

用来处理文本,将文本按照指定的格式输出。其中包含了变量,循环以及数组

2,格式:

    1. awk [选项] '匹配规则和处理规则 ' [处理文本路径]

主要匹配的是正则表达式

2.标准输出 awk [选项] “匹配规则和处理规则”

  1. 字符串
  2. 正则表达式

3. 处理规则

BEGIN{} : BEGIN是在awk处理文本之前运行

// : 使用的匹配规则

{} :循环(每次只处理一行数据)

END{} :当所有的处理全部执行完毕之后,执行END中的相关操作

把/etc/password/中包含root的列打印出来

标签:systemd,target,文件系统,etc,awk,内核,加载
From: https://www.cnblogs.com/m490545607/p/17418956.html

相关文章

  • 请在微信客户端打开链接:火狐浏览器模拟微信浏览器内核教程 ,用chrome模拟微信浏览器访
    背景:微信浏览器能访问,出现,请在微信客户端打开链接。useragentswitcherforfirefox:https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/FF越来越不行了,下载都下载不下来~useragentswitcher1.0.34中文版forchrome:http://www.pc6.com/soft/FireFox_133175.h......
  • 数据库内核:使用Git管理代码
    安装Gitroot@postgresqlunbuntu:/#sudoaptupdateroot@postgresqlunbuntu:/#sudoaptinstallgit#验证是否安装成功root@postgresqlunbuntu:/#git--versiongitversion2.25.1管理本地代码在pghome所在的目录下创建git仓库postgre@postgresqlunbuntu:~/PGD......
  • Cloud Studio 内核升级之触手可及
    前言CloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低;具有极强的开放性,第三方平台通过我们提供的SDK,则可以方便地集成CloudStud......
  • Cloud Studio 内核升级之持续优化
    前言CloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低;具有极强的开放性,第三方平台通过我们提供的SDK,则可以方便地集成CloudS......
  • awk在数据列中添加:分隔符号
    awk在数据列中添加:分隔符号最近在玩长亭科技免费的雷池WAF,其更新速度较快,然而每次dockerhub上拉数据的时候总是不能获取到最新的latest版本,每次都得带版本号来拉,并通过修改tag方式改名为latest,我又是一个强迫症,每次都要取消带版本号的标签,手动取消还得一个一个弄,就想要用awk......
  • systemd服务无法产生core文件
    解决思路:1、core的生成路径已被配置,确认非空/proc/sys/kernel/core_pattern2、core文件大小限制也去除了ulimit–c core文件的大小限制也设置成了unlimited3、/proc/sys/fs/suid_dumpable已设置为1,防止非本用户组的文件,无权限导致4、不使用systemctl启动进程,也能产生core......
  • Rockchip RK3399 - linux内核移植
    ----------------------------------------------------------------------------------------------------------------------------开发板  :NanoPC-T4开发板eMMC  :16GBLPDDR3:4GB显示屏 :15.6英寸HDMI接口显示屏u-boot  :2017.09linux   :5.10.110-----------------......
  • 【兼容性比较】F#各个运行时内核,js各个执行引擎
    目录C++的各个编译器C#的各个编译器/解释器看起来,js的V8引擎兼容性更好F#的.NET内核和Mono内核C++的各个编译器以下是常见的C++编译器的比较:GCC:GCC是一个免费、开源的编译器,支持多种操作系统和架构。它对C++语法的支持非常好,支持最新的C++20标准,并且提供了丰富的优......
  • Linux内核debugfs介绍
    前言内核开发者经常需要导出一些信息到用户空间,用于分析内核运行逻辑。最常见的方法是使用printk(),不过在嵌入式中,printk()往往直接打印到console,一旦printk()被频繁调用的话,console就会被刷屏,此时输入命令都是件困难的事情。有时我们只想偶尔看一下某个内核变量的值,但是......
  • Freebsd 内核编译
    Step1:更改pkg源root@FreeBSD:~# mkdir-p/usr/local/etc/pkg/reposroot@FreeBSD:~#vi/usr/local/etc/pkg/repos/1.ustc.confustc:{url:"pkg+http://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/latest",mirror_type:"srv",signature_type:&qu......