Time of Update: 2018-12-05
1)system v系統共用記憶體用ipcs調試共用記憶體測試來源程式如下:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/ipc.h>#include <sys/shm.h>#include <sys/wait.h>void error_out(const char *msg){
Time of Update: 2018-12-05
http://www.ibm.com/Search/?q=%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98&v=16&en=utf&lang=zh&cc=cn&Search=%E6%90%9C%E7%B4%A2 linux處理序間通訊:共用記憶體(上)http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html 理解linux設定檔http://www.ibm
Time of Update: 2018-12-05
linux核心進程切換最重要的一個部分就是宏定義switch_to,下面從幾個方面來詳細講解一下:(1)內嵌彙編(2)memory 破壞描述符(編譯器最佳化)(3)進程切換的標誌是什嗎?(4)堆棧切換的標誌是什嗎?(5)為什麼switch_to 提供了三個參數?(6)彙編參數的傳遞? 帶著這幾個問題,先來大體瀏覽一下代碼 #define switch_to(prev, next, last) /do { / /* / *
Time of Update: 2018-12-05
無為論壇http://www.actcn.net/perl/ut/board_show.cgi?id=6&age=30http://cepage.vicp.net/index.phphttp://www.cngetit.comhttp://www.uplinux.comgooglehttp://www.google.com/linuxhttp://www.linux.comhttp://linux.tucows.com/http://www.linuxforums.orghttp://w
Time of Update: 2018-12-05
作者:劉洪濤,華清遠見嵌入式學院金牌講師。一、模組使用計數的背景知識模組是一種可以在核心運行過程中動態載入、卸載的核心功能組件。2.6核心中模組的命名方式為*.ko。模組在被使用時,是不允許被卸載的。編程時需要用“使用計數”來描述模組是否在被使用。二、2.4核心使用計數的實現方法2.4核心中,模組自身通過 MOD_INC_USE_COUNT,
Time of Update: 2018-12-05
1、先修改頂層Makefile,如下:ARCH ?= $ (SUBARCH)CROSS_COMPILE ?=改為:ARCH ?= armCROSS_COMPILE ?= arm-linux-2、執行make s3c2410_defconfig3、make uImage,首次編譯完核心用了4分鐘,尾部出現如下資訊: LD
Time of Update: 2018-12-05
這幾天,突然發現移植好的s3c2410的串口2在linux系統下竟然不能用,趕緊查了很多資料,發現,若要在linux系統下是用s3c23410的串口2 ,需要修改核心,把s3c2410的串口2配置成普通的串口。 1.修改arch/arm/mach-s3c2440/mach-smdk2440.c中的uart2的配置,修改後如下: static struct s3c2410_uartcfg smdk2410_uartcfgs[] __initdata = { [0] =
Time of Update: 2018-12-05
Linux 中的直接 I/O如果應用程式可以直接存取網路介面儲存,那麼在應用程式訪問資料之前儲存匯流排就不需要被遍曆,資料轉送所引起的開銷將會是最小的。應用程式或者運行在使用者模式下的庫函數可以直接存取硬體裝置的儲存,作業系統核心除了進行必要的虛擬儲存配置工作之外,不參與資料轉送過程中的其它任何事情。直接 I/O 使得資料可以直接在應用程式和外圍裝置之間進行傳輸,完全不需要作業系統核心頁緩衝的支援。關於直接 I/O 技術的具體實現細節可以參看 developerWorks
Time of Update: 2018-12-05
最近項目在搞可維護性這塊功能,如:修改網卡IP、機器重啟/關閉,Database Backup與恢複;這些功能點與linux中的shell指令碼執行息息相關,但shell指令碼卻不支援自動化,目前我所知道的支援自動化的指令碼也就expect、perl、python可支援自動化處理的指令碼,雖然linux安裝安後會內建perl命令庫,但還是需要通過安裝expect第三方動態語言。好了,廢話不多說,直接上代碼:#! /usr/bin/expect set command [lindex $argv
Time of Update: 2018-12-05
x210開發板的linux和android共用一套核心,只不過編譯時間選擇不同的 config,真是太絕了!而且linux核心和android核心全部打包到xboot.bin中,使用者只需要開機時通過按鍵在LCD互動介面選擇linux或者android就可以了。在調試時,我們可以進入linux系統,而且linux的檔案系統也一併打包到xboot中了,這個xboot簡直無敵了!廢話少說,下面在基於xboot的linux核心上移植mplayer:安裝源檔案[見光碟片]:MPlayer-1.0rc2.
Time of Update: 2018-12-05
常用的APT命令參數: apt-cache search package 搜尋包 apt-cache show package 擷取包的相關資訊,如說明、大小、版本等 sudo apt-get install package 安裝包 sudo apt-get install package - - reinstall 重新安裝包 sudo apt-get -f install 修複安裝"-f = ——fix-missing" sudo apt-get
Time of Update: 2018-12-05
我們在寫程式,特別是嵌入式程式的時候,通常需要對程式的效能進行分析,以便程式能夠更快更好地運行,達到即時(real-time)的目的。如果程式很大,分析起來就很困難。如果有個工具能夠自動進行程式的效能分析,那就最好了。這裡介紹一種Linux下程式的Profiling工具----GNU profiler。 gprof的基本用法:1. 使用 -pg 選項編譯和連結你的應用程式 在gcc編譯器的時候,加上-pg選項,例如: gcc -pg -o test test.c
Time of Update: 2018-12-05
安裝包擷取:下載http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gzhttp://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gzSVN在linux下的安裝使用 一、安裝tar zxf subversion-1.6.1.tar.gztar zxf subversion-deps-1.6.1.tar.gz注意解壓先後,都會解壓到subversion-1.6
Time of Update: 2018-12-05
平時經常性會需要寫一些daemon服務,於是就寫了一個簡單的指令碼,利用模板檔案,可以自動產生一個簡單的daemon進程,包括源檔案和makefile,啟停指令碼,只需要直接添上商務邏輯即可。使用方式:./generate_daemon.sh <app name>。 工具的在這裡: http://download.csdn.net/source/3242136 執行./generate_daemon.sh
Time of Update: 2018-12-05
Linux的I2C驅動架構1. Linux的I2C驅動架構Linux中I2C匯流排的驅動分為兩個部分,匯流排驅動(BUS)和裝置驅動(DEVICE)。其中匯流排驅動的職責,是為系統中每個I2C匯流排增加相應的讀寫方法。但是匯流排驅動本身並不會進行任何的通訊,它只是存在在那裡,等待裝置驅動調用其函數。裝置驅動則是與掛在I2C匯流排上的具體的裝置通訊的驅動。通過I2C匯流排驅動提供的函數,裝置驅動可以忽略不同匯流排控制器的差異,不考慮其實現細節地與硬體裝置通訊。1.1
Time of Update: 2018-12-05
Linux 控制台快速指南層級: 初級 Chris Walden (cmwalden-at-us.ibm.com)電子商務架構師,IBM Developer Relations2004 年 1 月IBM 電子商務架構師 Chris Walden 將通過他在 developerWorks 上發表的九篇系列文章來指導您如何在 Linux 環境中運用您的 Windows 操作技巧。本部分將介紹各種不同的 shell 和一些最基本的 Linux 命令。Linux
Time of Update: 2018-12-05
最近研究藍芽的鍵盤滑鼠,所以粗略看了一下Linux的HID架構。HID 匯流排HID的匯流排在hid-core.c的hid-init中初始化:bus_register(&hid_bus_type);hid_bus_type的定義:static struct bus_type hid_bus_type = { .name = "hid", .match = hid_bus_match, .probe
Time of Update: 2018-12-05
Fstab 檔案大家都很熟悉,Linux 在啟動的時候通過 fstab 中的資訊掛載各個分區,一個典型的分區條目就像這樣: /dev/sdb5 /mnt/usb vfat utf8,umask=0 0 0 /dev/sda4 為需要掛載的分區,sda4 是 Linux檢測硬碟時按順序給分區的命名,一般來講,這個名稱並不會變化,但是如果你有多塊硬碟,硬碟在電腦中的順序變化的時候,相同的名稱可能代表著不同的硬碟分區,如果你是從 USB 裝置啟動,與其他 USB
Time of Update: 2018-12-05
曾 幾何時,我一直被迷惑著,我知道所有進程和所有核心線程共用核心頁表,也就是在頁全域目錄的768項以上的目錄項指向的頁表,我一直以為在建立新的進程的 時候建立新進程的頁全域目錄的時候會連帶的把核心的基礎全域目錄複寫過去,實際上這是合理的,當我看到網上很多文章都這麼說時,我似乎感到一種欣慰:我太有才了!但是當我讀到2.6.17的原始碼時, 夢被打碎了,在pgd_alloc裡面沒有上述的動作,代碼如下:pgd_t *pgd_alloc(struct mm_struct *mm) {
Time of Update: 2018-12-05
轉自:http://www.diybl.com/course/6_system/linux/Linuxjs/20090515/167024.htmlUnix系統通過向核心發出系統調用(system