Linux基础知识(一、什么是Linux)

一、Linux之父——林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)

        Linux操作系统最初是在1991年10月份由芬兰赫尔辛基大学的在校生Linus Torvalds所发布,最初被发布的LINUX0.02版本因其高质量的代码与开放源代码,迅速引起了一大批黑客的加入,而今虽然有数百计的 Linux发布版,但都依然统一使用Linus Torvalds.开发/维护的系统内核,Linux是具有类似Unix的程序界面与操作方法且继承了其稳定性(通常运行几年都不会宕机)。

二、什么是Linux

Linux 可大致划分为以下四部分:
1、Linux 内核
2、GNU 工具
3、图形化桌面环境
4、应用软件

 1、Linux内核

        Linux系统的核心是 内核 。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,
并根据需要执行软件。
内核主要负责以下四种功能:

1.1、系统内存管理

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

        内存存储单元按组划分成很多块,这些块称作页面 page )。内核将每个内存页面放在物理
内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面
被换到了磁盘上。
        内核会记录哪些内存页面正在使用中,并自动把一段时间未访问的内存页面复制到交换空间
区域(称为 换出 swapping out )——即使还有可用内存。当程序要访问一个已被换出的内存页
面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内
存页面。显然,这个过程要花费时间,拖慢运行中的进程。只要 Linux 系统在运行,为运行中的
程序换出内存页面的过程就不会停歇。

1.2、软件程序管理

        Linux操作系统将运行中的程序称为 进程 。进程可以在前台运行,将输出显示在屏幕上,也
可以在后台运行,隐藏到幕后。内核控制着 Linux 系统如何管理运行在系统上的所有进程。
内核创建了第一个进程(称为 init 进程 )来启动系统上所有其他进程。当内核启动时,它会
init 进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一
块专有区域来存储该进程用到的数据和代码。
一些 Linux 发行版使用一个表来管理在系统开机时要自动启动的进程。在 Linux 系统上,这个
表通常位于专门文件 /etc/inittab 中。
        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 内核支持的硬件设备越来越多,这个过程变得越来越低效。不过好
Linux 开发人员设计出了一种更好的将驱动代码插入运行中的内核的方法。
开发人员提出了内核模块的概念。它允许将驱动代码插入到运行中的内核而无需重新编译内
核。同时,当设备不再使用时也可将内核模块从内核中移走。这种方式极大地简化和扩展了硬件
设备在 Linux 上的使用。
Linux 系统将硬件设备当成特殊的文件,称为 设备文件 。设备文件有 3 种分类:
1、字符型设备文件:
        字符型设备文件是指处理数据时每次只能处理一个字符的设备。大多数类型的调制解调器和 终端都是作为字符型设备文件创建的。
2、块设备文件:
        块设备文件是指处理数据时每次能处理大块数据的设备, 比如硬盘。
3、 网络设备文件:
        网络设备文件是指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设
备。这个回环设备允许 Linux 系统使用常见的网络编程协议同自身通信。

1.4、文件系统管理

        不同于其他一些操作系统,Linux 内核支持通过不同类型的文件系统从硬盘中读写数据。除
了自有的诸多文件系统外, Linux 还支持从其他操作系统(比如 Microsoft Windows )采用的文件
系统中读写数据。内核必须在编译时就加入对所有可能用到的文件系统的支持。表 1-1 列出了
Linux 系统用来读写数据的标准文件系统。

2.核心GNU工具

        GNU项目的主旨在于为 Unix 系统管理员设计出一套类似于 Unix 的环境。这个目标促使该项目
移植了很多常见的 Unix 系统命令行工具。供 Linux 系统使用的这组核心工具被称为 coreutils core
utilities)软件包。GNU coreutils软件包由三部分构成:用以处理文件的工具、用以操作文本的工具、用以管理进程的工具。
GNU/Linux shell是一种特殊的交互式工具。它为用户提供了启动程序、管理文件系统中的文
件以及运行在 Linux 系统上的进程的途径。 shell 的核心是命令行提示符。命令行提示符是 shell 负责
交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。
        shell包含了一组内部命令,用这些命令可以完成诸如复制文件、移动文件、重命名文件、显
示和终止系统中正运行的程序等操作。 shell 也允许你在命令行提示符中输入程序的名称,它会将
程序名传递给内核以启动它。
        你也可以将多个shell 命令放入文件中作为程序执行。这些文件被称作 shell 脚本 。你在命令行
上执行的任何命令都可放进一个 shell 脚本中作为一组命令执行。这为创建那种需要把几个命令放
在一起来工作的工具提供了便利。

3.Linux 桌面环境

        在Linux 的早期( 20 世纪 90 年代初期),能用的只有一个简单的 Linux 操作系统文本界面。这
个文本界面允许系统管理员运行程序,控制程序的执行,以及在系统中移动文件。
        完成工作的方式不止一种,Linux 一直以来都以此而闻名。在图形化桌面上更是如此。 Linux
有各种图形化桌面可供选择。常见桌面有如下几种
1. X Window 系统
2. KDE 桌面
3. GNOME 桌面
4. Unity 桌面
5. 其他桌面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/410035.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL中的stack与queue

前言: stack与queue是STL中的容器适配器,而不是容器。何为适配器?给手机充电的充电器就是一种适配器,将高电压变成低电压。适配器是用来做转化的,不用来直接管理数据,而是在其他容器的基础上去封装转换。 …

【Cadence23】Cadence HDL原理图如何将两个不同的全局网络连接

【转载】Cadence Design Entry HDL 使用教程 【Cadence01】Cadence PCB Edit相对延迟与绝对延迟的显示问题 【Cadence02】Allegro引脚焊盘Pin设置为透明 【Cadence03】cadence不小心删掉钢网层怎么办? 【Cadence04】一般情况下Allegro PCB设计时的约束规则设置&a…

Linux驱动开发基础(中断)

所学来自百问网 目录 1. 嵌入式中断系统 2. 中断处理流程 3. 异常向量表 4. Linux系统对中断的处理 4.1 ARM 处理器程序运行的过程 4.2 保护现场 5. Linux 系统对中断处理的演进 5.1 硬件中断和软件中断 5.2 中断拆分(上半部和下半部) 5.2.1 tasklet 5.2.2 工作队列…

Autofac容器

IoC:注册、注入(解析)、生命周期 Autofac的基本使用 基本使用 需要在NuGet包安装Autofac---建议7.1.0版本 注册: 默认注册: // 容器的初始化 ContainerBuilder builder new ContainerBuilder(); // 注册需要解析…

K8S部署MySQL5.7的主从服务

mysql-slave-0是master mysql-slave-1是slave 当mysql写的时候,找headless service中的 mysql-slave-0.mysql57-slave-headless;当mysql读的时候,找clusterip service中的mysql57-slave-read读,实现读写分离。 statefulset维护两个…

Linux操作系统常见面试题

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 分享常见的操作系统…

原创~尚未发表!基于改进秃鹰算法的多区域微网经济优化调度程序代码!

前言 随着光伏、风电等分布式电源的发展,配电网的供电模式得以改变,解决了传统火力发电带来的能源匮乏及环境污染问题,但其发电的随机性及波动性对配电网的稳定运行造成一定影响。以多个微电网组成的微电网群可有效消纳分布式电源&#xff0…

Anthropic公开Claude AI系统提示词

🦉 AI新闻 🚀 Anthropic公开Claude AI系统提示词 摘要:Anthropic公司近日公开了Claude AI模型的系统提示词,旨在提高AI模型对人类指令的理解。系统提示词设定了对话背景和行为规则,通常是为了防止模型出现不良行为。…

Python数据分析利器之groupby和pivot_table使用详解

概要 在数据分析的过程中,数据聚合与数据透视是两项非常重要的操作。Python的Pandas库提供了强大的工具——groupby和pivot_table,帮助我们高效地进行数据聚合和透视分析。本文将详细介绍如何使用这两个功能,并结合示例代码展示它们的实际应用,帮助更好地掌握数据分析的技…

PTA团体程序设计天梯赛

这次题目出得比前几次简单很多,但有几道题占用的时间太多,导致后面几题仓促写完,未能全部正确,还是得多练 目录 L1-2 九牛一毛 L1-3 小孩子才做选择,大人全都要 L1-5 试试手气 L1-6 打PTA L1-8 随机输一次 L2-…

C++ 类和对象 3

构造函数扩展 构造函数体内的赋值:构造函数一般是用于类对象的初始化的,但严谨来说并不是成员变量的初始化,内置类型的初始化是在生成的同时赋值而且仅有一次,但是在构造函数体内是能对成员变量进行多次赋值的。所以在函数体内的…

探索OpenCV:图像处理基础与实践

探索OpenCV:图像处理基础与实践 前言图像读取基础安装OpenCV库读取彩色与灰度图像 RGB颜色模型颜色通道解析单通道图像显示 感兴趣区域(ROI)图像处理进阶技巧图像打码图像组合图像缩放 结语 前言 在当今数字化时代,图像不仅是我们…

详谈进程等待

目录 前言1. 进程等待的必要性1.1 进程等待的定义 2. 如何进行进程等待2.1 wait 单进程2.2 wait 多进程2.3 status && 退出情况2.3.1 status 参数构成2.3.2 简证 status 参数构成2.3.3 进程等待失败2.3.4 宏调用查看退出信息 3. 进程等待的原理 前言 本篇文章继上一篇…

Hive SQL

一、基本数据类型 tinyint 1byte 有符号整数 smallint 2byte 有符号整数 int 4byte 有符号整数 bigint 8byte 有符号整数 boolean 布尔类型,true或者false float 单精度浮点数 double 双精度浮点数 decim…

C语言07---指针进阶

指针万能拆解法 char型指针 char型指针实质上跟别的类型的指针并无本质区别,但由于C语言中的字符串以字符数组的方式存储,而数组在大多数场合又会表现为指针,因此字符串在绝大多数场合就表现为char型指针。 定义: char *p &qu…

区块链国赛第六套样题(关于运维)

任务1-2:区块链系统部署与运维 围绕食品安全溯源区块链平台部署与运维需求,进行项目相关系统、节点以及管理工具的部署工作。通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维…

Hadoop的HA配置与实现(ZooKeeper)

目录 一、Hadoop的HA架构二、配置实现Hadoop的HA三、效果 一、Hadoop的HA架构 集群规划 112:NameNode1 ResourceManager1 JournalNode1 113:NameNode2 ResourceManager2 JournalNode2 114:DataNode1 NodeManager1 115:DataNode2 N…

linux 云主机下载 rpm 包安装 oracle java jdk21 实录(华为云 EulerOS)

本来是想通过 yum install 相关的 openjdk 版本的, 但老是提示说找不到, 也不想去配置相关的仓库了, 所以改成去 oracle 官网下载 jdk21 的 rpm 包来安装. 云主机是华为云的 EulerOS , 具体为 Huawei Cloud EulerOS 2.0 标准版 64位(公共镜像), 相对于用的比较熟 centos, 差别…

学习之在window上安装MySQL server 并连接到Navicat

一、下载 下载地址:https://www.mysql.com/ 二、安装 1、双击软件安装2、点击yes

云计算实训36——mysql镜像管理、同步容器和宿主机时间、在容器外执行容器内命令、容器的ip地址不稳定问题、基础镜像的制作、镜像应用

一、线上考试系统的数据虚拟化技术部署 1.部署前段服务器 步骤一:将资源上传到服务器 将dist.zip上传给服务器 下载unzip的包 yum -y install unzip 解压 unzip dist.zip 步骤二:创建基础容器在服务器上 启动服务 systemctl start docker.servic…