【Linux】操作系统的认识

文章介绍了冯诺依曼体系结构的基本原理,强调了内存的重要性以及为何需要操作系统来协调硬件资源和提供用户接口。讨论了操作系统如何通过驱动程序管理底层硬件,以及操作系统的核心组件和其在数据管理中的应用。


1. 冯诺依曼体系结构

  1. 冯诺依曼体系结构的介绍

冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(程序作为控制器的一部分,作为硬件存在),将程序编码存储在存储器中,实现了可编程的计算机功能,实现了硬件设计和程序设计的分离,大大促进了计算机的发展。所以我们现在常用的计算机大多遵循冯诺依曼体系结构。
在这里插入图片描述

  1. 理解冯诺依曼体系结构

(1)现在计算机由五大基本硬件组成:

存储器:就是内存

输入设备:键盘、摄像头、话筒、磁盘、网卡和鼠标等

输出设备:显示器、播放器、磁盘、网卡等

运算器:对我们输入的数据进行运算(算术运算和逻辑运算)

控制器:读取内存中的指令,翻译解析后向有关硬件发送控制命令

注意
a. 外设是输入设备和输出设备,CPU包括运算器和控制器。
b. 有的设备是纯输入,有的设备是纯输出,有的则是既输入又输出,例如磁盘和网卡。
c. U盘和磁盘是外存(用来存放内存暂时用不着的程序和数据)。
d. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设;外设要输入或者输出数据,也只能写入内存或者从内存中读取。所有设备都只能直接和内存打交道。

问题1
为什么要有内存?CPU不能直接从外设进行读取,再输出到外设吗?
a. 从存储的结构就可以知道,外设离CPU远,输出设备和输入设备与CPU的速度差距太大,当输入设备还在慢吞吞输入数据时,CPU早将数据处理输出到输出设备,输出设备再慢吞吞输出数据,CPU有太多空闲,严重拖累了计算机的执行速度。
b. 内存的速度不也比CPU慢,为什么还要链接内存?内存的速度确实慢于CPU,但两者间的速度差距远小于外设与CPU的速度差距。也就是说内存容量适中、速度适中,是最优解。
c. 内存具有预加载的功能,会预先将输入设备的数据加载到内存,且当CPU在运算时,内存也会不断地存储数据。这样CPU就会不断地从内存中读取和输出数据,提高了计算机的执行速度。此时的内存就是硬件级别的缓存空间。

下面是计算机的存储金字塔。
在这里插入图片描述

问题2
一个程序要运行,必须先加载到内存。为什么?
简单回答
因为冯诺依曼体系结构规定。
详细回答
因为CPU只能从内存中读取数据,不能直接从外设中读取数据。

(2)上面五大设备都是独立个体,各个硬件单元必须用“线”链接起来,这个线就是系统总线和IO总线。CPU与内存之间的是系统总线,内存与外设之间的是IO总线。

(3)场景
请解释,从登录上qq开始和某位朋友聊天开始,数据的流动过程。
在这里插入图片描述
在这里插入图片描述
如果我想要传一个文件(比如文档)给我的朋友,请画出数据流动的过程。
在这里插入图片描述


2. 操作系统

由冯诺依曼体系结构,我们可以知道计算机有很多硬件,这些硬件各有各的功能。这些功能什么时候执行,谁先执行,就需要一个逻辑来管理,所以就有了操作系统。

  1. 什么是操作系统

操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
简单讲,操作系统是一款进行管理(硬件和软件)的软件。

操作系统包括内核(进程管理、内存管理、文件管理、驱动管理)和其他程序(例如函数库,shell程序等等)。

  1. 为什么要有操作系统

(1)操作系统帮助用户管理好下面的软硬件资源(驱动和底层硬件)。
(2)为了给用户提供良好(稳定、高效、安全)的运行环境。
注意
这里的用户是程序员,而不是普通用户。因为普通用户不是直接使用操作系统,而是使用程序员开发出来的软件。只要保证良好的运行环境,程序员才能为普通用户创建更多的软件。

  1. 用户可以直接访问操作系统吗

操作系统是软件,有大量数据,但用户不能直接访问操作系统,操作系统不相信任何用户。可是操作系统又要为用户提供各种服务,所以操作系统就得提供接口让用户访问内部数据。这是怎么做到的?

操作系统为了保证自己的数据安全,又为了保证给用户提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。

拓展
操作系统是用C语言写的,接口就是操作系统提供的、用C实现的函数调用,这就是系统调用。
总结
所有访问操作系统的行为,都只能通过系统调用完成。

计算机的层状结构
在这里插入图片描述

  1. 操作系统是如何进行管理底层的软硬件资源?

(1)操作系统不直接访问底层的硬件,而是通过驱动程序进行管理的。
(2)操作系统是管理者,而硬件是被管理者。只要有被管理者的信息,就能对被管理者做管理。就像在大学,校长是管理者,而学生则是被管理者,校长不需要见学生就能对学生进行管理,他是通过学生的学号等各种信息进行管理的。同样,操作系统是对硬件的各种信息管理。

所以管理的本质是通过对数据的管理,而不是对人(硬件)的管理
(3)操作系统中是有大量的数据,要如何对每份数据都进行管理?比如在大学中,要在整个年级中找出几名学生、新转学几名学生、退学几名学生,我们可以将每个学生描述成一个结构体,这个结构体中有学生的各种信息(如姓名,性别,学号,成绩等),然后用一个链表把每个结构体链接起来。这样,成功地将学生的管理工作转换成对链表的增删查改。

所以我们可以将底层设备构建成结构体(先描述),再用链表和其他数据结构链接起来(再组织)

(4)操作系统中,管理任何对象最终都可以转化成对某种数据结构的增删查改。
(5)最终答案:先描述,再组织

Linux操作系统是一种开源、多用户、多任务的操作系统,广泛应用于服务器、嵌件式设备、超级计算机和个人计算机等领域。其设计哲学强调模块化、灵活性和可移植性,使得Linux在多种硬件平台上都能高效运行[^1]。 ### Linux的基本概念 1. **内核与用户空间** Linux系统通过区分内核空间(Kernel Space)和用户空间(User Space)来增强系统的稳定性和安全性。内核空间负责处理核心功能,如进程调度、内存管理、文件系统和网络协议栈等;而用户空间则运行应用程序,如文本编辑器、浏览器和数据库等。这种设计确保了即使应用程序出现错误,也不会直接影响操作系统的稳定性[^2]。 2. **模块化设计** Linux内核采用模块化架构,允许动态加载和卸载设备驱动程序和其他核心功能,而无需重新编译整个内核。这种灵活性使得Linux能够适应不断变化的硬件环境和功能需求。 3. **文件系统** Linux支持多种文件系统格式,如ext4、XFS、Btrfs等,提供强大的文件管理能力。文件系统不仅用于存储普通文件,还用于表示设备、进程和网络连接等系统资源。 4. **Shell与命令行** Linux提供了强大的命令行接口(CLI),如Bash、Zsh等,用户可以通过Shell执行命令、编写脚本以实现自动化任务。Shell是用户与内核之间的重要交互界面。 ### Linux的核心特性 1. **开源与自由软件** Linux是基于GNU通用公共许可证(GPL)发布的开源操作系统,用户可以自由获取、修改和分发源代码。这种开放性促进了全球开发者社区的协作与创新。 2. **多用户与多任务** Linux天生支持多用户环境,每个用户都有独立的账户和权限设置。同时,它具备强大的多任务处理能力,能够同时运行多个应用程序并高效调度系统资源。 3. **安全性与权限管理** Linux提供了细粒度的权限控制系统,通过用户、组和其他三类权限模型(读、写、执行)来保护系统资源。此外,Linux还支持SELinux、AppArmor等安全模块,进一步增强系统安全性。 4. **网络功能强大** Linux内置了丰富的网络协议栈支持,包括TCP/IP、IPv6、NFS、Samba等,能够轻松构建各种网络服务和通信应用。 5. **可移植性与跨平台支持** Linux内核被设计为高度可移植,支持从嵌入式设备到超级计算机的多种硬件架构,如x86、ARM、MIPS等。这种跨平台能力使Linux成为开发通用操作系统和定制化系统的理想选择。 ### 示例:查看当前系统信息 ```bash uname -a ``` 该命令将输出当前Linux系统的内核版本、主机名、操作系统类型等基本信息。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值