成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學會Linux Kernel熟練Linux

系統 Linux
在當今社會Linux越來越成為主流,你了解Linux系統么?本文為你介紹Linux Kernel,Linux Kernel有一個很好的特性,可以支持在運行是進行擴展。

在當今社會Linux越來越成為主流,你了解Linux系統么?本文為你介紹Linux Kernel,Linux Kernel有一個很好的特性,可以支持在運行是進行擴展。這意味著系統啟動運行是,我們仍然可以向Linux kernel添加功能。這種運行時可以被添加到kernel的代碼稱為Module(模塊)。

Linux Kernel支持好幾種模塊類型,包括設備驅動程序。每個模塊由目標代碼組成,不是一個完整的可執行程序。系統運行時,我們可以通過insmod將模塊連接到正在運行的內核中去。也可以使用lsmod列出已加載模塊,rmmod或modprobe –r 移除模塊。

Linux系統將設備分為三種基本類型:字符設備,塊設備,網絡接口。

字符設備是能夠像字節流一樣被訪問的設備,一般只能順序訪問。其操作類似文件操作。

塊設備上能夠容納文件系統,可以通過文件系統隨機訪問。其操作也類似于文件操作。

網絡接口是負責數據包的傳輸和接收的,一般無法影射到文件系統的節點。它與內核的通信跟前面兩種設備不同,而是通過socket方式。在系統和驅動程序之間定義有專門的數據結構(sk_buff)進行數據的傳遞。系統里支持對發送數據和接收數據的緩存,提供流量控制機制,提供對多協議的支持。

在編寫模塊的時候,應該注意,模塊僅僅被連接到內核,所以它只能調用由內核導出的那些函數,而不能調用其他的本模塊未定義的函數。

在Linux kernel2.6.X下進行模塊開發時,需要預先準備好“kernel tree(內核樹)”,即獲得與本系統相同的內核的源代碼并編譯出目標文件。

一個最簡單的hello world驅動例子:

  1. hello_world.c:     
  2. #include <linux/init.h>    
  3. #include <linux/module.h>    
  4. MODULE_LICENSE("Dual BSD/GPL");     
  5. static int hello_init(void)     
  6. {     
  7. printk(KERN_ALERT "Hello, world\n");     
  8. return 0;     
  9. }     
  10. static void hello_exit(void)     
  11. {     
  12. printk(KERN_ALERT "Goodbye, cruel world\n");     
  13. }     
  14. module_init(hello_init);     
  15. module_exit(hello_exit);   
  1. Makefile:  
  2. obj-m :hello.o  
  3. KERNELDIR ?= /lib/modules/$(shell uname -r)/build  
  4. PWD := $(shell pwd)  
  5. default:  
  6. $(MAKE) -C $(KERNELDIR) M=$(PWD) modules 

其中,源文件中的module_init和module_exit指定了模塊被加載時執行的初始化函數和卸載時執行的清理函數。另外可以使用module_param指定加載模塊時可以設置的參數。Makefile中的obj-m指定了使用make modules時候構造*.ko目標文件時使用的*.o目標文件。

Linux Kernel的了解,讓你學好Linux。

【編輯推薦】

  1. 教你四種安裝Linux方法
  2. 詳解嵌入式Linux驅動入門
  3. 20年風雨歷程:Linux嵌入式
  4. 10個***的自由Linux平臺ERP軟件
  5. 全面解讀嵌入式Linux
責任編輯:小霞 來源: 中國IT實驗室
相關推薦

2010-01-19 09:23:50

2010-01-26 09:07:50

2009-04-28 18:19:25

2009-08-21 15:40:26

Linux KerneLinux開發加速

2013-11-18 11:57:47

Linux KerneLinux 3.13

2013-12-09 16:37:05

Linux內核Linux Kerne

2014-07-07 17:23:55

Linux Kerne

2014-06-18 10:07:36

Linux 3.16

2020-10-18 10:11:01

漏洞

2009-02-18 20:27:44

Linux下載Kernel 2.6.

2010-08-03 10:04:51

Linux Kerne

2009-03-20 11:41:03

Linuxkernellogo

2010-05-18 11:05:44

Linux Kerne

2011-07-27 16:12:35

Linux KerneLinux內核

2013-07-01 16:12:24

Linux 3.10Linux

2009-09-08 10:48:25

2009-02-13 09:03:18

Linux下載Linux Kerne2.6.28.5

2009-03-01 22:23:39

LinuxKernelLinuxDNA

2013-09-09 15:35:35

Linux

2013-10-08 09:35:37

Linux Kerne
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩黄 | 国产精品久久久久久妇女 | 亚洲国产精品久久久久婷婷老年 | 人人干视频在线 | 日产精品久久久一区二区福利 | 国产精品自拍啪啪 | 久久国产精品一区二区三区 | 五月婷婷婷 | 亚洲一区二区三区在线视频 | 精品久久久久久久久久久院品网 | 国产精品日韩 | 精品av久久久久电影 | 日韩国产专区 | 精品久久久久久久久久久久久久 | 成人精品视频 | 日韩精品在线播放 | 国产精品不卡 | 国产精品久久久久久久久久久免费看 | 国产一区二区三区免费观看视频 | 日本不卡高字幕在线2019 | 国产一区二区视频免费在线观看 | 久久久久9999 | 黄a免费网络 | 麻豆久久久久久久久久 | 中文精品视频 | 中文字幕黄色大片 | 午夜精品视频 | 日本一区二区视频 | 免费在线a视频 | 免费精品 | 欧美一区二区小视频 | 美女中文字幕视频 | 亚洲国产情侣 | 视频在线日韩 | 成人高潮片免费视频欧美 | 亚洲在线一区 | 久久久久久久国产精品视频 | 在线观看午夜视频 | 精品国产乱码久久久久久蜜柚 | 噜久寡妇噜噜久久寡妇 | 亚洲欧美在线观看 |