聶永的博客

          記錄工作/學(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)核

          第一步需要下載代碼,當然這是廢話了,下載到/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)核編譯相當耗費時間,至少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
          

          加載之后,列出當前系統(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ù)‘openlibsocket.c: 在函數(shù)‘fastsocket_expand_fdset’中:
          libsocket.c:109: 警告:隱式聲明函數(shù)‘ioctllibsocket.c: 在函數(shù)‘accept’中:
          libsocket.c:186: 警告:對指針賦值時目標與指針符號不一致
          libsocket.c: 在函數(shù)‘accept4’中:
          libsocket.c:214: 警告:對指針賦值時目標與指針符號不一致
          

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

          小結(jié)

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

          posted on 2015-01-30 13:14 nieyong 閱讀(2190) 評論(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)載請標明出處,謝謝~

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

          導(dǎo)航

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

          統(tǒng)計

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個人收藏

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 石泉县| 通山县| 泊头市| 景谷| 平乐县| 灵川县| 靖安县| 绍兴县| 乌拉特后旗| 陆良县| 突泉县| 封开县| 手游| 射阳县| 普安县| 敦煌市| 石家庄市| 宜阳县| 四会市| 年辖:市辖区| 精河县| 香港| 法库县| 临武县| 大竹县| 桐梓县| 和静县| 泽库县| 峨眉山市| 天峨县| 东安县| 泌阳县| 威海市| 石家庄市| 察雅县| 蓬莱市| 时尚| 鲁山县| 丹凤县| 葫芦岛市| 同心县|