Time of Update: 2018-12-04
編譯核心確實是個讓人窒息和苦悶的過程,經過幾天的努力,今天終於順利通過。感謝好友“編程夜未眠”的支援人員我是在Vmware下裝的Red Hat 9,下載了linux的核心版本2.6.14.4(1)解壓至/usr/src目錄下,注意必須得在linux中解壓(2)進入解壓後的目錄,$make menuconfig(基於X11的圖形核心組態工具)。注意,在Vmware下以下選項必須選上,否則編譯要出問題: Device Drivers --->SCSI device
Time of Update: 2018-12-04
UNIX/LINUX 多線程編程 1. 線程 線程通常叫做輕型的進程。雖然這個叫法有些簡單化,但這有利於瞭解線程的概念。因為線程和進程比起來很小,所以相對來說,線程花費更少的CPU資源。進程往往需要它們自己的資源,但線程之間可以共用資源,所以線程更加節省記憶體。Mach的線程使得程式員可以編寫並發啟動並執行程式,而這些程式既可以運行在單一處理器的機器上,也可以運行在多處理器的機器中。另外,在單一處理器環境中,當應用程式執行容易引起阻塞和延遲的操作時,線程可以提高效率。
Time of Update: 2018-12-04
我們經常會碰到這樣的問題,用 telnet/ssh 登入了遠端 Linux 伺服器,運行了一些耗時較長的任務, 結果卻由於網路的不穩定導致任務中途失敗。如何讓命令提交後不受本地關閉終端視窗/網路中斷連線的幹擾呢?下面舉了一些例子, 您可以針對不同的情境選擇不同的方式來處理這個問題。nohup/setsid/&情境:如果只是臨時有一個命令需要長時間運行,什麼方法能最簡便的保證它在後台穩定運行呢?hangup 名稱的來由在 Unix 的早期版本中,每個終端都會通過 modem 和系統通訊。
Time of Update: 2018-12-04
此函數是獲得directory中的basename, 比如basename(“android/system/core"),返回的是"core" 37 basename(const char* path) 38 { 39 static char* bname = NULL; 40 int ret; 41 42 if (bname == NULL) { 43 bname = (char *)malloc(MAXPATHLEN);
Time of Update: 2018-12-04
I've been playing with QEMU lately and found that it's really awesome. To get started all you need is to create a root filesystem and cross compile a Kernel which is quite easy to set up on a Debian/Ubuntu based system. Here is what I did:0
Time of Update: 2018-12-04
linux終端快速鍵常用: 複製為ctrl-shift-c粘貼為ctrl-shift-vtab=補全ctrl+a=開始位置ctrl+e=最後位置ctrl+k=刪除此處至末尾所有內容ctrl+u= 刪除此處至開始所有內容Ctrl-L -重新整理螢幕Ctrl-C -殺死當前任務 較完整: 視窗操作:Shift+Ctrl+T:建立標籤頁 Shift+Ctrl+W: 關閉標籤頁 Ctrl+PageUp:前一標籤頁 Ctrl+PageDown:後一標籤頁 Shift+Ctrl+PageUp:標籤頁左移
Time of Update: 2018-12-04
cd 到核心代碼目錄下linux-x.x.x然後執行 make mandocs大約半小時後產生好執行 sudo make installmandocs 安裝好這樣就可以用man查看核心功能了為了以後方便用,可以把產生的mandocs檔案分離出來,mandocs檔案在核心目錄下的 Documentation/DocBook/man/*.9.gz把man下面的*.9.gz打包為mandocs.tar.gz////////////////////////////////////////////////
Time of Update: 2018-12-04
一、進程切換與硬體上下文1,進程切換:為了控制進程的執行,核心必須有能力掛起正在CPU上啟動並執行進程,並恢複之前被掛起的某個進程,這種能力叫做進程切換或者任務切換或者環境切換。2,硬體上下文: 儘管每個進程可以擁有屬於自己的地址空間,但是所有進程必須共用CPU寄存器,因此,在恢複一個進程的執行前,核心必須確保每個寄存器裝入了掛起進程時的值 進程恢複執行前必須裝入寄存器的那一組資料成為硬體上下文。
Time of Update: 2018-12-04
Linux 系統設定 ulimit以及 Core檔案的產生查看限制情況 ulimit -a可以看到如下資訊core filesize (blocks, -c) 0data seg size (kbytes, -d) unlimitedfilesize (blocks, -f) unlimitedpendingsignals (-i) 1024max locked memory (kbytes,
Time of Update: 2018-12-04
Linux核心定義了list_head資料結構,欄位next和prev分別表示通用雙向鏈表向前和向後的指標元素。LIST——HEAD(list_name):建立新鏈表list_add(n,p):把n指向的元素插入p指向的特定元素之後list_add_tail(n,p),把n指向的元素插入到p指向的特定元素之前list_del(p):刪除p指向的元素list——empty(p) 檢查由第一個元素的地址p所指向的鏈表是否為空白
Time of Update: 2018-12-04
一、進程狀態進程描述符中的state欄位描述了進程當前所處的狀態,它有一組標誌組成,每個標誌描述一種可能的進程狀態,這些狀態是互斥的,也就是說在同一時刻,只能設定一個狀態1)運行狀態:TASK_RUNNING,進程要麼在CPU上運行,要麼準備執行2)可中斷的等待狀態:TASK_INTERRUPTIBLE,進程被掛起,直到收到某個訊息,喚醒該進程3)不可中斷的等待狀態:TASK_UNINTERRUPTIBLE
Time of Update: 2018-12-04
進程描述符中的state欄位描述了進程當前所處的狀態,它有一組標誌組成,每個標誌描述一種可能的進程狀態,這些狀態是互斥的,也就是說在同一時刻,只能設定一個狀態 一、運行狀態:TASK_RUNNING,進程要麼在CPU上運行,要麼準備執行二、可中斷的等待狀態:TASK_INTERRUPTIBLE,進程被掛起,直到收到某個訊息,喚醒該進程三、不可中斷的等待狀態:TASK_UNINTERRUPTIBLE
Time of Update: 2018-12-04
一.填空題:1. 在Linux系統中,以 檔案 方式訪問裝置 。2. Linux核心引導時,從檔案 /etc/fstab 中讀取要載入的檔案系統。3. Linux檔案系統中每個檔案用 i節點 來標識。4. 全部磁碟塊由四個部分組成,分別為引導塊 、專用塊 、 i節點表塊 和資料存放區塊。5. 連結分為: 永久連結 和 符號連結 。6. 超級塊包含了i節點表 和 空閑塊表 等重要的檔案系統資訊。7. 某檔案的許可權為:d-rw-_r--_r--,用數值形式表示該許可權,則該八位元為: 644
Time of Update: 2018-12-04
1、Linux下的時間 1.1、Linux下的時間系統 1.2、Linux下與時間有關的資料結構2、獲得目前時間3、延時4、定時器 4.1、alarm 4.2、setitimer1、Linux下的時間1.1、Linux下的時間系統 UNIX及Linux的時間系統是由"新紀元時間"Epoch(電腦時代開端)開始計算起,單位為秒,Epoch則是指定為1970年1月1日淩晨零點零分零秒,格林威治(GMT)時間。 目前大部份的UNIX系統都是用32位來記錄時間,正值表示為1970
Time of Update: 2018-12-04
最近在接觸核心方面的東西,遇見如下一段代碼:struct list_head { struct list_head *next, *prev; //雙向鏈表};#define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name)#define
Time of Update: 2018-12-04
密碼編譯演算法: 對稱式加密演算法: DES、IDEA、RC2、RC4、AES、Skipjack ...... 非對稱式加密演算法: RSA、DSA、DiffieHellman、PKCS、PGP ...... 單向的HASH演算法屬於報文摘要演算法,雖然有些也出自OpenSSL庫。 命令操作: 1、產生普通私密金鑰:[weigw@TEST src]$ openssl genrsa -out privatekey.key 1024Generating RSA private
Time of Update: 2018-12-04
1,在自己的終端下grub-md5-crypt ,在出現的Passwd:提示時候輸入你的密碼(注意,在Linux下輸入密碼都是不顯示的),Retype password:時再次輸入密碼。我們這裡用123456來示範。[zyj@fedora13 ~]$ grub-md5-crypt Password: Retype password:
Time of Update: 2018-12-04
GNU的screen工具是一個很好的工具.如果需要經常或者大量的登入伺服器進行操作,screen或許還是一個不可或缺的好工具.本文主要想探討的主要問題是screen的配置指令碼中如何自由定製狀態列的內容.也即hardstatus的內容定製.本文所討論的問題,對於screen工具的使用來說,基本沒有什麼指導作用,甚至可以認為是一個很無聊的問題,所以如果你是想找如何入門使用screen的話,那麼,沒有必要繼續往下看了,可以參考網上很多同志的其他的介紹文檔.對於使用putty來串連伺服器的同志來說,一
Time of Update: 2018-12-04
root許可權登入後獲得/etc/shadow檔案之後文本開啟shadow 檔案:在linux系統中, /etc/shadow 檔案存放著使用者的密碼雜湊值。shadow中存放的密碼密文格式如下:$id$salt$encrypted其中id是指使用的雜湊演算法:可取如下值: ID | Method-------------------------- 1 | MD5 2a | Blowfish (not in mainline glibc; added in some
Time of Update: 2018-12-04
物聯網的發展,嵌入式節點具備3G無線上網功能是個必不可少的功能,奈何網上的資料多數以WCDMA為主,電信的evdo資料不是很多,筆者經過一番實驗,搜尋了一些網站,終於在開發板上,將EVDO模組(中興MC8630)成功撥接,現分享步驟如下:3G模組的速度非常快,所以普通的UART串口已經不能滿足速度,所以會通過晶片的USB口來進行資料互動。硬體串連這裡就忽略了,有興趣的朋友可以買個usb口的3G模組。在Linux下,我們首先要裁剪核心,是它支援usb功能,並且支援usb轉串口功能,因為Linux系