zoukankan      html  css  js  c++  java
  • 30天自制操作系统 学习笔记1

    第一天的工作很简单,可能作者是让我们熟悉熟悉环境吧。

    第一个cool的东西是Binary Editor, 是个二进制编辑器,也可叫做十六进制编辑器,跟着作者用这个东西做了一个极其简陋的hello os系统。(应该完全不能称作系统吧其实= =)我用作者提供的PC模拟器跑了跑,结果如下:

    搞这个的过程中,对.bat文件有了新的认识。原来只知道是批处理文件,知其然不知其所以然。自己照着作者弄了两个简陋的.bat文件后,发现这是个类似linux下shell脚本文件的东西,把一堆命令集成文件,双击的时候由计算机“批”量处理。(同类似sql文件)

    另外一些值得注意的知识:

    1. CPU本质上只处理电信号,交换电信号。CPU最早只是为了处理电信号,而不是为了设计计算机。一切都是巧合。或命中注定?

    2. $在汇编里是个变量,表示这一行以前已输出了多少字节,需要打很多个00的时候可以用(求出要打多少个00)。

    3. bootstrap, 代表矛盾的操作系统自动启动机制。就好像打开宝物箱的钥匙就在宝物箱里一样。

    4. IPL(Initial Program Loader)宝物箱的钥匙。

    5.计算机从最初一个扇区开始读软盘,然后去检查这个扇区的最后2个字节的内容。如果是55AA,则被认为是启动程序,反之则报不能启动的错误。

    我回头看了看helloos.img, 发现第511,512字节恰好是55AA。(不确定书中说的软盘能否用硬盘或U盘代替,因为他们的扇区大小不一定是512字节,如果是的话我想也可以用硬盘或U盘。或者你知道你用的盘的扇区大小,动态调整一下?)

  • 相关阅读:
    list(range(10))解释
    numpy.random.normal函数
    适用于Python扩展程序包的非官方Windows二进制文件
    Linux--vi/vim编辑器常用命令
    Centos Mirrors List (centos7)
    windows--redis安装
    Celery 3.x 升级至 celery 4.x(转)
    windows/linux(centos7)安装SVN
    远程获取--snmp模块(python)/snmp-cmds,easysnmp
    FileZilla客户端(OS)连接Linux
  • 原文地址:https://www.cnblogs.com/HenryThinker/p/2986510.html
Copyright © 2011-2022 走看看