DragonOS/docs/introduction/build_system.md
login 2813126e31
新增rust ffi (#77)
* 引入cargo

* 取消对Cargo.lock的跟踪

* 解决vscode报错问题

* new: rust的代码能够调用c语言的printk_color

* 1、将原本run.sh的工作拆解,变为几个不同的make命令
2、在docker镜像中编译rust

* 更改workflow

* update workflow

* new: 解决workflow无法通过编译的问题
2022-11-11 15:35:37 +08:00

148 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 构建DragonOS
## 从Docker构建推荐
  为减轻配置环境的负担DragonOS发布了一个Docker编译环境便于开发者运行DragonOS。我们强烈建议您采用这种方式来运行DragonOS。
  本节假设以下操作均在Linux下进行。
### 安装Docker
  您可以在docker官网下载安装docker-ce.
> 详细信息请转到: https://docs.docker.com/engine/install/
### 获取DragonOS编译镜像
  当您成功安装了docker之后您可以通过以下命令下载DragonOS的编译镜像
```shell
docker pull dragonos/dragonos-dev:v1.1.0-beta3
```
### 安装qemu虚拟机
  在本节中我们建议您采用命令行安装qemu
```shell
sudo apt install -y qemu qemu-system qemu-kvm
```
  请留意若您的Linux系统是在虚拟机中运行的还请您在您的VMware/Virtual Box虚拟机的处理器设置选项卡中开启Intel VT-x或AMD-V选项否则DragonOS将无法运行。
*在某些Linux发行版的软件仓库中构建的Qemu可能存在不识别命令参数的问题如果遇到这种问题请卸载Qemu并采用编译安装的方式重新安装Qemu*
在该地址下载Qemu源代码 https://download.qemu.org/
解压后进入源代码目录,然后执行下列命令:
```shell
./configure --enable-kvm
make -j 8
sudo make install
```
### 下载DragonOS的源代码
  假设您的计算机上已经安装了git您可以通过以下命令获得DragonOS的最新的源代码
```shell
git clone https://github.com/fslongjin/DragonOS
cd DragonOS
```
### 创建磁盘镜像
  首先您需要使用tools文件夹下的create_hdd_image.sh创建一块虚拟磁盘镜像。您需要在tools文件夹下运行此命令。
```shell
bash create_hdd_image.sh
```
### 运行DragonOS
  如果不出意外的话这将是运行DragonOS的最后一步。您只需要在DragonOS的根目录下方执行以下命令即可运行DragonOS。
```shell
make run-docker
```
  稍等片刻DragonOS将会被运行。
  在qemu虚拟机被启动后我们需要在控制台输入字母`c`,然后回车。这样,虚拟机就会开始执行。
:::{note}
首次编译时由于需要下载Rust相关的索引几百MB大小因此需要一定的时间请耐心等候
:::
**关于编译命令的用法,请见:{ref}`编译命令讲解 <_build_system_command>`**
## 手动搭建开发环境
&emsp;&emsp;若您追求快速的编译速度,以及完整的开发调试支持,且愿意花费半个小时到两个小时的时间来配置开发环境的话,该小节的内容能帮助到您。
### 软件依赖
&emsp;&emsp;您需要编译安装以下软件依赖。他们的源代码可以在对应项目的官方网站上获得。
- grub 2.06 (不必使用sudo权限进行install)
- qemu 6.2.0 (启用所有选项)
&emsp;&emsp;需要注意的是编译安装qemu将会是一件费时费力的工作它可能需要花费你40分钟以上的时间。
&emsp;&emsp;对于其余的软件依赖,我们提供了一键配置脚本,可以一键安装,只需要在控制台运行以下命令:
```shell
cd tools
bash bootstrap.sh
```
:::{note}
一键配置脚本目前只支持以下系统:
- Ubuntu/Debian/Deepin/UOS 等基于Debian的衍生版本
欢迎您为其他的系统完善构建脚本!
:::
### 创建磁盘镜像
&emsp;&emsp;首先,您需要使用`sudo`权限运行`tools/create_hdd_image.sh`为DragonOS创建一块磁盘镜像文件。该脚本会自动完成创建磁盘镜像的工作并将其移动到`bin/`目录下。
### 编译DragonOS
1. 安装编译及运行环境
2. 进入DragonOS文件夹
3. 输入命令:`make -j 16`即可编译
4. 输入`make build`即可编译并写入磁盘镜像
### 运行DragonOS
&emsp;&emsp;至此准备工作已经完成您可以在DragonOS项目的根目录下输入
```shell
make run
```
&emsp;&emsp;然后DragonOS将会被启动您可以通过VNC Viewer连接至虚拟机。在qemu虚拟机被启动后我们需要在控制台输入字母`c`,然后回车。这样,虚拟机就会开始执行。
:::{note}
首次编译时由于需要下载Rust相关的索引几百MB大小因此需要一定的时间请耐心等候
:::
**关于编译命令的用法,请见:{ref}`编译命令讲解 <_build_system_command>`**
(_build_system_command)=
## 编译命令讲解
- 本地编译,不运行: `make all -j 您的CPU核心数`
- 本地编译,并写入磁盘镜像,不运行: `make build`
- 本地编译写入磁盘镜像并在QEMU中运行: `make run`
- Docker编译并写入磁盘镜像,: `make docker`
- Docker编译写入磁盘镜像并在QEMU中运行: `make run-docker`
- 不编译,直接从已有的磁盘镜像启动: `make qemu`