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
12款Linux系統復原工具電腦死機,硬碟崩潰,花巨大的money搞個急救保護器……這都是電腦的陰暗面。 時間一直這樣走著,走著,不定哪天背點兒。對於電腦損壞造成的損失,著急抓狂毫無意義。相反,使用恰當的工具反而會最小化損失。 你是否不小心刪除你的紀念圖片?安裝新系統時候,擦除了分區表?無法讀取舊CD裡面的資料?別急嘛~我們將會給您推薦一些免費的系統急救工具,使你從無奈中解脫出來~~:> 安裝Ubuntu系統的朋友們,你們可以用軟體包管理器安裝以下程式,搜尋程式名稱即可安裝。我們只是
Time of Update: 2018-12-04
在windows中,為了讓多個線程達到同步的目的,在對於全域變數等大家都要用的資源的使用上,通常得保證同時只能由一個線程在用,一個線程沒有宣布對它的釋放之前,不能夠給其他線程使用這個變數。在windows裡,我們可以用時EnterCriticalSection()和LeaveCriticalSection()函數.那麼在linux裡,有什麼類似的機制呢? 這裡介紹互斥鎖。1.申請一個互斥鎖pthread_mutex_t mutex;
Time of Update: 2018-12-04
linux下掛載硬碟 http://cache.baidu.com/c?m=9d78d513d99d1af31fa7837f7d01a6120e2580743da7c76574c3e54884125d56316cf4ba57356605c4b57c7070a85e2d9be47132690c7af1dd8a9f4baea68f7871d57223706bd91c50c419d89a1b7adc66cd0bb3f845afe0a36e8eaed0d1db4951c14e057d9df08a5a01
Time of Update: 2018-12-04
當一個任務(進程)執行系統調用而陷入核心代碼中執行時,我們就稱進程處於核心運行態(或簡稱為核心態)。此時處理器處於特權級最高的(0級)核心代碼中執行。當進程處於核心態時,執行的核心代碼會使用當前進程的核心棧。每個進程都有自己的核心棧。當進程在執行使用者自己的代碼時,則稱其處於使用者運行態(使用者態)。即此時處理器在特權級最低的(3級)使用者代碼中運行。當正在執行使用者程式而突然被中斷程式中斷時,此時使用者程式也可以象徵性地稱為處於進程的核心態。因為中斷處理常式將使用當前進程的核心棧。
Time of Update: 2018-12-04
如果你使用的系統存在大量的檔案讀寫,那麼必須考慮檔案系統對系統效能的影響。 傳統的romfs檔案系統是一種簡單的、緊湊的、唯讀檔案系統,不支援動態擦寫儲存,按順序存放資料,因而支援應用程式以XIP方式運行,在系統運行時,節省RAM空間。uClinux系統通常採用Romfs檔案系統。 從整體上講,唯讀檔案系統Cramfs和Romfs,在檔案讀的速度上要比可讀寫的檔案系統JFFS2和YAFFS2快許多。因此對於那些唯讀檔案,應盡量放在唯讀檔案系統上。 資料分割配置Linux
Time of Update: 2018-12-04
在windows作業系統中, 掛載通常是指給磁碟分割(包括被虛擬出來的磁碟分割)分配一個盤符。 這個操作可以通過“電腦管理”中的“磁碟管理”來進行。 第三方軟體,如磁碟分割管理軟體、虛擬磁碟軟體等,通常也附帶掛載功能。 在linux作業系統中, 掛載是一個非常重要的功能,使用非常頻繁。 它指將一個裝置(通常是存放裝置)掛接到一個已存在的目錄上。 (這個目錄可以不為空白,但掛載後這個目錄下以前的內容將不可用。) 需要理解的是, linux作業系統將所有的裝置都看作檔案,
Time of Update: 2018-12-04
應該說uClinux同標準Linux的最大區別就在於記憶體管理,同時也由於uClinux的記憶體管理引發了一些標準Linux所不會出現的問題。本文將把uClinux記憶體管理同標準Linux的那記憶體管理部分進行比較分析。標準Linux使用的虛擬儲存空間技術標準Linux使用虛擬儲存空間技術,這種技術用於提供比電腦系統中實際使用的實體記憶體大得多的記憶體空間。使用者將感覺到好像程式可以使用非常大的記憶體空間,從而使得編程人員在寫程式時不用考慮電腦中的實體記憶體的實際容量。為了支援虛擬儲存管理器的
Time of Update: 2018-12-04
標準Linux是針對有MMU的處理器設計的。在這種處理器上,虛擬位址被送到MMU,把虛擬位址映射為物理地址。通過賦予每個任務不同的虛擬-物理地址轉換映射,支援不同任務之間的保護。uClinux是針對控制領域的嵌入式linux作業系統,它從Linux 2.0/2.4核心派生而來,沿襲了主流Linux的絕大部分特性。適合不具備記憶體治理單元(MMU)的微處理器/微控制器。沒有MMU支援是uClinux與主流Linux的基本差異。
Time of Update: 2018-12-04
滑動視窗(通告視窗):接收端根據自己設定的緩衝大小決定該視窗的大小, 緩衝大小的設定根據BDP(Bandwidth Delay Product) 來設定, BDP = link_bandwidth * RTT擁塞視窗:發送端根據自己估計的網路擁塞程度而設定的視窗值,是來自發送端的流量控制 2. TCP有3種基本機制控制報文的發送2.1 TCP維持一個變數,它等於最大報文段長度MSS?2.2 應用程式層指明要求發送報文端, 通過TCP頭部的push 欄位(急迫位元)2.3 計時器時間到,
Time of Update: 2018-12-04
本文分析基於Linux Kernel
Time of Update: 2018-12-04
#define SIGHUP 1 進程由於控制終端死去或者控制終端發出起命令 #define SIGINT 2 鍵盤中斷所產生的訊號 #define SIGQUIT 3 鍵盤終止 #define SIGILL 4 非法的指令 #define SIGTRAP 5 進程遇到一個追蹤(trace)或者是一個中斷嵌套 #define SIGABRT 6 由abort系統調用所產生的中斷訊號 #define SIGIOT 6 類似於SIGABRT #define SIGBUS
Time of Update: 2018-12-04
這篇檔案借鑒網上的檔案,然後自己做了一些修改,主要是對測試的過程中發現一些不一致和不詳盡導致一些麻煩的解決openssl安裝Centos yum install openssl openssl-devel#include <stdio.h>#include <string.h>#include <stdlib.h>#include <openssl/md5.h>int main(int argc, char** argv) {
Time of Update: 2018-12-04
在別人的基礎上添加自己用到的 1、建立工程 svnadmin create /var/svn/repos/server svn import /home/yqliu29/server file:///var/svn/repos/server -m "First import" 2、檢出工程 svn co http://192.168.61.79/repos/server 3、添加檔案或者檔案夾 cp /home/yqliu29/main.c ./ svn add
Time of Update: 2018-12-04
轉載自 http://blog.chinaunix.net/u1/53398/showart_478990.html 由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來瞭解一下。即使系統中含有網路檔案系統( NFS),find命令在該檔案系統中同樣有效,只你具有相應的許可權。在運行一個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍曆一個大的檔案系統可能會花費很長的時間(這裡是指30G位元組以上的檔案系統)。一、find
Time of Update: 2018-12-04
問題:cannot open shared object file: No such file or directory failed 方法:作個連結放到/usr/lib裡。如: ln -s /usr/local/mysql/lib/libmysqlclient.so.16/usr/lib/更好方法:Linux 啟動並執行時候,是如何管理共用庫(*.so)的?在 Linux 下面,共用庫的尋找和載入是由 /lib/ld.so 實現的。 ld.so 在標準路經(/lib, /usr/lib)
Time of Update: 2018-12-04
一,安裝郵件傳輸代理程式程式sudo apt-get install sendmail sudo apt-get install sendmail-cf二,安裝mailutils否則不能使用mail命令三,配置sendmail 預設只會為本機使用者發送郵件,只有把它擴充到整個Internet,才會成為真正的郵件伺服器。 vi /etc/mail/sendmail.mcDAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.
Time of Update: 2018-12-04
先來看看兩個特殊的檔案與目錄[root@yufei ~]# ls -l /usr/bin/passwd-rwsr-xr-x. 1 root root 26968 Jan 29 2010 /usr/bin/passwd[root@yufei ~]# ls -l /usr/bin/wall-r-xr-sr-x. 1 root tty 10932 Apr 27 2010 /usr/bin/wall[root@yufei ~]# ls -ld /tmp/drwxrwxrwt. 7 root
Time of Update: 2018-12-04
join極類似於SQL中的join的關鍵字功能說明:通過公用欄位將兩個檔案合并。串連方式如下:內串連 格式:join <FILE1> <FILE2>左串連 格式:join -a1 <FILE1> <FILE2>右串連 格式:join -a2 <FILE1> <FILE2>全串連 格式:join -a1 -a2 <FILE1> <FILE2>參數說明: -a <1或2>
Time of Update: 2018-12-04
1IO的共用和效率read與write其中資料緩衝的大小建設設定為:getpagesize (一頁的大小)或者40922 定位與讀取資料(隨機讀取)read和write時自動移動讀取位置lseek改變讀取位置pread/pwrite在指定位置讀寫2.1lseek函數說明 off_t lseek(int fd, //檔案描述符 off_t offset,//位移 int whence);//定位參數 開始SEEK_SET, 當前位置SEEK_CUR ,