现在来介绍官网上下的工具怎么用首先是官网地址,书上有个注释上有:hrb.osask.jp 翻译成中文大概是这个样子滴. 上面有两个文件可以下载,一个是工具,一个是工具的源代码,很好的学习资料 下面把工具复制出来 看到很多可执行文件..感觉好舒服.. 然后把我们随便一个project复制到z_tools的同级目录下 project的内容可以修改,因为批处理可以下岗了: 然后可能是难度最大的部分出现了...修改makefile 如果没用过makefile可以先找点资料看看.很简单的语法,很强大的功能…
<30天自制操作系统>笔记(03)——使用Vmware 进度回顾 在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能:并且总结出下一步的OS开发结构.但是遇到了真机测试和U盘启动的一些问题.本篇就来解决之. 遇到的问题 物理机测试 简单来说,把软盘(U盘)做成启动盘后,自然想要用来启动物理机器.毕竟这才是真正的测试.(用QEMU总没多大的成就感)但物理机测试的麻烦在于太慢了,每次都要关掉Windows,重启,测试,然后再重启Windows.而且还没办法截图. 而用Vmwa…
Day2 汇编语言学习与Makefile入门 本文仅带着思路,研究源码里关于文件系统的参数 关于day2主程序部分及更多内容,请看<30天自制操作系统>笔记 导航 发现学习中的变化 源码差异分析 FAT12/FAT16/FAT32相关资料 开始全面分析 发现学习中的变化 day1代码(只简单地使用DB DW DD RESB指令) ; hello-os ; TAB=4 ; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code DB 0xeb, 0x4e,…
<30天自制操作系统>笔记(06)——CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件本身的设计就具有事件驱动的性质,所以软件层面上才有基于事件的消息机制. 但上一篇没有说明中断的来龙去脉,本篇就从头到尾描述一下CPU与此相关的设置问题. Segment 32位的CPU使用32条地址线,能区分232=4G个内存地址.每个内存地址都有1Byte的内容. 分段,就是将4GB的内存分成很多块(blo…
<30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL代码(helloos.nas).编译生成helloos.img文件.用虚拟机QEMU加载helloos.img.制作U盘启动盘和用物理机加载helloos.img. 计算机启动时会自动加载和执行IPL程序,但IPL程序只能占用512字节.若直接用IPL写OS,空间不够用.所以IPL程序一般用于将真正的OS程序…
<30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以下这段是标准FAT12格式软盘专用的代码 JMP entry DB 0x90 DB "HELLOIPL" ; freeparam 启动区的名称可以是任意的字符串(8字节) DW ; 每个扇区(sector)的大小(必须为512字节) DB ; 簇(cluster)的大小(必须为1个扇区)…
转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 虚拟机加载helloos.img 真机加载helloos.img 制作启动盘 真机启动 总结 <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 回到顶部(go to top) 最初的OS代码 1 ; hello-os 2 ; TAB=4 3 4 ORG 0x7c0…
从今天起,写一些读书笔记.最近几个月都在看<30天自制操作系统这本书>,书虽说看的是电子书,但可以花钱买的正版书,既然花费了金钱,就总得有些收获. 任何人都不能总是固步自封,想要进步就得学习别人的知识,对于程序员而言,最简单的方法即是学习别人的代码. 今天的标题是“单字节的FIFO缓存”,其实就是做一个FIFO,看名字就知道了.也就4个函数和1个相关结构体,这样的小代码在嵌入式系统中很常用,也会很好用. 1.相关数据结构体 struct FIFO8 { unsigned char *buf;…
关于上一节,我测试了发现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…
nask.exe应该就是nas kit(nas开发工具的意思),由于这个编译器是作者自己写的,所以这种汇编语言应该是作者改造出来的,所以我叫它nas汇编语言. 作者说nask是模仿nasm语法的,关于nasm:Linux 汇编器:对比 GAS 和 NASM 前言 本文标题虽为二进制,但其实一般大家都看十六进制 ,因为每4位二进制(4bits)就对应一位十六进制数(hex),如 作者也这样说:为了方便清晰地表示二进制,我们用十六进制来看 如果计算进制有困难,可以使用在线工具或Excel,字符转16…
这个专题荒废了许久,今天补点东西 不够准确的小结 用汇编来开发操作系统,就是使用汇编本身的功能再加上BIOS中断提供的功能来完成功能的过程. 汇编本身的功能不够,毕竟没有外部IO,所以通过给多个寄存器赋值,然后调用BIOS中断,让主板/BIOS去读取这些状态/值,然后BIOS根据值执行不同的功能(猜的) 至于如何用汇编控制电路,大概也是用寄存器和电路设计吧 详解:为什么计算机能读懂 1 和 0 ? - 知乎 主要内容 一个月后再写 待续...…
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 developing environment:ubuntu 关于u盘启动自己做的操作系统的原因: 我想大部分分的学习者和写Os的人都有这样的想法,为什么现在大部分的教程都是拿软盘来说做仿真,我们的电脑上面也没有软盘,搞来搞去的系统,到头来只能仿真,没有什么意思.能在真机上跑跑自己写的系统才是有意思的事情.当然,这也是我自己的想法. 想在真机上跑,就需要一台slave机(另一台做实…
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第八天的学习思考: 关于鼠标是怎么移动怎来的 思考过程. 现在忘掉作者的代码思路,如果是我们自己写代码,鼠标指针应该怎么样才能动起来呢? 我的思路: 其实让鼠标指针动起来真的非常简单,只需要改变下面函数中的mx,my变量,也就是鼠标的position变量,鼠标指针就会移动了.但是在移动前一定要把原来鼠标指针出现的位置填充为背景 色,…
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第九天的课程已学完,确实有点不想写这个笔记了,因为开学了,还要学习课业上的压力,转博了压力山大啊. 这一天的课程最难的我感觉是后面的memory free的部分,这一部分有很多已经没有接触到的东西,所以感觉比较难. 内存的管理在任何os中都是一个重要的问题. 还是按照作者的书本上第九天的顺序的来做笔记吧: 1:整理源文件部分,这一部…
1 制作真正的IPL IPL(Initial Program Loader),启动程序装载器,但是之前并没有实质性的装载任何程序,这次作者要开始装载程序了. 虽然现在开发的操作系统啥功能也没有,作者说轻轻松松做. 起始我觉得吧,有了启动程序加载器之后,相当于给了我们一个给CPU传送指令的入口,我们想让CPU干啥,就给它传指令和数据就可以啦.操作系统嘛,就是一个启动程序装载器调用的一个很大的.很复杂的函数而已,突然感觉自己有些升华了( ^_^ ). CPU就是一个干活很快的家伙,但是智商基本为0,…
一.ucore操作系统介绍 操作系统作为一个基础系统软件,对下控制硬件(cpu.内存.磁盘网卡等外设),屏蔽了底层复杂多样的硬件差异:对上则提供封装良好的应用程序接口,简化应用程序开发者的使用难度.站在应用程序开发人员的角度来看,日常开发中常见的各种关于并发.I/O.程序通信的问题等都和操作系统相关,因此一定程度上了解底层的操作系统工作原理是有必要的. 另一方面,由于操作系统自身功能的复杂性,整体设计一般会有一个好的模块化架构:操作系统作为基础服务,对性能效率的要求也很高,底层会用到许多关于数据…
在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操作系统(本部分对应 L10 && L11 && L12) 实验:操作系统原理与实践_Linux - 蓝桥云课 (lanqiao.cn) 笔记:操作系统学习导引 · 语雀 (yuque.com) 这一部分比较难,一难在理解,二难在实现,其中L12是最难的,反复看了很多遍.之后需要…
原本的启动是从img启动的,并且这个img是用FAT12文件系统进行格式化的(详细去搜索FAT12文件格式,这里给大家推荐一篇http://www.doc88.com/p-646605198560.html),那么也就是说我们的img文件符合FAT12文件系统的格式了.接下来我们用winhex这个软件来查看我们的img文件,同一时候比对FAT12文件系统的格式,看是否我们的img文件同FAT12文件系统描写叙述的同样: 从上图中能够看到里面有一个haribotesys的文件夹项.那么我们看看我们…
书名叫做30天自制操作系统,按照学校课设答辩的时间来看,估计得把书名改成<一周自制操作系统>,太卷了哈哈哈 我们可以使用qemu来模拟物理机 make run第二天制作的操作系统 可以看到输出了hello world,但是qemu模拟感觉没有太大的成就感,想要在真机上面进行自制操作系统的演示. 书中作者一直在用软盘来作为启动盘,但是我连软盘是什么都没有听说过,感觉现在这种东西也已经随着时代的发展而被淘汰了,在网上查了一下img文件在U盘里面做成启动盘的教程,感觉很复杂,而且有的博主说在JMP到…
Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 参数类型 默认值参数 关键参数 可变长度参数 参数传递时的序列解包 结束语句 变量作用域 lambda表达式 高级话题map, reduce等 面向对象程序设计 定义与使用 self 类成员与实例成员 私有成员与公有成员 方法 属性 特殊方法与运算符重载 继承 文件操作 文件对象 文本文件操作案例…
<30天自制操作系统>一书中第1天和第二天中有关汇编语言的程序的理解 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以下的记述用于标准FAT12格式的软盘 JMP entry DB 0x90 DB "HELLOIPL" ; 启动区的名称可以是任意的字符串(8字节) DW 512 ; 每个扇区(sector)的大小(必须为512字节) DB 1 ; 簇(cluster)的大小(必须为1个扇区) DW 1 ; FAT的起始位置(一般从第…
原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe 非线程安全型 以FastCGI模式运行 VC9 x86 Thread Safe 线程安全性 以ISAPI模式运行 安装过程 只需要解压上一步的zip包即可,然后配置php.ini 详见Php如何配置 Mysql如何安装 下载Mysql database msi安装文件,安装提示下一步即可. Php如…
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上…
参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔记:第二十四讲 趣谈Linux操作系统学习笔记:第二十五讲 趣谈Linux操作系统学习笔记:第二十六讲 核心原理篇:文件系统 趣谈Linux操作系统学习笔记:第二十八讲 趣谈Linux操作系统学习笔记:第二十九讲…
30天自制操作系统-day3 前2天我们分别使用了直接使用二进制编辑器和简单的汇编指令生成了img文件,今天我们尝试一下使用稍微复杂一点的汇编指令 os.asm文件内容如下: ; hello-os ; TAB=4 ; 以下是FAT12标准软盘专用代码 DB 0xeb, 0x4e, 0x90 DB "HELLOIPL" ; 启动区名称 DW 512 ; 每个扇区的大小,必须是512字节 DB 1 ; 簇的大小,为一个扇区 DW 1 ; FAT的起始位置 DB 2 ; FAT的个数,必须为…
30天自制操作系统(linux)-day2 使用简单的汇编语言 首先Centos环境安装nasm,使用vim工具编辑一个os.asm文件,文件内容如下: DB 0xeb, 0x4e, 0x90, 0x48, 0x45, 0x4c, 0x4c, 0x4f DB 0x49, 0x50, 0x4c, 0x00, 0x02, 0x01, 0x01, 0x00 DB 0x02, 0xe0, 0x00, 0x40, 0x0b, 0xf0, 0x09, 0x00 DB 0x12, 0x00, 0x02, 0x…
30天自制操作系统(linux环境)--第一天 我是在CentOS的环境上面实现的,使用ubuntu的环境也是类似的 第一步:因为要对二进制文件进行编辑,所以安装二进制编辑器hexedit(当然其他的也可以),安装命令 yum install hexedit 第二步:对生成的软盘镜像进行仿真运行,使用虚拟机,因为我本地是使用VM进行的虚拟机,所以直接使用VM也可以 具体过程如下: 第一步:创建一个img文件 touch hello.img 第二步:编辑该文件,输入512字节的内容(这512字节的…
2020年Yann Lecun深度学习笔记(下)…
Oracle RAC学习笔记02-RAC维护工具集 RAC维护工具集 1.节点层 2.网络层 3.集群层 4.应用层 本文实验环境: 10.2.0.5 Clusterware + RAC 11.2.0.4 GI + RAC 通过对比命令的输出,也可大致了解10g RAC 到 11g RAC 发生的变化. 1.节点层 1) olsnodes olsnodes: 列出集群中所有的节点. 10g(10.2.0.5): [oracle@oradb28 ~]$ olsnodes -h Usage: ols…
在jdk中,为并发编程提供了CyclicBarrier(栅栏),CountDownLatch(闭锁),Semaphore(信号量),Exchanger(数据交换)等工具类,我们在前面的学习中已经学习并分析了CountDownLatch工具类的使用方式和源码实现,接下来我们继续学习CyclicBarrier,Semaphore,Exchanger的源码实现. 1. CyclicBarrier(栅栏) 1.1 CyclicBarrier的使用方式 在实际的并发中,我们可能需要等待所有线程到达一个数量…