当前位置: 首页 > article >正文

30天自制操作系统第一天(1)

        最好的安全是什么,做一个安全的系统(没有绝对安全的系统,只有更绝对安全的系统),说起来简单,那就先搞一个练手的。我已经汇总了第一课所需要的资源,争取简化流程,人人皆可手搓。

准备工作:

1:工具准备:推荐使用大佬用的二进制编辑工具Bz,我已经全部汇总到了工具包,win下来直接用,还有模拟器qemu,可以在网上下载qemu.exe文件,也可以自己构建,推荐使用ubuntu虚拟机,本人目前用的ubuntu-20.04.6-desktop-amd64.iso,可以直接用vm虚拟机和官网下载ubuntu镜像,遇到问题,百度、必应,deepseek等智能gpt

测试使用bz工具:一个简单的镜像(推荐完全手打,可以记录错误细节,主要记住的有三四个地方,我全部截了图片)

写完直接保存成helloos.img 即可

2:win环境准备:拿出源码中的tolset文件夹,将上面写完的文件保存成helloos.img,放入/tolset/z_new_w文件夹中,在写两个bat文件,一个run.bat,一个install.bat文件,

 window exe版本直接下载:
QEMU for Windows – Installers (64 bit)

大佬给的源代码中基本文件格式都设置好了,run就是执行img文件的

这两个bat 文件一般后面才会用到,我是直接用的ubuntu配置的qemu模拟器启动的保存的mg文件

启动命令:qemu-system-x86_64 -hda helloos.img -m 2048 -smp 2

3:ubuntu环境准备:如果你想不走寻常路,(不想构建可以不看)非要自己构建所有生成工具,很好,这是基本操作,那就需要配置环境了,win的后面说,先说ubuntu的

(1)默认Ubuntu软件源包含了一个软件包组,名称为“build-essential”,它包含了GUN编辑器集合,GNU调试器,和其他编译软件所必需的开发库和工具。

https://github.com/qemu/qemu

以sudo或者 root权限运行下面的命令:

apt update

apt install build-essential

apt install gcc-8 g++-8 gcc-9 g++-9 gcc-10 g++-10 # 安装各个版本的gcc

# 设置gcc的优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8

# 想修改默认使用的gcc版本
update-alternatives --config gcc

安装下了一堆 构建包和源码,过程没记,直接问ai吧

自制操作系统日志——第一天_进制开发操作系统-CSDN博客

https://zhuanlan.zhihu.com/p/146205444

qemu的详细资料大全(入门必看!!!)-CSDN博客

QEMU
QEMU与KVM虚拟化-CSDN博客


http://www.kler.cn/a/549202.html

相关文章:

  • 【STM32】DRV8833驱动电机
  • 2025-02-16 学习记录--C/C++-PTA 7-19 支票面额
  • [实现Rpc] 客户端划分 | 框架设计 | common类的实现
  • Base64 PDF解析器
  • DeepSeek人工智能AI汽车营销销售培训讲师培训师唐兴通讲课汽车销售大数据存量客户数字化营销数字化销售大模型销售话术引流内容社群私域
  • Java-DFS(深度优先搜索)
  • Lazarus 旋转图片(TImage、TBitmap)
  • web的分离不分离:前后端分离与不分离全面分析
  • Java 运算符
  • ElasticSearch映射分词
  • Linux自学day18-二叉树、哈希表、常见的排序与查找算法
  • 【信息学奥赛一本通 C++题解】1288:三角形最佳路径问题
  • PAT乙级真题 — 1084 外观数列(java)
  • python 视频处理库moviepy 设置字幕
  • 微信小程序markdown转换为wxml(uniapp开发)
  • 使用 MySQL 从 JSON 字符串提取数据
  • Blazor-设置组件焦点
  • 记忆力训练day19
  • 【Python】错误异常
  • PHP基础部分