Time of Update: 2018-07-26
最近看了一點關於核心的書籍,有些收穫,現在拿出來與大家分享,不當之處請指教 模式轉換 linux在引導的過程的前半段運行於即時模式,程式運行使用的是物理地址,如0X9000,指的就是物理地址的0X9000。後半段轉入保護模式使用的是虛擬位址。虛擬位址轉化的開關在CR1寄存器,虛擬位址轉化的基礎是程式建立了頁目錄,頁表機制。就是虛擬位址通過頁目錄,頁表映射到相應的物理地址。 虛擬位址
Time of Update: 2018-07-26
核心調試 1.列印調試,發行時去除 DPDEBUG開關 2.調試器 3.查詢 並發和競態 if(copy_from 1.訊號量 不能在核心外使用,進程不能得到就到睡眠隊列,再喚醒 init_MUTEX 初始化互斥鎖值為1 2.自旋鎖 spin_lock_init(x) spin_lock(x) spin_trylock(x)
Time of Update: 2018-07-26
https://blog.csdn.net/liuxingen/article/details/47057539 Linux的system()和popen()差異 1. system()和popen()簡介 在linux中我們可以通過system()來執行一個shell命令,popen()也是執行shell命令並且通過管道和shell命令進行通訊。
Time of Update: 2018-07-26
剛才遇到這個問題。。。網上找了很多的文章,試了N種辦法都沒有成功~ 後來靈感一閃,在啟動過程按上下鍵,出現了選擇核心版本的介面(不按不顯示), 發現有兩個版本,因為預設會進去比較新的版本,所以我手動選擇了第二個,居然成功起來了。 問題就找到了,由於某些不知道的操作,導致啟動時多了一個核心選項,那麼刪除問題核心或者改變預設啟動就可以了。 我選擇刪除無用核心, 先用 rpm -qa|grep kernel 查看全部核心,居然有6,7個,找到問題核心,
Time of Update: 2018-07-26
autotools是個系列工具,主要由autoconf、automake、perl語言環境和m4等組成,所包含的命令有5個: 下圖是autotools使用的流程圖: autotools的安裝: apt-get install autoconf automake autotools-dev m4
Time of Update: 2018-07-26
在調試機器的時候發現系統時間和本地時間一直對不上,開始還以為是時間有誤, 然後尋找到使用ntpdate -u 211.115.194.21 同步了一下網路時間,不過還是不對,對比之後發現和本地只見總是相差八個小時, 再在網上找就找到是時區的問題,機器上使用的是UTC,需要更正為GMT的。在網上找了一下,都是複製粘貼,內容有點殘缺,改完之後就算是在這裡記錄一下了。 先使用date查看時間,可以看到尾碼帶的是UTC時間,比如這樣:Tue Jan 17 08:3
Time of Update: 2018-07-26
Linux系統中分為幾大模組:進程調度、記憶體管理、進程通訊、檔案系統、網路模組;各個模組之間都有一定的聯絡,就像蜘蛛網一樣,所以這也是為什麼Linux核心那麼難理解,因為不知道從哪裡開始著手去學習。很多人會跟著系統上電啟動
Time of Update: 2018-07-26
安裝配置完sonar後就需要與項目在用的Jenkins進行整合了,Jenkins和Sonar整合的原理大概是這樣的,Jenkins在其外掛程式管理中心,下載sonar外掛程式並進行配置,與sonar關聯上。然後Jenkins在完成一次整合構建後,就會通知sonar進行原始碼分析的操作。大家都知道Jenkins在構建的過程中是有從SVN下載源碼這一步操作的,而sonar就是對Jenkins下載好的源碼進行解析,將代碼的品質等各種參數以圖形化的頁面展示給使用者。
Time of Update: 2018-07-26
1. 安裝ant 下載apache-ant-1.9.4-bin.tar.gz,採用SSHSecureShellClient-3.2.9.exe將其從windows下傳輸到虛擬機器下/usr/local下 tar zxpvf apache-ant-1.6.2.tar.gz ln -s apache-ant-1.6.2 ant 兩條命令將其安裝完畢 2. 需要在redhat6.2 下面配置環境變數 3. 第一種方法:export
Time of Update: 2018-07-26
使用者可以通過兩種方式使用系統調用: 第一種方式是通過C庫函數,包括系統調用在C庫中的封裝函數和其他普通函數。(如write,read,kill,mkdir等函數) 第二種方式是使用_syscall宏。2.6.18版本之前的核心,在include/asm-i386/unistd.h檔案中定義有7個_syscall宏,分別是: _syscall0(type,name) _syscall1(type,name,type1,arg1) _syscall2(type,name,type1
Time of Update: 2018-07-26
關於Ubuntu中使用經典案頭的方法;首先開啟終端,在終端中輸入:sudo apt-get install gnome-panel,安裝好了之後,登出在登入介面選擇如下圖: 選擇GNOME classic(NO effects),輸入密碼進入之後,就是成了經典介面了; 另外:附上設定root密碼命令:sudo passwd root ,這個命令可以設定root使用者密碼。 二,實現遠程登入Linux系統,要在Ubuntu中安裝vncserver服務,
Time of Update: 2018-07-26
首先,你可以試著輸入git,看看系統有沒有安裝Git: $ gitThe program 'git' is currently not installed. You can install it by typing:sudo apt-get install git像上面的命令,有很多Linux會友好地告訴你Git沒有安裝,還會告訴你如何安裝Git。 如果你碰巧用Debian或Ubuntu Linux,通過一條sudo apt-get install
Time of Update: 2018-07-26
1. api介面 請求gpio口 int gpio_request(unsigned gpio, const char *label) 釋放gpio口 void gpio_free(unsigned gpio) 判斷gpio索引號是否有效(gpio口是否存在) int gpio_is_valid(int number); 設定輸出: int gpio_direction_output(unsigned gpio, int
Time of Update: 2018-07-26
1. 先建立所需要的群組 ( vi /etc/group ); 2. 將 /etc/group 與 /etc/gshadow 同步化 ( grpconv ); 3. 建立帳號的各個屬性 ( vi /etc/passwd ); 4. 將 /etc/passwd 與 /etc/shadow 同步化 ( pwconv ); 5. 建立該帳號的密碼 ( passwd accountname ); 6. 建立使用者家目錄 ( cp -a /etc/skel
Time of Update: 2018-07-26
1. kill 作用:根據進程號殺死進程 用法: kill [訊號代碼] 進程ID 舉例: [root@localhost ~]# ps auxf |grep httpd 注意:kill -9 來強制終止退出 舉例 [root@localhost ~]# ps aux |grep gaim 或者 [root@localhost ~]# pgrep -l gaim 5031 gaim 5031 gaim [root@localhost ~]
Time of Update: 2018-07-26
這幾天一直看到有粉絲向我要Linux的學習教程,這不今天就給大家找到了。需要的同學看文末擷取方式哦。 熟練的掌握和使用下面這些命令會提高大家測試工作的效率。 1. 命令: Find 搜尋指定目錄下的檔案,從開始於父目錄,然後搜尋子目錄。 注意: -name‘選項是搜尋大小寫敏感。可以使用-iname‘選項,這樣在搜尋中可以忽略大小寫。(*是萬用字元,可以搜尋所有的檔案;‘.sh‘你可以使用檔案名稱或者檔案名稱的一部分來制定輸出結果)
Time of Update: 2018-07-26
一、為什麼要使程式行 我們計算的程式都是周期很長的,通常要幾個小時甚至一個星期。我們用的環境是用putty遠端連線到日本Linux伺服器。所以使程式在後台跑有以下三個好處: 1:我們這邊是否關機不影響日本那邊的程式運行。(不會像以前那樣,我們這網路一斷開,或一關機,程式就斷掉或找不到資料,跑了幾天的程式只能重頭再來,很是煩惱) 2:不影響計算效率 2:讓程式在後台跑後,不會佔據終端,我們可以用終端做別的事情。 二、怎麼樣使程式在後台執行
Time of Update: 2018-07-26
最近在核心頻繁使用了自旋鎖,自旋鎖如果使用不當,極易引起死結,在此總結一下。 自旋鎖是一個互斥裝置,它只有兩個值:“鎖定”和“解鎖”。它通常實現為某個整數值中的某個位。希望獲得某個特定鎖得代碼測試相關的位。如果鎖可用,則“鎖定”被設定,而代碼繼續進入臨界區;相反,如果鎖被其他人獲得,則代碼進入忙迴圈(而不是休眠,這也是自旋鎖和一般鎖的區別)並重複檢查這個鎖,直到該鎖可用為止,這就是自旋的過程。“測試並設定位”的操作必須是原子的,這樣,即使多個線程在給定時間自旋,也只有一個線程可獲得該鎖。
Time of Update: 2018-07-26
原文地址:http://blog.csdn.net/wirelessqa/article/details/8968381 一. 管道命令 管道命令操作符是:”|”,它只能處理經由前面一個指令傳出的正確輸出資訊,對錯誤資訊資訊沒有直接處理能力。然後,傳遞給下一個命令,作為標準的輸入. 管理命令的輸出說明: 【指令1】正確輸出,作為【指令2】的輸入 然後【指令2】的輸出作為【指令3】的輸入 ,【指令3】輸出就會直接顯示在螢幕上面了。
Time of Update: 2018-07-26
在Linux中有很多的壓縮公用程式,本文主要介紹gzip/gunzip/zcat、bzip2/bunzip2/bzcat、tar、zip/unzip。 為了方便示範。我們首先建立一個名為“test.txt”的文字檔,其內容如下所示: Hello!This is a test!End of file. 1. gzip/gunzip/zcat gzip用於壓縮普通檔案;gunzip用於解壓縮 gzip 所建立的壓縮檔;gcat用於查看gzip建立的壓縮檔源內容。