MacOS环境-手写操作系统-37-切换窗口 键盘输入
切换窗口 键盘输入 1.简介 我们实现了键盘的输入焦点切换 但尽管控制命令台激活后 如果我们敲击键盘 会发现字符输入的还是前头的Message box 这一节 我们要实现把键盘敲击的内容输入到被切换的窗口 实现的思路是这样的 我们为每个任务配置一个输入队列 当窗口被激活时 一旦有键盘输入 主进程首先会把键盘数...
MacOS环境-手写操作系统-36-Tab键切换窗口
Tab键切换窗口 1.简介 我们使用操作系统的时候 一个必不可少的功能就是通过Tab间在不同的窗口中来回切换 这种便捷方式使得你不必要挪动鼠标去点击某个窗口 只要不停的按Tab键 直到你的目标窗口被激活为止 一旦窗口被Tab键激活后 对应的窗口会响应你在键盘的输入 我们本节的目的是在系统中实现这个功能 2.代...
MacOS环境-手写操作系统-35-Shell控制台
控制台 1.简介 操作系统有一个重要的应用 就是命令控制台 像Linux系统 命令控制台集合是使用系统的主要工具 本节 我们将为系统开发一个命令控制台 今后我们会为系统开发应用程序 不少程序将会通过控制台来运行 2.代码 我们的控制台程序将依赖于前面完成的进程机制 主进程绘制出控制台...
MacOS环境-手写操作系统-34-进程优先级
进程优先级 1.简介 我们有了进程调度 目前来看 所有进程一律平等 我们的调度算法是遍历每一个进程 然后给每一个进程一定的运行时间 然后再切换下一个进程 但实际运用上 进程间不会是平等的 有些进程承担着比较重要的工作 因此 它有理由获得更多的运行时间 例如内核进程 一些进程不是很重要 ...
MacOS环境-手写操作系统-33-多任务多窗口
多任务多窗口 1.简介 为了让多任务的特性展示的更直观 本节 我们基于多任务的基础上 为系统实现多个窗口特效 每个窗口都运行于一个任务或进程 由于窗口基于各自不同的进程 因此窗口自身的变化更新不会影响到其他窗口 2.代码 CMain voi...
MacOS环境-手写操作系统-32-进程挂起和恢复
进程挂起和恢复 1.简介 有了进程的自动调度后 接下来的任务在于 如何将空闲进程挂起 空闲进程往往是那些没有具体任务需要处理的进程 因此 如果继续让其运行的话 那么必然会耗费宝贵的CPU资源 如果能让它先挂起 等到它需要执行具体任务时 再把它调度到前台 那才是一种合理的进程管理机制 我们实现的进程调度 是依赖...
MacOS环境-手写操作系统-31-进程自动切换
进程自动切换 1.简介 我们已经通过时钟中断完成了两个进程间的相互切换 但当前实现有很大的缺陷 例如我们只能在两个指定的进程间切换 如果要想增添新的进程 那么 没增加一个进程 按照当前模式 我们只能再增加相应代码 这显然是不可接受的 因此 这节 我们希望完成进程的切换机制 使得有新进程时 我们无需改动代码 ...
MacOS环境-手写操作系统-30-进程之间互相切换
进程之间互相切换 1.简介 上一节 我们初步介绍了进程相关的具体概念 特别是讲解了进程切换相关的数据结构 也就是TSS 也实现了进程的自我切换 本节 我们看看如何从当前的进程切换到新进程 然后再切换回来 进程A -切换->进程B-切换->进程A. 2.代码 先看看进程B的...
MacOS环境-手写操作系统-29-进程切换
进程切换 1.简介 操作系统内核开发 一个及其重要的模块是进程以及进程调度 在大学的操作系统课堂上 研究进程和相关调度算法 是一块耗时耗力的内容 市面上 讲解操作系统进程概念以及调度算法的内容可谓是汗牛充栋 记得我以前读相关内容时 看到很多算法流程图 伪码说明等等 但无论描述的如何详细 但只要我无法动手实践 那么也只能是隔靴搔...
MacOS环境-手写操作系统-28-输入文本框和鼠标移动窗体
输入文本框和鼠标移动窗体 1.简介 上一节 我们实现了按键转换成字符的功能 这一节 我们更近一步 在message box中实现一个输入文本框 按键时 字符显示在文本框内 并且输入光标在文本框中不断闪动 2.代码 2.1 输入文本框 write_vga_desktop.c中做如下改动 ...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
产品推荐
龙蜥操作系统
龙蜥社区(OpenAnolis)是面向国际的 Linux 服务器操作系统开源根社区及创新平台,秉承“平等、开放、协作、创新”的原则,理事会由阿里云、统信软件、龙芯、Arm 、Intel 等 24 家国内外头部企业共同组成,有超过 1000 家来自芯片厂商、软件厂商、整机厂商、操作系统厂商等覆盖操作系统全产业链的合作伙伴参与生态共建。
+关注