Linux核心(一)

     核心,是一個作業系統的核心,它負責管理系統的進程、記憶體、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。是一個提供硬體抽象層、磁碟及檔案系統控制、多任務等功能的系統軟體,一個核心不是一套完整的作業系統。Linux的核心,通常在根目錄下,一個叫vmlinuz的檔案。我們用這個檔案來控制我們的整台PC,包括周邊裝置和軟硬磁碟機、CD-ROM、音效卡等。簡單地說,核心就是作業系統本身。從程式員的角度來講,作業系統的核心提供了一個與電腦硬體等價的擴充或虛擬計算平台。它抽象了許多硬體細

Linux下多進程編程

 1 引言   

Linux核心(三)

Linux核心的Makefile分為5個部分:              Makefile                 頂層Makefile,它讀取.config檔案,並負責建立vmlinux(核心鏡像)和modules(模組檔案)。     .config                  核心設定檔,調用make menuconfig或者make xconfig命令等配置     arch/$(ARCH)/Makefile    核心相關,具體架構的Makefile    

Linux核心(二)

核心的配置與編譯Linux的核心是可以配置的,就是說可以根據使用者的需要進行配置,正是因為Linux的核心可以自由的配置,自由的裁剪,減小核心的體積,才使得Linux的核心可以移植到arm平台上去。Linux核心配置具體步驟如下:1.  清除臨時檔案,中間檔案和設定檔(為什麼要清除呢?在得到一個核心以後會有許多垃圾檔案需要清除)$make clean(刪除垃圾檔案 保留設定檔)$make mrproper(刪除垃圾檔案 刪除設定檔)$make distclean(刪除垃圾檔案 刪除設定檔

linux核心SPI匯流排驅動分析(二)

SPI驅動編寫 簡而言之,SPI驅動的編寫分為:1.spi_device就構建並註冊  在板檔案中添加spi_board_info,並在板檔案的init函數中調用spi_register_board_info(s3c_spi_devs,ARRAY_SIZE(s3c_spi_devs));spi_register_board_info(s3c_spi_devs,ARRAY_SIZE(s3c_spi_devs));//註冊spi_board_info。這個代碼會把spi_board_info註冊到鏈

linux核心I2C子系統學習(一)

這部分準備分幾個部分進行分析總結因為I2C的通訊肯定至少要有2個晶片完成,所以它的驅動是由2大部分組成:主晶片的i2c的驅動從晶片的i2c的驅動    註:萬一選的都不支援咋辦???(慘了,只能2個晶片的驅動都得實現了,不過過程差不多) (一).主晶片的I2C的驅動:(具體如何?在後面在具體講解) 首先要查看linux核心是否支援主晶片中i2c磁碟機,如果支援就配置一下就ok了,否則要編寫主控晶片的i2c磁碟機編寫方法:第一.要有i2c匯流排驅動(首先要查查核心i2c檔案是否支援這種匯流排驅動,

linux學習總結(資料結構2-約瑟夫環)

迴圈鏈表,最後的尾指標指到頭結點上,雙向迴圈鏈表就是再加個pre指標。約瑟夫環的問題:設編號分別為:1,2,3,...n的n個人圍坐在一圈。約定序號為k(1<=k<=n)的人從1開始計數,數m的那個人出列,他的下一位又開始從1開始計數,數到m的那個人又出列,以此類推,直到所有的人都出列。例如:設 n = 8,k= 3 , m = 4時,出列序列為:6  2  7  4  3  5  1 

linux核心I2C子系統學習(二)

下面具體分析如何寫第一部分:主控晶片的i2c驅動分為2個步驟:寫匯流排驅動:選了個主控晶片,比如:S3C8900(自己瞎編的晶片)在driver/i2c/busses/i2c-s3c2410.c中沒有找到這個晶片的I2C支援(匯流排驅動支援)。。。(倒黴了,沒有選好晶片,也可能是最新型號的,linux核心沒跟上)在此之前先分析i2c-s3c2410.c中完成的工作(匯流排驅動):設計對應於i2c_adapter_xxx_init()模板的s3c8900的模組載入函數和對應於i2c_adapter

linux核心I2C子系統學習(三)

寫裝置驅動:四部曲:構建i2c_driver註冊i2c_driver構建i2c_client ( 第一種方法:註冊字元裝置驅動、第二種方法:通過板檔案的i2c_board_info填充,然後註冊) 登出i2c_driver具體如下:●    構建i2c_driverstatic struct i2c_driver pca953x_driver = { .driver = { .name=

ov9650網路攝影機驅動之——linux核心v4l2架構分析1

 本系列準備分為3-4篇來講,因為說的太多會比較亂 v4l2視頻驅動主要涉及幾個知識點:    網路攝影機方面的知識(網路攝影機廠家提供的晶片手冊可以查看)要瞭解選用的網路攝影機的特性,包括存取控制方法、各種參數的配置方法、訊號輸出類型等。    Camera解碼器、控制器(主控晶片的晶片手冊裡面有網路攝影機相關的寄存器設定,比如2410裡,裡面主要是設定相關控制功能使能,晶片內部自己的架構)如果網路攝影機是類比量輸出的,要熟悉解碼器的配置。最後數位視訊訊號進入camera控制器後,還要熟悉ca

Gentoo: 屏蔽Linux的啟動資訊

1. 屏蔽grub的資訊Gentoo上amd64 grub的版本是0.97-r12,需要修改源碼來屏蔽螢幕列印。- 建立本地overlay:/usr/local/portage/xxx-overlay,新增內容:PORTDIR_OVERLAY="/usr/local/portage/xxx-overlay"到/etc/make.conf-

ov9650網路攝影機驅動之——linux核心v4l2架構分析2

NO.2 Camera解碼器、控制器 1.根據camera控制器的描述,映像傳輸有兩個DMA通道,我們用的是C通道,所以先將DMA記憶體初始化,因為在V4L2操作中有把VIDIOC_REQBUFS中分配的資料緩衝轉換成物理地址的操作所以DMA在用之前要初始化,包括實際物理地址的計算init_image_buffer(camera_dev);// 初始化   static int __inline__ init_image_buffer(struct s5pc100_camera_device *

linux核心資料庫sqlite3的移植和簡單操作

  基於嵌入式linux的資料庫主要有SQLite, Firebird, Berkeley DB, eXtremeDB 這幾種資料庫的特點: •Firebird是關係型資料庫,功能強大,支援預存程序、SQL相容等•SQLite關係型資料庫,體積小,支援ACID事務•Berkeley DB中並沒有資料庫伺服器的概念,它的程式庫直接連結到應用程式中•eXtremeDB是記憶體資料庫,運行效率高  SQLite的原始碼是C,其原始碼完全開放,是一個輕量級的嵌入式資料庫。 SQLite有以下特性:   

Linux kernel data types, alignment, compat_ioctl 資料類型,對齊問題和compat_ioctl

特別是在寫IOCTL的時候,由於有32bit userspace + 64bit kernel的問題,而且由於architecture的不同,不同data type的length也不同,所以在IOCTL中建議用u32, u64, s32這樣無視architecture fix size的data type。這裡是來自LDD的不同的architecture的data

Linux核心(四)

嵌入式Linux的啟動流程:Bootloader:硬體上電後跳到一個固定位置執行相應代碼,初始化相應裝置,載入核心代碼到記憶體,跳到核心代碼起始位置執行;kernel:核心自解壓,初始化靜態編譯進核心的驅動模組,掛載根檔案系統,直接執行第一個使用者空間程式;第一個使用者空間程式:配置使用者環境和執行服務進程。 1. 系統的啟動和初始化    在基於Intel的系統上,當 loadlin.exe 或 LILO把核心裝入到記憶體並把控制權傳遞給核心時,核心開始啟動。arch/i386/kernel/

Linux kernel SPI驅動解釋

From: http://www.cnblogs.com/liugf05/archive/2012/12/03/2800457.html下面有兩個大的模組:一個是SPI匯流排驅動的分析            (研究了具體實現的過程)另一個是SPI匯流排驅動的編寫(不用研究具體的實現過程)SPI匯流排驅動分析 1 SPI概述      SPI是英語Serial Peripheral

我的針對根分區(ext3)的Linux磁碟限額配置經曆

針對非根分區的分區,比如/home,這樣的quota很好做,主要就是quotacheck,edquota,quotaon/quotaoff這三個東西,具體的可以看之前發過的有關quota的配置文章,說的很不錯的。 這次想針對根分區做一個quota,因為之前/home沒有分成一個單獨的分區。做了一下,發現其實和做單獨的分區做法是一樣的,只有一點很小的差別,從中也悟出了一些道理,於是記錄在此: 1. /etc/fstab中是需要加入usrquota,

Linux從zh_CN.GB2312遷移到zh_CN.UTF-8 – 包括 檔案內容編碼轉換,檔案名稱編碼轉換..

見附件這篇文章非常不錯,講述了如何將: 檔案內容,檔案名稱,MP3裡面的ID3 Tag,VIM。。。中的GB2312遷移到UTF-8的方法和實踐。 摘錄一些特有用的: enca命令可以用來檢測一個文字檔的編碼 iconv可用來轉換一個檔案的內容的編碼 convmv可用來將檔案名稱做編碼轉換,而不是轉換檔內容 GB2312 是國標裡面一個最小也是最早的中文編碼通訊協定。其中,只涵蓋了 6,763 個漢字。所以你需要轉換的檔案的原始的格式可能並不是 GB2312 編碼。這個時候,你可以用 GB180

Linux下用semaphore來做進程間互斥

semaphore很類似windows下的kernel object,一旦建立,可以被多個進程使用,當然一個進程中多個線程也可以使用semaphore來互斥。談到互斥,一般semaphore的值就是1。man 7 sem_overview可以看到很多有用的資訊。Semaphore和pipe一樣,也有有名的和無名的兩種。無名的嘛,在父子進程間使用比較方便,有名的嘛,在"不搭界"的多進程中使用很方便。這裡貼一段代碼,代碼最能說明問題,其他都參考manual就OK了。Code

安騰機器IA64 全自動網路安裝Linux – elilo+kickstart

以前的文章都是針對ia32和x86_64的,網路安裝IA64的機器有點問題,最關鍵的就是pxelinux不支援IA64,取而代之的是elilo,這是HP做的。 安騰的機器最特別的就是EFI了,在之前有篇EFI的讀書筆記可以參考。簡單來說,要實現網路安裝,做法如下: 1. 配置DHCP,和之前一樣配置 2. 配置TFTP,和之前一樣配置 3.

總頁數: 4065 1 .... 210 211 212 213 214 .... 4065 Go to: 前往
Tags Index:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。