Linux下 JNI的使用 學習Android其中涉及對JNI的使用,對於這種跨語言的調用真沒有見過,Java也都是最近才學的更別說對JNI的瞭解了,JNI的使用對於Android來說又是十分的重要和關鍵。那麼到底Java到底是如何調用C/C++的,通過網路達人的總結中學習,自己也順便總結一下這個學習的過程。什麼是JNI JNI是Java native
核心與作業系統: 核心是作業系統的核心部分,包含了系統啟動並執行核心過程,決定系統的效能,作業系統啟動核心被裝入到RAM中;作業系統與底層硬體裝置互動和為運行應用程式提供執行環境。Linux核心與微核心比較: 微核心:核心只需要一個很小的函數集,通常包括幾個同步原語,一個簡單的發送器和處理序間通訊機制。運行在微核心之上的幾個系統進程實現系統級功能:記憶體配置,裝置驅動程式……完全的模組化進程。任何操作系統層都是獨立的程式模組,通過模組化的方法定義明確清晰的軟體介面與其它層互動。
一 進程與線程 進程就是處於執行期的程式,包含了獨立地址空間,多個執行線程等資源。 線程是進程中活動的對象,每個線程都擁有獨立的程式計數器、進程棧和一組進程寄存器。 核心調度的對象是線程而不是進程。對Linux而言,線程是特殊的進程。二 進程描述符及任務結構 核心使用雙向迴圈鏈表的任務隊列來存放進程,使用結構體task_struct來描述進程所有資訊。1 進程描述符task_struct struct task_struct
轉自:http://www.cnblogs.com/zhy113/archive/2013/03/15/2960910.html 家在寫server的時候,不管server寫的是多麼健壯,還是經常出現core dump等程式異常退出的,但是一般情況下需要在無人為幹預情況下,能夠自動重新啟動,保證server程式能夠服務使用者。這時就需要一個監控程式來實現
Linux下編譯安裝原始碼無非就是三個步驟,./configure,make,make install第一步進入原始碼的目錄運行命令1 ./configure --prefix=安裝目錄
轉自:http://hyt19860117.love.blog.163.com/blog/static/127773729201042435553852/隨著人們生活水平的提高,我們用到的USB裝置也越來越多,但是Linux在硬體設定上仍然沒有做到完全隨插即用,對於Linux怎樣配置和使用他們,也越來越成為困擾我們的一大問題;本文的目地是使大家瞭解怎樣編製USB裝置驅動,為更好地配置和使用USB裝置提供方便;對於希望開發Linux系統下USB裝置驅動的人員,也可作為進一步學習USB驅動的大體架構
查看進程及子進程:ps -lax查看進程,以及父進程。找到自己需要查看的進程的pid,然後ps --ppid ****---------------------ps -ef |grep進程名ps -aux |grep 進程名ps --ppid xxxx ps -laxtop --------------------------得到進程的pid: ps -ef | grep process_name | grep -v "grep" | awk '{print $2}'查看進程的所有線程 #
轉自:http://zhangwenxin82.blog.163.com/blog/static/114595956201071934831530/進來分析libata模組,頗有所感,記錄如下,希望能對大家有所協助,同時也對自己的理解進一步深入。linux版本:linux-2.6.24.3註:因完全是個人理解,理解不當難免,懇請批評指正!!!!大家知道驅動程式在初始化sata controller後,
有時在進行目錄操作的時候,經常接觸到命令,於是就要翻手冊,或上網問狗狗哥了,這裡我把平時碰到的常用的不常用的都陸續列出來,供以後學習參考……一般規則:指令 選項 參數cd . .. rm -f -rfpwd /home/xing 使用者主目錄date caltouch 建立檔案 或更新時間mkdir rmdir -r -funame -n 主機名稱 -a詳細資料 系統 時間ls -la目前的目錄所以檔案 ls -l ll
在linux系統中經常會出現中文亂碼問題,主要是因為linux系統預設都是以utf8編碼方式的。於是具體問題就要具體分析了,從網上搜解決方案,或者自己修改設定檔,修改源碼…… 編輯器也是這樣,從windows下拷貝過來的檔案(基本是GBK編碼),用gedit開啟後需另存新檔utf-8格式,還要注意修改訪問的許可權,這樣就可以在linux正常下訪問了。但檔案比較多的話,這樣就太麻煩了,或許能用命令批量處理?等待以後進一步學習吧……
一、有時候系統不能掛載 windows 下的 ntfs 磁碟,這時就要手動掛載了,寫了一個簡單的指令碼:如果不知道自己磁碟編號的,可以輸入以下命令ls /dev/sda*這時可以看到例如 sda,sda1,sda2,sda5,sda6 之類的,其中編號4以前的是主要磁碟分割,4以後的是邏輯分區也可以用以下命令,查看各磁碟的詳細資料,df -h然後就可以用以下指令碼掛載了(注意修改可執行許可權哦):#!/bin/bashecho "start working"#建立檔案夾,用於以後的掛載sudo
進程調度: 在可運行態進程之間分配有限處理器時間資源的核心子系統。一 調度策略1 進程類型 I/O消耗型進程:大部分時間用來提交I/O請求或是等待I/O請求,經常處於可運行狀態,但已耗用時間短,等待請求過程時處於阻塞狀態。如互動式程式。 處理器消耗型進程:時間大都用在執行代碼上,除非被搶佔否則一直不停的運行。 綜合型:既是I/O消耗型又是處理器消耗型。 調度策略要在:進程響應迅速(回應時間短)和最大系統利用率(高輸送量)之間尋找平衡。2
/etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.修改此檔案對所有使用者有效。並從/etc/profile.d目錄的設定檔中搜集shell的設定./etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash
在串口編程模式下,open未設定O_NONBLOCK或O_NDELAY的情況下。c_cc[VTIME]和c_cc[VMIN]映像read函數的返回。VTIME定義等待的時間,單位是百毫秒(通常是一個8位的unsigned
我的開發環境是vmware,fedora14最近配置QTE的環境要編譯tslib和qte,中間遇到了很多問題,搗鼓了一天終於弄好了。我用是tslib-1.4,我的交叉編譯工具是arm-none-linux-gnueabi(注意這裡不是常用的arm-linux-gcc)。所以方法有所不同。arm-none-linux-gnueabi的安裝方法我就不說了。1.開啟終端進入tslib的解壓縮目錄2.輸入命令1 [root@localhost ~]#./autogen.sh2
在Linux上要擷取進程的資訊,需要讀取/proc/進程id/中的檔案,如果只是讀一個進程還好,如果要讀取很多進程,或者說像進程管理器一樣要擷取所有進程的資訊就有點麻煩了。總不能按1-1000一個一個的遍曆,效率太低。此時可以使用Linux中對目錄進行操作的函數opendir(),readdir()。轉自http://www.liweifan.com/2012/05/13/linux-system-function-files-operation/首先說說DIR這一結構體,以下為DIR結構體的定
struct timer_list :軟體時鐘,記錄了軟體時鐘的到期時間以及到期後要執行的操作。具體的成員以及含義見表3-1。 struct tvec_base :用於組織、管理軟體時鐘的結構。在 SMP 系統中,每個 CPU 有一個。具體的成員以及含義參見表3-2。 表3-1 struct timer_list 主要成員網域名稱 類型 描述entry struct list_head 所在的鏈表expires unsigned
轉自:http://www.cnblogs.com/sunleecn/archive/2011/11/01/2232210.htmlwhereis <程式名稱>尋找軟體的安裝路徑-b 只尋找二進位檔案-m 只尋找協助檔案-s 只尋找原始碼-u 排除指定類型檔案-f 只顯示檔案名稱-B <目錄> 在指定目錄下尋找二進位檔案-M <目錄> 在指定目錄下尋找協助檔案-S <目錄> 在指定目錄下尋找原始碼locate
上篇: 最近從學長那裡淘到了一套單片機開發板,他給我的開發工具,驅動等都是 windwos 下的,而我一直用的是 linux……花了一個周末的時間,終於找到了一個合適的解決方案。 首先,我問了一下狗狗哥,發現 linux 下 開發51單片機的資料並不多,倒是 arm 和 avr 的支援很完善,但還是零星有點資料的。我用的是 STC89C52RC,大部分說的是使用 sdcc 編譯, gSTC-ISP 燒寫程式,hextobin
父進程調用子進程,可以用的命令date,who,pwd,ls,等無參數的#include <stdio.h>#include <sys/wait.h>#include <string.h>#define MAXLINE 20int main(void){char buf[MAXLINE]; /* from apue.h */ pid_t pid;int status; printf("%% "); /*