linux基本结构是什么

68次阅读
没有评论

共计 4375 个字符,预计需要花费 11 分钟才能阅读完成。

今天丸趣 TV 小编给大家分享一下 linux 基本结构是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

linux 可分为 4 个部分:1、内核,控制着计算机系统上的所有硬件和软件,主要负责系统内存管理、软件程序管理、硬件设备管理、文件系统管理;2、GNU 工具,除内核控制的硬件设备外的必须工具,例 shell;3、桌面环境,例如 KDE;4、应用软件。

本教程操作环境:linux5.9.8 系统、Dell G3 电脑。

Linux 是一种自由和开放源码的类 UNIX 操作系统。它主要受到 Minix 和 Unix 思想的启发,是一个基于 POSIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。linux 可划分为以下四部分:

Linux 内核

GNU 工具

图形化桌面环境

应用软件

下图是一个基本结构框图,展示各部分是如何协同构成一个完整的 Linux 系统。

1.Linux 内核

Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件。内核主要负责以下四个功能:

系统内存管理

软件程序管理

硬件设备管理

文件系统管理

1.1 系统内存管理

操作系统内核的主要功能之一就是内存管理。内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(即实际并不存在的内存)。内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space)。内核不断地在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物理内存更多的可用内存。

内存存储单元按组划分成很多块,这些块称作页面(page)。内核将每个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到了磁盘上。

内核会记录哪些内存页面正在使用中,并自动把一段时间未访问的内存页面复制到交换空间区域(称为换出,swapping out)——即使还有可用内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。显然,这个过程要花费时间,拖慢运行中的进程。只要 Linux 系统在运行,为运行中的程序换出内存页面的过程就不会停歇。

1.2 软件程序管理
Linux 操作系统将运行中的程序称为进程。内核创建了第一个进程(称为 init 进程)来启动系统上所有其他进程。当内核启动时,它会将 init 进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。
Linux 操作系统的 init 系统采用了运行级。运行级决定了 init 进程运行 /etc/inittab 文件或
/etc/rcX.d 目录中定义好的某些特定类型的进程。Linux 操作系统有 5 个启动运行级。

运行级为 1 时,只启动基本的系统进程以及一个控制台终端进程。我们称之为单用户模式。单用户模式通常用来在系统有问题时进行紧急的文件系统维护。显然,在这种模式下,仅有一个人(通常是系统管理员)能登录到系统上操作数据。

标准的启动运行级是 3。在这个运行级上,大多数应用软件,比如网络支持程序,都会启动。另一个 Linux 中常见的运行级是 5。在这个运行级上系统会启动图形化的 X Window 系统,允许用户通过图形化桌面窗口登录系统。

Linux 系统可以通过调整启动运行级来控制整个系统的功能。通过将运行级从 3 调整成 5,系统就可以从基于控制台的系统变成更先进的图形化 X Window 系统。

1.3 硬件设备管理
内核的另一职责是管理硬件设备。任何 Linux 系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在 Linux 内核中有两种方法用于插入设备驱动代码:

编译进内核的设备驱动代码

可插入内核的设备驱动模块

Linux 系统将硬件设备当成特殊的文件,称为设备文件。设备文件有 3 种分类:

字符型设备文件:指处理数据时每次只能处理一个字符的设备。大多数类型的调制解调器和终端都是作为字符型设备文件创建的

块设备文件:指处理数据时每次能处理大块数据的设备,比如硬盘。

网络设备文件:指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设备。

1.4 文件系统管理
Linux 内核支持通过不同类型的文件系统从硬盘中读写数据。表 1 - 1 列出了 Linux 系统用来读写数据的标准文件系统。

2.GUN 工具

除了由内核控制硬件设备外,操作系统还需要工具来执行一些标准功能,比如控制文件和程序。供 Linux 系统使用的这组核心工具被称为 coreutils(core utilities)软件包。GNU coreutils 软件包由三部分构成:

用以处理文件的工具

用以操作文本的工具

用以管理进程的工具

2.1 shell

GNU/Linux shell 是一种特殊的交互式工具。它为用户提供了启动程序、管理文件系统中的文件以及运行在 Linux 系统上的进程的途径。shell 的核心是命令行提示符。命令行提示符是 shell 负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。你也可以将多个 shell 命令放入文件中作为程序执行。这些文件被称作 shell 脚本。

在 Linux 系统上,通常有好几种 Linux shell 可用。不同的 shell 有不同的特性,有些更利于创建脚本,有些则更利于管理进程。所有 Linux 发行版默认的 shell 都是 bash shell。bash shell 由 GNU 项目开发,被当作标准 Unix shell.

2.1.1shell 的类型

系统启动什么样的 shell 程序取决于你个人的用户 ID 配置。在 /etc/passwd 文件中,在用户 ID 记录的第 7 个字段中列出了默认的 shell 程序。只要用户登录到某个虚拟控制台终端或是在 GUI 中启动终端仿真器,默认的 shell 程序就会开始运行。例如:用户 root 使用 /bin/bash(bash shell) 作为自己的默认 shell 程序.

[root@node1 bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

不过还有另外一个默认 shell 是 /bin/sh,它作为默认的系统 shell,用于那些需要在启动时使用的系统 shell 脚本。你经常会看到某些发行版使用软链接将默认的系统 shell 设置成 bash shell,如 CentOS 发行版:
$ ls -l /bin/sh

lrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -  bash

/bin/sh 相当于 /bin/bash –posix, 使用 sh 调用执行脚本相当于打开了 bash 的 POSIX 标准模式,它们之间的各种差异都是来自 POSIX 标准模式和 bash 的差异。

2.1.2shell 的父子关系

用于登录某个虚拟控制器终端或在 GUI 中运行终端仿真器时所启动的默认的交互 shell,是一个父 shell。
在 CLI 提示符后输入 /bin/bash 命令或其他等效的 bash 命令时,会创建一个新的 shell 程序。这个 shell 程序被称为子 shell(child shell)。子 shell 也拥有 CLI 提示符,同样会等待命令输入。
例如:使用 ps -f

[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD
root 727 711 0 11:01 pts/0 00:00:00 -bash
root 4385 727 0 12:06 pts/0 00:00:00 ps -f

使用 ps - f 的时候,显示出了两个进程。其中一个进程的进程 ID 是 727,运行的是 bash shell 程序。另一个进程的进程 ID 为 4385,对应的是命令 ps -f。

[root@node1 bin]# bash[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD
root 727 711 0 11:01 pts/0 00:00:00 -bash
root 4492 727 0 12:08 pts/0 00:00:00 bashroot 4512 4492 0 12:08 pts/0 00:00:00 ps -f

输入命令 bash 之后,一个子 shell 就出现了。第二个 ps - f 是在子 shell 中执行的。可以从显示结果中看到有两个 bash shell 程序在运行。第一个 bash shell 程序,也就是父 shell 进程,其原始进程 ID 是 727。第二个 bash shell 程序,即子 shell 进程,其 PID 是 4492。注意,子 shell 的父进程 ID(PPID)是 727,指明了这个父 shell 进程就是该子 shell 的父进程。在生成子 shell 进程时,只有部分父进程的环境被复制到子 shell 环境中。

3.Linux 桌面环境

1.KDE(K Desktop Environment,K 桌面环境)最初于 1996 年作为开源项目发布。它会生成一个类似于 Microsoft Windows 的图形化桌面环境。

KDE 桌面允许你把应用程序图标和文件图标放置在桌面的特定位置上。单击应用程序图标,Linux 系统就会运行该应用程序。单击文件图标,KDE 桌面就会确定使用哪种应用程序来处理该文件。

2.GNOME(the GNU Network Object Model Environment,GNU 网络对象模型环境)是另一个流行的 Linux 桌面环境。GNOME 于 1999 年首次发布,现已成为许多 Linux 发行版默认的桌面环境。

3.Unity 桌面

如果你用的是 Ubuntu Linux 发行版,你会注意到它与 KDE 和 GNOME 桌面环境有些不一样。准确来说,这是因为负责开发 Ubuntu 的公司决定采用自己的一套叫作 Unity 的 Linux 桌面环境。

Unity 桌面得名于该项目的目标——为工作站、平板电脑以及移动设备提供一致的桌面体验。不管你是在工作站还是在手机上使用 Ubuntu,Unity 桌面的使用方式都是一样的。

以上就是“linux 基本结构是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计4375字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)