聶永的博客

          記錄工作/學(xué)習(xí)的點點滴滴。

          Fastsocket學(xué)習(xí)筆記之安裝篇

          前言

          運行環(huán)境為Centos 6.5系統(tǒng),默認內(nèi)核為2.6.32-431.el6.x86_64,下面所有編譯安裝操作是以root用戶權(quán)限進行操作。

          編譯安裝fastsocket內(nèi)核

          第一步需要下載代碼,當(dāng)然這是廢話了,下載到/opt目錄下:

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

          編譯安裝

          下載之后,需要進入其目錄中:

           cd fastsocket/kernel
          

          因為是涉及到內(nèi)核嘛,編譯之前需要做一些參數(shù)選項配置,使用make config會累死人的,好幾千個選項參數(shù)需要你一一配置,大部分時間,默認配置就挺好的:

           make defconfig
          

          然后嘛,編譯內(nèi)核的節(jié)奏:

           make
          

          內(nèi)核編譯相當(dāng)耗費時間,至少20分鐘時間。之后緊接著是編譯所需的內(nèi)核模塊,fastsocket模塊:

           make modules_install
          

          編譯完成之后,最后一條輸出,會看到:

          DEPMOD 2.6.32-431.17.1.el6.FASTSOCKET

          fastsocket內(nèi)核模塊編譯好之后,需要安裝內(nèi)核:

           make install
          

          上面命令其實執(zhí)行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內(nèi)核模塊已經(jīng)構(gòu)建安裝完畢了,但需要告知Linux系統(tǒng)在下次啟動的時候切換到新編譯的、包含有fastsocket模塊的內(nèi)核。

          配置啟動時需要切換的內(nèi)核

          這部分需要在/etc/grup.conf中配置,現(xiàn)在看一下其文件內(nèi)容:

          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,表示目前系統(tǒng)選擇的以原先內(nèi)核作作為啟動項,原先位于第二個root (hd0,0)后面,需要切換到新的內(nèi)核下面,需要修改default=0,保存后,reboot重啟系統(tǒng),使之生效。

          檢測生效

          系統(tǒng)重啟后,需要加載fastsocket模塊到系統(tǒng)運行中去,下面以默認選項參數(shù)方式加載:

          modprobe fastsocket
          

          加載之后,列出當(dāng)前系統(tǒng)所加載模塊列表,檢查是否成功

          lsmod | grep fastsocket
          

          若能看到類似輸出信息,表示OK:

          fastsocket 39766 0

          開始構(gòu)建libfastsocket.so鏈接庫文件

          上面內(nèi)核模塊安裝好之后,可以構(gòu)建fastsocket的動態(tài)鏈接庫文件了:

          cd /opt/fastsocket/library/
          make
          

          可能會收到一些警告信息,無礙:

          gcc -g -shared -ldl -fPIC libsocket.c -o libfsocket.so -Wall
          libsocket.c: 在函數(shù)‘fastsocket_init’中:
          libsocket.c:59: 警告:隱式聲明函數(shù)‘open’
          libsocket.c: 在函數(shù)‘fastsocket_expand_fdset’中:
          libsocket.c:109: 警告:隱式聲明函數(shù)‘ioctl’
          libsocket.c: 在函數(shù)‘accept’中:
          libsocket.c:186: 警告:對指針賦值時目標(biāo)與指針符號不一致
          libsocket.c: 在函數(shù)‘accept4’中:
          libsocket.c:214: 警告:對指針賦值時目標(biāo)與指針符號不一致
          

          最后,可以看到gcc編譯之后生成的libfsocket.so庫文件,說明編譯成功。

          小結(jié)

          OK,編譯安裝到此結(jié)束,后面就是如何使用fastsocket的示范程序進行測試了。

          posted on 2015-01-30 13:14 nieyong 閱讀(2195) 評論(2)  編輯  收藏 所屬分類: Socket

          評論

          # re: Fastsocket學(xué)習(xí)筆記之安裝篇 2015-01-30 22:27 京山游俠

          mark,也許有天用的上。  回復(fù)  更多評論   

          # re: Fastsocket學(xué)習(xí)筆記之安裝篇 2015-02-10 14:35 用牙膏洗臉能祛痘嗎

          不錯,學(xué)習(xí)了,總有用得上的時候  回復(fù)  更多評論   

          公告

          所有文章皆為原創(chuàng),若轉(zhuǎn)載請標(biāo)明出處,謝謝~

          新浪微博,歡迎關(guān)注:

          導(dǎo)航

          <2015年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統(tǒng)計

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個人收藏

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蓝山县| 五华县| 镇宁| 尚志市| 蓬安县| 方城县| 平远县| 华亭县| 西林县| 称多县| 河曲县| 邹城市| 安顺市| 渝中区| 金阳县| 和平县| 枣阳市| 蚌埠市| 天津市| 临夏县| 崇信县| 淄博市| 漠河县| 营山县| 苏尼特左旗| 通道| 三明市| 治多县| 清流县| 福泉市| 东乡| 武宁县| 苍溪县| 秀山| 灵寿县| 尤溪县| 青州市| 巨野县| 怀化市| 渑池县| 资源县|