《自己动手写操作系统》之 10分钟完成最小的操作系统
准备工作
- nasm 汇编编译器
- Floppywriter (File to image) 转换器
- VMware 虚拟机
步骤
先创建一个boot.asm
的文件,我是用VsCode写的,记事本也可以。(还一直以为nasm是编辑器,结果是编译器,搜了半天教程。。
org 07c00h ; 告诉编译器程序加载到7c00处mov ax, csmov ds, axmov es, axcall DispStr ; 调用显示字符串例程jmp $ ; 无限循环
DispStr:mov ax, BootMessagemov bp, ax ; ES:BP = 串地址mov cx, 16 ; CX = 串长度mov ax, 01301h ; AH = 13, AL = 01hmov bx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)mov dl, 0int 10h ; 10h 号中断ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 0xaa55 ; 结束标志
一开始自己照着书中打了一遍,结果格式写错了,后面找到了网上的源码,复制之后,在nasm中输入nasm boot.asm -o boot.bin
成功!
文件路径一定要与编译器路径相同,不然会报错找不到文件
我是先在编译器路径下创建了文件,等生成了boot.bin
文件之后再剪切出去的。
之后就可以用转换器做转换了,转换前先创建TINUX.IMG
文件,然后将boot.bin
文件放进去。
之后打开VMware虚拟机,创建新的虚拟机。
选择经典(推荐)即可。然后再下一个页面中,先选择浏览,将自定义好的TINIX.IMG
放进来,然后会提示无法检测,我们随后点击下方稍后的按钮,点击下一步。
点击其它,选择其它。点击下一步。
然后选择自己想放置的位置,下一步,分配内存。
点击完成后,蹦出以下界面。(我这个是退出来之后的,与初始有些许不同)
找到“虚拟机”->“设置”。
点击添加。
选择软盘驱动器,点击完成。
最后点击软盘,找到之前写好的TINIX.IMG
文件的位置,点击创建。
结果图
点击“开启此虚拟机”
你就可以看到自己写下的第一个“最简单的操作系统”,在虚拟机下开始运行了。
——纸上得来终觉浅,绝知此事要躬行。
《自己动手写操作系统》之 10分钟完成最小的操作系统相关推荐
- 自己动手写操作系统(二)一个最小的“操作系统”
第一步 首先新建一个boot.asm文件,用vim将书中的代码1-1写入文件中,并保存.然后使用nasm编译. 附上代码: org 07c00hmov ax, cs mov ds, ax mov es ...
- 自己动手写java虚拟机_自己动手写操作系统(要了解的知识点)
自己动手写操作系统(开篇) 自己动手写操作系统(字符显示) 说明:Intel 8086 或者不同的处理器,开机寄存器数据可能不一样,但是大致原理差不多 了解过计算机启动的同学肯定知道,当计算机启动的时 ...
- 全面剖析《自己动手写操作系统》第四章---加载Loader.bin
全面剖析<自己动手写操作系统>第四章--FAT12文件系统 http://blog.csdn.net/zgh1988/article/details/7284834 1.突破512字 ...
- 自己动手写操作系统 将引导程序成功写入优盘启动电脑
原文:http://freesoftman.iteye.com/blog/629598 输入命令: nasm boot.asm -o boot.bin 一会儿就生成了一个镜像文件boot.bin. 该 ...
- 操作系统导论中文版 pdf_一分钟带你认识微软操作系统 Windows 10
微软在不久前正式发布了全新一代操作系统Windows 10,从即日起国内用户可以陆续升级安装新系统.与以往不同的是,此次微软宣布Windows 7和Windows 8用户在一年内可以免费升级到Wind ...
- 自己动手写操作系统--个人实践
近期開始看于渊的<自己动手写操作系统>这本书,刚開始看就发现做系统的引导盘居然是软盘!心里那个汗啊! 如今都是U盘了,谁还用软盘.于是考虑用U盘. 于是開始下面步骤: 1.既然书上说给先要 ...
- 「操作系统」《自己动手写操作系统》1.1前期准备工作
一.软硬件 1.硬件 一台计算机(笔者使用的是Win7 x64操作系统) 2.软件 点击此处下载<自己动手写操作系统>的光盘配套文件以及相应工具 汇编编译器:NASM(资源文件中有) 软盘 ...
- python写好的代码怎么给别人使用-10分钟学会用python写游戏!Python其实很简单!...
原标题:10分钟学会用python写游戏!Python其实很简单! Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程 ...
- 《自己动手写操作系统》读书笔记——初识保护模式
<自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...
- 手机版python3h如何自制游戏_Python 飞机大战|10 分钟学会用 python 写游戏
Python 飞机大战|10 分钟学会用 python 写游戏 2018 年 python 语言大火, 这把火看趋势已然延续到了 2019 年! 除了在科学计算领域 python 有用武之地之外, 在 ...
最新文章
- esxi远程管理端口_如何在 vmware esxi 中开放 VNC功能及端口实现远程管理 完整篇...
- 《java练习题》习题集二
- Linux IPC实践(3) --具名FIFO
- java B2B2C 多租户电子商城系统- 整合企业架构的技术点
- restlet使用_使用Restlet Framework构建联网汽车
- C# 连接 Sqlserver2005 Analysis Service的总结
- 游戏是如何限制多开的,如何解决
- vb中如何在任务管理器里面隐藏应用程序进程
- iOS 操作系统被曝无线网络命名bug 导致 iPhone无法连接无线网络
- 如何生成MD5哈希?
- 代码评审 16.7.1
- xjoi 1524 枚举集合
- 如何用10分钟做出一个表情包视频
- Cypress系列(21)- 可操作类型的命令 之 check()、uncheck()
- 呆萝卜 竞品分析报告
- 路面坑洼检测中的视觉算法
- c语言数据结构实训报告总结,数据结构实训心得
- 一文帮你理解模型选择方法:AIC、BIC和交叉验证!
- 美团运维SRE+运维开发一面面经汇总
- Python PDF转Word,以及提取Word中图片里的文字
热门文章
- PHP自动化代码审计工具
- mysql 全关联查询_Mysql 关联查询(内联、左联、右联、全联)
- JSAPI微信公众号apiV3文档支付
- 手游php,PHP响应式手游APP软件游戏中心下载网站整站源码(自适应手机移动端) dedecms内核...
- 黑苹果无线网卡的另一种解决方案
- 哥德巴赫猜想—初等数论课后习题
- matlab 调制识别,调制方式识别仿真
- Xv6 Page Table
- 傻瓜攻略(十九)——MATLAB实现SVM多分类
- iertutil.dll文件缺失/ 修复方法