自制操作系统 第1步
来源:互联网 发布:怎么在淘宝上找黑客 编辑:程序博客网 时间:2024/05/21 17:02
//这已经是我第4次发起向操作系统的进攻,虽说前三次都以失败而结束但是却积累了很多经验。虽说这些经验在面试,和做项目中都未曾有用过,但是当我现在慢慢临近毕业,在嵌入式Linux开发中发现 以前积累的失败经验都有用了起来,这也让我重新燃起了希望。然后毅然辞掉了实习工作,呆在家里来完成我大学的梦想。 千万不要失败啊
//我的操作系统分三步 第一步主要是完成<30天自制操作系统> 这个比较简单 相比 Linux0.01 mini 2.0 Orange'S 第二步 以 Orang'S linux 0.01为主 使操作系统在进程调度上更加完整 第三步 将开发平台移植到s3c2440上,然后来完成USB,platform等实验 。 我的大饼画好了,现在开始来奋斗吧
选择的开发环境:win7搭载VM9 + Ubuntu 14
选择 自制操作系统运行环境 bochs
选择 初期汇编工具 as86
选择 链接器 ld86
//参考数据 <Linux内核完全解剖 基于0.12>, 《30天自制操作系统》,《Linux内核0.01分析与操作系统设计》,《Orang's 一个操作系统的实现》
说了这么多,还是把实验结果贴出来,大家可以来参考下
!boot.s bootsect.s框架.globl begtext,begdata,begbss,endtext,enddata,endbss.textbegtext:.databegdata:.bssbegbss:.textbootseg = 0x07c0entry startstart:jmpi go,bootseggo:mov ax,csmov ds,axmov es,axmov [msg1+17],ahmov cx,#20mov dx,#0x1004mov bx,#0x000cmov bp,#msg1mov ax,#0x1301int 0x10loop0:jmp loop0msg1:.ascii "loading system...".byte 13,10.org 510.word 0xaa55.textendtext:.dataenddata:.bssendbss:Makefile
AS86 =as86 -0 -aLD86 =ld86 -0src = boot.sobj = boot$(obj):$(src)$(AS86) -o boot.o $(src)$(LD86) -s -o $(obj) boot.o
-rwxr-xr-x 1 root root 544 Jan 29 21:19 boot
-rw-r--r-- 1 root root 231 Jan 29 21:19 boot.o
-rw-r--r-- 1 root root 464 Jan 29 20:49 boot.s
一定要看清上面 boot的大小是544, 然后用dd命令dd bs=32 if=boot of=a.img skip=1 //a.img 是bximage 虚拟出来的软盘
!运行正常
这篇写的不好写东西没说明处,关键是有点激动,弄了两天才能启动,还有4个月毕业时间紧张啊。
对了as86,ld86的安装,它们在bin86里面,所以你只要安装了bin86就可以了
# apt-cache search as86bin86 - 16-bit x86 assembler and loader
Now we know it's in bin86
package, and we do:
# apt-get install bin86
0 0
- 自制操作系统 第1步
- 自制操作系统 第2步
- 自制操作系统 第3步
- 自制操作系统 第4步
- 自制操作系统 第5步
- 自制操作系统 第6步
- 《30天自制操作系统》第1天
- 自制OS 第7步
- 30自制操作系统第三天
- 30天自制操作系统笔记 第1天
- Norlit OS —— 自制操作系统 第1章 从零开始
- 《30天自制操作系统》学习笔记--第1天
- 30天自制操作系统-第1天
- 30天自制操作系统之第1天
- 30天自制操作系统-第1天心得笔记
- 自制操作系统---eposide 1
- 自制操作系统OS-1
- 《30天自制操作系统》第一天
- memset()函数
- 05-0. 求序列前N项和(15)
- poj1004
- Android的数据存储方式-------使用SharedPreferences存储数据
- 这几天好累谢了好多代码
- 自制操作系统 第1步
- 05-1. 约分最简分式(15)
- 声明和定义
- iOS 开发之UIButton的使用
- HDU2135 Rolling table【水题】
- 小小的翻译,嘿嘿,翻译的不咋地
- Wiki - Chrome网页翻译无法使用的解决办法
- hi3518c + live555 实时传输 客户端显示的时候延时问题初步解决
- linux进程管理命令