Fastsocket学习笔记之安装篇

Fastsocket学习笔记之安装篇

前言

运行环境为Centos 6.5系统,默认内核为2.6.32-431.el6.x86_64,下面所有编译安装操作是以root用户权限进行操作。

编译安装fastsocket内核

第一步需要下载代码,当然这是废话了,下载到/opt目录下:

 git clone https://github.com/fastos/fastsocket.git

编译安装

下载之后,需要进入其目录中:

 cd fastsocket/kernel

因为是涉及到内核嘛,编译之前需要做一些参数选项配置,使用make config会累死人的,好几千个选项参数需要你一一配置,大部分时间,默认配置就挺好的:

 make defconfig

然后嘛,编译内核的节奏:

 make

内核编译相当耗费时间,至少20分钟时间。之后紧接着是编译所需的内核模块,fastsocket模块:

 make modules_install

编译完成之后,最后一条输出,会看到:

DEPMOD 2.6.32-431.17.1.el6.FASTSOCKET

fastsocket内核模块编译好之后,需要安装内核:

 make install

上面命令其实执行shell脚本进行安装:

sh /opt/fastsocket/kernel/arch/x86/boot/install.sh 2.6.32-431.17.1.el6.FASTSOCKET arch/x86/boot/bzImage \ System.map "/boot"

基本上,fastsocket内核模块已经构建安装完毕了,但需要告知Linux系统在下次启动的时候切换到新编译的、包含有fastsocket模块的内核。

配置启动时需要切换的内核

这部分需要在/etc/grup.conf中配置,现在看一下其文件内容:

default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.17.1.el6.FASTSOCKET)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.17.1.el6.FASTSOCKET ro root=/dev/mapper/vg_centos6-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_centos6/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_centos6/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-431.17.1.el6.FASTSOCKET.img
title CentOS (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_centos6-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_centos6/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_centos6/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-431.el6.x86_64.img

defautl=1,表示目前系统选择的以原先内核作作为启动项,原先位于第二个root (hd0,0)后面,需要切换到新的内核下面,需要修改default=0,保存后,reboot重启系统,使之生效。

检测生效

系统重启后,需要加载fastsocket模块到系统运行中去,下面以默认选项参数方式加载:

modprobe fastsocket

加载之后,列出当前系统所加载模块列表,检查是否成功

lsmod | grep fastsocket

若能看到类似输出信息,表示OK:

fastsocket 39766 0

开始构建libfastsocket.so链接库文件

上面内核模块安装好之后,可以构建fastsocket的动态链接库文件了:

cd /opt/fastsocket/library/
make

可能会收到一些警告信息,无碍:

gcc -g -shared -ldl -fPIC libsocket.c -o libfsocket.so -Wall
libsocket.c: 在函数‘fastsocket_init’中:
libsocket.c:59: 警告:隐式声明函数‘open’
libsocket.c: 在函数‘fastsocket_expand_fdset’中:
libsocket.c:109: 警告:隐式声明函数‘ioctl’
libsocket.c: 在函数‘accept’中:
libsocket.c:186: 警告:对指针赋值时目标与指针符号不一致
libsocket.c: 在函数‘accept4’中:
libsocket.c:214: 警告:对指针赋值时目标与指针符号不一致

最后,可以看到gcc编译之后生成的libfsocket.so库文件,说明编译成功。

小结

OK,编译安装到此结束,后面就是如何使用fastsocket的示范程序进行测试了。

你可能感兴趣的:(Fastsocket学习笔记之安装篇)