自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

B06030927的博客

学习&巩固

  • 博客(19)
  • 收藏
  • 关注

原创 笔记本电源指示灯维修及散热硅脂替换

手头有台华硕的笔记本,还是在2011年购买的,去年发现电源旁边的指示灯不亮了,同时风扇散热不及时,今天正好有时间维修下。准备的工具如下:电烙铁,万用表,散热硅脂,替换的led灯,及相应的拆卸工具。先拆卸笔记本,拆卸比较麻烦,老本子所有的螺钉都要拆卸,拆卸后主要的零件如下(屏幕,底盘在另外);损坏的LED灯在这个电源板上(LED5606),电源开关旁边的就是,已经不亮了。用万用表测试电阻,内阻已经高...

2018-06-10 12:42:12 1074 1

原创 中断测试

链接:https://pan.baidu.com/s/1p09pZVeHTUl0SDPR9IC_6Q  密码:g51u

2018-05-23 22:48:05 1615

原创 D_D系统构建-loader保护模式修改

前面在loader进入保护模式时,使用了指令修改的方法,主要原因是虚拟地址从0开始,而跳转的地址是相对段内而言的,通过修改指令的方式来加上基地址。这种方法过于粗暴,这里重新修改了进入保护模式的方法,避免使用修改指令的方法(本文地址: http://pan.baidu.com/s/1i53Tm5Z)。loader.asm%include "base_phy.inc" secti

2017-10-08 22:38:17 357

原创 D_D系统构建-篇外话

好长时间没有更新了,最近二个月天天加班搞项目,头疼。。。决定 调整下计划了,后面会把整个都写完再一次性传上来。包括中断,进程 调度,程序动态加载运行功能。希望能坚持 下去。

2017-09-20 22:55:34 251

原创 L79系列三端稳压管管脚连线说明

最近对电子感兴趣,从某宝上买了一大包电子元件,其中有一个三端稳压管L7905,手头正好 有一个12v的直流电源,就用这个来试下降压效果。首先L79XX,后面的XX表示能达到的降压值,比如7905表示降压后是5V, 7909表示降压后是9V,其次检查下它的datasheet,发现他有最大输入电压可以达到-40V(为什么是负的,后面会说明,我在这上面栽了个跟头,面包板被烧化了个洞,连手都被烫了

2017-08-10 23:54:25 12003 2

原创 D_D系统构建-Loader的保护模式尝试

前面我们完成了boot(mbr)读取Loader的任务,但我们一直都 在实模式下验证的。本章我们将尝试保护模式下运行下loader.首先我们要改造下我们的Loader,最简单的肯定要包含保护模式需要的内容。实模式下,地址访问实际是按照段寄存器:偏移进行的, 实际的物理地址=段寄存器*16+偏移,比如段寄存器为0x2000, 偏移为0x1000, 实际对就的物理地址:0x2000*16+

2017-08-06 23:12:35 339

原创 D_D系统构建-MBR(8)filesystem.inc代码整改适配32位(附提供当前整个开发目录文件)

上几篇我们已经可以通过mbr加载loader文件,并能成功执行loader指令。下面计划是要扩展我们的loader文件,来进入保护模式的,在保护模式中加载kernel文件,自然想复用我们已经有的filesystem.inc文件。但检查过这个文件后,发现里面的函数寄存器基本使用的是16位的。且存在修改ds/es的操作。这在实模式下没有关系。但 在进入保护模式就会有问题了。保护模式下,我们

2017-07-28 22:50:39 462

原创 D_D系统构建-MBR(7)加载loader文件代码filesystem.inc解析

上一章节解析了boot.asm文件,这个文件包含了两个Inc文件,base_phy.inc及filesystem.inc,均在我们的include文件夹下。同时这两个 文件在前面 已经提供了代码,大家可以到http://blog.csdn.net/b06030927/article/details/75269497处取代码( DD系统构建-MBR(5)加载loader文件)。

2017-07-21 23:23:37 353

原创 D_D系统构建-MBR(6)加载loader文件代码MBR解析

上一章节,我们把当前完成的代码都列出来,包括主体代码boot.asm, loader.asm , 还有两个 include文件: base_phy.inc, filesystem.inc; base_phy.inc之前已经介绍过,且都是定义了一些地址宏,不再重复介绍;loader.asm只是简单的显示 一句话,也比较简单。相比之下 , boot.asm, filesystem.inc文件比较复杂,

2017-07-19 23:13:21 394

原创 DD系统构建-MBR(5)加载loader文件

在上一章节,我们验证了在mbr超过512字节时,如何能正确将超出512字节内容加载到内存处,并能正确运行;理解了这点,对于我们下面的加载loader大有帮助。本章节我们来尝试mbr加载loader.bin文件,并能跳转到loader.bin处执行。首先,我们得先有个能生成loader.bin的文件才行,我们可以写一个简单的Loader.asm,代码如下:loader.asm

2017-07-17 23:34:58 705

原创 D_D系统构建-MBR(4)代码剖析

上一章节我们将代码都罗列出来 ,实际上这还是一个测试代码,不会真正的加载 loader; 在后面Loader实现后,会对此代码再进行充实完善,当前我们只用来验证下分段mbr是否能正常运行。boot.asm如下:这一行表示引用头文件的意思,与C中的include一样,编译时会在此展开。section表示 这是一个段,align表示 编译时按照16bit对齐, vstart

2017-07-11 23:22:02 354

原创 D_D系统构建-MBR(3)代码

MBR代码boot.asm%include "base_phy.inc"section mbr align=16 vstart=MACRO_BOOT_ADDR jmp start;数据区bootmsg: db "MBR running..", 0ah,0dh;bootmsglen: equ $-bootmsgmbr_left_len dw mbr_end-

2017-07-09 23:31:21 409

原创 DD_系统构建-MBR(2) 流程

代码片段讲解验证方法nasm工具dd工具bochs工具

2017-06-25 22:22:04 379

原创 D_D系统构建-MBR(1)

MBR,英文含义:Main Boot Record),主引导纪录,是位于磁盘最前边的一段引导(Loader)代码,一般写于磁盘第一个扇区处。它是我们的系统上电后第一个运行的磁盘程序(在它前面实际还有很多固件程序,bios等,主要完成硬件自检工作,这阶段发生任何异常,比如内存异常,显卡异常,磁盘异常等均会中止,当然这一块我们不关注,也无法干预),最简单的理解就看成是由我们的pc把它加载到内存地址0:

2017-06-24 22:57:13 485

原创 D_D系统构建-开发文件目录结构

app:用户程序目录,类似于我们自己安装 的应用程序boot: MBR程序目录,系统上电后第一个自动加载的程序include:头文件目录,常用的头文件放在此目录中kernel:core目录, 我们的最终文件管理,用户程序调度,中断处理都在这里面loader:loader目录,用来加载kernel,自身由mbr加载 release:最终生成程序目录,包括mbr loader co

2017-06-24 07:50:52 401

原创 D_D系统构建-文件写入方法

按照上一篇的文件系统描述方法,当需要写入一个新文件到虚拟磁盘中时,遵循下面的要求:1. 读取文件文件系统块(扇区1),取出可用扇区数目,可用inode数目;读取扇区使用位图(扇区2), inode信息使用位图(扇区3) 。2.如果可用inode数目为0,失败,退出;否则根据inode使用位图,取一个可用的inode,暂时叫inode_x; 3.计算文件所需要的扇区数目((文件大小+51

2017-06-11 17:31:39 534

原创 D_D系统构建-文件系统

文件的存储读取及扇区的使用分配离不开文件系统,我们不需要太复杂的文件系统,主旨就是要纪录文件保存的位置,及可用扇区数目等,这里借鉴下inode概念。一切本着简单的原则。这里面假定我们只有512个inode, 4096个扇区扇区0                  MBR扇区1                  文件系统块(见表1)扇区2

2017-06-11 17:29:19 442

原创 D_D系统构建-文件分布及说明

整体上文件系统 分为MBR, LOADER, KERNEL, USER_APP.MBR:系统上电后第一个加载 的程序, 存放在磁盘0.一般前446字节保存代码,后64字节为分区表信息,最后两个字节标明MBR(0xaa55),它的主要任务是加载 Loader到内存,并将运行权利交由loader.LOADER:由于MBR的限制,它会第一个把loader加载到内存中,然后运行权交由Loader运

2017-06-11 15:42:57 344

原创 D_D系统构建-简述及环境准备

当前自己学习了一些操作系统原理方面的书籍,想通过自己构建一个简单的系统来巩固一下环境:系统:ubuntu 16.04 64位              虚拟机工具:bochs             编译工具:nasm

2017-06-11 15:31:27 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除