b2c信息网

您现在的位置是:首页 > 热点事件 > 正文

热点事件

包含flashsim源码解析的词条

hacker2022-06-12 22:46:19热点事件38
本文目录一览:1、如何在flashsim上运行自己的ftl程序

本文目录一览:

如何在flashsim上运行自己的ftl程序

首先进行准备工作:(基于disksim的FlashSim运行环境为linux,要求低版本的gcc编译器,且需要bison和flex脚本的支持。)

1、安装ubuntu操作系统

版本选择ubuntu10.04和ubuntu10.10均可(已试验成功)。

注意:一定不要在线安装,否则ubuntu安装的同时会在线更新,过程将会长达数小时!

安装过程:双击ubuntu-10.04-desktop-i386.iso(或ubuntu-10.10-desktop-i386.iso)压缩包,再双击图1中最下方的wubi.exe,会出现解压界面。

解压完后进入ubuntu安装引导界面。

可选择windows下的任意一个驱动盘,但要保证空闲容量10G以上(越大越好,这样系统运行比较快,同时避免后期扩展应用导致容量不足)。右侧语言选择Chinese,用户名和密码自己设置。以上步骤完成后点击确定,即开始安装ubuntu系统,离线情况下此过程5分钟左右可完成。

Windows下安装完成后重启电脑,选择进入ubuntu系统,将自动完成后续安装。

至此,ubuntu系统成功完成安装,你可以进入图形界面或打开终端自由操作了~

2、安装GCC编译器

ubuntu 10.04中默认安装的gcc版本为gcc-4.*,而disksim需要安装低版本的gcc(ubuntu下gcc-2.95编译disksim确认可以通过,笔者在RHEL5下安装gcc-3.3.6,貌似也可准确编译disksim)。因为从源代码安装比较麻烦,所以选择下载.deb包进行安装。

将下列五个文件依次下载:

cpp-2.95_2.95.4-24_i386.deb;

gcc-2.95_2.95.4-24_i386.deb;

g++-2.95_2.95.4-24_i386.deb;

libstdc++2.10-glibc2.2_2.95.4-24_i386.deb ;

libstdc++2.10-dev_2.95.4-24_i386.deb

第4个包libstdc++2.10-glibc2.2_2.95.4-24_i386.deb ubuntu官网上找不到,需要自己去其他地方搜索下载。

下载完按如上顺序依次强制安装,终端命令为:

sudo dpkg --force-depends -i xxx.deb

(注:若安装顺序不准确,终端会给出提示,调整顺序重新安装就ok~)

然后更改软连接,执行命令:

sudo ln -fs /usr/bin/gcc-2.95 /usr/bin/gcc

查看gcc版本:gcc –v ,可以看到版本为gcc-2.95.4 。

这样,当需要编译软件时,默认使用的gcc版本就是gcc-2.95.4 。

3、安装bison和flax

可直接在线安装,终端命令分别为:

sudo apt-get install bison

sudo apt-get install flex

装完使用bison -v和flex –v可以看到版本信息为bison-2.4.3和flex-2.5.35(或flex-2.5.4)

接下来就正式进入flashsim的安装了。这个过程要注意,每次重新编译安装所用到的disksim3.0和flashsim的源码包都要选择最原始的压缩包,然后解压操作。

4、编译disksim-3.0

解压disksim-3.0.tar.gz,假设解压到当前用户主目录下,解压后文件名为disksim-3.0

whm@ubuntu:~$ cd disksim-3.0/ #进入disksim-3.0目录

whm@ubuntu:~/disksim-3.0$ make #编译整个工程

如没有提示编译错误,则可以进入/disksim-3.0/valid目录下,运行runvalid文件。若能准确运行,说明disksim-3.0的编译是正确的。

5、在disksim-3.0基础上编译flashsim

(1)将flashsim-psu中的src.release.tar.gz压缩包解压生成src.release文件夹,将其拷入disksim-3.0目录下,更名为src,替代disksim-3.0中已有的src目录

(2)将flashsim-psu中的flashsim-20100324.patch文件拷入/disksim-3.0/src目录下,然后命令行进入src目录,为其中的某些文件打补丁。(为什么打补丁?因为之前的某些代码编写不够规范,可能导致编译通不过,flashsim-20100324.patch文件就是为了修正那些不规范的写法。)命令如下:

whm@ubuntu:~/disksim-3.0/src$ patch -p1 -i flashsim-20100324.patch

运行时可能提示patch 命令找不到之类的,这是因为ubuntu系统默认没有安装patch,需要先安装一下。命令为:

sudo apt-get install patch

Patch安装成功后再执行如上命令,一般可patch通过。如出现类似如下错误:

patching file fast.c

Hunk #1 FAILED at 58.

Hunk #2 FAILED at 266.

Hunk #3 FAILED at 294.

……

6 out of 6 hunks FAILED -- saving rejects to file fast.c.rej

则表明从flashsim-psu中拷过来的src.release不是原始的版本。笔者刚开始因为不了解patch文件的真正含义,所以无意识中就犯了这个粗心的错误。因为之前阅读src.release中的代码时加了一些注释,导致行号和原来的不对应(行数有增加),而flashsim-20100324.patch文件的执行是严格按照行号来修订原始版本中的不规范代码,所以patch总是通不过。意识到问题症结所在后,使用重新解压得到的src.release,再执行patch操作,问题很快解决。

(3)patch通过之后,退回到disksim-3.0目录下,再次编译。

whm@ubuntu:~/disksim-3.0$ make

编译正确,至此flashsim的配置大功告成,可以运行其自带的一些FTL算法了~

发表评论

评论列表

  • 余安闻呓(2022-06-13 09:12:17)回复取消回复

    24.patch文件就是为了修正那些不规范的写法。)命令如下:whm@ubuntu:~/disksim-3.0/src$ patch -p1 -i flashsim-20100324.patch运行时可能提示patch 命令找不到之类的,这是因为ubun