x01.os.19: compile linux-0.11 on the ubuntu

为什么学习 linux

正如不能依靠美国的 GPS 为我们的导弹指示目标一样,很难想像用运行 windows 的电脑去同美国进行信息战。而朝鲜的网络崩溃,再次警示国人,信息战、网络战离我们并不遥远。linux 的开源,可以按自己的要求进行深度定制,无疑是极佳选择。

为什么是 linux-0.11

现在的 linux-3.18,近千万行代码,即使是 linus,也没有全部看完,更不用说拿来学习了。而 linux-0.11,只有万余行代码,拿来学习,从量上是正好。

进入 linux-3.18/arch 目录,里面一大堆,但只要你搞清楚了一个,如 x86,其他的就都不难理解了。同理,文件系统、驱动设备等,都可采取这种重点突破的方式来进行。但在进行之前,先拿 linux-0.11 开刀,是可以达到事半功倍的效果。因为 linux-0.11 麻雀虽小,但五脏俱全,且与现在的 linux-3.18 具有相关性。这样,质也有了保证。

怎样在 ubuntu 中编译运行 linux-0.11

有了 linux-0.0 的成功运行,在 ubuntu 中编译 linux-0.11,就不再是难事了。从 x01.lab.download 提供的下载链接,选择 x01.los.1.tar.gz ,下载解压后由终端进入,make 再 bochs 即可。需要说明的是,在此借助了 grubdos.img ,这也是 ubuntu 的启动方式。终端输入 make grub 可在 grubdos.img 中添加编译的 Image,而 rootimage-0.11 是根文件映像。在 grubdos 的菜单中,选择最后一项。当提示 insert floppy and press ENTER 时,在 grubdos 的菜单中,选择 fd1 即可。

时间: 2024-10-05 20:57:46

x01.os.19: compile linux-0.11 on the ubuntu的相关文章

x01.os.19: linux 0.0

linux 0.0 是一个丢失的版本,但赵炯老师又在 linux 0.11 的基础上,使它起死回生.www.oldlinux.org 有大量资源可供下载,值得一看. 1.要编译运行,首先需安装:sudo apt-get install bin86,取其 as86,ld86 也. 2.makefile 有两点要注意,一是 ld  的入口为 0,二是使用 objcopy 对 head 进行转换拷贝. 3.代码可到我的置顶随笔 x01.lab.download 中下载 x01.los.0.tar.gz

Linux 0.11下信号量的实现和应用

Linux 011下信号量的实现和应用 生产者-消费者问题 实现信号量 信号量的代码实现 关于sem_wait和sem_post sem_wait和sem_post函数的代码实现 信号量的完整代码 实现信号量的系统调用 测试用的应用程序的实现 Linux 0.11下信号量的实现和应用 1.生产者-消费者问题 从一个实际的问题:生产者与消费者出发,谈一谈为什么要有信号量?信号量用来做什么? 问题描述:现在存在一个文件”.\buffer.txt”作为一个共享缓冲区,缓冲区同时最多只能保存10个数.现

Linux 0.11中write实现

看了一下Linux 0.11版本write的实现,首先它在标准头文件unistd.h中有定义 int write(int fildes, const char * buf, off_t count); 接下来看write.c /* * linux/lib/write.c * * (C) 1991 Linus Torvalds */ #define __LIBRARY__ #include <unistd.h> //定义write的实现 _syscall3(int,write,int,fd,co

Linux 0.11 中字符设备的使用

Linux 0.11 字符设备的使用 一.概述 本文自顶向下一步步探索字符设备的读写是怎么完成的.通常我们在Linux应用程序中用open.read.write对各种类型的文件进行操作.我们可以从键盘输入,然后命令行窗口会显示你的输入,有输出的话则命令行窗口会显示输出.为什么所有的设备在Linux中都被看成是一个个文件,可以通过统一的read.write直接进行读写?文件句柄与终端设备有什么关联?为什么Linux允许多个控制终端登录?tty又是什么东西?读写时将发生哪些硬件中断,驱动程序是怎么回

基于 Docker 快速构建 Linux 0.11 实验环境

by Falcon of TinyLab.org 2015/05/02 简介 五分钟内搭建 Linux 0.11 的实验环境介绍了如何快速构建一个 Linux 0.11 实验环境. 本文介绍如何快速构建一个独立于宿主机的 Linux 0.11 实验环境,该实验环境可以用于任何操作系统的宿主开发机,将非常方便各类学生学习 Linux 0.11,本文只介绍 Ubuntu.在 Windows 和 Mac 下可以用 VirtualBox + Boot2Docker 来启动. 下文要求已经安装 git 和

Linux 0.11 内核学习之main.c

1.之所以选择这么低的版本学习,答案是简单,高版本的代码量太大,对于我这样的初学者来说,就是瞎子摸象不会有什么感觉.开始吧! 2首先你需要在一个地方下载源码:OldLinux 3.分析: 1 /* 2 * linux/init/main.c 3 * 4 * (C) 1991 Linus Torvalds 5 */ 6 7 #define __LIBRARY__ //在unistd.h中,使用了#ifndef __LIBRARY__ 8 #include <unistd.h> //包含units

Linux 0.12和Linux 0.11内核学习——Google邮件列表

亲,你在学习Linux 0.12或0.11内核吗?快来加入我们吧,就缺你了!!! 为什么选用邮件列表呢?因为赵炯博士那个论坛交流不是很方便,经常发了贴没人回,人气相比十年前论坛刚成立时弱了不少.很多人,很多元老级别的人物,消失了...再也没有出现过. 而QQ群很繁杂,比如你肯定会因为一些兴趣爱好加入一些QQ群,但是也就刚加进去或者自己有什么要问的时候说几句,之后就屏蔽了,因为每天都有人在聊天,什么内容都有,想退群却又怕以后有用,不退吧又很烦,只能屏蔽了潜水. 而邮件列表,你可以订阅主题,实时追踪

Linux 0.11总结

1.内存分布示意图 再附一张,描述符表. 主要说一下全局描述符中的内容: 每一项都是8个字节. 第一项为全0,没有被使用. 第二项为存储段描述符,DT=1,DPL=00,代码段描述符,基地址是0,段界限是16MB. 第三项为存储段描述符,DT=1,DPL=00,数据段描述符,基地址是0,段界限是16MB. 第四项为全0,没有被使用. 第五项为系统段描述符,DT=0,DPL=00,进程0的任务状态段,基地址指向进程0的TSS的地址,段界限是进程0的TSS的长度. 第六项为系统段描述符,DT=0,D

分析Linux 0.11中的kernel部分的makefile文件

## 在UltraEdit下注释# # ## if you want the ram-disk device, define this to be the# size in blocks.#RAMDISK = #-DRAMDISK=512 ##8086汇编编译器和连接器. -0生成8086目标程序;-a生成与gas和gld部分兼容的代码???zzz#AS86 =as86 -0 -a LD86 =ld86 -0 ##GNU汇编编译器和连接器#AS =gas   LD =gld ##GNU连接器gl