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

操作系统的概念:

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

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

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

设计操作系统的目的:

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

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

操作系统存在的目的:

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

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


库函数和系统调用的理解

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

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

完~

相关推荐
镜子AI20 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo21 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
HideF21 小时前
Linux sudo
linux
FlightYe1 天前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎1 天前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
知已难寻1 天前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning1 天前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
牛马鸡niumasi1 天前
【Linux】C语言文件操作
linux
say_fall1 天前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii1 天前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器