计算机组成、Linux 内核、Linux 发行版及 LInux 的哲学思想

计算机的组成

那么我们先从计算机的组成说起吧,现在的计算机还是遵循存储程序结构,及冯诺依曼结构(Von Neumann architecture),或称为普林斯顿结构(Princeton architecture),这是一种将程序指令存储器和数据存储器合并在一起的计算机设计结构。

冯诺依曼架构将计算机分为四个主要组成部分:算数逻辑单元(arithmetic logic unit,ALU)、控制电路(control unit)、存储器(memory)及输入输出设备(input and output devices)。
在这里插入图片描述

如果看到这里突然想到 CPU(Central Processing Unit) 为何物,那么:

The main difference between CPU and ALU is that the CPU is an electronic circuit that handles instructions to operate the computer, while the ALU is a subsystem of the CPU that performs arithmetic and logical operations.

[1] PEDIAA
总之,ALU 是 CPU 的一部分,CPU 专注于处理指令的及时处理并准确地执行,而 ALU 侧重于数学和逻辑推理。

(选读内容)既然说到这里了,就在告诉你一个计算机的秘密,自图灵提出假想纸带机后,整个计算机的发展进程都只围绕着一件事:提高运算速度。冯·诺依曼所设计的架构中的拓展交流窗口,是为了让图灵纸带机从一次读取 1 比特到一次读取多比特。与寄存器机器相比,冯诺依曼将具体的任务分配至了具体的硬件上,就像有专门的电子线路来负责加法,也有专门负责减法的,以及专门负责跳转指令的等等。因为需要将指令送往正确的地方执行,软件和硬件终于相遇了。神奇的是,简单的各个部分经过简单地组合,产生的一条条指令即简单的算术运算,便能模拟你想让计算机完成的任何计算。

内核

首先分享一篇不错的博客:
https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/index.html
首先你需要明确的是,我们所谓的完整的操作系统是指 kernel + application;而狭义上的 OS 仅仅指 kernel。
内核(kernel)其实也是个应用程序,它是用来管理软件发出数据 I/O 要求的程序,并将这些要求转译给 CPU 及其计算机组件。
内核是一个为众多计算机软件,提供对计算机硬件的安全访问的软件,由内核决定一个程序在什么时候,对什么硬件的哪部分操作多长时间。
the operating system is an interface that allows the application programs to access hardware resources. The kernel is the core of an operating system. The operating system performs major tasks of a computer system such as memory management, process management, securing the data and many more. System call and library call are two terms associated with operating systems. [2] PEDIAA)
在这里插入图片描述
有了以上基础,我们就可以清楚地看懂 GNU/Linux 操作系统的体系结构了。 最上面的是用户空间,即我们执行应用程序的位置,其下为内核空间,正是 kernel 的所在之处。

由于直接操作计算机硬件很复杂,所以内核需要提供一种硬件的抽象,来完成上述操作。我们的 Linux 内核结构在硬件之上,抽象出接口(System call)系统调用来实现操作系统的功能。

库函数与 shell 会在后面的文章继续介绍给你,现在我们只需知道,他们俩是为了我们日常使用的方便,从而对系统调用抽象而成的接口。

这一部分最后我先列出来 kernel 的功能:驱动程序、文件系统、内存管理、进程管理、网络管理、安全等等,我相信跟着我的文章,后面你都会明白的。

Linux 发行版

Linux 发行版(Linux distribution)是基于 Linux kernel ,由软件组成的操作系统,且用户用软件包管理系统进行应用软件的管理。

软件包管理系统作用:提供在操作系统中安装、升级、卸载目标软件的方法,并提供对系统所有软件状态信息的查询。

在 GNU/Linux 操作系统中,最为常用的两类软件包管理工具为 RPM 与 DPKG。

RPM ,Redhat Package Manager

DPKG ,Debian Package

开源协议

这里先连接上别人的文章吧。
https://www.jianshu.com/p/a57c13631d5e
等到自己用时,有需求了再来更深入的了解。

Linux 的哲学思想

  • 一切皆文件:把几乎所有资源统统抽象为文件形式:包括硬件设备,甚至通信接口
  • 由众多功能单一的程序组成:一个程序只做一件事,并且做好;组合小程序完成复杂任务;
  • 尽量避免跟用户交互:目标:易于以编程的方式实现自动化任务;
  • 使用文本文件保存配置信息;

Linux 的目录

首先来了解一些特殊的目录:

.代表此层目录
代表上层目录
-代表前一个工作目录
~代表目前使用者的家目录

还是再来连接上参考资源 鸟哥的 Linux 私房菜 5.3 Linux 目录配置
在这里插入图片描述
上图文档链接

想要更好的理解这些哲学思想,就跟我慢慢深入地学习下去吧。公众号「一栋人」欢迎添加关注,这里不止有 Linux,也有对生活、读书、思考的记录。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值