【Linux系统编程】对操作系统的理解

操作系统的概念:

广义的操作系统:操作系统内核+其他程序(shell外壳、库函数等等)

狭义的操作系统:操作系统内核(进程管理、内存管理、文件管理、驱动管理)

操作系统是一个进行软硬件资源管理的软件。操作系统几乎都是用C语言写的。

设计操作系统的目的:

首先我们要清楚的是:管理的本质就是对数据的管理。

我们管理的基本步骤是:先描述,再组织。 怎么理解?我们可以定义一个struct或者class,从而对这个对象进行详细的描述,然后对定义出的多个对象进行管理组织,用什么呢?答案是数据结构。 操作系统的设计也是如此,所以在操作系统的内部存在着**大量的结构体和数据结构,**达到管理下层软硬件资源的目的。

操作系统存在的目的:

对下:与硬件交互,管理所有的软硬件资源

对上:为用户程序(应用程序)提供良好的执行环境


库函数和系统调用的理解

为什么要存在系统调用?因为群众当中有坏人!如果让上层随意的访问操作系统甚至下层的数据进行篡改、抹除,这是一件非常可怕的事情,所以要进行控制,暴露部分接口,保证可控的情况下供上层开发使用,这部分由操作系统提供的接口就叫做系统调用。

接口的功能比较基础,根据要求,开发者也可以对部分系统调用的接口进行封装,形成库函数,从而产生了库,极大减少了用户使用操作系统的成本,也利于更上层用户或开发者进行二次开发。

完~

相关推荐
Kina_C1 小时前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
小肝一下1 小时前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
Android洋芋2 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
Elastic 中国社区官方博客2 小时前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
RoboWizard2 小时前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
2601_964702892 小时前
Claude Opus 5 API 开发实战:对话、文本生成与结构化输出
java·服务器·前端
聚焦前沿2 小时前
水动力优化导流罩:原理、数据与实船验证
大数据·服务器·数据库·人工智能
hkj88082 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
huainingning2 小时前
防火墙重启后ssl登录提示证书过期临时解决方法
linux·服务器·ssl