快速入门

欢迎来到NXOS内核!NXOS是一个跨平台的简洁的高性能,高稳定性的操作系统内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。

本文档将带您从入门到劝退。

一、开发环境搭建

1. 编译器工具链

在获取NXOS的系统源码后,您需要下载编译NXOS的工具链(点我跳转),下载好后,进行环境变量的配置。

2. 虚拟机

我们采用的是世界上最流行的QEMU虚拟机,各种平台都有支持,刚好有我们需要的版本。

a. Windows环境

下载链接:https://qemu.weilnetz.de/w64/

选择最新版本下载即可。下载后,安装到一个路径,再把路径配置到Path系统环境变量中即可。

b. Linux环境

可以直接在终端中输入命令安装:

# Ubuntu/Kali Linux: 
sudo apt-get install qemu-system-i386
sudo apt-get install qemu-system-riscv64
# Red hat/Fedora/Centos: 
sudo yum install qemu-system-i386
sudo yum install qemu-system-riscv64

3. 其他工具

其他涉及到的工具:python mtools make git genisoimage mkfs grub2

a. Windows环境

(cmder) 推荐的一个不错的终端(非必须)下载后安装即可。

(python)下载后安装即可。

(git)下载后安装即可。

为了方便,我们将其他比较小的工具已经打包在一个工具包里面了,下载解压后,手动添加对应的工具到系统环境变量即可。

nxos-windows-tools服务器下载(速度较慢,请耐心等待)

下载后需要解压出来,然后将每一个目录配置到Path系统环境变量中(最好是配置到环境变量的最前面,避免和其它系统已经存在的工具冲突),解压后您将会有:

nxos-windows-tools/
nxos-windows-tools/genisoimage
nxos-windows-tools/grub-2.04
nxos-windows-tools/mkfs
nxos-windows-tools/mtools

b. Linux环境

可以直接在终端中输入命令安装:

# Ubuntu/Kali Linux: 
sudo apt-get install python mtools make git genisoimage mkfs grub2 truncate
# Red hat/Fedora/Centos: 
sudo yum install python mtools make git genisoimage mkfs grub2 truncate

二、编译和运行

进入到NXOS目录中,在目录中打开一个终端。

1. 快速体验

# 1. 设置环境变量
setup.bat # Windows环境
source setup.sh # linux环境

# 2. 配置环境并运行
make defconfig && make run
  • 输入 Ctrl+a x 退出 QEMU
  • 输入 Ctrl+d 退出 GDB

2. 步骤拆解

  • 设置临时环境变量,在目录中有脚本来设置,直接运行即可。windows使用batlinux使用sh
# Windows下设置i386环境并设置PLATFORM=i386
setup.bat
# Windows下设置riscv64环境PLATFORM=qemu_riscv64
setup.bat qemu_riscv64

# Linux下设置i386环境并设置PLATFORM=i386
source setup.sh
# Linux下设置riscv64环境PLATFORM=qemu_riscv64
source setup.sh qemu_riscv64
  • 加载平台的默认配置,会读取选中的平台的默认menuconfig配置到工作区中。
make defconfig
  • 使用菜单配置进行个性化剪裁。可以选择打开或者关闭某些功能,设置一些变量等。配置完成后需要按ESC键退出,退出后会生成新的配置头文件。
make menuconfig
  • 编译源码并运行,默认使用QEMU虚拟机模拟运行,按下小写的ctrl+x后再按下a则可以退出QEMU运行。
# 第一次编译一个新的平台的时候需要clean一下
make clean
# 编译源码并运行
make run
# 仅仅编译源码
make
  • 调试完成后,需要将配置信息和文件保存到对应平台中,使得配置永久生效。
make saveconfig

results matching ""

    No results matching ""