实验步骤

1.下载项目

从github上 的https://github.com/kiukotsu/ucore下载 ucore lab实验:

git clone https://github.com/kiukotsu/ucore.git

旧版:https://github.com/kiukotsu/ucore

新版:https://github.com/chyyuu/os_kernel_lab

这里笔者使用旧版,与课程视频对应

2.在Ubuntu安装eclipse-CDT环境
下载准备

1安装jdk,笔者安装的是jdk-8u121-linux-x64

2安装eclipse,下载地址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliossr1/

安装JDK

1 新建文件需要获取root权限

sudo root

2 在/opt下新建文件夹

sudo mkdir /opt/jvm

3 将JDK压缩包复制到jvm文件夹下

mv jdk-8u121-linux-x64.tar.gz /opt/jvm

4 解压JDK到/opt/jvm目录下

cd /opt/jvm #首先得先进入到/opt/jvm目录下,通过指令:
tar zxvf jdk-8u121-linux-x64.tar.gz -C /opt #解压文件

5 配置JDK的环境变量

cd /etc/profile.d #进入目录
sudo vi /etc/profile #打开指令

打开后,在文件末尾加入以下语句,每条语句之间要空一行,输入i插入

export JAVA_HOME=/opt/jvm/jdk1.8.0_121

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

输入这个内容后需要先按ESC,再按“:”,最后输入wq回车,就能够退出保存

查看JDK是否安装成功

source /etc/profile #先输入
java -version #后输入

安装成功后会显示jdk版本,例如我的是:

安装eclipse

1将eclipse压缩包解压到/opt文件夹下

sudo tar zxvf eclipse-inst-linux64.tar.gz -C /opt/

2创建eclipse桌面快捷图标

 cd /usr/share/applications #首先输入指令
sudo vim eclipse.desktop #然后输入指令

最后将下面的代码复制到文件中

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse
Exec=/opt/eclipse/eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

其中“Exec=”后面为eclipse安装目录下的eclipse程序的位置路径,“Icon=”后面为eclipse安装目录下的图标图片的路径。读者要按照自己的路径。

3将eclipse变为可执行文件

指令为:sudo chmod u+x eclipse.desktop

4 在/usr/share/applications目录下将Eclipse图标复制到桌面

5点击图标下载相关的eclipse版本

6笔者点击后,这里出现了如下错误(没有的可以忽略这一条)

No Java virtual machine was found after searching the following locations

翻译过来就是:在以下的地址找不到java虚拟机

解决方法:把jdk的jre文件夹copy到eclipse的目录下

最后重新点击,成功启动!

3.运行ucore项目
1 将代码导入

2 开始配置qemu

/usr/bin/make
/home/myliuxb/ucore/labcodes_answer/lab1_result
gdb
3 配置debug工具

这里使用了Zylin,安装步骤在下面

target remote:1234
file /home/myliuxb/ucore/labcodes_answer/lab1_result/obj/bootblock.o
break bootmain
4 安装zylin

zylin - http://opensource.zylin.com/zylincdt

5 编译项目

项目文件名右键:

6 运行

运行成功:

7 gcc版本太高的错误:

可能会出现文件大于600的错误(如果没有错误请忽略这条),原因是gcc版本太高,用gcc-4.7的就可以了。不用卸载原来的,只需要更换优先级。

先看看我们系统用的gcc和g++是什么版本:gcc -v

可能会出现安装失败(E: 软件包gcc还没有可供安装的候选者):

1.使用如下命令修改源

sudo gedit /etc/apt/sources.list

2.在打开的文件中添加如下源(在最后面加上这两行即可)

deb http://dk.archive.ubuntu.com/ubuntu/ xenial main

deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

3.使用如下命令更新源

sudo apt update

4.使用命令安装g++4.9

sudo apt install g++-4.9

5.GCC 优先级更换

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 1

4.安装understand失败,感觉有点麻烦

版本不对,这个也还没解决

lab_0 清华大学ucore实验环境配置详细步骤!(小白入)的更多相关文章

  1. Python环境配置详细步骤以及第一个程序

    打开python官网:https://www.python.org/ 在官网找与自己电脑系统匹配的版本路径  这里以python3.7.2版本为例: 下载完成后,使用管理员身份进行安装:  打开命令提 ...

  2. SUSE Storage6 环境搭建详细步骤 - Win10 + VMware WorkStation

    学习 SUSE Storage 系列文章 (1)SUSE Storage6 实验环境搭建详细步骤 - Win10 + VMware WorkStation (2)SUSE Linux Enterpri ...

  3. OPGL+GLFW+GLEW配置详细步骤

    转载自:https://blog.csdn.net/weixin_40921421/article/details/80211813 本文设计的工具包: 链接:https://pan.baidu.co ...

  4. 顶 最新简捷实用的JSP动态网站环境搭建详细步骤

    阿里西西小编给您推荐这个最新简捷实用的JSP动态网站环境搭建详细步骤讲解,这里还有关于JSP 动态网站 环境 搭建 的教程,希望您能够喜欢并学到东西提升自己的知识与技能,下面是内容详细阅读: 最新简捷 ...

  5. VSCode Java 开发环境配置 详细教程

    VSCode Java 开发环境配置 详细教程 配置java 下载 用于现在大多数使用者用的是java 8,小白的我先安装java 8好了,^ w ^. 下载地址:Java 8 | Java SE 打 ...

  6. VSCode PHP 开发环境配置 详细教程

    VSCode PHP 开发环境配置 详细教程 这篇文章主要介绍了VScode+PHPstudy配置PHP开发环境的步骤,整理了官方以及优秀第三方的内容,对于学习和工作有一定借鉴意义. 配置过程 第一步 ...

  7. OVS + dpdk 安装与实验环境配置

    ***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装       0:安装必要的工具            make            gcc           ...

  8. OPGL+VS2017+GLFW+GLEW配置详细步骤

    OPGL+VS2017+GLFW+GLEW配置详细步骤: https://blog.csdn.net/weixin_40921421/article/details/80211813 原博客地址:ht ...

  9. PyCharm Django Python 开发环境配置 详细教程

    PyCharm Django Python 开发环境配置 详细教程 1. Python 下载及安装 (1)根据需要的版本去 Python 官网(https://www.python.org/downl ...

随机推荐

  1. 什么是springboot?为什么要用springboot?

    一.什么是springboot? Springboot是spring发展到一定程度的产物,但并不是spring的替代品,springboot是为了让程序员更好的使用spring.Spring随着发展逐 ...

  2. Java并发机制(2)--synchronized与Lock

    本内容整理自:博客园-海 子-java并发编程系列-http://www.cnblogs.com/dolphin0520/category/602384.html 1.基础: 1.什么时候出现线程安全 ...

  3. Iterator 和 ListIterator 有什么区别?

    1.ListIterator 可以在遍历的时候,调用add()添加元素 2.ListIterator提供了更多的一些方法,如previous().hasPrevious() 等

  4. 学习openstack(七)

    相关资料: https://www.cnblogs.com/shhnwangjian/category/942049.html https://www.cnblogs.com/goodcook/cat ...

  5. 全方位讲解 Nebula Graph 索引原理和使用

    本文首发于 Nebula Graph Community 公众号 index not found?找不到索引?为什么我要创建 Nebula Graph 索引?什么时候要用到 Nebula Graph ...

  6. eclipse开发工具之“指定Maven仓库和setting.xml文件位置”

    1.先点击window,然后选择Preferences按钮进入设置 2.找到Maven,选择UserSettings 点击Browse控件,添加setting.xml 点击Reindex控件,添加依赖 ...

  7. (stm32f103学习总结)—USART串口通信

    一. USART简介 USART即通用同步异步收发器,它能够灵活地与外部设备进行全双工 数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求. UART即通用异步收发器,它是在USART基 ...

  8. Android 动态控制OptionMenu的显示与隐藏

    在有些场景下,可能需要动态的显示和隐藏optionmenu,可以这样实现:如果在activity中默认实现了方法: onCreateOptionsMenu(Menu menu) 那么该OptionMe ...

  9. JS判断数组中的对象的每一个值不能为空

    方法一:使用every()函数,此函数不怎么常用,想要了解更多请自查 //表格 evaluateData为表格的数据 <el-table id="out-table3" :d ...

  10. python"温度转换"实例编写

    介绍 实现华氏度和摄氏度之间的转换. 代码: #TempCovert.py TempStr = input("请输入带有符号的温度值") if TempStr[-1] in [&q ...