Time of Update: 2018-07-31
參考 《Linux核心設計與實現》 *******************************************
Time of Update: 2018-07-31
說明:linux版本2.6.37.1 結合相關資料的概括和總結,在此做個記錄,有誤之處請網友指正,謝謝。 1.poll機制和等待隊列 應用程式層通過系統調用poll函數進入核心,核心執行相應的sys_poll函數。在sys_poll函數中調用do_sys_poll函數。do_sys_poll函數通過調用poll_initwait
Time of Update: 2018-07-31
Linux系統中的每個檔案和目錄都有訪問許可許可權,用它來確定誰可以通過何種方式對檔案和目錄進行訪問和操作。 檔案或目錄的訪問權 限分為唯讀,唯寫和可執行三種。以檔案為例,唯讀許可權表示只允許讀其內容,而禁止對其做任何的更改操作。可執行許可權表示允許將該檔案作為一個程式執行。文 件被建立時,檔案所有者自動擁有對該檔案的讀、寫和可執行許可權,以便於對檔案的閱讀和修改。使用者也可根據需要把存取權限設定為需要的任何組合。
Time of Update: 2018-07-31
寫緩衝命令——sync 在用reboot命令啟動unix系統後,系統提示出錯資訊,部分應用程式不能正常工作。經仔細檢查系統檔案,並和初始的正確備份進行比較,發現某些檔案確實被破壞了,翻來覆去找不到檔案遭破壞的原因,最後想到了寫緩衝命令——sync,在reboot前沒有運行sync命令,導致了系統檔案的改變而不能正常工作。 sync 命令運行 sync 子常式。如果必須停止系統,則運行 sync 命令以確保檔案系統的完整性。sync
Time of Update: 2018-07-31
/usr/bin/vi ~/.bashrc 配置jdk時候root環境下 亂修改了一些變數導致不可用。 內容: 1:source /etc/environment,轉到自己沒有修改過的PATH的檔案,然後ls命令就可以用了; 2:找到自己修改過的PATH檔案,我的是~/.bashrc檔案 3:vim ~/.bashrc,對錯誤的地方進行了修改 4:source ~/.bashrc,轉到已經修改過的檔案; 5:ls,可以正常使用。
Time of Update: 2018-07-31
linux基礎介紹 Linux基本操作 Linux系統有兩種操作方法,一種是使用滑鼠鍵盤等輸入裝置直接在圖形介面X Window上操作,另一種是通過輸入文本命令方式在控制台上操作。各種Linux發行版的操作遵循同樣的原則,所以操作方法非常相似。 Shell
Time of Update: 2018-07-31
為什麼需要切換使用者身份。 在日常工作中,盡量使用普通使用者帳號操作,當需要root許可權的時候再通過身份切換的方式切換至root管理員,這樣能保證系統的安全性。使用普通帳號的安全性主要體現在兩個方面: 防止因誤操作而刪除了系統重要檔案; 建立一些系統賬戶專門用來啟動某些服務,這樣即使該服務被攻陷,系統仍然是安全的。 下面介紹兩種Linux中切換使用者身份的方式。 身份切換方式一:su 該命令可以將身份切換至指定賬戶,但需要輸入該賬戶的密碼。 su [
Time of Update: 2018-07-31
其實要弄清楚 2>&1
Time of Update: 2018-07-31
ALSA Programming HOWTO 根據ALSA寫一簡單的PCM應用程式,我們首先需要為PCM裝置開啟一個控制代碼(Handle),然後指定PCM流的方向是播放或者是捕獲(playback還是capture),我們也可以配置一些我們想要的參數,比如,buffer size, sample rate, pcm資料格式等.因此我們就有了一個大體的架構了,簡單高效,如下: /* Handle for the PCM device */
Time of Update: 2018-07-31
Spark源碼學習——在linux環境下用IDEA看Spark源碼 本篇文章主要解決的問題 1.Spark在Linux下實驗環境的搭建 一、Spark源碼閱讀環境的準備 本文介紹的是Centos下的各項配置方法 下面列舉搭建此環境需要的各個組件: JDK的安裝(JDK1.7) Scala的安裝 SBT的安裝 Git的安裝 IDEA的安裝 最後根據安裝的環境,匯入源碼,進行源碼的學習,整片文章會講的非常細緻,適合新手學習參考。
Time of Update: 2018-07-31
【7.1】目錄與路徑 【7.1.2】目錄相關操作 1)特殊目錄列表: (1) 2)目錄操作命令,底下我們就來談一談幾個常見的處理目錄的命令吧: cd:變換目錄 pwd:顯示目前的目錄 mkdir:建立一個新的目錄 rmdir:刪除一個空的目錄 【荔枝】pwd 顯示目前的目錄 == print working directory pwd [-P] 顯示當前路徑,而非使用串連link路徑; (2)
Time of Update: 2018-07-31
ALSA是Advanced Linux Sound Architecture,進階Linux聲音架構的簡稱,它在Linux作業系統上提供了音頻和MIDI(Musical Instrument Digital Interface,音樂裝置數字化介面)的支援 更多內容可以參考這篇文章: http://mysuperbaby.iteye.com/blog/932729 下面是兩個簡單例子,分別實現播放、錄音的功能 /************************************
Time of Update: 2018-07-31
1. 在命令前插入空格export HISTCONTROL=ignorespace執行命令時 以空格開頭,則不會記錄到history2. 禁用當前會話的所有記錄export HISTSIZE=0history -cw都會清空history3. 只針對你的工作關閉記錄 set +o history執行命令 set -o history 4. 從記錄中刪除指定的命令history -d
Time of Update: 2018-07-31
linux mtr 命令詳解 一般在windows 來判斷網路連通性用ping 和tracert,ping的話可以來判斷丟包率,tracert可以用來跟蹤路由,在Linux中有一個更好的網路連通性判斷工具,它可以結合ping nslookup tracert 來判斷網路的相關特性,這個命令就是mtr [root@10.10.90.97 ~]#mtr -h usage: mtr [-hvrctglspni46] [--help] [--version]
Time of Update: 2018-07-31
使用file命令查看動態連結程式庫, 得到如下結果: #/usr/libx32$ file ../lib32/libgomp.so.1.0.0 ../lib32/libgomp.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=57ec5c404cd4f781ac341332437a6960784e4581,
Time of Update: 2018-07-31
舉例: 1.對某個檔案建立一個串連 [root@A ~]# ln -s /home/kk/ss.sh ~ #如果不寫目標地址,即在目前的目錄建接立連結 [root@A ~]# ls CentOS-Base.repo.oldboy anaconda-ks.cfg install.log install.log.syslog ss.sh此命令表示在家目錄下建立與源檔案同名的連結到/home/kk/ss.sh
Time of Update: 2018-07-31
1 inode簡介 理解inode,要從檔案儲存說起。 檔案儲存在硬碟上,硬碟的最小儲存單位叫做"扇區"(Sector)。每個扇區儲存512位元組(相當於0.5KB)。
Time of Update: 2018-07-31
linux核心必須使用GNU的GCC編譯器來編譯,而GCC提供了很多的C語言擴充,這些擴充對最佳化,目標代碼布局,更安全的檢查等提供了很強的支援。因此,核心代碼所使用的C文法並不完全符合ANSI C標準,只要有可能,核心開發人員總是要用到GCC提供的C語言擴充部分。 計算最大值和最小值: /* * ..and if you can't take the strict * types, you can specify one yourself. * * Or not use
Time of Update: 2018-07-31
select()函數的作用 系統調用select和poll的後端實現,用這兩個系統調用來查詢裝置是否可讀寫,或是否處於某種狀態。如果poll為空白,則驅動裝置會被認為即可讀又可寫,傳回值是一個狀態掩碼 如何使用select()函數?
Time of Update: 2018-07-31
Linux核心日誌開關 1、讓pr_debug能輸出 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -59,7 +59,7 @@ /* We show everything that is MOREimportant than this.. */ #define MINIMUM_CONSOLE_LOGLEVEL 1 /*Minimum loglevel we let people