Time of Update: 2018-12-06
Macbuntu 是Ubuntu Linux下的一款變身利器。以下是 Macbuntu 官網 對自己的一段說明 Macbuntu - Mac OS X Transformation Pack. Similar to Mac4Lin but dedicated to Ubuntu Linux. It can also be used in other OS based on Debian/GTK. Package includes all necessary system components
Time of Update: 2018-12-06
一、Linux下常用命令:檔案與目錄操作basename:從檔案名稱中去掉路徑和副檔名cd:切換當前工作目錄到指定目錄chgrp:改變檔案所屬組chmod:改變檔案的許可權chown:改變檔案的所有者和組cp:複製檔案或目錄dd:複製檔案並轉換檔內容file:確定檔案類型find:在指定目錄下尋找檔案並執行指定的操作ln:建立檔案連結locate/slocate:快速定位檔案的路徑ls/dir/vdir:顯示目錄內容mkdir:建立目錄mv:移動或重新命名檔案pwd:顯示當前工作目錄rename
Time of Update: 2018-12-06
在linux下用rm刪除檔案,一不小心就會幹壞事……譬如不小心把系統檔案刪光了,所以萌生一個想法,能不能把rm刪除動作綁定到垃圾箱,這樣萬一刪錯了還能找回來。上網搜了一下,發現已經有人幹過這事,轉載過來供大家參考。原帖在這 http://www.webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html1. Install trash-cliThis package provides a command line
Time of Update: 2018-12-06
文章出處:http://www.limodev.cn/blog作者連絡方式:李先靜 <xianjimli@gmail.com> 昨天看了一下介紹藍芽協議文檔,今天索性對照看了看kernel裡的代碼(bluez),這裡記點筆記,還是繼承了老毛病,只關注整體流程而忽略細節,先瞭解個大概,等真正需要時再仔細分析。 net/hci_core.c HCI
Time of Update: 2018-12-06
1 載入藍芽模組 需要載入的模組有bluetooth、 hci_uart、 l2cap、 rfcomm、 sco、 bnep,位於/lib/modules/`uname-r`/kernel/net/bluetooth 和/lib/modules/`uname -r`/kernel/driver/bluetooth注:可以使用 bt_ins.sh 與 bt_rm.sh 兩個指令碼,進行藍芽模組的添加與刪除#!/bin/bash#name:
Time of Update: 2018-12-06
------------- Auto Configuration --------------------PCI provides two separate 32-bit or 64-bit address spaces corresponding to the memory and I/O port address spaces of the x86 processor family. Addresses in these address spaces are assigned by
Time of Update: 2018-12-06
Linux核心幾個重要跟時間有關的名詞或變數,底下將介紹HZ、tick與jiffies。HZLinux核心每隔固定週期會發出timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次timer interrupts。舉例來說,HZ為1000,代表每秒有1000次timer interrupts。HZ可在編譯核心時設定,如下所示 (以核心版本2.6.20-15為例):adrian@adrian-desktop:~$ cd
Time of Update: 2018-12-06
Linux可以讓多個裝置共用一個中斷號,而且共用同一中斷的中斷處理常式形成一個鏈表,核心對每個中斷處理常式都要執行,那麼,沒有產生中斷的裝置本該靠邊站的,它的中斷處理常式也被執行了?到底是怎麼會事?實際上:共用的處理常式與非共用的處理常式在註冊和運行方式上比較相似,但差異主要有以下三處:* request_irq()的參數flags必須設定SA_SHIRQ標誌。*
Time of Update: 2018-12-06
其實build kernel很簡單,首先參考kernel原始碼目錄下的README檔案,基本上是這麼幾步:1. make mrproper -- 注意這一步走過之後,.config會被恢複成預設設定2. make menuconfig -- 在這裡面check配置項,決定哪個開啟,哪個關閉。哪些driver編譯成module,哪些直接編譯進核心3. make -- 首先會編譯核心,完成後會自動編譯modules幾個Tips:1.
Time of Update: 2018-12-06
getopt函數可以用來非常方便的處理命令列參數。函數的原型是:int getopt(int argc, char * const argv[], const char *optstring);以下是關鍵點:1. argc, argv就是main函數的那兩個。optstring是我們給出的格式字串,特別的是格式字串中的:表示該command option後面是有一個value的,比如:./xtop -n 20 -i 2
Time of Update: 2018-12-06
在windows下,tomcat啟動之後有一個黑視窗,很容易看到System.out.println或ex.printStackTrace這樣的函數輸出,非常方便調試,但是在linux下,沒有這樣的視窗,所以給我們調試帶來了一定難度。 不過其實tomcat是有地方可以讓我們看到這些輸出的,那就是logs目錄下的catalina.out檔案!!這個檔案會存放所有的log資訊和print資訊,所以,再也不用痛苦看不到調試輸出資訊了,看這個檔案就OK了
Time of Update: 2018-12-06
1. ld的-static開關加上之後,就可以編譯出一個靜態連結的程式了。要注意該程式用到的所有的庫,都要有相應的.a版本,編譯的時候作為一個source file放到命令列中即可。光有庫的.so沒用,需要重新編譯該庫,讓它產生.a檔案。2. 要注意ld的一個特性:當ld尋找一個symbol的時候,ld只會往後尋找,不會往前尋找。比如程式以來兩個庫A和B,而A庫又調用了B庫中的函數,那
Time of Update: 2018-12-06
效能測試中,Tester程式由start.sh指令碼來啟動。現在的需求是:使用者按下ctrl-c,程式能graceful退出,從而不用重啟板子。問題 是:ctrl-c產生訊號SIGINT,但是這個訊號是傳遞給指令碼進程的,不是傳遞給Tester進程的。所以這裡就存在一個訊號傳遞的問題。解決辦法如 下: 1. 在指令碼中加入代碼: Code: Select allforward_sigint(){ # check out the tester's pid
Time of Update: 2018-12-06
共用庫的初始化和~初始化函數分析 轉載時請註明出處:http://blog.csdn.net/absurd/ Win32下可以通過DllMain來初始化和~初始化動態庫,而Linux下則沒有與之完全對應的函數,但可以通過一些方法類比它的部分功能。有人會說,很簡單,實現_init/_fini兩個函數就行了。好,我們來看看事實是不是這樣的。 很多資料上都說可以利用_init/_fini來實現,而我從來沒有測試成功過,原因是這兩個函數都已經被gcc佔用了。比如: test.c Code:
Time of Update: 2018-12-06
由於Linux對線程實現的一些特殊性,所以會給我們理解線程及其相關的一些函數帶來疑惑,這裡做個解答: 1、關於sleep 很多書籍上都說sleep這個系統調用會使整個進程sleep,而不單是sleep一個線程。這樣說沒錯,但我們要是在Linux下寫一個多線程 的程式,在一個線程中調用sleep,你會發現其他線程照樣運行,這是怎麼回事呢?這就是由於Linux下的線程,其實線程的註冊、銷毀等工作是在
Time of Update: 2018-12-06
crypt函數用來加密,目前Linux平台上加密的方法大致有MD5, DES, 3 DES 在RedHat平台上MD5和DES用的多一些。crypt函數的原形是: char *crypt(const char *key, const char *salt); key就是我們要傳入的明文,salt是我們指定用來加密的密鑰,傳回值就是加密後的密文。 關鍵就是這個密鑰salt,這裡通過我們的實驗,發現:
Time of Update: 2018-12-06
1. 首先在VTK的網站:http://www.vtk.org 上可以下載到VTK的源碼(VTK不提供Precompiled binary版本,所以,VTK的安裝都必須要手動自己編譯),Down下來之後解開。VTK的網站上還有VTK Data下載,這是VTK Example程式運行時所需要的資料檔案,如果我們想在安裝完VTK後做一些示範和測試,那麼就需要下載這個包。我的意見是不用下載了,VTK安裝完成 後,我們用VTK網站上提供的兩個Example
Time of Update: 2018-12-06
本文介紹了如何用訊號來調試一個程式。眾所周知,在Linux編程中,經常會遇到程式segment fault或其他類似的錯誤,這些錯誤比較難調試,本文就介紹了用訊號來調試這種錯誤的方法。 當一個程式訪問一個未分配記憶體的地址時或其他情況時,會產生segment fault錯誤,此時程式會產生一個SIGSEGV的訊號,所以,我們的程式可以捕獲這個訊號,並列印出是哪條指令導致了該錯誤,及產生該錯誤時CPU各寄存器的值,從而定位出問題所在。 本文舉了兩個很好的例子,一個是對SIGILL訊號的處理,比如,
Time of Update: 2018-12-06
1. 本章講解概念,沒有太多技術要點。 2. LVS-NAT Cluster. 這是一種基於LVS的load balance的叢集構架方式。一堆伺服器從一台NAT Server出去,所有的請求和返回資訊都要經過NAT Server,所以這台NAT Server是瓶頸,後面會詳細介紹。 3. LVS-DR Cluster. DR means "Direct Routing",這種LVS load
Time of Update: 2018-12-06
1. 本章詳細介紹stonith,當兩台伺服器都嘗試要去接管資源的時候,就會出現split-brain的情況,當“心跳線”出現問題的時候,最容易出現這 種情況。這種情況是很致命的,他可能導致服務無法正常運行,更壞的是,有可能導致資料遭破壞,因為此時兩台伺服器都可能對一個資料來源進行讀寫,這就很有可 能導致問題,就算兩台伺服器都只會寫各自的存放裝置,但也會導致兩台伺服器的儲存內容不一致,所以這種情況要盡量避免,heartbeat給出的解決方案 就是--stonith 2.