MacOS环境-手写操作系统-17-内存管理算法实现
存管理算法实现 1.简介 在上一节,我们得知可用内存的大小后,我们就可以开发一个简单的管理算法去管理和分配可用用内存。 2.代码 首先创建一个头文件mem_util.h,用来定义内存管理模块相关的数值,变量和接口: #define MEMMAN_FREE...
MacOS环境-手写操作系统-16-内存管理 解析内存状态
内存管理 - 解析内存状态 1.简介 现在 我们可以显示和分析获得的相关信息 为下一步实现内存管理做准备 首先我们把BIOS填充好的数据缓冲过去导出给C语言模块 以便使用C语言来实现分析功能: get_adr_buffer: m...
MacOS环境-手写操作系统-15-内核管理 检测可用内存
内核管理-检测可用内存 1.简介 操作系统的一大功能就是为运行程序分配资源 在众多系统资源中 内存是系统内核必须小心处理的一块 内存分配算法 也是操作系统内核理论和开发上的重点和难点 从本节开始我们看看内核如何有效的管理和控制内存 如何知道系统运行的硬件有多少可用内存呢,一种通用性比较好的办法是 ...
MacOS环境-手写操作系统-14-控制鼠标移动
挪动鼠标 1.简介 鼠标发送的数据 必须三个字节连在一起解读 所以我们的内核要等待鼠标发送足够的数据后才可以采取行动 前面我们看到 当鼠标被激活后 它会立马给内核发送一个字节数据 数值为0xfa 当内核收到这个数据后 就可以开始积攒数据 每接收三个字节后 根据数据绘制鼠标 这三个字节数据是有一定特点的 第一个字节0xab ...
MacOS环境-手写操作系统-13-鼠标中断
鼠标内核的中断处理 1.简介 如果大家还记得描述8259A中断控制器那一小节的话 鼠标发送中断信号的数据线在从8259A芯片的IRQ4信号线 因此 为了接收鼠标中断信号 我们在初始化中断控制芯片时 必须启用该信号线 同时 从8259A芯片是通过主8259A的IRQ2信号线连接在一起的 所以也必须同时启动主82...
MacOS环境-手写操作系统-12-键盘中断机制
为键盘建立中断机制 1.简介 我们实现了键盘中断的响应 但响应的处理比较简单 只是向界面打印一条字符串而已 本节 当键盘上的一个按键按下时 键盘会发送一个中断信号给CPU 与此同时 键盘会在指定端口(0x60) 输出一个数值 这个数值对应按键的扫描码(make code) 当按键弹起时 键盘又给端口输出一个数值 这个数值叫断码...
MacOS环境-手写操作系统-11-建立中断机制
建立中断机制 1.简介 上一节,我们绘制了鼠标图案,遗憾的是,鼠标箭头是死的,动不了,要想让鼠标移动,我们需要为内核建立中断机制 当我们移动鼠标时,鼠标会给CPU发送信号,CPU接收到信号后,终止当前的运算,执行内核给定的代码以处理鼠标发送的信号 中断信号的发送机制 ...
MacOS环境-手写操作系统-10-绘制系统鼠标
绘制鼠标 1.简介 有了桌面背景,能够显示字符串,现在在图形界面上还少了点东西,那就是鼠标指针,如果有个鼠标能在桌面里动来动去,那系统就有点意思了。 2.实现 通过一个二维数组: static char cursor[16][16] = { ...
MacOS环境-手写操作系统-09-绘制系统字体
给系统绘制字体 1.简介 如果我们把字体的大小限定在一个8*16的长方形区域,那么我们在这个区域内,将特定位置的像素点设置成黑色,其他点设置成白色,那么我们就可以得到一个白底黑色的字体: 2.单字体实现 如果我们把8*16区域当做一个二维数组,白色的像素我们用0表示,黑色像素我们用1表示,...
MacOS环境-手写操作系统-08-C语言调色板(绘制系统界面)
C语言调色板(绘制系统界面) 这可是重要的一节 而且流程还比较繁琐 所以要好好弄一下呀! 1.简介 在上一节 已经完成了C语言图像的绘制 这节课 我们来写一个像模像样的系统界面 把多种RGB颜色的24位数值放入到一个数组中 原来的八位数不再对应一个颜色值 而是变成这个数组的下标 硬件在显示像素颜色时,从像素对应的显存读取这个八...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
产品推荐
龙蜥操作系统
龙蜥社区(OpenAnolis)是面向国际的 Linux 服务器操作系统开源根社区及创新平台,秉承“平等、开放、协作、创新”的原则,理事会由阿里云、统信软件、龙芯、Arm 、Intel 等 24 家国内外头部企业共同组成,有超过 1000 家来自芯片厂商、软件厂商、整机厂商、操作系统厂商等覆盖操作系统全产业链的合作伙伴参与生态共建。
+关注