很久以前就对操作系统很好奇,用了这么多年Windows,对他的运作机理也不是很清楚,所以一直想自己动手写一个,研究一下操作系统究竟是怎么实现的.后来在网上也找到过一些教程(比如:<自己动手写操作系统>),大都是先要用汇编写活动分区的第一个扇区(MBR).13年4月左右我也曾经跟着教程尝试过,用汇编调用BIOS中断读扇区.加载Bootstrap.不得不说用汇编很容易出错,可读性也不好,所以这次我就想能不能完全不用汇编写操作系统. UEFI 经过一番搜索,我找到了一个叫UEFI的东西,下面是它的简…
bootloader程序架构略有简化的bootloader图 这张图和恒润教程中的BootLoader流程大体是一致的. 疑问点 Q:图中的烧写顺序是34-36-34-36-34-36-37,但另一些材料中的顺序是34-36-36-36-37. A:这个问题这样理解,34-36-36-36-37的前提是你要下载的数据是连续的数据,每个36所使用的地址信息,都是34中包含的地址信息再加上一定的偏移量.如果需要下载不连续的数据,就需要重新进行34服务或31(擦除)-34服务. 1 为什么要搞Boot…
1,首先确保hadoop和spark已经运行.(如果是基于yarn,hdfs的需要启动hadoop,否则hadoop不需要启动). 2.打开idea,创建maven工程.编辑pom.xml文件.增加dependency. <dependency> <!-- Spark dependency --> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifac…
HBase之所以与Hadoop是最好的伙伴,我理解就因为两点:1.HADOOP的HDFS,为HBase提供了分布式的存储方式:2.HADOOP的MR为HBase提供的分布式的计算方法.u 其中第一点,主要是HBase在HDFS的支撑下,实现了HRegion来进行分布式的管理.HBase中除了我们定义的数据表格外,其自身还有两类表格:-ROOT-表和.META.表.在分布式的环境下,客户端定位到要访问的具体某行数据,需要依次通过:唯一的-ROOT-表,具体某个.META.表,具体某个RegionS…
最近由于工作原因,一直忙于公司的各种项目(大部份都是基于spring cloud的微服务项目),故有一段时间没有与大家分享总结最近的技术研究成果的,其实最近我一直在不断的深入研究学习Spring.Spring Boot.Spring Cloud的各种框架原理,同时也随时关注着.NET CORE的发展情况及最新技术点,也在极客时间上订阅相关的专栏,只要下班有空我都会去认真阅读观看,纸质书箱也买了一些,总之近一年都是在通过:微信技术公众号(.NET.JAVA.算法.前端等技术方向).极客时间.技术书…
BIOS 在主板上,有一个东西叫ROM(Read Only Memory,只读存储器).这和咱们平常说的内存RAM(Read Access Memory,随机存取存储器)不同. 而 ROM 是只读的,上面早就固化了一些初始化的程序,也就是BIOS(Basic Input and Output System,基本输入输出系统). 在x86系统中,将1M空间最上面的0xF0000到0xFFFFF这64K映射给ROM,也就是说,到这部分地址访问的时候,会访问ROM ,当电脑刚加电的时候,会做一些重置的…
一.VM操作系统实例化 1.建立虚拟磁盘镜像 虚拟磁盘镜像在逻辑上是提供给虚拟机使用的硬盘, 在物理上可以是 L inux系 统内一普通镜像文件, 也可以是真实的物理磁盘或分区. 本方案设计中将虚拟机集中存储在 SAN存储阵列中, 采用文件方式, 用 dd命令创建如下 dd if= /dev/ zero of= hdisk.img bs= 1G count= 10,dd命令创建一个名为hdisk.img的容量为10G的虚拟磁盘.虚拟磁盘并不会立即分配全部空间, 而是根据使用情况在不超过 10G范…
关于上一节,我测试了发现3e.4c.4e都OK ,4b 4d 4f都进不去系统还把qemu卡死了. 50不会输出HelloWorld,可能需要hex偶数且在0x3e~4f区间吧.上节复制并运行命令如下: copy /y helloos-Copy.img ..\z_tools\qemu\fdimage0.bin && ..\z_tools\make.exe -C ../z_tools/qemu 先不管上一节了,这节我们写HelloWorld 看不清请右击“从新窗口打开图片”,下为P29 P3…
一.生成boot.bin boot sector代码: loop: jmp loop times -($-$$) db dw 0xaa55 重点就是最后的0xaa55 nasm boot.asm -f bin -o boot.bin生成boot.bin文件(mac上nasm版本很旧,brew安装一下然后重启即可) 二.安装.配置bochs 1.安装直接brew install bochs即可. 2.生成软盘镜像,命令行bximage,然后根据提示生成一个1.44M的软盘即可 3.将boot.bi…
UEFI启动是一种新的主板引导项,正被看做是有近20多年历史的BIOS 的继任者.顾名思义,快速启动是可以提高开机后操作系统的启动速度.由于开机过程中UEFI的介入 第一:安全性更强 UEFI启动需要一个独立的分区,它将系统启动文件和操作系统本身隔离,可以更好的保护系统的启动.即使系统启动出错需要重新配置,我们只要简单对启动分区重新进行配置即可 第二:启动配置更灵活 EFI启动和GRUB启动类似,在启动的时候可以调用EFIShell,在此可以加载指定硬件驱动,选择启动文件.比如默认启动失败,在E…