学习Linux,从0.11编译运行开始 (linux 0.11编译运行)

作为一名计算机编程学习者,学习Linux系统的知识是非常必要的。Linux系统自问世以来,以其开源性、可靠性、自由度高等优点,已经成为全球许多技术人员的首选操作系统。而学习一种操作系统,当然要从最基础的开始。本文将介绍如何学习Linux操作系统,从0.11编译运行开始。

一、什么是Linux 0.11?

Linux 0.11是Linus Torvalds于1991年发布的Linux内核的早期版本。当时的Linux还只含有一些最基本的功能,而且只支持386架构的PC机。

学习这个版本的Linux内核,并不是为了要去深入研究它的代码实现,而主要是为了使我们能够更加直观地理解一个操作系统的结构和运行机制。Linux 0.11相对来说比较简单、易懂,是非常适合操作系统的初学者入门的。

二、前置知识准备

1. 硬件环境:本教程需要一台可以运行Linux的PC机。多数现代PC机都能支持虚拟机模式,在不破坏原有系统的情况下建立虚拟机。

2. 软件环境:Ubuntu 12.04 32位系统、bochs模拟器、g++编译器、na汇编编译器。其中Ubuntu 12.04是本教程的推荐版本,而其它版本也可以使用,只需注意一下各种软件/工具的版本是否兼容即可。

3. 基本知识:为了更好地学习本篇教程,需要掌握一些已有的知识。如:

– C/C++程序设计基础

– 汇编程序设计基础

– Linux操作系统基础命令使用

三、准备工作

以下是具体的学习步骤:

1. 我们需要创建一个目录,用来存放linux 0.11的源代码,比如”~/linux-0.11″。

2. 接着,我们下载linux 0.11的源码包。源码包可从网络上下载,以文件名”linux-0.11.tar.gz”为例,下载完成后将其解压到刚才创建的目录中。

3. 在Ubuntu中,我们需要安装na汇编编译器,这可通过以下命令行来达到:

“`

sudo apt-get install na

“`

如果您的系统不是Ubuntu,那么可以在网络上搜索与您的系统相应的na安装方法。

4. 安ochs模拟器。同样的,可通过以下命令来进行安装(在Ubuntu下):

“`

sudo apt-get install bochs bochs-x

“`

以上的安装过程需要下载两个软件包,该过程中要求输入”y”或”yes”来确认安装。

5. 编辑一个可执行的Linux引导程序,并将其命名为”bootsect.s”,代码如下:

“`

section .text

org 0x7c00

jmp short start

nop

start:

mov ah,0x0e

mov al,’H’

int 0x10

mov al,’e’

int 0x10

mov al,’l’

int 0x10

mov al,’l’

int 0x10

mov al,’o’

int 0x10

mov al,’ ‘

int 0x10

mov al,’W’

int 0x10

mov al,’o’

int 0x10

mov al,’r’

int 0x10

mov al,’l’

int 0x10

mov al,’d’

int 0x10

jmp $

times 510 – ($-$$) db 0

dw 0xaa55

“`

该程序的功能是输出Hello World! 。

四、编译系统启动引导程序

1. 打开任一文本编辑器,输入以下内容,保存为”build.sh”文件:

“`

#!/bin/bash

as86 -o bootsect.o bootsect.s

bcc -ansi -c -o system.o system.c

ld86 -o system head.o bootsect.o system.o

dd if=/dev/zero of=floppy.img bs=1024 count=1440

dd if=boot/bootsect of=floppy.img conv=notrunc

dd if=system of=floppy.img seek=1 conv=notrunc

“`

该脚本的作用是编译Linux引导程序,然后将编译结果写入一个名为”floppy.img”的磁盘格式文件(这里用的是软盘格式)。注意,脚本名称应该是”build.sh”,而且它必须在源代码目录中执行。

2. 下一步是以管理员权限执行该脚本,以生成系统启动软盘:

“`

sudo ./build.sh

“`

请耐心等待执行过程,大致需要几分钟时间。我们需要的软盘镜像文件”floppy.img”将被生成并存储在当前目录下。

3. 再来创建bochs所需要的配置文件。创建一个文件名为”bochsrc”的配置文件,并输入以下内容:

“`

megs: 32

romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000

vgaromimage: file=/usr/share/vgabios/vgabios.bin

ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

ata0-master: type=disk, path=”./floppy.img”, mode=flat, cylinders=1, heads=1, spt=80

boot: floppy

log: bochs.log

mouse: enabled=0

display_library: x, options=”gui_debug”

debugger_log_filename: bochs.log

“`

该文件必须放入Linux源代码目录中,以便正确使用该文件。

五、运行Linux

在完成以上所有步骤之后,现在您可以运行Linux系统,启动软盘!

1. 在Linux源代码目录下,输入以下命令进入bochs模拟器:

“`

bochs -f bochsrc

“`

接下来我们可以看到模拟器启动并开始运行Linux内核。

2. 在bochs模拟器窗口中按下回车键后,您将看到一个命令行提示符。

此时,通过输入命令来交互并了解Linux 0.11操作系统。

六、

本教程介绍了如何从Linux 0.11编译运行开始学习Linux系统的基础知识。 Linux 0.11是一个非常早期的版本,但由于其简单特性,适合作为操作系统的初学者入门的入口。

本教程提供了在Ubuntu 12.04操作系统下,使用bochs虚拟机来运行Linux 0.11的步骤。读者可以根据操作系统及相关版本规格,对本文所述方法适当调整。本教程内容旨在指导读者建立一个Linux启动环境,从而学习最基础的操作系统原理。


数据运维技术 » 学习Linux,从0.11编译运行开始 (linux 0.11编译运行)