最近遇到一個線上警示:伺服器出現大量TIME_WAIT導致其無法與下遊模組建立新HTTP串連,在解決過程中,通過查閱經典教材和技術文章,加深了對TCP網路問題的理解。作為筆記,記錄於此。 備忘:本文主要介紹TCP編程中涉及到的眾多基礎知識,關於實際工程中對由TIME_WAIT引發的不能建立新串連問題的解決方案將在下篇筆記中給出。1. 實際問題
調試完pcDuino的led裸板程式,再調pcDuino基於linux核心的gpio驅動開發,以前的問題迎刃而解。本文是在pcDuino的linux移植四簡單驅動開發的基礎上,做GPIO驅動開發。然後寫一個應用測試程式,通過敲命令控制pcduino的TX led亮、滅。同時如果你GPIO4、GPIO5接個LED,也會跟著亮、滅。 開發環境: 系統:ubuntu 10.04.4 單板:pcDuino 編譯器:arm-2009q3-67-arm-none-linux-gnueabi-i686
此文是人在囧途之營運的第二篇、第一篇請參見:【人在營運囧途_01】20個Linux系統內建監視工具:top 閑言少敘、看招哈O(∩_∩)O~ ⑵ vmstat 寫在前面的話、這裡 Rocky 嘮嗑一點、私下認為、vmstat 最佳實務也該是: "到底哪個部分的資源被使用的最為頻繁" 先瞧瞧 vmstat 的輸出 [root@Rocky ~]# vmstat 5
1.磁碟資訊[wang@localhost 案頭]$ du -sh ./mm392K ./mm[wang@localhost 案頭]$ du -ak ./mm376 ./mm/boot_nontrust.bin4 ./mm/bt.sh0 ./mm/check.md54 ./mm/rtk8723_bt_config4 ./mm/startup.x392 ./mm[wang@localhost 案頭]$ du -ah ./mm376K ./mm/boot_nontrust.bin4.0K ./
在開發核心模組或驅動時,如果處理失誤,導致核心線程中出現死結或者死迴圈,你會發現,除了重啟之外,你沒有任何可以做的。這時你的輸入不起任何作用,終端(不是指遠端ssh工具)只會在那重複的輸出類似“BUG: soft lockup - CPU#0 stuck for 67s! [fclustertool:2043]”,更無奈的是你重啟之後導致系統掛起的堆棧資訊也看不到,你所能做的就是一遍遍的加調試資訊,一遍遍的重啟機器(這是我的經曆,現在想想很傻)。
yaffs2檔案系統移植編者:前面用的檔案系統都是友善內建的檔案系統,其GUI是基於QTOPIA,這個檔案系統的功能還是比較強大的。這裡我們可以自己移植一個根檔案系統,不過這隻是一個最基本的系統,這樣有助於理解嵌入式的開發。檔案系統的製作過程大體相似,只是使用的製作工具不一樣。在此處製作的檔案系統,主要參考了移植手冊和《ARM嵌入式系統移植實戰開發》一書。 下面介紹下手冊上的移植過程:原文連結如下http://huang-tomey.blog.163.com/blog/static/124750
編者:這裡並不是移植yaffs2檔案系統,只是給核心打個補丁,使之支援yaffs2檔案系統。 1、擷取yaffs2 源代源碼現在大部分開發板都可以支援yaffs2 檔案系統,它是專門針對嵌入式裝置,特別是使用nand flash 作為儲存空間的嵌入式裝置而建立的一種檔案系統,早先的yaffs 僅支援小頁(512byte/page)的nand flash,現在的開發板大都配備了更大容量的nand flash,它們一般是大頁模式的(2K/page),使用yaffs2 就可以支援大頁的nand
建立核心線程: struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[]); 喚醒核心線程(可以喚醒所有進程(線程)): wake_up_process(struct task_struct *k);建立並運行核心線程: struct task_struct *kthread_run(int (*threadfn)(void *data),
#include<sys/wait.h>#include<errno.h>#include<signal.h>#include<unistd.h>intsystem(const char *cmdstring)/* with appropriate signal handling */{pid_tpid;intstatus;struct sigactionignore, saveintr, savequit;sigset_tchldmask,
我的系統是ubuntu 11.10 1.live555源碼 和 H264測試檔案下載 ,見如下連結上傳到CSDN 資源中的檔案,還沒有看到,我後面補上。 2.根據自己的交叉編譯器修改config.*(具體見下載檔案中的config.armeb-uclibc), 我的編譯器是buildroot-gcc342-----mipsel-linux-uclibc, 用的是config.armeb-uclibc 3.產生Makefile./genMakefiles
netstatnetstat命令是一個監控TCP/IP網路的非常有用的工具,它可以顯示路由表、實際的網路連接以及每一個網路介面裝置的狀態資訊,在我的電腦上執行netstat後,其輸出結果為:Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHEDtcp
當我們的開發機是Windows,伺服器是Linux時,如何在windows作業系統和linux作業系統之間進行檔案傳輸呢?大部分使用ScureCRT或者putty遠程登入,使用scp、wget等命令拷貝檔案,也有不怕麻煩的在伺服器上安裝FTP伺服器,或者啟用samba甚至NFS。只是用Linux作為網頁伺服器,因為效能更好,更加安全穩定。這個時候要管理檔案系統,想像FTP那麼方便,又不想學習如何安裝FTP伺服器,winscp就是一個極好的選擇。只要你的Linux主機支援遠程登入(ssh),那麼你
一、df -lh 命令 df 是來自於coreutils 軟體包,系統安裝時,就內建的;我們通過這個命令可以查看磁碟的使用方式以及檔案系統被掛載的位置; [root@localhost ~]# df -l 檔案系統 容量 已用 可用 已用% 掛載點 /dev/sda3 4956316 3565088 1135396 76% / tmpfs
剛剛重新安裝系統,這次決定備份一些重要的目錄。以前一直知道tar命令是這方面的高手,但是到底要怎麼備份?並沒有系統的研究過,所以剛才的實踐,總結了經驗,放出來和大家分享。tar 命令是非常強大的,它在很多情況下可以備份整個系統,然後你可以通過一張live cd還原它,也可一通過已經安裝好的系統,對自身進行覆蓋回複,如果你有什麼需要備份的東西,當然最好不是小東西,你可以試試下面的方法。第一部分
ASS字幕如果不能載入的話,則需要把ASS字幕編碼由utf16轉換為utf8用gedit也可以用這個也可以:iconv -f utf16 -t utf8 subtitle_utf16.ass > subtitle_utf8.ass在Preferenecs->Subtitles&OSD中 Encoding選Simplified Chinese charset(CP936)或者Traditional Chinese
環境 Vista SP1 ,Arch LinuxSDA1 vista cSDA2 /bootSDA3 SWAPSDA6 /SDA7 /homeSDA8 /dataSDA9 vista d方法1:1.匯出Linux引導記錄(Grub沒有安裝在MBR)#dd if=/dev/sda2 of=/home/你的使用者名稱/arch.lnx bs=512 count=1 /dev/sda2視你的arch boot所在分區而定。產生arch.lnx,用此檔案取代grldr.mbr。
vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強大不遜色於任何最新的文字編輯器,這裡只是簡單地介紹一下它的用法和一小部分指令。由於對Unix及Linux系統的任何版本,vi編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進一步瞭解它。Vi也是Linux中最基本的文字編輯器,學會它後,您將在Linux的世界裡暢行無阻。 1、vi的基本概念 基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last
su su命令是最基本的命令之一,常用於不同使用者間切換。例如,如果登入狀態 user1,要切換為user2,只要用如下命令: $su user2 然後系統提示輸入user2口令,輸入正確的口令之後就可以切換到user2。完成之後就可以用exit命令返回到user1。 su命令的常見用法是變成根使用者或超級使用者。如果發出不帶使用者名稱的su命令 ,則系統提示輸入根口令,輸入之後則可切換為根使用者。 如果登入狀態根使用者,則可以用su命令成為系統上任何使用者而不需要口令。 pwd
From http://sb123.org/893代表intel(英特爾)系列的cpu386 幾乎適用於所有的 x86 平台,不論是舊的 pentum 或者是新的 pentum-IV 與 K7 系列的 CPU等等,都可以正常的工作!那個 i 指的是 Intel 相容的 CPU 的意思,至於 386 不用說,就是 CPU 的等級啦!i586 就是 586 等級的電腦,那是哪些呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU ( socket 7 插腳 )