MacOS环境-手写操作系统-00-开篇 简单成品介绍

简介: MacOS环境-手写操作系统-00-开篇 简单成品介绍

1.起源背景

文章写于两年前的 MacBookAir(2015)

目前笔者为 MacBookPro M1 (抽查了部分 都运行正常)

Github项目地址: https://github.com/wdkang123/MyOperatingSystem

MacOS X86架构(x新版的arm架构的我没有 所以大家自行测试)

VirtualBox

C/C++环境 (Xcode必装)


在MacOS下(当前是BigSur) 通过java打包 C/C++和汇编 写的一个简单的操作系统 (附带学习笔记和代码)


大学时学了《操作系统》结果无意间听到 在清华大学 这门课竟然要手写一个操作系统 其实手写一个操作系统 是每一个编程爱好者的梦想吧!


当时一搜书籍 大家都推荐 《30自制操作系统》 事实上 我个人觉得 这本书不错 但是还差点意思 里边有很多作者打包好的工具 帮助你来完成


当时我只有mac 没有win 这点就很难受 (mac的工具包我也下载了 奈何macos版本太高了 已经运行不了了)


看到了win版本的 我励志要在mac上实现(其实也没什么区别 大同小异吧)


结果真的是处处碰壁 前几节还好 磕磕绊绊用 dd 这些命令搞出来了 到了c和汇编配合的时候 我就蒙了 为此卡住了好久


后来看到了课程(老师的环境也是macos) 又看到了一些希望 可惜老师是要借助Ubuntu系统 来回切换 在乌班图上编译完成 再导入到macos 通过java打包 最后运行


这点让我很不舒服(··· 只是想纯纯的在macos上编译)


再一番折腾后 终于发现了用交叉变异的环境 解决了这个麻烦


2.需要前置

c/c++ 基础知识

汇编基础

Makfile最好听过

一台mac (我当前是X86架构的BigSur)

当然·· 操作系统的基础知识 这个是必备的

原来老师的课程地址是:https://study.163.com/course/introduction.htm?courseId=1003169025 搭配食用更加

3.硬件软件需求

MacOS X86架构


VirtualBox


C/C++环境 (Xcode必装)


4.代码目录

01-java汇编最小操作系统
 
   02-读写软盘
 
   03-突破512字节的限制
 
   04-保护模式
 
   代码图片上传
 
   05-保护模式超强寻址
 
   06-C语言结合汇编
 
   07-C语言绘制系统界面
 
   08-C语言调色板(绘制系统界面)
 
   09-绘制字体
 
   10-绘制鼠标
 
   11-建立中断
 
   12-处理键盘中断
 
   13-内核实现鼠标中断
 
   14-挪动鼠标
 
   15-内核管理检测可用内存
 
   16-内核管理解析内存状态
 
   17-内存管理算法实现
 
   18-图层分层技术
 
   19-编译自动化(久违了)
 
   20-图层叠加优化
 
   21-MessageBox
 
   22-突破连续读取72个扇区
 
   23-消除闪烁计数器闪烁
 
   24-消除闪烁鼠标闪烁
 
   25-定时器功能
 
   26-光标闪烁
 
   27-修改分辨率
 
   28-输入文本和移动窗体
 
   29-进程切换
 
   30-进程互相切换
 
   31-进程自动切换
 
   32-挂起和恢复
 
   33-多任务多窗口
 
   34-进程优先级
 
   35-控制台
 
   36-Tab键切换窗口
 
   37-切换窗口键盘输入
 
   38-shift键响应
 
   39-caps键响应
 
   40-进程消息通讯和回车键处理
 
   41-mem第一个控制台程序
 
   42-cls
 
   43-dir命令和写入文件
 
   44-运行简单程序(无文档)
 
   45-C语言开发APP
 
   46-系统与应用内存隔离
 
   47-系统与应用内存交叉
 
   48-让内核从错误中恢复
 
   49-进程优先级转换
 
   50-防范缓冲区溢出和死循环
 
   51-创建窗口api
 
   52-窗口图形绘制
 
   53-关闭窗口api
 
   54-鼠标操作窗体
 
   55-内核时钟和更多颜色
 
   56-多窗口多进程
 
   57-无限控制台进程
 
   58-不锁死控制台启动进程
 
   59-LDT局部描述表
 
   60-文件api
 
   61-毕业了 三个小程序


5.部分截图


image.png




6.后记感想

原来老师的文章链接有一些挂掉了 后边看情况在补吧


同时项目当中所有代码我都在MacOS BigSur (X86)下编译通过、且运行通过了


并且在虚拟机测试运行没有问题(有一些章节有小bug 比如打字会出现一些莫名符号 都不要紧 在后边会修复)


不得不佩服清华大学的学生(泛指所有好大学)


一个学期的操作系统课 竟然能写一个有模有样的操作系统


内心真的是佩服不已


同时也真的感到自己能力的不足 与清北的学生不是一点点的差距


努力吧


长风破浪会有时 直挂云帆济沧海


目录
相关文章
|
1月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
42 3
|
1月前
|
存储 C语言 iOS开发
MacOS环境-手写操作系统-48-让内核从错误中恢复
MacOS环境-手写操作系统-48-让内核从错误中恢复
38 0
|
1月前
|
存储 API C语言
MacOS环境-手写操作系统-46,47-C语言开发应用程序
MacOS环境-手写操作系统-46,47-C语言开发应用程序
35 0
|
1月前
|
编译器 API C语言
MacOS环境-手写操作系统-45-C语言开发应用程序
MacOS环境-手写操作系统-45-C语言开发应用程序
46 0
|
1月前
|
小程序 iOS开发 MacOS
MacOS环境-手写操作系统-44-运行简单的程序
MacOS环境-手写操作系统-44-运行简单的程序
22 0
|
1月前
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
31 0
|
19天前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
41 0
Vanilla OS:下一代安全 Linux 发行版
|
22天前
|
人工智能 安全 Linux
|
1月前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
3月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
114 3
下一篇
无影云桌面