Time of Update: 2018-12-04
最近一段時間在linux下用C做一些學習和開發,但是由於經驗不足,問題多多。而段錯誤就是讓我非常頭痛的一個問題。不過,目前寫一個一千行左右的代碼,也很少出現段錯誤,或者是即使出現了,也很容易找出來,並且處理掉。 那什麼是段錯誤?段錯誤為什麼是個麻煩事?以及怎麼發現程式中的段錯誤以及如何避免發生段錯誤呢? 一方面為了給自己的學習做個總結,另一方面由於至今沒有找到一個比較全面介紹這個雖然是“particular
Time of Update: 2018-12-04
雜湊表(Hashtable)又稱為“散置”,Hashtable是會根據索引鍵的雜湊程式碼組織成的索引鍵(Key)和值(Value)配對的集合。Hashtable 對象是由包含集合中元素的雜湊桶(Bucket)所組成的。而Bucket是Hashtable內元素的虛擬子群組,可以讓大部分集合中的搜尋和擷取工作更容易、更快速。 雜湊函數(Hash Function)為根據索引鍵來返回數值雜湊程式碼的演算法。索引鍵(Key)是被儲存物件的某些屬性值(Value)。當對象加入至 Hashtable時,
Time of Update: 2018-12-04
Linux 必學的重要命令 mtools1.作用mtools實際上是一個命令集合,是DOS檔案系統的工具程式,它可以類比許多DOS命令,使用起來非常方便。使用許可權是所有使用者。Linux系統提供了一組稱為mtools的可移植工具,可以讓使用者輕鬆地從標準的DOS磁碟片上讀、寫檔案和目錄。它們對DOS和Linux環境之間分頁檔非常有用。mtools的使用非常簡單,如果想把軟盤裡所有的檔案都拷貝到硬碟上,那麼就可以執行以下命令:mcopy
Time of Update: 2018-12-04
在Linux環境下開發經常會碰到很多錯誤(設定errno),其中EAGAIN是其中比較常見的一個錯誤(比如用在非阻塞操作中)。 從字面上來看,是提示再試一次。這個錯誤經常出現在當應用程式進行一些非阻塞(non-blocking)操作(對檔案或socket)的時候。例如,以
Time of Update: 2018-12-04
註冊匯流排。來自:dirvers/base/bus.c:int bus_register(struct bus_type*bus){ int retval; struct bus_type_private *priv; priv = kzalloc(sizeof(struct bus_type_private), GFP_KERNEL); if(!priv) return -ENOMEM; priv->bus = bus; //bus_
Time of Update: 2018-12-04
FIFO ,又稱具名管道 ,是Linux下(unix環境下)一種處理序間通訊的機制,應用廣泛。 函數mkfifo 用於建立具名管道,使用命令man 3 mkfifo 可查看此函數資訊。FIFO建立後,可以像普通檔案一樣對其訪問。 Linux下一個同名命令mkfifo 也用於建立FIFO,例如:執行命令$ mkfifo /tmp/fifo$ cat /tmp/fifo程式阻塞。再開啟一個shell,執行$ echo hello >
Time of Update: 2018-12-04
vi /etc/sysctl.conf編輯檔案,加入以下內容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30然後執行/sbin/sysctl -p讓參數生效。net.ipv4.tcp_syncookies = 1表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,預設為0,
Time of Update: 2018-12-04
1.Linux連結概念Linux連結分兩種,一種被稱為永久連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生永久連結。【硬串連】硬串連指通過索引節點來進行串連。在Linux的檔案系統中,儲存在磁碟分割中的檔案不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個檔案名稱指向同一索引節點是存在的。一般這種串連就是硬串連。硬串連的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬串連到重要檔案,
Time of Update: 2018-12-04
轉自:http://linux.chinaunix.net/techdoc/develop/2008/03/07/982180.shtml摘要Linux核心模組編程的資料有些紛繁複雜,有的過於簡單,有的過於龐雜,我試圖用筆記的形式想讀者展示怎樣來進程Linux模組編程,力圖做到簡明扼要,這篇文章也是作為本人備忘的資料,所以有些地方過於簡略是難免的。本來這篇文章的目的就是讓使用者知其然,至於所以然還是請參考相應的資料,其實最好的資料莫過於Linux Kernel Source。
Time of Update: 2018-12-04
電腦的儲存結構是層次性的,從快到慢,代價從高到低,容量從小到大,寄存器,L1 cache,L2
Time of Update: 2018-12-04
隨著互連網的高速發展以及Linux公司專屬應用程式的成熟,Linux被廣泛應用於伺服器領域,如何?Linux的遠端管理成為網路系統管理員的首要任務。我們經常見到的幾種最為常用的windows下遠端管理linux伺服器的方法,基本上都是利用SecureCRT,F-SecureSSH
Time of Update: 2018-12-04
前幾天,需要在一個核心模組A中添加一個新功能。這個新功能用到了另一個核心模組B中的函數C。我將相關的標頭檔include之後,載入A模組時,總是出錯,說用到的那個函數C找不著。 怎麼回事?以前沒接觸過核心編程的,找了個小牛問了一下,原來是Linux2.6核心不會自動的將非static 函數和變數匯入到kernel 空間,需要用到EXPORT_SYMBOL來對函數做一下標記才行。 /* in module B*/void C(){......}EXPORT_SYMBOL(C);/*in
Time of Update: 2018-12-04
本文分析基於Linux Kernel 3.2.1原創作品,轉載請標明http://blog.csdn.net/yming0221/article/details/7984238更多請查看專欄http://blog.csdn.net/column/details/linux-kernel-net.html作者:閆明1、系統初始化過程中會調用sock_init函數進行通訊端的初始化,主要是進行緩衝的初始化static int __init sock_init(void){int err;
Time of Update: 2018-12-04
文章目錄 1.1 system1.2 popen:建立子進程1.3 exec系列函數1.4 fork6.2 記憶體映射與子進程:6.3 檔案描述符的拷貝 1什麼是進程:進程是一個執行中的程式執行的程式: 代碼->資源->CPU進程有很多資料維護:進程狀態/進程屬性所有進程屬性採用的一個樹形結構體維護ps -a//所有進程ps -aue //有效進程 進程狀態:(man ps) D
Time of Update: 2018-12-04
Linux裝置模型(底層原理簡介)以《LDD3》的說法:Linux裝置模型這部分內容可以認為是進階教材,對於多數程式作者來說是不必要的。但是我個人認為:對於一個嵌入式Linux的底層程式員來說,這部分內容是很重要的。以我學習的ARM9為例,有很多匯流排(如SPI、IIC、IIS等等)在Linux下已經被編寫成了子系統,無需自己寫驅動;而這些匯流排又不像PCI、USB等在《LDD3》上有教程,有時還要自己研究它的子系統構架,甚至要自己添加一個新的匯流排類型。對於這方面的學習,我推薦幾個網頁,這些也
Time of Update: 2018-12-04
samba軟體包使用Fedora core/Redhat Linux提供的軟體包samba samba伺服器軟體包samba-client samba用戶端工具samba-common 通用工具和庫 安裝rpmdb-fedora/rpmdb-redhat軟體包(一般在第三張光碟片)但在FC5已找不到這個軟體包安裝了rpmdb可以解決依賴性問題#rpm –ivh rpmdb-fedora*.rpm#rpm –ivh --aid
Time of Update: 2018-12-04
用來防止使用者程式直接存取核心中關鍵性資料結構和硬體裝置是驅動程式的主要目的之一,所以,一個設計精良的驅動通常應該隱藏了硬體的複雜性和多變性。例如,一個程式寫資料到磁碟時,只需要開啟一個檔案並執行寫命令即可,而不必瞭解磁碟中的每個扇區的大小是512位元組或者是1024位元組,細節性的問題則交由驅動程式處理。此外,驅動程式還可以隱藏硬體的多變性(可能來自於不同廠家,甚至同一廠家不同型號)並給使用者提供一個統一的提供者。這也是Unix/Linux信條之一“一切皆檔案”的賴以存在的基礎。1、可載入模
Time of Update: 2018-12-04
文章來源:http://weibing.blogbus.com/logs/5331712.html1.建立檔案系統目錄 假定檔案系統的目錄為/rootfs,將rootfs.tar解壓到該目錄。mkdir /rootfstar zxf rootfs.tar -C /rootfs2.配置nfs檔案系統 修改/etc/exports檔案,格式為 共用目錄 開發板ip地址(使用權限設定)cat <<EOM >/etc/exports/rootfs 192.168.1.12
Time of Update: 2018-12-04
雖然Linux和Windows NT/2000系統一樣是一個多使用者的系統,但是它們之間有不少重要的差別。對於很多習慣了Windows系統的管理員來講,如何保證Linux作業系統安全、可靠將會面臨許多新的挑戰。本文將重點介紹Linux系統安全的命令。 passwd 1.作用 passwd命令原來修改賬戶的登陸密碼,使用許可權是所有使用者。 2.格式 passwd [選項] 賬戶名稱 3.主要參數
Time of Update: 2018-12-04
Kernel contributorsAC : Alan CoxAV : Alexander ViroADB: Andrew D. BalsaCP : Colin PlumbDBE: Daniel BergstromDSM: David S. Miller (co-postmaster)DW : David WoodhouseJBG: Jan-Benedict GlawKGB: Krzysztof G. BaranowskiKO : Keith OwensMEA: Matti E.