跟我一起写操作系统(一)---好的开始是成功的一半

  讲操作系统理论的书籍很多,看完觉得是那么回事,但总感觉少点什么,少的就是动手。想动手,但无从下手,不知从何做起,是普遍初学者的困惑,为了解决这个困惑,也为了记录自己的学习过程,就写了《跟我一起写操作系统》这个系列。主要参考《一个操作系统的实现》。

10分钟写个操作系统

一. 开发环境。

  我们在linux下编译镜像等,因此需要linux开发环境。如果你用windows, 那么在windows下安装VMware, 在VMware中安装ubuntu虚拟机,此ubuntu作为开发环境。

  注:我的开发环境是windows--VMware--ubuntu.

二. 在ubuntu下制作软盘引导映像.

 1 先制作一个空的软盘映像文件diska.img(1.44Mb的软盘映像文件):  

  dd if=/dev/zero of=diska.img bs=512 count=2880

  2 制作一个包含boot.bin的映像文件boot.img:

  dd if=boot.bin of=boot.img bs=512 count=1

  3 将diska.img中1个扇区后面的数据拷贝到boot.img的后面

  dd if=diska.img of=boot.img skip=1 seek=1 bs=512 count=2879

  这样就做成了一个大小为1.44Mb的包含引导代码的映像文件。

时间: 2024-10-05 16:06:09

跟我一起写操作系统(一)---好的开始是成功的一半的相关文章

Orange's 自己动手写操作系统 第一章 十分钟完成的操作系统 U盘启动 全记录

材料: 1 nasm:编译汇编源代码,网上很多地方有下 2  WinHex:作为windows系统中的写U盘工具,需要是正版(full version)才有写的权限,推荐:http://down.liangchan.net/WinHex_16.7.rar 步骤: 1 编译得到引导程序的机器代码.用命令行编译汇编源代码:name boot.asm -o boot.bin,其中boot.bin文件产生在命令行的当前目录中. 2 将引导程序写入到U盘引导盘的第一个扇区的第一个字节处(后),即主引导区.

自己动手写操作系统 -- 环境搭建

目录: 软件和工具下载 Bochs虚拟机配置文件 Hello World编辑编译 1. 软件和工具下载 Bochs虚拟机下载安装 下载地址: http://download.pchome.net/system/sysenhance/down-19486.html dd for windows下载安装 下载地址: http://www.downxia.com/downinfo/17093.html nasm for windows下载安装 下载地址: http://download.csdn.ne

自己动手写操作系统--个人实践

近期開始看于渊的<自己动手写操作系统>这本书,刚開始看就发现做系统的引导盘居然是软盘!心里那个汗啊! 如今都是U盘了,谁还用软盘.于是考虑用U盘. 于是開始下面步骤: 1.既然书上说给先要把软盘做引导盘,那我就相似地把U盘做成引导盘.在网上找了半天,发现USboot,于是就用它给自己的U盘做了一个引导盘. 2.把编译后的boot.bin文件用绝对扇区工具写入U盘就万事大吉了.相同,在网上找到了winhex(还有ultraiSO,这个没有什么用),但是这个关键的一步,自己不知道如何用winhex

跟我一起写操作系统(三)——打印函数和qemu虚拟机

转载注明出处:http://www.cnblogs.com/lucasysfeng/p/4847662.html 上一讲地址:http://www.cnblogs.com/lucasysfeng/p/4847662.html 项目地址:https://github.com/lucasysfeng/lucasOS 本讲主要涉及以下三个方面:1. 打印函数封装:2. qemu的使用:3. 项目目录结构调整. 理由如下:1. 后续开发无疑会遇到打印变量的操作,因此有必要封装打印函数(内核开发阶段,无法

读 自己动手写操作系统

用一个月左右的时间读了<自己动手写操作系统>,这是一本让人读着很过瘾,却也特别累的一本书. http://ike.126.com 对操作系统的兴趣由来已久,只是一直未能找到入门之径.操作系统教材是个令人生畏的东西,它可以告诉人有什么,却不能告诉人为什么,从那里了解的操作系统有如盲人摸到的象,得到各个部分,却不能拥有整体,加之缺乏实践的支持,理论显得苍白空洞.如Linux般的开源操作系统,虽然可以让人坐拥全部源码,但一来规模庞大,让人不知从何入手,二来源码背后更多的是业务--操作系统和硬件知识,

自己动手写操作系统(一)环境准备

参考书籍为<自己动手写操作系统>于渊著 VMware12 centOS7.4.1708 1.bochs安装 首先下载安装包: 下载地址 然后解压,解压命令:sudo tar -zxvf bochs-2.6.9.tar.gz cd命令进入解压目录,先进行配置 配置命令:./configure --enable -debugger --enable-disasm 然后:sudo make 当我执行这一步的时候,报错了 没有Xlib的话就安装一下,这里进行全部安装:yum install libX*

自己动手写操作系统(一)环境准备【转】

转自:https://blog.csdn.net/qq_41785376/article/details/90739557 参考书籍为<自己动手写操作系统>于渊著 VMware12centOS7.4.1708 1.bochs安装首先下载安装包: 下载地址然后解压,解压命令:sudo tar -zxvf bochs-2.6.9.tar.gz cd命令进入解压目录,先进行配置配置命令:./configure --enable -debugger --enable-disasm 然后:sudo ma

自己动手写操作系统 第四章总结

本章主要内容是建立一个功能比較完好的引导扇区也称为 boot sector 首先回想一下一个操作系统从开机到执行的过程 1.引导 2.载入内核入内存 3.跳入保护模式 4.開始运行内核 可见在内核開始运行前还有非常多工作要做,假设所有交给boot sector,512字节非常可能不够用,所以我们须要将这个 功能分担出来,这个模块就是loader 如今,boot sector 的功能就是负责把loader载入到内存中,而且把控制权交给它,到此,boot sector就完毕任务了 而载入内核的功能就

【从头开始写操作系统系列】环境搭建以及第一个Hello World

写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: <30天自制操作系统>川合秀实 <ORANGE'S:一个操作系统的实现> 开发环境 笔者采用以下开发环境 Apple Macbook Air Ubuntu 12.04 LTS(32 bit) 读者准备 毕竟是动手写一个操作系统,对读者的要求也会相应要求高一些,对计算机编程0基础的读者还是不建议直接看