Time of Update: 2018-12-05
直接通過程式來分析,理論不說,網上一大堆:#include <stdio.h>void test(void){ printf("%s\n","Hello");}int main(int argc, char *argv[]){ test(); return 0;}下面來看看地址的轉移過程 ,gcc編譯後對a.out 進行objdump 反組譯碼結果如下(刪除一部分彙編代碼):00000000004004c4 <test>: 4004c4:55
Time of Update: 2018-12-05
核心定時器編程實質上,時鐘中斷處理常式執行Update_process_timers()函數,該函數調用run_local_timers()函數,這個函數處理TIMER_SOFTIRQ非強制中斷,運行當前處理器上到期的所有定時器。Linux核心所提供的用於操作定時器的資料結構和函數如下:1、time_list //在linux核心中,time_list結構體的一個執行個體對應一個定時器。 struct timer_list{ struct
Time of Update: 2018-12-05
//字元裝置的結構體struct xxx_dev_t{struct cdev cdev;...........}xxx_dev;//字元裝置模組的載入和卸載函數static int __init
Time of Update: 2018-12-05
//tasklet使用模板/*定義tasklet和底半部函數相關聯*/void xxx_do_tasklet(unsigned long);DECLARE_TASKLET(xxx_tasklet,xxx_do_tasklet,0);/*中斷處理底半部*/void xxx_do_tasklet(unsigned long){ ............}/*中斷處理頂半部*/irqreturn_t xxx_interrupt(int irq,void *dev_id,struct pt_regs *
Time of Update: 2018-12-05
用smb實現Linux和XP區域網路共用文中syste_username是建立給別人從網路訪問你的帳號,請注意修改。sudo apt-get installsambasudo apt-get installsmbfs設定訪問帳號添加一個系統帳戶為samba使用者sudo smbpasswd -asystem_usernamesudo gedit/etc/samba/smbusers在建立的smbusers檔案裡面加入system_username =
Time of Update: 2018-12-05
linux 中退出ssh後,將中斷正在執行的命令,就算將任務放到後台執行,下次再進入ssh的時候,也看不到過程中輸出的資訊。screen通過類比多視窗,當你退出ssh時,並不影響在screen中執行的任務,下次登陸ssh,只需要切換到指定的screen視窗,即可看到任務執行的過程和結果。玩過windows伺服器的可以體會這個的方便。 centos 通過yum install screen 直接安裝。建立一個名為windows1的screen 視窗:]# screen -S
Time of Update: 2018-12-05
CVS使用劄記-Windows的錯、linux的錯?偵錯工具時發現總是出現段溢出錯誤,即使是在程式的入口處也是如此(WinMain這個入口已經被我們重定義,因此,這裡講的入口處是指WinMain中的第1行代碼)。耗費多個小時之後,不得已請教高手。高手亦調試良久,百思百試,猜想可能是使用的一個文字檔出錯!刪除之,然後重新用WinCvs從CVS伺服器上CheckOut,繼續出現段錯誤!直接從linux伺服器上傳,調試通過!將這個文字檔重新提交到CVS伺服器,然後再Update到本地,調試失敗!劄記:
Time of Update: 2018-12-05
Linux下的Source Insight+Ubuntu 10.04使用Wine安裝Source 轉自:http://bbs.ednchina.com/BLOG_ARTICLE_2097734.HTM Linux下的Source Insighthttp://rogerer.javaeye.com/blog/755346 在網上看到一朋友寫了一篇推薦Linux下代碼閱讀工具Source Insight 。我想更細化一下,也做做筆記,方便日後使用。方法是:wine +
Time of Update: 2018-12-05
這是ubuntu上的方法:先解除root鎖定,為root使用者佈建密碼 開啟終端輸入:sudo passwd Password: <--- 輸入你目前使用者的密碼 Enter new UNIX password: <--- 新的Root使用者密碼 Retype new UNIX password: <--- 重複新的Root使用者密碼 passwd:已成功更新密碼
Time of Update: 2018-12-05
linux下使用ipcs -a來查詢當前系統的IPC對象資訊[crazybaby@localhost ~]$ ipcs -a------ Shared Memory Segments --------key shmid owner perms bytes nattch status 0x00000000 65536 crazybaby 600 393216 2 dest
Time of Update: 2018-12-05
進程可以說是OS的最基本的構件,因為有了進程才有了 偽並行 ,所謂偽並行是指 多道程式之間進行快速切換,以達到多任務處理的能力.更細緻的說 是在 就緒態, 運行態 和 阻塞態之間的轉換 .Running State -> Blocking State: 可能是進程發生IO請求,比如一個進程等待另一個進程提供輸入時,或者等待來自另一個進程的資訊時 ...Running State -> Ready State:
Time of Update: 2018-12-05
由於進程都有自己的私人地址空間,只能由自己來訪問,那就意味著其它進程不能訪問這個進程的地址空間,下文將用通俗的話和圖解細說進程間是怎麼通訊的。共用記憶體是linuxIPC通訊最快的,基本原理是:多個進程共用一個實體記憶體(實體記憶體映射到共用此記憶體的進程地址空間)(公用的),看:一個進程向共用記憶體中寫入資料,共用這塊記憶體的進程可以立即看到,在共用的時候 資料是一直儲存在共用記憶體中的,並沒有寫入資料到檔案,在解除映射的時候就會把資料寫入檔案,
Time of Update: 2018-12-05
1、在配置Linux 編譯選項時,開啟相應的SPI 選項,如下所示 -> Device Drivers -> SPI support SPI support *** SPI Master Controller Drivers *** -*- Bitbanging SPI master <*> Samsung S3C24XX series SPI < > Samsung S3
Time of Update: 2018-12-05
開發環境:Winxp(主機)+ VisualBox +fedora9(虛擬機器2.6.25.4核心)功能: globalmem字元裝置架構分析(支援2個裝置),裝置檔案動態建立#include <linux/module.h>#include <linux/types.h>#include <linux/fs.h>#include <linux/errno.h>#include <linux/mm.h>#include
Time of Update: 2018-12-05
開始GeekOS之旅的時候,一開始就碰到了小麻煩,在自己64位的Fedora上編譯GeekOS的時候報如下錯誤:geekos/lowlevel.o: could not read symbols: File in wrong format斷定是平台問題.再去官網看了下:GeekOS is a tiny operating system kernel for x86
Time of Update: 2018-12-05
嵌入式學習步驟一:Linux 基礎1、熟悉:①安裝Linux 作業系統②Linux 啟動過程詳解③Linux 檔案系統④Linux 常用命令2、認識:①Linux 服務能夠獨立安裝②Linux 作業系統能夠熟練使用③Linux 的基本命令3、設定:①Linux 的常用服務、安裝Linux 作業系統②Linux 基本命令實踐4、使用:①Linux 的環境變數定製Linux 的服務②SHELL 編程基礎使用VI 編輯器或其他編輯器二:SHELL 基礎1、SHELL 簡介2、認識後台BASH
Time of Update: 2018-12-05
系統:ubuntu10.101、首先建立arm-linux-gcc交叉編譯環境: 下載arm-linux-gcc-3.4.1.tar.bz2 複製,解壓 #cd / 複製arm-linux-gcc-3.4.1.tar.bz2到當根目錄 #tar jxvf arm-linux-gcc-3.4.1.tar.bz2
Time of Update: 2018-12-05
我對Linux有強烈的好奇心,興趣;寫學習筆記會讓我有成就感;我記憶力實在不好。好吧,其實真正原因是:如果我能把自己學到的知識簡明扼要的講出來,寫出來,那便證明我真的學懂了我想學的知識。沒時間怎麼辦?將你想做的拆解為小任務、能擠出時間來完成的任務,一點點完成吧。有了時間和決心,不可能將變成不可避免。基於此,我給我要寫的Linux學習筆記列出了以下提綱:1、Linux? Ubuntu or CentOS? Linux安裝2、Bash shell?3、Linux檔案管理4、Linux常用命令5、Vi
Time of Update: 2018-12-05
Ubuntu:一、安裝JAVA。首先安裝java。因為Ubuntu裡面預設安裝了OpenJDK,可以先將其卸載。在終端輸入命令:sudo apt-get purge openjdk*。1、從sun首頁下載JDK for linux 版本。我下載的是jdk-6u37-linux-i586.bin。:點擊開啟2、切換到root使用者並切換到想要安裝的目錄。我的安裝目錄為/usr/lib/jvm/java。將下載的檔案拷貝到此目錄中。並使用命令:chmod a+x jdk-6u37-linux-i58
Time of Update: 2018-12-05
curl www.csdn.net請求csdn,返回csdn首頁的內容。如果想要將返回的內容寫入檔案,使用如下語句即可。curl www.csdn.net > file.html也可以使用如下語句:curl -o file.html www.csdn.net這個會顯示下載進度條,如果你不想讓它顯示下載進度條,則只需要再加上-s參數,即curl -s -o file.html www.csdn.net即可。如果想使用斷點續傳功能,則只需要加上-C參數。即:curl -C -o