• 哈工大李治军老师操作系统笔记【3】:操作系统的接口(Learning OS Concepts By Coding Them !)


    0 回顾

    回顾内容请看上一章Blog

    具体系统启动的全过程如下图,即为“操作系统立起来”的意思。


    在这里插入图片描述


    1 接口


    在这里插入图片描述


    有了接口,使用就非常方便,因为要用电,所以得插入这个接口。


    在这里插入图片描述


    所以,要使用操作系统,就必须有接口。

    如何使用PC呢?


    在这里插入图片描述


    1.1 命令行接口的本质

    命令就是一段程序,在系统启动到最后会启动一个程序,这个程序就是shell程序。shell程序就会调用指令使用屏幕进行输出,并且申请CPU去执行相应的代码。所以综上就是,程序进行编译后,会成为可执行程序,就可以在命令行以命令的方式进行调用,这些程序当中包含一些语句,就是对操作系统接口的调用,比如说mem_init();一般系统初始化代码的最后会启动一个shell程序。shell本身也是一段程序,它的代码很简单,就是一个死循环,不断的读入命令并执行,后面讲完进程管理可以来看这段代码的细节其中fork和exec是真正的操作系统接口,可以实现进程管理,调用了CPU,scnf也是真正的操作系统接口,可以实现从键盘读入信息,调用了键盘输入另外printft也是,可以调用显示器。


    在这里插入图片描述


    1.2 图形按钮的机制


    在这里插入图片描述


    现在讲的代码是基于linux0.11的,只有命令行,没有图形界面,但是完全可以在linux0.11上实现图形界面。

    • 当鼠标点击、键盘按下后,通过中断,这一事件被放到消息队列中
    • 操作系统的内核中,有一个应用程序会不断的从这个消息队列中取出并处理这些事件,处理事件的代码中,就有对操作系统接口的调用

    从内核当中把消息拿出来可以通过GetMessage这个函数,每次拿出一个来,就可以根据拿出什么消息,来实现相应的功能。总的来说就是一个循环,调用一个函数,从内核里把消息取出来,每取出一个消息都会调用一个消息处理函数,这就是著名的消息处理机制,图形按钮基于一套消息处理机制,所以无论是命令行还是图形界面,都是一个程序,但是在OS当中,最重要的就是调用了函数,使用这些函数来操作硬件,因为是函数调用,但是是OS调用的,所以称为系统调用。

    综上,什么是操作系统接口?系统调用

    1.3 系统调用

    • 系统调用有哪些?不需要记住,要知道从哪里去查这些系统调用,例如POSX手册
    • 系统调用接口需要有统一的规范,以适配不同的实现,例如POSIX:Portable Operating System Interface of Unix(IEEE制定的一个标准族)
    • 我的理解:linux有很多不同的发行版,使用规范AP编写的应用程序可以跑在不同发行版的linux上

    在这里插入图片描述


    2 总结

    加油

  • 相关阅读:
    设计两个异常类,用于检查身高
    YUM退役了?DNF本地源配置
    npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题
    排序算法——七种排序算法汇总,详细
    [CSAWQual 2019]Web_Unagi - 文件上传+XXE注入(XML编码绕过)
    2024年值得关注的8个未来数据库
    BSV 上的私钥谜题
    Oracle P6 配置SQLServer数据库报FileStream错误
    【Serilog】具有完全结构化事件的简单.NET日志记录
    Nginx 使用自签名证书实现 https 反代 Spring Boot 中碰到的页面跳转问题
  • 原文地址:https://blog.csdn.net/weixin_44673253/article/details/126646746