Linux/Unix 基础:什么是 Linux? 1 个改进

简单来讲,Linux 是一个操作系统(OS)。我们都很熟悉其他操作系统,就像 Microsoft windows,Apple Mac OS,iOS,Google android,等等这些,linux就像它们一样,也是个操作系统。

操作系统就是一个软件,用来保证计算机的硬件和软件之间进行通信。操作系统将输入的信息传递给处理器处理,然后将处理好的信息传递给硬件,进行展示。 这是操作系统最基本的功能。 尽管它还要执行许多其他重要任务才能输出信息给硬件,但我们这里先不谈论它。

从 90 年代中期开始,Linux 被人类广泛使用。 它可以用于手表,也可以用于超级计算机。 我们的手机,笔记本电脑,PC,汽车甚至冰箱中都用到了 linux 操作系统,在开发人员和普通计算机用户中也很有知名度。


Linux 操作系统的目录结构

一个操作系统是一系列软件的集合,每个软件都有自己的具体的作用。

Linux 操作系统有以下组件组成:

1) 内核(Kernel)

内核是操作系统的核心。它在硬件设备和软件之间建立通信。并且, 它管理着系统的所有资源。内核有四个基本的功能:

  • 硬件设备管理:  一个系统会跟很多硬件设备连接,例如:CPU,存储设备,声卡,显卡等等。内核将与设备相关的所有数据存储在设备驱动程序中(没有该内核将无法控制设备)。 如果硬件设备已经跟内核通过驱动程序建立连接,内核知道设备可以做什么以及如何操纵设备以发挥其最佳性能。它还管理所有设备之间的通信。 内核同时具有所有设备必须遵循的某些规则。

  • 内存管理: 内核的另外一个功能就是内存管理。内核会跟踪内存中已经使用的和未使用的内存。并且保证进程使用实际的物理内存地址来处理彼此的数据。

  • 进程管理: 在进程管理中,进程在被 CPU 调度之前,内核会分配给进程足够的时间和优先级别给进程。同时,内核也会保证进程中数据的安全性和数据的属于哪个进程

  • 处理系统调用:  处理系统调用意味着应用程序的请求可以通过系统调用的接口直接传给内核处理。

2) 系统库

系统库是一个用来帮助应用程序调用内核功能的特殊程序。因为有一些任务,应用程序必须通过系统调用,触发内核执行任务,才能执行。但是,应用程序需要知道如何进行系统调用,因为不同的内核有不同的系统调用。好在程序员已经开发了与内核进行通信的标准程序库。每个操作系统都支持这些标准,然后将这些标准转移到该操作系统的系统调用中即可。

Linux 最著名的系统库是 glibc(GNU C库)。

3) 系统工具

Linux 操作系统有一组比较实用的简单的命令行工具。它是 GNU 项目根据其开放源代码许可编写和发布的一个软件,因此这个软件是免费提供给所有人的。

通过命令,你可以访问文件,编辑和操作目录或文件中的数据,更改文件的位置,或者其他操作。

4) 开发工具

有了上面三个组件,操作系统可以运行并正常工作。 如果系统需要更新的话,就要借助于其他工具和库。这些由程序员编写的额外的工具或者库,被称作工具链。 工具链是开发人员用来生成有效应用程序的重要开发工具。

5) 用户终端工具

用户可以定制自己系统的终端工具。终端工具对于操作系统不是必需的,但对于用户来说是必需的。

终端工具的一些示例,例如:图形设计工具,办公套件,浏览器,多媒体播放器等。


开源的操作系统

大多数操作系统的都是编译之后的,意思就是说源代码已经被编译器编译编译,将源代码转换为计算机可以识别的语言,不会把源码暴露出去。

因此,没有源码的话,修改编译之后的代码是一个很难的工作。

另一方面,开源就完全不一样。操作系统的源码也会放在已经编译好的版本中,允许任何有能力的人去修改它。我们可以随意运行开源的程序,根据自己的需求来修改源码,并且把我们修改的源码也开源出去给其他人使用。

简而言之,Linux是一种 「为民所有,为民所享 」的操作系统。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!