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

操作系统的概念:

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

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

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

设计操作系统的目的:

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

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

操作系统存在的目的:

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

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


库函数和系统调用的理解

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

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

完~

相关推荐
晊晌_h2 分钟前
嵌入式从0到精通——Linux 网络通信|TCP、HTTP 网络编程
linux·c语言·网络
CounterGlew5117 分钟前
Vscode通过ssh链接autodl云服务器并配置codex
运维·服务器·vscode
2501_927283588 分钟前
数据采集,正在让工厂从“凭经验”走向“看数据”
运维·人工智能·自动化·数据采集·agv·立体仓库
姚不倒11 分钟前
Tengine 实战:主动健康检查 + 动态 Upstream 配置
运维·网络·nginx
郝学胜-神的一滴26 分钟前
CMake 047:解锁安装阶段自定义操作,告别配置阶段提前执行坑
运维·服务器·c++·游戏引擎·图形渲染·opengl
Ai思想家32 分钟前
一次模型调用会留下什么:聚合平台的日志留存与数据边界
大数据·服务器·网络·人工智能
筝筝ba35 分钟前
linux查询某个网卡是否插了对应网线的命令
linux·运维·网络
小宏运维有点菜35 分钟前
Raid-1安装Ubuntu 24.04 LTS
linux·运维·服务器
姚不倒37 分钟前
HAProxy 系列(二):健康检查与 SSL 卸载 — 保障可用性与性能
运维·网络·网络协议·ssl·haproxy
内核笔记38 分钟前
内核调用栈调试
linux·单片机·bsp