linux可分为哪几部分

发布时间 - 2022-05-12 00:00:00    点击率:
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视频教程》


# linux  # bash  # Object  # 字符型  # 线程  # 多线程  # 对象  # windows  # microsoft  # ubuntu  # centos  # gnu  # unix  # 文件系统  # 操作系统  # 的是  # 都是  # 是一个  # 应用程序  # 就会  # 是在  # 虚拟内存  # 图形化 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用VPS主机快速搭建个人网站?  网站优化排名时,需要考虑哪些问题呢?  canvas 画布在主流浏览器中的尺寸限制详细介绍  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  历史网站制作软件,华为如何找回被删除的网站?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  javascript基于原型链的继承及call和apply函数用法分析  Laravel如何使用Blade模板引擎?(完整语法和示例)  js实现获取鼠标当前的位置  javascript中对象的定义、使用以及对象和原型链操作小结  如何在服务器上三步完成建站并提升流量?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何用AWS免费套餐快速搭建高效网站?  ,怎么在广州志愿者网站注册?  如何基于云服务器快速搭建个人网站?  奇安信“盘古石”团队突破 iOS 26.1 提权  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  html如何与html链接_实现多个HTML页面互相链接【互相】  如何快速生成凡客建站的专业级图册?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  详解jQuery中的事件  如何快速搭建高效WAP手机网站吸引移动用户?  如何快速搭建支持数据库操作的智能建站平台?  网站建设要注意的标准 促进网站用户好感度!  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  javascript基本数据类型及类型检测常用方法小结  如何续费美橙建站之星域名及服务?  JavaScript实现Fly Bird小游戏  Laravel如何使用withoutEvents方法临时禁用模型事件  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel Fortify是什么,和Jetstream有什么关系  活动邀请函制作网站有哪些,活动邀请函文案?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何在IIS7上新建站点并设置安全权限?  Laravel如何实现事件和监听器?(Event & Listener实战)  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  制作旅游网站html,怎样注册旅游网站?