IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 操作系统接口 -> 正文阅读

[C++知识库]操作系统接口

目录

一:学习操作的层次

二:操作系统的接口

命令行的实现 --命令输入后发生了什么

图形按钮的实现---点击图形执行操作


一:学习操作的层次

操作系统是计算机硬件和应用之间的一层软件----“裸机”的衣服

  • 方便我们使用硬件(CPU,内存,终端,文件,磁盘)
  • 高效的使用硬件---比如:打开多个终端/窗口

要达到方便。高效地使用内存资源,操作系统要对硬件资源进行管理

不同角度去学习操作系统:

? ? 1:从应用软件出发“探到操作系统”

?

集中在使用计算机应用软件和操作系统之间的接口,仅知道OS提供的接口有哪些,调用的命令

ex:使用显示器:printf // 使用CPU:创建进程fork // 使用文件:open,read

? ? 2:从应用软件出发“进入操作系统”

?

懂得背后的原理,也就是软件调用API后OS的具体操作过程

目标:对OS的现有功能进行改动和扩充

? ?3:从硬件出发“设计和实现操作系统”

直接给出裸机,对硬件配一个操作系统,并且操作系统对应用软件提供一些接口


如何进入操作系统:

  • 能理解真实操作系统的运转
  • 能知道接口的具体调用过程
  • 能在真实操作系统上动手实践

目标:设计操作系统的一些模块,改操作系统

?CS名校怎么学操作系统?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?阅读和撰写代码,懂得代码背后的原理

?


二:操作系统的接口

接口:连接两个东西(计算机硬件和应用软件)+屏蔽细节+信号转换(内部实现)

操作系统的接口连接上层用户和操作系统的软件

?一般来说操作系统的接口为:命令行,图形界面,应用程序

命令行的实现 --命令输入后发生了什么

什么是命令?--------答:用高级语言编写的程序

//下面就是一个输出“hello”命令

#include<stdio.h>
int main(int argc,char *argv[])
{
printf("%s\n",argv[1]);
}

上述程序经过编译gcc -o \: output\, output.c生成可执行程序./output\,\, \, \, "hello"
命令行输入可执行程序,即可显示结果

?从敲入命令到输出结果发生的过程

实际上命令行本身也是一段shell程序,即:/bin/sh

int main(int argc.char *argv[])
{char cmd[20];
while(1){
scanf("%s",cmd);}
if(!fork()) {exec(cmd);}
else {wait();}
}

上述程序的主体:一个死循环,不断等着用户敲入命令

while(1){

scanf("%s",cmd);}

if(!fork()) {exec(cmd);}//具体的执行语句

else {wait();}

}

总结:
系统启动时执行shell程序出现命令行,命令行等着用户输入命令(可执行文件),当用户输入命令后,shell会先执行if(!fork()) {exec(cmd)也就是申请CPU,然后去运行具体的可执行文件

图形按钮的实现---点击图形执行操作

?

?应用程序不断从内核中取出消息,每取出一个消息就调用一个消息处理函数。
?消息处理函数具体实现程序

?上述表明:

  • 命令行:命令程序
  • 图形界面:消息框架程序+消息处理程序

函数就是操作系统的接口,也就是接口表现为函数调用,而这些函数由系统提供,又叫:系统调用

什么是操作系统接口?---系统调用(System Call)

下图就是一些系统调用函数 ,接口要统一,有标准协议

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:23:18  更:2022-02-22 20:25:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:39:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码