30天自制操作系统吧 关注:1,377贴子:4,673
  • 20回复贴,共1

初次学习《从0开始自作OS》的第一课。

只看楼主收藏回复

《从0开始自作OS入门》的封面:

出版社介绍网页地址:http://zero.osdev.jp/
封面图是从这个网页上摘下来的。
网站上有这部书的开头部分内容,可以免费窥视。也有PDF的下载,但我下载PDF后,打开还需要密码。
密码怎么申请到? 也不清楚。不过,前面大约有二十多页,包括目录可以看到一些内容介绍。

这本自作OS与《30天自作OS》有什么不一样呢? 看介绍我大致理解可能是如下:
1,以前的《30天自作OS》需用软盘起动OS,知识已经陈旧了。作者采用现在新的BIOS-UEFI的Boot起动.
用U盘起动(含USB3.0驱动知识),比软盘Boot先进多了。
2,用C++语言。区别于c语言。
3,是64bit了,区别于32bit。
4,在Liunx上面编程,编译。区别于windows。
5,制作的App编译后的也可以在Linux上运行( 我猜的),而《30天自作OS》的~.hrb属于自娱自乐。
这部书不像以前的电脑书籍,是不附光盘的。书中介绍的源程序及工具软件都要读者自己上网站下载。
习惯书籍附有光盘的读者,如果书中含光盘的话,比较安心,10年后再学习也没有问题。
而需要在网上下载资料,总觉得不可靠,谁知道哪天网址变迁了呢?
但是也有一个好处,不买他的书也能得到书中的介绍的程序例子。
于是,我按上面网站中介绍的下载地址(https://github.com/uchan-nos/mikanos/releases/tag/v1.0)
下载了所提供的软件资料。尝试了一下书中第一天的最简单的OS例子。
下面是我进行的步骤:
第1步,找了一台BIOS中有UEFI Boot选项的电脑。2010年之前的电脑,基本上没有UEFI选项。
如果是2015年以后的电脑,基本上是有的(不保证)。BIOS里面的设置,不同厂家的电脑也不一样。我
是在Boot项里找到UEFI的设置。还要解除Security保护(选disable)。
第2步,解压下载的软件资料,在里面的一个文件夹day01\bin\hello.efi,找到hello.efi。这样就不用自己
敲二进制码了。
hello.efi就是第一课(天)的最简单的OS的可执行文件。与《30天自作OS》一样,是用两进制编辑工具输入
的。回避了编译连接等等操作。按要求把这个文件复制到U盘里。这里面有点讲究,必须放在\EFI\Boot\的下面
才行。需要读者自己新建EFI文件夹,Boot文件夹。这里没有img的事情了,用普通的copy命令即可。
第3步,U盘插入电脑,开机上电,顺利的话,屏幕将出现如下的画面:

我曾经遇到问题,怎么也没有Hello,World画面出现,总是进入Boot的设置界面。
后来,把hello.efi文件名改为bootx64.efi就成功。原因不明。
猜想第二天以后,就需要读者自己根据源程序,用Linux的工具软件进行编译,连接。
对不熟悉Linux的读者,如鄙|人我,感觉入门的门槛还是比较高的。
就第一课,浅尝辄止。
补充: 作者也介绍说,可以用虚拟机QEMU上操作。大概没有UEFI的电脑也可以学习的。
这样就要在Liunx上,安装QEMU才行。
5.14. 完


IP属地:上海1楼2023-05-14 11:30回复
    这个系统似乎是通过uefi的接口把整个磁盘读进内存,有点类似30天的做法,而USB的部分应该主要是键盘和鼠标,并且在我的两台真机上都启动失败了,只能看到白花花的启动界面,接着就重启了。估计最后的成品只能在虚拟机上玩一玩。


    IP属地:福建来自Android客户端2楼2023-05-14 18:58
    收起回复
      这本书国内还没出翻译版的吧


      IP属地:江苏3楼2023-05-24 09:45
      收起回复
        这个mikanos_distrib_1.0.zip的resource文件夹下有ttf,看来还要实现TTF解析之类的?


        IP属地:北京4楼2023-05-26 08:23
        收起回复
          最近,买到的《从0开始OS自作入门》。定价4180圆(含税)。
          初翻阅一下,觉得有许多不适应。没有当初看到绿皮封面的《30天自作OS入门》时的
          兴奋,那本很契合自己的知识程度(用资深网友的话说就是“小白”的程度)。
          它要求在Linux下开发,我虽然曾经也安装过“红帽子”但Linux编程方面的知识皆无。作者
          也介绍了可以想办法在Windos下运行,要安装Windows对应的在Linux上运行的虚拟机。
          不是很懂。
          2024年是继续做铁娃娃OS实验呢? 还是转到Linux上,学习本书呢?

          这是一个问题。
          1.23.


          IP属地:上海5楼2024-01-23 14:23
          收起回复
            书中介绍最后完成的桌面图,打开了多个应用程序。有些应用程序在《30天自作OS》中也看到过。

            有一个简单游戏“弹球打砖块”,取代“外星入侵者”。
            彩色的画面:

            相似度很高啊,当然里面的代码肯定不一样了。
            假如,我在书店里“站阅”这部书,大概不会当机立断的,多半是再考虑考虑离开。
            那么是什么原因促使我买这部书的呢?是因为USB啊!介绍说学完这部书后,除了学到的USB
            键盘,鼠标知识外,读者自己还可以运用到U盘的读写等各种各样的USB设备的驱动开发。
            很诱人的远景。
            但是,现在光建立一个新的学习平台,学习第二天开始的课程,我都感到困难重重。
            一下子感到《30天自作OS》的作者还是很体贴读者的,把30天的课程源程序,各种必须
            的工具,都无偿的,无需读者自己去找,去下载,统统放入一张光盘,附在书里。10年以
            后再学习,也不用担心。
            我的想法是个人学习自作操作系统玩具。既然是玩具,最好还是倾向于小型化,多功能,
            这是比较现实的路子。
            那么我还是继续做我的“铁娃娃”的实验吧。
            01.27


            IP属地:上海6楼2024-01-27 23:24
            回复
              要是有人总结USB启动部分发出来就好了,后面的知识都差不多,只不过编程工具不同源码有差别而以


              IP属地:广西7楼2024-03-21 21:18
              回复