进程-操作系统结构

操作系统为用户提供服务,包括CLI、GUI和批处理接口。系统调用是程序员与操作系统交互的接口,通过设置寄存器中的编号来调用特定功能。在用户和系统模式间切换时,内核根据寄存器中的编号执行相应的系统调用函数。文章还提到了微内核设计以及GNU/Linux作为开源操作系统的例子。

进程-操作系统结构

中文仅本人理解,有错误请联系我。
操作系统为不同方面服务,有不同的设计角度。
为用户: 使用
为程序员:创造
在这里插入图片描述程序员需要关注的就是system call接口的调度
file systems:ntfs,ext4
communication:进程之间通信的服务,让它们可以互相传递数据

UI.(user interfaces)分类:
CLI.:linux shell
GUI:图形化接口
batch:包含命令和指示的一个文件,类似于批处理文件

system call分类:
系统调用的实现代码是操作系统级别的
这个接口通常是面向程序员的
system call开放api,程序员只需要放入api需要的对应参数,得到api返回的对应值。
例如:调用printf这个写在c的lib库中的api
在这里插入图片描述user mode和kernel mode双重模式
用户模式:执行用户代码
内核模式:执行操作系统代码

状态码 0代表内核模式,1代表用户模式
在这里插入图片描述上面知道了操作系统是如何设计陷阱来让一个进程在用户模式和系统模式切换
那么我们在切换到系统模式的时候还需要调用系统级别的函数。
那么上面的问题操作系统是如何实现的呢?
系统调用有一个编号
在这里插入图片描述程序调用时,程序会把需要调用的系统调用好写入一个寄存器,内核从寄存器中读取这个编号,查索引表,确定调用system call函数。
程序产生的进程号是一个随机数,也就是一个动态分配的号码,但是此进程所产生的系统调用号是固定的

操作系统的设计思路
设计目标:
用户目标:美观,舒适度
系统目标:调用api通用性
机制与策略的分离:
机制(machanism):如何做,系统如何调度程序在用户模式和系统模式进行切换
策略(policy):做什么,在多进程(任务)的复杂情况下,谁先谁后是个问题
微内核操作系统:是一个机制和策略分离系统的典型模板如mac os的内核。

GNU/LINUX:
Open-source os
Close-source os
hybrid os

GUN is not Unix
Unix是要钱的,但是GUN的目的是在付费系统上开放软件代码。
GUN项目的发布需要满足GPL
由于开源思想的盛行,并逐渐被一群极客推崇,所以就有了类unix 内核的linux 内核出现
linux著名的发行版本
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白帽小丑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值