• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 25,  comments - 0,  trackbacks - 0
                 摘要: Linux tcpdump命令詳解簡(jiǎn)介用簡(jiǎn)單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者的定義對(duì)網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行截獲的包分析工具。 tcpdump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析。它支持針對(duì)網(wǎng)絡(luò)層、協(xié)議、主機(jī)、網(wǎng)絡(luò)或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息...  閱讀全文
            posted @ 2012-08-26 02:15 nk_ysg 閱讀(528) | 評(píng)論 (0)編輯 收藏
            同事需要在suse上安裝php的性能測(cè)試工具xhprof,圖形化展示需要源碼安裝graphviz
            選取的源碼為graphviz-2.24.0.tar.gz,
            安裝步驟如下
            1.tar xzvf graphviz-2.24.0.tar.gz
            2.cd graphviz-2.24.0
            3../configure
            4.make
            報(bào)了如下錯(cuò)誤
             gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../lib/common -I../../lib/gvc -I../../lib/pack -I../../lib/ortho -I../../lib/pathplan -I../../lib/graph -I../../lib/sparse -I../../lib/rbtree -I../../lib/sfdpgen -I../../lib/cdt -I/usr/local/include -g -O2 -Wno-unknown-pragmas -Wstrict-prototypes -Wpointer-arith -Wall -ffast-math -MT multispline.lo -MD -MP -MF .deps/multispline.Tpo -c multispline.c  -fPIC -DPIC -o .libs/multispline.o
            multispline.c:1228: error: expected specifier-qualifier-list before 'PQ'
            In file included from multispline.c:1224:
            ../../lib/ortho/fPQ.h:22:1: warning: this is the location of the previous definition
            multispline.c:1234:1: warning: "N_IDX" redefined
            ../../lib/ortho/fPQ.h:23:1: warning: this is the location of the previous definition
            查找multispline.c,
            使用如下命令find . -name multispline.c ,結(jié)果為
            ./lib/neatogen/multispline.c
            發(fā)現(xiàn)PQ定義在fPQ.h,當(dāng)前路徑下有fPQ.h還是無法編譯
            cd graphviz-2.24.0
             find . -name "fPQ.h
            ./lib/neatogen/fPQ.h
            ./lib/ortho/fPQ.h
            可能是文件不同或是被包含兩次,具體沒查
            cd lib/ortho/
            mkdir -p bak
            mv * bak

            然后cd ../neatogen/
            單獨(dú)編譯neatogen運(yùn)行make
            成功
            cd ../ortho 
            mv bak/*.

            cd ../../
            運(yùn)行make,所有模塊都可以編譯了
            posted @ 2012-07-10 16:43 nk_ysg 閱讀(916) | 評(píng)論 (0)編輯 收藏
            ACE讀取ini配置,需要使用兩個(gè)類,ACE_Configuration_Heap和ACE_Ini_ImpEXP
             然后調(diào)用
            get_string_value,好像 get_integer_value不好用
            posted @ 2012-07-08 19:05 nk_ysg 閱讀(627) | 評(píng)論 (0)編輯 收藏
            參考文章http://blog.csdn.net/russell_tao/article/details/7207093 
            嘗試過在centos6.0上編譯不成功
            需要安裝的第三方軟件如下

            openssl

            openssl-devel

            xfsprogs

            xfsprogs-devel

            e2fsprogs

            e2fsprogs-devel

            log4cpp

            boost

            boost-devel
            安裝jkd,我安裝在/usr/lib/jvm/jdk1.7.0_04

            開始安裝

             

            1.wget http://kosmosfs.googlecode.com/files/kfs-0.5.tar.gz
            2.tar xzvf kfs-0.5.tar.gz
            3.cd kfs-0.5
            4.mkdir build
            5.cd build
            6.cmake ..
            7.make
            8.make install
            后面參考文章
            posted @ 2012-07-07 16:56 nk_ysg 閱讀(309) | 評(píng)論 (0)編輯 收藏
            strace a.out用來查看a.out程序運(yùn)行中有哪些系統(tǒng)調(diào)用
            ltrace a.out用來查看a.out運(yùn)行中有哪些庫(kù)函數(shù)調(diào)用
            posted @ 2012-07-06 19:14 nk_ysg 閱讀(316) | 評(píng)論 (0)編輯 收藏
             創(chuàng)建和使用靜態(tài)庫(kù) 
            創(chuàng)建一個(gè)靜態(tài)庫(kù)是相當(dāng)簡(jiǎn)單的。通常使用 ar 程序把一些目標(biāo)文件(.o)組合在一起,
            成為一個(gè)單獨(dú)的庫(kù),然后運(yùn)行 ranlib,以給庫(kù)加入一些索引信息。 
            2  創(chuàng)建和使用共享庫(kù)
            特殊的編譯和連接選項(xiàng)
            -D_REENTRANT         使得預(yù)處理器符號(hào) _REENTRANT 被定義,這個(gè)符號(hào)激活一些宏特性。
            -fPIC                選項(xiàng)產(chǎn)生位置獨(dú)立的代碼。由于庫(kù)是在運(yùn)行的時(shí)候被調(diào)入,因此這個(gè)
                                 選項(xiàng)是必需的,因?yàn)樵诰幾g的時(shí)候,裝入內(nèi)存的地址還不知道。如果
                                 不使用這個(gè)選項(xiàng),庫(kù)文件可能不會(huì)正確運(yùn)行。
            -shared              選項(xiàng)告訴編譯器產(chǎn)生共享庫(kù)代碼。
            -Wl,-soname          -Wl 告訴編譯器將后面的參數(shù)傳遞到連接器。而 -soname 指定了
                                 共享庫(kù)的 soname。 

                # 可以把庫(kù)文件拷貝到 /etc/ld.so.conf 中列舉出的任何目錄中,并以
            root 身份運(yùn)行 ldconfig;或者
                # 運(yùn)行 export LD_LIBRARY_PATH='pwd',它把當(dāng)前路徑加到庫(kù)搜索路徑中去。 

            3  使用高級(jí)共享庫(kù)特性
            1> ldd 工具
            ldd 用來顯示執(zhí)行文件需要哪些共享庫(kù), 共享庫(kù)裝載管理器在哪里找到了需要的共享庫(kù). 
            2> soname 
            共享庫(kù)的一個(gè)非常重要的,也是非常難的概念是 soname--簡(jiǎn)寫共享目標(biāo)名(short for shared object name)。這是一個(gè)為共享庫(kù)(.so)文件而內(nèi)嵌在控制數(shù)據(jù)中的名字。如前面提到的,每一個(gè)程序都有一個(gè)需要使用的庫(kù)的清單。這個(gè)清單的內(nèi)容是一系列庫(kù)的 soname,如同 ldd 顯示的那樣,共享庫(kù)裝載器必須找到這個(gè)清單。 
            soname 的關(guān)鍵功能是它提供了兼容性的標(biāo)準(zhǔn)。當(dāng)要升級(jí)系統(tǒng)中的一個(gè)庫(kù)時(shí),并且新庫(kù)的 soname 和老的庫(kù)的 soname 一樣,用舊庫(kù)連接生成的程序,使用新的庫(kù)依然能正常運(yùn)行。這個(gè)特性使得在 Linux 下,升級(jí)使用共享庫(kù)的程序和定位錯(cuò)誤變得十分容易。 
            在 Linux 中,應(yīng)用程序通過使用 soname,來指定所希望庫(kù)的版本。庫(kù)作者也可以通過保留或者改變 soname 來聲明,哪些版本是相互兼容的,這使得程序員擺脫了共享庫(kù)版本沖突問題的困擾。 
            查看/usr/local/lib 目錄,分析 MiniGUI 的共享庫(kù)文件之間的關(guān)系 
            3> 共享庫(kù)裝載器 
            當(dāng)程序被調(diào)用的時(shí)候,Linux 共享庫(kù)裝載器(也被稱為動(dòng)態(tài)連接器)也自動(dòng)被調(diào)用。它的作用是保證程序所需要的所有適當(dāng)版本的庫(kù)都被調(diào)入內(nèi)存。共享庫(kù)裝載器名字是 ld.so 或者是 ld-linux.so,這取決于 Linux libc 的版本,它必須使用一點(diǎn)外部交互,才能完成自己的工作。然而它接受在環(huán)境變量和配置文件中的配置信息。 
            文件 /etc/ld.so.conf 定義了標(biāo)準(zhǔn)系統(tǒng)庫(kù)的路徑。共享庫(kù)裝載器把它作為搜索路徑。為了改變這個(gè)設(shè)置,必須以 root 身份運(yùn)行 ldconfig 工具。這將更新 /etc/ls.so.cache 文件,這個(gè)文件其實(shí)是裝載器內(nèi)部使用的文件之一。 
            可以使用許多環(huán)境變量控制共享庫(kù)裝載器的操作(表1-4+)。 
                                    表 1-4+ 共享庫(kù)裝載器環(huán)境變量
            變量                       含義
            LD_AOUT_LIBRARY_PATH       除了不使用 a.out 二進(jìn)制格式外,與 LD_LIBRARY_PATH 相同。
            LD_AOUT_PRELOAD            除了不使用 a.out 二進(jìn)制格式外,與 LD_PRELOAD 相同。
            LD_KEEPDIR                 只適用于 a.out 庫(kù);忽略由它們指定的目錄。
            LD_LIBRARY_PATH            將其他目錄加入庫(kù)搜索路徑。它的內(nèi)容應(yīng)該是由冒號(hào)
                                       分隔的目錄列表,與可執(zhí)行文件的 PATH 變量具有相同的格式。
                                       如果調(diào)用設(shè)置用戶 ID 或者進(jìn)程 ID 的程序,該變量被忽略。
            LD_NOWARN                  只適用于 a.out 庫(kù);當(dāng)改變版本號(hào)是,發(fā)出警告信息。
            LD_PRELOAD                 首先裝入用戶定義的庫(kù),使得它們有機(jī)會(huì)覆蓋或者重新定義標(biāo)準(zhǔn)庫(kù)。
                                       使用空格分開多個(gè)入口。對(duì)于設(shè)置用戶 ID 或者進(jìn)程 ID 的程序,
                                       只有被標(biāo)記過的庫(kù)才被首先裝入。在 /etc/ld.so.perload 中指定
                                       了全局版本號(hào),該文件不遵守這個(gè)限制。 

            4> 使用 dlopen 
                另外一個(gè)強(qiáng)大的庫(kù)函數(shù)是 dlopen()。該函數(shù)將打開一個(gè)新庫(kù),并把它裝入內(nèi)存。該函數(shù)主要用來加載庫(kù)中的符號(hào),這些符號(hào)在編譯的時(shí)候是不知道的。比如 Apache Web 服務(wù)器利用這個(gè)函數(shù)在運(yùn)行過程中加載模塊,這為它提供了額外的能力。一個(gè)配置文件控制了加載模塊的過程。這種機(jī)制使得在系統(tǒng)中添加或者刪除一個(gè)模塊時(shí),都不需要重新編譯了。 
                可以在自己的程序中使用 dlopen()。dlopen() 在 dlfcn.h 中定義,并在 dl 庫(kù)中實(shí)現(xiàn)。它需要兩個(gè)參數(shù):一個(gè)文件名和一個(gè)標(biāo)志。文件名可以是我們學(xué)習(xí)過的庫(kù)中的 soname。標(biāo)志指明是否立刻計(jì)算庫(kù)的依賴性。如果設(shè)置為 RTLD_NOW 的話,則立刻計(jì)算;如果設(shè)置的是 RTLD_LAZY,則在需要的時(shí)候才計(jì)算。另外,可以指定 RTLD_GLOBAL,它使得那些在以后才加載的庫(kù)可以獲得其中的符號(hào)。 
                當(dāng)庫(kù)被裝入后,可以把 dlopen() 返回的句柄作為給 dlsym() 的第一個(gè)參數(shù),以獲得符號(hào)在庫(kù)中的地址。使用這個(gè)地址,就可以獲得庫(kù)中特定函數(shù)的指針,并且調(diào)用裝載庫(kù)中的相應(yīng)函數(shù)。 作者:perfectpdl 發(fā)表于2011-12-25 21:40:34 原文鏈接 
            posted @ 2012-07-06 16:57 nk_ysg 閱讀(439) | 評(píng)論 (0)編輯 收藏
            系統(tǒng)調(diào)用(system call)是操作系統(tǒng)內(nèi)核提供的函數(shù),在內(nèi)核態(tài)運(yùn)行(kernel mode),屬于函數(shù)中的低等下人,終身代號(hào)9527,雖然低等,但是誰也離不開他們,因?yàn)殡x開他們就沒辦法和內(nèi)核打交道了,沒辦法和內(nèi)核打交道就什么都歇菜了。。。
            linux3.0.0-14的系統(tǒng)調(diào)用有346個(gè),可以在源碼的 linux-3.0/arch/x86/kernel/syscall_table_32.S文件中找到所有的系統(tǒng)調(diào)用編號(hào),如果以匯編的方法調(diào)用這些系統(tǒng)函數(shù),那么放在EAX寄存器里面的值就是想要調(diào)用的函數(shù)的號(hào)碼,把前20個(gè)貼在下面了,很多貌似很熟悉的吧:)ENTRY(sys_call_table)
                    .long sys_restart_syscall        /* 0 - old "setup()" system call, used for restarting */
                    .long sys_exit
                    .long ptregs_fork
                    .long sys_read
                    .long sys_write
                    .long sys_open                /* 5 */
                    .long sys_close
                    .long sys_waitpid
                    .long sys_creat
                    .long sys_link
                    .long sys_unlink        /* 10 */
                    .long ptregs_execve
                    .long sys_chdir
                    .long sys_time
                    .long sys_mknod
                    .long sys_chmod                /* 15 */
                    .long sys_lchown16
                    .long sys_ni_syscall        /* old break syscall holder */
                    .long sys_stat
                    .long sys_lseek
                    .long sys_getpid        /* 20 */

            庫(kù)函數(shù)是在系統(tǒng)調(diào)用上的一層包裝,運(yùn)行在用戶態(tài)(user mode),打個(gè)比方吧,庫(kù)函數(shù)相當(dāng)于包工頭,系統(tǒng)調(diào)用是工人,我們可以自己找工人分任務(wù),但一般是把任務(wù)攤給包工頭,包工頭再去給工人分任務(wù)。
            所以雖然最終所有的工作都是系統(tǒng)調(diào)用做的,但是我們更通常的做法是調(diào)用庫(kù)函數(shù),有以下幾個(gè)原因:

            • 庫(kù)函數(shù)提供了抽象,抽象是個(gè)好東西,可以讓我們把更多的注意力集中在要解決問題的核心。
            • 庫(kù)函數(shù)給我們提供的接口更人性化,所以調(diào)用起來更方便。
            • 調(diào)用庫(kù)函數(shù)更安全,內(nèi)存管理不用自己太操心。
            • 調(diào)用庫(kù)函數(shù)效率更高,程序跑的更快。雖然庫(kù)函數(shù)最終是調(diào)用系統(tǒng)函數(shù),但是庫(kù)函數(shù)會(huì)比我們用更好的方式方法調(diào)用系統(tǒng)函數(shù)。


              例子可以參考這篇文章http://blog.csdn.net/high_high/article/details/7102081
            posted @ 2012-07-06 16:18 nk_ysg 閱讀(315) | 評(píng)論 (0)編輯 收藏
            僅列出標(biāo)題  下一頁
            <2012年6月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲中文字幕无码一久久区| 国产高清美女一级a毛片久久w| 久久久国产精品网站| 亚洲综合熟女久久久30p| 亚洲午夜精品久久久久久app| 久久中文娱乐网| 久久精品国产福利国产秒| www久久久天天com| 狠狠色丁香久久婷婷综| 久久免费精品一区二区| 国产精品99久久不卡| 久久成人国产精品一区二区| 国产激情久久久久影院小草| 久久精品国产色蜜蜜麻豆| 久久亚洲中文字幕精品一区| 亚洲人成电影网站久久| 亚洲精品无码久久久影院相关影片 | 久久精品国产亚洲一区二区三区| 久久国产影院| 久久精品国产亚洲AV久| 人妻无码中文久久久久专区| 久久国产精品久久久| 久久久久亚洲精品天堂久久久久久 | 久久WWW免费人成—看片| 亚洲性久久久影院| 色诱久久久久综合网ywww| 久久久久久久尹人综合网亚洲| 成人精品一区二区久久久| 少妇无套内谢久久久久| 91精品国产高清久久久久久io| 精品国产91久久久久久久a| 久久精品国产久精国产一老狼| 精品久久一区二区三区| 亚洲精品无码久久久| 久久久久综合网久久| 国产精品久久久久蜜芽| 999久久久国产精品| 亚洲香蕉网久久综合影视 | 久久国产精品免费一区二区三区| 青青草原综合久久大伊人| 色综合色天天久久婷婷基地|