【Linux】操作系统

上一篇博客我们从硬件的角度 谈了计算机,我们说到了计算机的效率跟操作系统写的好不好有着直接的关系,那么这篇博客我们从软件的角度,就来谈一谈究竟什么是操作系统,为什么要有操作系统?

首先我们来大体的认识一下操作系统,看看操作系统在从用户和硬件之间处于哪个位置,我们看下面这张图

下面我们来解释一下这张图

最上面一层是用户要执行的一些操作 ;第二层是展示给用户的,可以操作的方法 ,有图形化界面,命令行中的的指令,lib就是指一些库函数 ;第三层是系统调用接口 ,其实不知可以像图中这样,用户也是可以直接调用系统调用接口的,我们后边也会提到,所以说库函数和系统调用接口是上下层关系;第四层是操作系统 ;第五层是一些驱动程序 用来驱动硬件;最底层就是我们的硬件了。

有了如上的关系,我们就可以很好的切入进操作系统了:

实际上,当我们给电脑通电时,第一个被加载的软件就是操作系统了,操作系统是进行软硬件资源管理的软件

那么什么叫管理呢?管理就是做决策+执行。做决策要根据什么呢?比如在学校中,校长要对每个学生做管理,校长拿到学生的信息就可以做管理,他们之间根本不需要见面。这跟操作系统也是一样的,操作系统要拿到数据,对于数据进行做决策,也就是管理。

如果信息十分多呢?我们的校长可以选择写一个struct结构体,把信息通过链表组织起来,这样对于学生的管理操作就变成了对于链表的增删查改 。恰巧,我们的Linux就是用C语言写的,它的内核就是这么干的。我们叫做:先描述再组织

那么为什么要有操作系统呢?说白了就是为什么要操作系统的管理?对下管理好软硬件资源 ,这是手段,对上提供一个稳定、安全、高效的运行环境,这是目的。

那我们要用操作系统就离不开它上面的用户操作接口系统调用接口。下面我们再来详细的介绍一下它们两个

系统调用接口其实就是函数,因为Linux内核是用C语言写的 ,所以就是C语言的函数 。不同的操作系统的系统调用接口是不一样的。但是用户操作接口为了满足语言的跨平台性,可移植性,在不同的操作系统是相同的,比如printf函数在不同平台都可以用。它们之间的关系大概就像这样:

库函数也是去调用系统调用接口,要不为什么说它们是上下层关系

这可以类比成我们去银行办理服务,我们可以通过窗口进行直接办理,这时就是系统调用接口,一些老人可能不会办理,它们就可以求助银行大厅的工作人员,说清它的需求,大厅工作人员帮忙办理。这就是调用用户操作接口,再调用系统调用接口。同时,操作系统为了安全着想不可能将内部数据暴露给用户,只能通过一些接口,这跟银行中的窗口是类似的。

相关推荐
Elastic 中国社区官方博客7 分钟前
Elasticsearch 下采样方法:最后值采样 vs. 聚合采样
大数据·运维·elasticsearch·搜索引擎·全文检索
一个在高校打杂的13 分钟前
honeypot之opencanary(轻量化蜜罐)
linux·网络安全·网络攻击模型·安全威胁分析·策略模式
大明者省14 分钟前
Ubuntu22.04 宝塔面板与 XFCE 远程桌面端口兼容性分析
运维·服务器·数据库·笔记
s_w.h20 分钟前
【 linux 】认识make和makefile
linux·运维·bash
代码熬夜敲Q24 分钟前
Docker基础
运维·docker·容器
不怕犯错,就怕不做31 分钟前
ARM设备异常断电容易造成数据损坏,硬件如何设计
linux·驱动开发·嵌入式硬件
Harm灬小海35 分钟前
【云计算学习之路】学习Centos7系统-Linux软件包管理
linux·运维·服务器·学习·云计算·yum·rpm
1892280486137 分钟前
NY379固态MT29F32T08GSLBHL8-36QA:B
大数据·服务器·人工智能·科技·缓存
caicai_xiaobai38 分钟前
Ubuntu上Git安装步骤
linux·git·ubuntu
平行云1 小时前
实时云渲染平台数据通道,支持3D应用文件上传下载分享无缝交互
linux·unity·云原生·ue5·gpu算力·实时云渲染·像素流送