Linux系统应用基础教程——第二章

Linux系统应用基础一、第二章 系统的启动与关闭1.什么是内核?内核(Kernel)是操作系统的核心,它是一个系统软件,负责管理系统中的进程、内存、设备驱动程序、文件和网络等。在操作系统中,内核独立于普通应用程序,它工作在内核空间。 Linux相关:Linux为单内核,单内核是个独立的大进程,通常以 单个静态二进制文件的形式存放于磁盘上。内核的所有代码,包括子系统(如内存管理、文件管理、设备驱动程序)都打包到一个文件中。内核中的每一个函数都可以访问到内核中所有其他部分。目前支持模块
摘要由CSDN通过智能技术生成

Linux系统应用基础


一、第二章 系统的启动与关闭

1.什么是内核?

内核(Kernel)是操作系统的核心,它是一个系统软件,负责管理系统中的进程、内存、设备驱动程序、文件和网络等。在操作系统中,内核独立于普通应用程序,它工作在内核空间。


Linux相关:

Linux为单内核,单内核是个独立的大进程,通常以 单个静态二进制文件的形式存放于磁盘上。内核的所有代码,包括子系统(如内存管理、文件管理、设备驱动程序)都打包到一个文件中。内核中的每一个函数都可以访问到内核中所有其他部分。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。

微内核:微内核的功能被划分为多个独立的进程,所有的进程都保持独立并运行在各自的地址空间上。


内核的版本:
在这里插入图片描述
Linux 还是一个动态内核,支持动态添加或删除软件组件。被称为动态可加载内核模块,它们可以在引导时根据需要(当前特定设备需要这个模块)或在任何时候由用户插入。

2.内核的任务?

内核既要管理应用程序的运行,又要管理硬件设备的运作

1. 从技术层面讲,内核是硬件与软件之间的一个中间层。
将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。
2. 从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽象了相关细节。
3. 内核是一个资源管理程序。
负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。
4. 内核就像一个库,提供了一组面向系统的命令。系统调用对于应用程序来说,就像调用普通函数一样。

3.Linux内核源代码包括三个主要部分:

  1. 内核核心代码,包括第3章所描述的各个子系统和子模块,以及其它的支撑子系统,例如电源管理、Linux初始化等;
  2. 其它非核心代码,例如库文件(因为Linux内核是一个自包含的内核,即内核不依赖其它的任何软件,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等;
  3. 编译脚本、配置文件、帮助文档、版权说明等辅助性文件;

4.Linux内核的主要组件有:

系统调用接口、进程管理、内存管理、虚拟文件系统、网络堆栈、设备驱动程序、硬件架构的相关代码。

5.内核模块:

5.1内核模块概念:
内核模块是Linux对外部提供的一个接口,它的全称是动态可加载内核模块(Loadable Kernel Module, LKM),简称模块。是具有独立功能的程序,它可以被单独编译,但不能独立运行,因为它只有初始化函数,没有单独的main()函数。动态加载模块时,模块被链接到内核并作为内核的一部分在内核空间运行。
5.2为什么要设置内核模块?
Linux之所以提供模块机制,是因为Linux内核是一个单内核,它把所有的内容集成在一起,虽然效率高,但可扩展性较差,模块机制正好为了弥补这一设计缺陷。
模块通常向基本内核添加设备、文件系统和系统调用等功能。在这里插入图片描述
5.3 模块的程序结构:

模块加载函数      模块卸载函数
模块许可证          模块参数
模块导出符号      模块信息

5.4内核模块的优缺点:

优点:
1>拓展了内核的功能;
2>具有良好的可移植性
3>被链接后,作用域同内核
缺点:
1>消耗内核性能;
2>使用不当造成系统崩溃;
3>需要维护内核符号表;

5.5内核模块间的依赖:
模块B被模块A引用//模块A依赖模块B。
如果一个内核模块A要引用另一个内核模块B中的全局变量或函数(符号).
加载模块A之前需要先加载模块B,用EXPORT_SYMBOL()/EXPORT_SYMBOL_GPL()将符号导出。

6.系统的运行级别:

6.1运行级指定操作系统所处的状态,Linux系统在任何时候都运行于某个运行级上.在不同的运行级上运行的程序和服务都不同,所要完成的工作和所要达到的目的也都不同。
Linux(CentOS 6, Red Hat 9.0)设置了7个不不同运行级:
在这里插入图片描述
CENTOS 7 (systemd) 运行级分为5种:
runlevel0.target -> poweroff.target (0: 关闭计算机)
runlevel1.target -> rescue.target (1:单用户模式)
runlevel2.target -> multi-user.target (2: 多用户模式 无NFS)
runlevel3.target -> multi-user.target (3: 多用户模式 有NFS)
runlevel4.target -> multi-user.target (4: 保留使用)
runlevel5.target -> graphical.target (5: 图形方式)runlevel6.target -> reboot.target (6: 重启)

6.2运行级详细说明:
运行级0是为关闭计算机系统而设的,这时系统中所有已开启的服务都要停止、处于运行状态的进程都要转变为终止状态、系统收回所分配的资源,并关闭系统电源。当我们使用关机shutdown –h 命令时,系统转入该运行级。
运行级1是为进入单用户模式维护计算机系统而设的,在该运行级上可以运行一些不适合在多用户、多任务模式下运行的命令,如磁盘编辑等;这时系统只开启很少的服务,如keytable服务。
运行级2、3、5都是多用户模式
只是运行级2、3为字符终端方式,但运行级2不带网络文件系统(NFS)支持而运行级3有带NFS;运行级5为图形方式,它使普通用户操作更为简单、方便。
运行级6是为重启计算机系统而设的,这时系统中所有已开启的服务都要停止、处于运行状态的进程都要转变为终止状态、系统收回所分配的资源,并重新启动计算机系统。当我们使用 shutdown –rreboot命令时,系统转入该运行级。
6.3查看优先级的方式:——CENTOS 6系统下的运行级查看
1》执行命令的方式——runlevel
它查看 /etc/run/utmp 文件,并在标准输出设备上输出以前 和当前运行级情况。如输出为 N 5 表示以前运行级未知,当前运行级为5级。
2》查看配置文件的方式——/etc/inittab

id:5:initdefault:
这行中的5表示当前缺省的系统运行级为5。

6.3查看优先级的方式:——CENTOS 7系统下的运行级查看
查当前默认的运行级别:
systemctl get-default
graphical.target
临时切换运行级别:

6.4优先级切换的方式:
_执行命令的方式:
centos6
init [0123456Ss]
telinit[0123456sSQqabcUu]
Centos7:(切换到:运行级3)
systemctl isolate multi-user.target
systemctl isolate runlevel3.target
_修改配置文件的方式:
Centos7下,初始化程序是systemd,默认运行级别由/etc/systemd/systemdefault.target文件中决定
因此也可以通过修改文件的方式修改用户模式
先删除: /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
修改配置文件方式实际上就是直接把*/etc/inittab*文件中的缺省运行级修改到要设置的运行级上并保存,但这种方式需要重新启动系统才能使运行级切换生效。因此、在实际使用中用执行命令方式切换运行级更为方便。

7.服务查看:

不同运行级下启动的服务是不同的,这些服务在Linux下也称为守护进程。

	1》命令方式
	CentOS 6:service和 chkconfig-list	
	CentOS 7:systemctl   	
	2》图像方式(略)

查看所有命令格式:
systemctl [command] [–type TYPE] [–all]
参数详解:
-t或者–type可以指定unit type, 主要有service, socket, target在这里插入图片描述

7.服务的开启方法:

systemctl命令实际上是servicechkconfig命令的组合,该命令的格式如下:
systemctl 功能 服务名称
例如:systemctl start firewalld.service
功能的基础取值:
enable:使指定服务开机自启;
disable:取消指定服务开机自启;
start:启动指定服务;
stop:停止指定服务;
status:检查指定服务运行情况,列出该服务的详细信息;
restart:重启指定服务;
reload:重新加载指定服务的配置文件

在这里插入图片描述

8.启动流程:

1、BIOS加电自检;
2、MBR系统引导;
3、加载内核。

9.常见的系统关机命令:

shutdown [-t sec] [-rkhncfF] [time] [warning-message]

参考示例1:
shutdown –h now
参考示例2:
延迟5分钟关机,并每隔1分钟发送一次警告信息给已登录系统的用户。
shutdown –m +5 
“System will shutdown after 5 minuters”

init 0运行级切换命令
halt [-dfhinpw]

 参数含义:
-d:不要在wtmp(用户登录记录文件,在/var/log目录下)中记录
-f:无论当前的系统运行级是多少,都不调用shutdown;即强制关机。
-h:在关闭系统或电源之前,以备用模式安置系统上的所有硬件驱动器。
-i:在关闭系统之前,关闭全部网络接口。
-n:在关闭系统之前,不先执行sync命令(将缓存中的数据写入磁盘)
-p:在关闭系统之后,执行poweroff(关闭电源)。
-w:仅仅在wtmp文件中记录,而不实际关机。
注意:
该命令如果不用-p参数,则只是关闭系统,并没有关闭电源。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值