helloos第一天

1、准备工作

1.1 二进制编辑器

  • Binary Editor
  • HxD
  • BZ(https://dwangshuo.jb51.net/201802/tools/Bz1621.lzh_jb51.rar)

1.2 虚拟机(VM)

  • VMware Workstation Pro15

2、实际操作

2.1 二进制源码

**其余部位全部用00进行填充,一直到167FF0行,文件大小为 1474560(1440 * 1024字节)**文件格式保存为.img文件。

2.2 虚拟机安装


完成后,打开虚拟机,显示完成,如果有问题检查一下二进制文件是否输入正确。

3、理论学习

3.1 CPU(central process unit)

中央处理单元:本质上我们在电脑所做的所有操作都是在跟CPU做电信号的交换,而CPU只懂 开(ON)关(OFF)两种状态,可以用:

0000 0000 0000 0000 0000 0000 0100 1010 0010 这个32位的电信号的集合来表示1186这个整数

0000 0100 1011 0100 1111 0100 1111 0100 0010 这个32位的电信号集合来表示”BOOK“这个单词

电信号跟0/1对应起来,就能将电信号转换为而进行,二进制也可以转换为电信号,再将文字都编上号(文字编码),就可以建立文字与数字的关系,从而就可以把文字转换成电信号,让CPU来处理文章等多媒体数据。而计算机行业普偏使用十六进制来进行编写。

3.2 寄存器

常用的代表性8种寄存器,每个寄存器都是16位,可以存储16位的二进制数,8个寄存器全部加起来只有16字节,只能存储16字节的数据

  • AX:累加寄存器
  • CX:计数寄存器
  • DX:数据寄存器
  • SP:栈指针寄存器
  • BP:基址指针寄存器
  • SI:源变址寄存器
  • DI:目的变址寄存器

还有CPU中8个8位寄存器

  • AL:累加寄存器低位
  • CL:技术寄存器低位
  • DL:数据寄存器低位
  • BL:基址寄存器低位
  • AH:累加寄存器高位
  • CH:计数寄存器高位
  • DH:数据寄存器高位
  • BH:基址寄存器高位

待更新。。。。

手写操作系统之helloOS相关推荐

  1. 手写操作系统(1)——HelloOS

    让我们一起学习,由简单的Hello OS入手,最终码出一个属于自己的操作系统! 文章目录 **前言** Hello OS 引导程序 环境准备 下载源代码 编译操作系统 **流程** **编译** ** ...

  2. 手写操作系统(3)——开发环境建立与内核架构设计

    之前介绍了简单的Hello OS以及代码是如何运行的.接下来我们会真正动手开始往我们的Hello OS中增加功能,但是--操作系统架构是一个极其精细的活.如老话所言"凡事三思而后行" ...

  3. 手写操作系统+文件系统开源啦

    哈喽,我是子牙,一个很卷的硬核男人.喜欢研究底层,聚焦做那些大家想学没地方学的课程:手写操作系统.手写虚拟机.手写模拟器.手写编程语言- 今年是我创业的第二年,已经做了两个课程:手写JVM.手写操作系 ...

  4. 手写操作系统(4)——计算机是如何启动的?BIOS、GRUB、文件系统......

    我一直有一个疑惑--计算机到底是怎么启动的? 而且似乎有点矛盾--要想启动,就必须运行程序,但是计算机没开机怎么加载和运行程序呢? 为了解决这个矛盾,工程师终于想出将一小段程序固化进一块存储设备,电脑 ...

  5. 手写操作系统1——在centos上安装bochs

    1.准备环境 下载bochs,网址:https://sourceforge.net/projects/bochs/files/bochs/2.6.2/ 将文件复制到虚拟机或者服务器上,并解压. 具体步 ...

  6. 圆梦,手写了个操作系统

    内功决定一个程序员的上限,这是每个程序员都知道的道理.程序员要修哪些内功呢:汇编.C语言.C++.操作系统内核- 这些修内功的课程,市面上少有人做,做相关课程的人,大多缺实战经验,所以课程偏理论,大家 ...

  7. 圆梦,手写了一个操作系统

    哈喽,大家好,我是子牙 作为一个Java Coder,我的梦想是手写JVM.这个梦想在疫情来临的那年春节实现了,因为手写了JVM被图灵学院的周瑜老师认识,经周瑜推荐,离开阿里加入图灵学院成为一名讲师, ...

  8. 手写一个X86操作系统实战:从零开始构建一个U盘启动的自制操作系统(一)

    这个标题可能有点大了:-) 一个操作系统至少应该有自己的文件系统和进程机制,不过我们的最终目标应该是这个~ 无论如何,看完本文,你应该可以手写一段通过U盘启动的在PC上运行的不需要其他软件来协助的自启 ...

  9. 基于HAL库手写一个轻量化操作系统——参考ucos

    目录 1前言 2准备 3汇编 4过程 4.1工程文件 4.2汇编语言 4.3OS系统的初始化 4.3.1任务初始化函数 4.3.2创建任务函数 4.3.3空闲任务 4.3.4OS启动 4.4多任务的实 ...

最新文章

  1. 深度学习需要掌握的 13 个概率分布(附代码)
  2. 分布式文件系统HDFS,大数据存储实战(一)
  3. Sprint计划列表
  4. Jmeter性能测试之如何写Java请求测试用例类
  5. 网页监控插件distill web monitor使用之监控亚马逊到货及价格
  6. 【Mark】计算机科学导论
  7. OKR组织敏捷目标和绩效管理第二课 O、KR和案例讲解
  8. IT领域常用指标概述
  9. 开根号的几类算法总结
  10. 区块链专利申请量断崖式下降:阿里腾讯跌出十强 网心逆市晋身前四
  11. 2020apple教育优惠购买策略
  12. Go语言: go-redis客户端通过MSet方法一次性批量写入多个key的值
  13. 【bzoj4826】[Hnoi2017]影魔
  14. Sketch中的快捷键总结
  15. DLL无法注入的原因查找
  16. graylog+kafka+zookeeper(单机测试及源码),graylog组件部署,查找问题分析(一)
  17. java outputstream 输入文件损坏问题
  18. Cocos2d-x 游戏中子弹的设计(一)
  19. 什么是PM?团队角色
  20. mysql 开启事物_mysql事务的开启

热门文章

  1. 抖音跳转到微信引流的方法,私信页面如何添加微信
  2. requests模拟登录微信公众平台手机扫码确认
  3. texmaker中图片过大怎么办_latex 图或表和正文间距过大怎么处理
  4. linux中的信号处理与SROP
  5. Git管理 本地文件误删(提交和没提交情况下),恢复文件的方法
  6. Textpad 1.7下载
  7. [安全攻防进阶篇] 二.如何学好逆向分析、逆向路线推荐及吕布传游戏逆向案例
  8. Android权限(permission)大全
  9. 林纳斯·托瓦兹 Linus Torvalds
  10. 寻迹小车代码_活动 | 代码日记—计算机编程培训(泰达校区)