关于Dune项目的搭建过程

Dune项目地址:https://github.com/project-dune/dune

我的初步实验环境是:

此处是centos系列的,

这里主要注意的是要内核版本是3.x系列的可能不较容易出问题。

经过多方测试,我们在使用VMWare进行部署ubunut14时,内核版本自带的是4.x系列,也可以进行编译通过。但是此处需要注意一个事情,在使用VMWare的时候,最好使用VMWare14版本以上的,我之前用VMWare10.版本,虽然成功部署dune项目,但是运行起来后一直出现段错误,后来改成VMWare14版本后,错误消失。

 

如果在centos系统没有安装Linux内核版本的话,可以进行安装,yum install kernels headers。或者使用

wget ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/7.0/x86_64/updates/security/kernel-devel-3.10.0-693.el7.x86_64.rpm,下载rpm包,然后使用 rpm -ivh xxx.rpm 命令进行安装也可以。

 

使用 cd /usr/src/kernels可以查看linux系统内核版本是否安装。

 

在服务器上面使用git clone https://github.com/project-dune/dune.git 命令将项目拷贝下来,cd dune进入到项目

首先使用 ./dune_req.sh查看服务器的环境是否符合Dune项目的要求

 

如果是在centos系列下,当你在root用户状态下,运行make命令进行编译,此时可能会发现程序如下报错

关于Dune项目的搭建过程_第1张图片

没关系,这个时候我们需要做一个工作,将dune/kerl/目录下的compat.h文件中的 pgprot2cachemode函数给注释掉,如下图

此时,保存退出,在dune目录下运行make命令编译时候就不会报错了。

当然,如果是在ubuntu14版本的系统下,该错误可能不会出现,则可以进行忽略上面操作。

 

 

当我们按照dune项目中的insmod kern/dune.ko发现还是报错说已经存在此文件,说明在编译的时候自动在/dev目录下加上了dune文件,则此命令可以忽略。若没有报错则表明之前/dev目录下没有dune文件,此时正确无误。

 

接着,我们就要测试test文件里面的案例文件了

当我们在make的时候,会报错

关于Dune项目的搭建过程_第2张图片

这里提示缺失了pthread,在这里之前也卡了很久,后来找到答案,安装glibc静态库即可,

此处我们暂且只需要运行 yum install glibc-static 进行安装glibc就能解决该问题,安装成功后,继续在test文件夹下面运行make命令,此时就会编译通过。

根据git项目的指示,可能我们还需要在按照dune项目要的要求,在/etc/default/grub文件中的GRUB_CMDLINE_LINUX_DEFAULT选项中增加 nokaslr参数,添加成功后是否启动系统根据不同情况来看。

关于Dune项目的搭建过程_第3张图片

然后退出到dune文件夹下面,运行test/hello就能看到输出结果

关于Dune项目的搭建过程_第4张图片

运行test/test也能看到dune项目的测试结果

关于Dune项目的搭建过程_第5张图片

 

注:如果需要在linux桌面下使用vscode对项目进行调试的时候,需要以root方式打开vscode才能正确运行项目,此时需要使用命令:

sudo code --user-data-dir="~/.vscode-root"  打开IDE才行。

 

--------------------------------------------------------------------------------------------------------------------------------------

如果您也在搭建该项目或曾经成功搭建过,或者在对dune项目内部过程有所研究,或者对此项目感兴趣

欢迎邮件联系,可发邮件至[email protected],发邮件请备注Dune

 

你可能感兴趣的:(linux,虚拟存储化)