首页 > 编程语言 >一个操作系统的设计与实现——第24章 64位文件系统,键盘驱动与外壳程序

一个操作系统的设计与实现——第24章 64位文件系统,键盘驱动与外壳程序

时间:2024-09-01 10:25:04浏览次数:9  
标签:24 操作系统 本章 代码 文件系统 键盘 64 寄存器

24.1 64位文件系统

想要实现文件系统,就需要一个超级块和一个文件系统位图。在我们的操作系统中,超级块位于98号扇区,文件系统位图位于99号扇区,文件从100号扇区开始存放。

本章代码24/FS.h定义了FCB,一个FCB的大小是32字节,一个扇区可以存放16个FCB,其中,最后一个FCB改为存放魔数,这些FCB组成了超级块。

本章代码24/FS.hpp实现了文件系统的各个接口,其实现思路与32位操作系统一致,这里不再赘述。

24.2 64位键盘驱动

想要实现键盘驱动,就需要先实现一个具有阻塞功能的IO队列。IO队列的实现位于本章代码24/IOQueue.h24/IOQueue.hpp中,其实现思路与32位操作系统一致,这里不再赘述。

键盘驱动的实现位于本章代码24/Keyboard.h24/Keyboard.hpp中,其实现思路与32位操作系统一致,这里不再赘述。

键盘接在IO APIC上,IO APIC使用索引寄存器和数据寄存器进行访问,其中,索引寄存器的地址是0xfec00000,数据寄存器的地址是0xfec00010。键盘在IO APIC中的索引是0x120x13,其中,0x12号寄存器用于设定中断向量号等信息,0x13号寄存器用于设定中断需要发送给哪个CPU。在我们的操作系统中,0x12号寄存器固定设为0x21,表示键盘中断的中断向量号是0x210x13号寄存器固定设为0x0,表示键盘中断发送给第一个CPU。

接下来,请看本章代码24/Int.hpp

第21~24行,在IO APIC中安装键盘中断。

接下来,请看本章代码24/Int.s

intKeyboard函数是键盘中断处理函数。

第126~127行,发送中断响应信号。

第129~132行,从0x60端口读取键盘扫描码,然后调用键盘驱动函数。

第173行,在中断处理函数表中安装键盘中断处理函数。

接下来,请看本章代码24/Syscall.s

第5行,导入inputStr函数。

第63行,在系统调用表中安装inputStr函数,其系统调用号是1。

24.3 64位外壳程序

本章代码24/Shell.h24/Shell.hpp实现了外壳程序,其实现思路与32位操作系统一致,这里不再赘述。

24.4 编译与测试

本章代码24/Test.c继续测试0号与2号系统调用。新增的循环用于使任务的运行时间变长,以观察3特权级任务与外壳程序共存时的效果。

本章代码24/Kernel.c测试了外壳程序。

标签:24,操作系统,本章,代码,文件系统,键盘,64,寄存器
From: https://www.cnblogs.com/yingyulou/p/18391067

相关文章

  • 黑神话悟空配置要求_2024年黑神话悟空游戏电脑配置推荐
        《黑神话:悟空》作为一款采用虚幻引擎打造的高品质游戏,对硬件配置有着一定的要求。包括操作系统、处理器、内存、显卡等多方面需求。有些同学一直问,黑神话悟空配置要求是什么?下面小编就针对这个问题给大家介绍黑神话悟空官方配置要求以及2024年黑神话悟空游戏电脑配置......
  • Metasploit Pro 4.22.3-2024082201 (Linux, Windows) - 专业渗透测试框架
    MetasploitPro4.22.3-2024082201(Linux,Windows)-专业渗透测试框架Rapid7Penetrationtesting,releaseAug22,2024请访问原文链接:https://sysin.org/blog/metasploit-pro-4/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org世界上最广泛使用的渗透测试框架......
  • Acunetix v24.8 发布,新增功能概览
    Acunetixv24.8发布,新增功能概览Acunetixv24.8(Linux,Windows)-Web应用程序安全测试Acunetix|WebApplicationSecurityScanner请访问原文链接:https://sysin.org/blog/acunetix/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org重要提示AcunetixPremium......
  • eladmin (文件上传+文件删除)(cve-2024-7458)
    侵权声明本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系:[[email protected]]。我们将在确......
  • Burp Suite Professional 2024.8 发布下载,新增功能概览
    BurpSuiteProfessional2024.8(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBur......
  • Windows Server 2019 OVF, updated Aug 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedAug2024(sysin)-VMware虚拟机模板2024年8月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2019-ovf/,查看最新版。原创作品,转载请保留出处。现在都是自动sysprep的......
  • 2024年8月总结及随笔之逝
    1. 回头看日更坚持了609天。读《零信任网络:在不可信网络中构建安全系统》更新完成读《软件开发安全之道:概率、设计与实施》开更并持续更新2023年至2024年8月底累计码字1463007字,累计日均码字2402字。2024年8月码字109278字,同比增长177.6%,环比增长27.3%,日均码字数3525字,累......
  • linux文件——文件系统——学习、理解、应用软硬件链接
        前言:本篇内容主要讲解文件系统的软硬件链接。经过前两篇文件系统的文章——讲解硬件(磁盘)、讲解文件系统底层,inode,我们本节内容可以很好的理解我们要讲解的内容。并且本节内容较少,友友们学习本节的时候将会比前几节相对轻松一些。     ps:友友们务......
  • Comprehensive Diagnostic Capabilities The Perkins EST Interface 2024A with WiFi
     Intoday'sfast-pacedworld,havingtherighttoolscanmakeallthedifference,especiallywhenitcomestomaintainingandservicingengines.ThePerkinsEST(ElectronicServiceTool)Interface2024AwithWiFiisacutting-edgediagnostictoolde......
  • 20240904_070346 mysql 存储过程 认识
    什么是存储过程存储过程的特点......