作为一名计算机编程学习者,学习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启动环境,从而学习最基础的操作系统原理。
相关问题拓展阅读:
- virtualbox安装Ubuntu编译Linux-0.11内核时执行$ make all 时不能继续运行求解
- Linux(SUSE 11.4)系统,在终端怎么编译运行调试cpp文件.
virtualbox安装Ubuntu编译Linux-0.11内核时执行$ make all 时不能继续运行求解
没玩这么深过
这是因为斗并你没有键数安装as。可以去下载binutils-2.20.tar.gz,
安装 下载地址
tar xvfz binutils-2.20.tar.gz
./configure
make
make install
我建议你去
下载linux-0.gcc4.tar.gz 这稿销首个编译包。支持最新的gcc编译的。
天啊……一个用着虚拟机跑ubunut的人竟手指然在编译linux 0.11……那码答东西不是毕模配随便一套东西就能编译的。
Linux(SUSE 11.4)系统,在终端怎么编译运行调试cpp文件.
贴一下你的ppf.cpp内容
试一下
#include
int main()
{
printf(“指衫hello world..\唯配腔n”);
return 0;
}
保存为hello.cpp
g++ hello.cpp
然后运行./a.out 查看下
应该是你写的文件卖卜的问题,要么没有输出,要么等待输入,所以导致光标一直闪
linux 0.11编译运行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 0.11编译运行,学习Linux,从0.11编译运行开始,virtualbox安装Ubuntu编译Linux-0.11内核时执行$ make all 时不能继续运行求解,Linux(SUSE 11.4)系统,在终端怎么编译运行调试cpp文件.的信息别忘了在本站进行查找喔。