最近回顾之前写的代码的时候, 发现了以前本科时还开发过一个64位的操作系统, 不过最终也只是开发到进程切换部分

这是一个涉及到汇编和C语言的一个偏底层偏硬核的项目, 而且为了能够学到更多东西, 使用的还是BIOS引导这一古老的方式加载内核

一路上踩过很多的坑, 虽然很遗憾没有彻底完成, 但是还是积累了不少的经验, 所以决定慢慢的把开发过程整理成博客发出来, 好让对系统开发感兴趣的同学少踩一些坑.

现在空闲时间有限, 整理代码的时候还发现部分代码有些可以修改的地方, 所以博客发的比较慢, 甚至有时候可能还会鸽一段时间, 还望不要介意

目前博客仅仅写完boot部分, 后续会继续更新loaderkernel部分

如果有可能, 在将现有的代码整理成博客发出后, 我会继续编写进程切换, 文件系统部分, 并且实现在系统里运行其他程序

目前的项目代码运行之后的界面如下, 当然我也是通过U盘在我的笔记本上启动成功了的, 还记得第一次在笔记本上运行失败, 在bochs,qemu,vmware却正常运行时的懵逼

最后, 欢迎那些正在开发自己的系统的同学在我的博客留言自己遇到的问题, 兴许这些问题我以前就遇到过

X86-64位简易系统开发 - 从BIOS阶段开始的更多相关文章

  1. 64 位 Windows 平台开发注意要点之文件系统重定向

    Program Files 的重定向 很多开发人员都知道,在 64 位 Windows 系统上,32 位程序是无法获取得到 C:\Program Files 的完整路径的,只能获取到 C:\Progr ...

  2. 64位Win7系统下vs2010调试无法连接oracle

    64位win7系统的Program Files (x86)路径中有括号,oracle不认识这样的路径,所以就出现不能连接数据库的问题.所以我们可以将vs2010的内部调试web服务器WebDev.We ...

  3. 64位Win8系统下安装Oracle12c

    经过3个小时的折腾,终于在64位win8系统下成功安装了Oracle 12c.这篇文章主要把安装过程中遇到的一些问题总结一下,以便帮助后来人参考. 首先我把我的机器的主要配制情况列举出来: 1. 系统 ...

  4. 64位Ubuntu系统下ROP攻击

    64位Ubuntu系统下ROP攻击 基础知识 ROP攻击 ROP全称为Retrun-oriented Programmming(面向返回的编程)是一种新型的基于代码复用技术的攻击,攻击者从已有的库或可 ...

  5. 64位Win7系统下vs2010调试无法连接oracle解决办法

    具体的解决办法如下: 1.先将WebDev.WebServer20.EXE和WebDev.WebServer40.EXE文件从Program Files (x86)目录中拷贝出来放到c:\dev目录中 ...

  6. 解决Tomcat6解压版在64位windows系统上无法启动服务的问题

    解决Tomcat6解压版在64位windows系统上无法启动服务的问题         由于客户环境为64位windows系统,开发环境一直用32位.tomcat使用6.0.20非安装版.部署时发现在 ...

  7. 64位Windows系统下32位应用程序连接MySql

    1.首先得安装“Connector/ODBC”,就是Mysql的ODBC驱动,这个是与应用程序相关的,而不是与操作系统相关的,也就是说,不管你的系统是x64还是x86,只要你的应用程序是x86的那么, ...

  8. win10 64位专业版系统中显示32位dcom组件配置的方法

    word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...

  9. MiniCRT 64位 linux 系统移植记录:64位gcc的几点注意

    32位未修改源码与修改版的代码下载: git clone git@github.com:youzhonghui/MiniCRT.git MiniCRT 64位 linux 系统移植记录 MiniCRT ...

  10. 在64位Ubuntu系统上安装32位程序包

    在64位Ubuntu系统上安装32位的程序包 $sudo apt-get install package_name:i386 例如: $sudo apt-get install openjdk-7-j ...

随机推荐

  1. runoob-pandas(python)

    https://www.runoob.com/pandas/pandas-tutorial.html Pandas 教程 Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pand ...

  2. Redis的分布式锁详解

    Redis实现的分布式锁 # 对资源key加锁,key不存在时创建,并且设置,10秒自动过期 SET key value EX 10 NX # 删除key DEL key NX的作用 NX参数是为了保 ...

  3. RSA的原理和简单实践

    RSA加密是一种非对称加密,原理是: 使⽤算法可以⽣成两把钥匙 A 和 B 使⽤ A 加密的信息,使⽤ B 可以解开 使⽤ B 加密的信息,使⽤ A 可以解开 ⽇常使⽤中,我们把⼀把作为公钥公开发布. ...

  4. 头文件中 ifndef/define/endif 有什么用?

    1. 相同的声明可以多次出现,重复声明不是错误! 定义不可以,无论是单个文件还是多个文件,某个特定作用域(比如全局变量),不可以重复定义变量. 2. 类/结构体的定义可以在多个文件中多次出现,但是不可 ...

  5. VueRouter案列

    案列内容,包含,模板,路由传参,路由重定向,路由嵌套,能够复习路由基本使用,成果如图: 完整代码: 1 <!DOCTYPE html> 2 <html lang="en&q ...

  6. Ping测试记录脚本

    @echo off echo PingTest del PingTest_result.txt timeout /t 10 echo=> PingTest_result.txt :TEST ec ...

  7. 小程序uni-app图片预览uni.previewImage会触发onshow这个生命周期

    小程序单张uni-app图片预览 uni.previewImage({ current:0, urls: [mess.honorIcon],//['你的图片地址'] }); 小程序多张图片预览 < ...

  8. SQL SERVER巡检脚本

    print'----------------------------' print'开始巡检' print'----------------------------' print'1.查看数据库版本信 ...

  9. Codeforces 1536B Prinzessin der Verurteilung 题解 [ 紫 ] [ 后缀自动机 ] [ 动态规划 ] [ 拓扑排序 ]

    Prinzessin der Verurteilung:最短未出现字符串的板子. 思路 考虑在 SAM 上 dp,定义 \(dp_i\) 表示从 \(i\) 节点走到 NULL 节点所花费的最少步数. ...

  10. DeepSeek普照的阳光下,继续RAG还是Distillation?

    什么是RAG RAG概述 RAG,全称为Retrieval-Augmented Generation(检索增强生成),是一种结合了信息检索和文本生成的人工智能技术.简单来说,RAG通过从大量文档或数据 ...