Linux 0.11 实验环境搭建_车子 chezi的博客-程序员ITS301_linux-0.11

技术标签: Linux-0.11  linux-0-11  

如果想学习Linux 0.11,实验环境是必不可少的。最好是能编译,能运行,能调试。

如今大家都是用64位的Linux操作系统,而且是高版本的GCC(4.0以上),所以环境搭建是个难题。要么就是编译后满屏报错,要么就是运行时出问题,总之各种麻烦。

还好,有热心的朋友提供了可用的环境,在此深表谢意。

我的环境是:Win7(64位)+Vmware+Ubuntu 16.04(64位)
如果不用虚拟机,直接装个Linux,那自然是最好的。

1. 克隆仓库

如果没有git,那么先安装git

sudo apt-get install git
git clone https://github.com/Wangzhike/HIT-Linux-0.11.git

克隆完成后,得到文件夹HIT-Linux-0.11

不想克隆的,可用去https://github.com/Wangzhike/HIT-Linux-0.11下载。

2. 安装实验环境

进入文件夹

cd HIT-Linux-0.11/prepEnv/hit-oslab-qiuyu/

运行脚本

./setup.sh

本脚本会将实验环境安装在当前登录用户的家目录下,文件名为oslab,即我们的实验目录是~/oslab

注意,请不要用超级用户权限执行此命令,当有需要时该脚本会请求超级用户权限。

这个脚本会下载并安装许多软件包,比如

 gcc-3.4
 bin86
 libc6-dev-i386
 build-essential
 libsm6:i386
 libx11-6:i386
 libxpm4:i386

另外会创建目录,解压 linux-0.11 的源码包、根文件系统,解压 bochs等。
安装完成后,进入~/oslab,截图如下:

这里写图片描述

3. 编译Linux 0.11

cd ~/oslab/linux-0.11
make

此时会生成镜像文件Image

4. 运行

cd ~/oslab
./run 

这里的run也是一个脚本,其最后一行的命令是启动Bochs

$OSLAB_PATH/bochs/bochs-gdb -q -f $OSLAB_PATH/bochs/bochsrc.bxrc

这里写图片描述

5. 调试

汇编语言级别

./dbg-asm

通过Bochs进行汇编语言级别调试。

C语言级别

先运行

./dbg-c

再开一个终端,运行

./rungdb 

则可以通过gdb进行C语言级别调试。

注意

请不要把Linux-0.11的源码包解压到Windows下面,因为在源码目录linux-0.11\kernel\chr_drv\下有两个文件,分别是keyboard.Skeyboard.s,它们的后缀一个大写,一个小写。在Linux上,文件名是区分大小写的;但是在Windows上,文件名不区分大小写,所以解压的时候会提示重复。

【特别感谢】
https://github.com/Wangzhike/HIT-Linux-0.11

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013490896/article/details/78827886

智能推荐

封装dialog_JWangZzz的博客-程序员ITS301_封装dialog

public class AlertDialog extends Dialog { AlertController mAlert; public AlertDialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); mAlert = new AlertController(this, getWindow()); } pu...

Linux CFS调度算法_CWill_的博客-程序员ITS301

CFS(Completely Fair Scheduling,完全公平调度算法) 的思想:进程调度的效果应如同系统具备一个理想中的完美多任务处理器,在这个系统中,每个进程将能获得1/n的处理器时间——n指进程的数量。具体实现时,CFS的做法是允许每个进程运行一段时间、循环轮转、选择运行最少的进程作为下一个运行进程,而不采用分配每个进程时间片的做法,CFS在所有可运行进程总数基础上计算出一个进程应该

RK3399 GPT分区__就这样_的博客-程序员ITS301_rk3399 分区

RK3399 GPT分区前言一、RK3399烧写分区二、GPT分区1. MBR分区2. GPT分区总结参考资料前言之前学习s3c2440时,分区信息是保存在uboot的环境变量中。通过uboot的内核命令行给MTD层传递MTD分区信息, 内核读取到的分区信息始终和u-boot中的保持一致。如: s3c2440分区信息/* uboot */$printenvbootargs=console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=

MP从入门到精通_cgblpx皮皮霞的博客-程序员ITS301_学mp

MP概述MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生.特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lam

wamp开启虚拟主机VHOST后 localhost无法访问,出现Forbidden 403解决办法_zz_lkw的博客-程序员ITS301_localhost vhost

今天在集成环境下配虚拟主机,没想到虚拟主机开启后,localhost竟然无法访问了,解决办法是这样的:实例一,Apache 配置localhost虚拟主机步骤1,用记事本打开apache目录下httpd文件(如:D:\wamp\bin\apache\apache2.2.8\conf),找到如下模块     # Virtual hosts    #Includeconf/ex...

自学Java一定要精通的企业级框架汇总_骨灰级收藏家的博客-程序员ITS301_精通框架

第一阶段:企业级开发—基础框架学习掌握本阶段内容,可以快速、规范的开发中小型系统,例如: 外卖系统、租房系统技术点:项目构建Maven从基础到高级,深入了解Maven项目的构建及管理方式。Maven项目管理从基础到高级应用,Java项目开发必会管理工具版本控制Git从最基本的环境配置与安装到Git的基本操作,轻松应对Git在使用时遇到的常见问题。Java进阶Git全套教程,完整的项目管理工具教程_​SSM(Spring框架+SpringMVC+持久层框架Mybatis)讲解通俗易懂,覆

随便推点

【cocos2d】从 cocos2d-x 到 quick_xingxinmanong的博客-程序员ITS301

quick 是对 cocos2d-x lua 版本的一次再次封装,cocos2d-x 中的东西到了 quick 上面基本都能用。这篇文章主要讲从 cocos2d-x 转到 quick 需要注意的一些东西。

一文读懂GaussDB(openGauss) 的六大关键技术特性_华为云开发者联盟的博客-程序员ITS301_opengauss和gaussdb

摘要:更为深入地介绍了GaussDB(openGauss)的关键特性、成功案例。GaussDB(openGauss)是深度融合华为在数据库领域多年的经验,结合企业级场景需求,推出的新一代企业级分布式数据库,支持集中式和分布式两种部署形态。它面向金融互联网交易和政企OA/办公场景,具有安全可靠、超高性能、简单易用等优势。华为云数据库产品部高级产品经理沈志鹏在1024程序员狂欢节的直播间,更为深入地介绍了GaussDB(openGauss)的关键特性、成功案例。分布式or集中式,总有一个适合你

OpenLayers中文API_伏建民的博客-程序员ITS301_openlayers中文api

http://www.openlayers.cn/cnapi/files/OpenLayers-js.html

snort -c /etc/snort/snort.conf ERROR: Fatal Error, Quitting.. (已解决)_Liteboy的博客-程序员ITS301

[[email protected] snort]# snort -c /etc/snort/snort.conf Running in IDS mode        --== Initializing Snort ==--Initializing Output Plugins!Initializing Preprocessors!Initializing Plug-ins!Parsing Rules

STM32利用SYSTICK实现的延时函数突然不准了_Ztt300的博客-程序员ITS301_systick定时不准

今天,些一个模组的开机时序时发现开不了机,各种查配置,最后定位到问题出现在延时函数发现这个 延时2.5结果只延时了不到1S,而我模组的开机时序中这里最少需要2S所以一直无法开机,那就差延时函数吧怀疑系统配置有问题,但是我串口的波特率都是OK的,疑惑........手写了个2.5S左右的I++,模组成功开机,说明问题一定出在延时函数了,各种检查延时函数都没发现问题,烦死个人!我就想找找其中的规律,我测试了一个delay_us(50000);是准确的50ms.......我懵逼了,因为del

显卡升级测试软件,Shader Model 5.0显卡测试工具 显卡升级测试工具_猴子周六的博客-程序员ITS301

给大家推荐一款免安装的显卡测试工具--Shader Model,通过该工具用户可以检测自己的电脑是否支持SM5.0、SM3.0,如果显卡性能太低,在玩大型游戏的时候会出现画面卡死,不动、花色、杂音等情况,Shader Model显卡测试工具无需安装,打开即可使用,有兴趣的小伙伴们千万不要错过哦~功能介绍:1、shader model支持检测电脑显卡性能2、这款显卡升级测试工具能够显示支持sha...

推荐文章

热门文章

相关标签