Android深度探索与HAL驱动开发(卷1)-- 第四章随笔

Linux内核源代码目录含义

arch包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。 
 
block部分块设备驱动程序。 
 
crypto常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。 
 
Documentation关于内核各部分的通用解释和注释。 
 
drivers设备驱动程序,每个不同的驱动占用一个子目录。 
 
fs各种支持的文件系统,如ext、fat、ntfs等。 
 
include头文件。其中,和系统相关的头文件被放置在linux子目录下。 
 
init内核初始化代码(注意不是系统引导代码)。 
 
ipc进程间通信的代码。 
 
kernel内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。 
 
lib库文件代码。 
 
mm内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。 
 
net网络相关代码,实现了各种常见的网络协议。 
 
scripts用于配置内核文件的脚本文件。 
 
security主要是一个SELinux的模块。 
 
sound常用音频设备的驱动程序等。 
 
usr
实现了一个cpio。

时间: 2024-10-15 11:37:30

Android深度探索与HAL驱动开发(卷1)-- 第四章随笔的相关文章

Android深度探索与HAL驱动开发(卷1)-- 第一章随笔

本文主要从 Android版本与对应的linux内核版本关系 和 Android系统架构 两部分来讨论. 1.Android版本与Linux内核的关系 (1)Android最初使用Linux2.6作为其内核,随着Android与Linux内核的发展,不同版本的Android使用的linux内核版本差异较大,所以不同Android版本驱动可能并不通用. 下表显示了目前所有Android版本与linux内核版本的联系. Code name Android Version number Linux K

Android深度探索与HAL驱动开发(卷1)-- 第九章随笔

第9章 硬件抽象层:HAL Hal(Hardware Abstract Layer,硬件抽象层)是建立在Linux驱动之上的一套程序库.这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层. 编写支持HAL的Linux驱动程序的步骤: 第一步:编写Linux驱动 第二步:编写HAL Library 第三步:编写 Service Library 编写HAL 模块的步骤和原理如下: 第一步:定义结构体和宏 第二步:编写HAL模块的open函数 第三步:定义hw_module_met

Android深度探索与HAL驱动开发(卷1)-- 第二章随笔

Android软件开发是指创建新的Android操作系统的过程.通常是使用Android软件开发工具包(SDK)利用Java语言进行开发. Android SDK Android软件开发工具包(SDK)包括一套全面的开发工具.这些措施包括调试器,库文件,一个基于QEMU的手机模拟器,文档,示例代码和教程.目前支持的开发平台,包括可运行Linux的计算机,Mac OS X 10.5.8以上版本,和Windows XP或更高版本.截至2015年3月, Android 自带的SDK本身不可再用,但软件

Android深度探索与HAL驱动开发(卷1)-- 第七章随笔

应用程序.库.内核.驱动程序的关系   从上到下,一个软件系统可以分为:应用程序.库.操作系统(内核).驱动程序.开发人员可以专注于自己熟悉的部分,对于相邻层,只需要了解它的接口,无需关注它的实现细节.以点亮LED为例,这4层软件的协作关系如下: 1.应用程序使用库提供的open函数打开代表LED的设备文件. 2.库数据open函数传入的参数执行“swi”指令,这条指令会引起CPU异常,进入内核. 3.内核的异常处理函数根据这些参数找到相应的驱动程序,返回一个文件句柄给库,进而返回给应用程序.

Android深度探索与HAL驱动开发(卷1)-- 第十章随笔

第10章 嵌入式Linux的调试技术 通过虚拟文件系统(/proc)进行数据交互 在编写代码时应了解一下几点: 1.creat_proc_read_entry 函数在内部是通过调用creat_proc_entry 函数实现的.所谓只读就是通过 creat_proc_read_entry 函数可以指定处理文件读动作的函数,并且通过mode参数设置文件的只读属性(0944).如果想把只读文件改成读写文件,只需要设置处理文件写动作的函数,并且将文件属性改成0666. 2.Linux文件的读写由属性决定

Android深度探索与HAL驱动开发(卷1)-- 第六章随笔

内核空间与用户空间 介绍 Linux系统将自身划分为两部分,一部分为核心软件,即是kernel,也称作内核空间,另一部分为普通应用程序,这部分称为用户空间. Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分.将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各

Android深度探索与HAL驱动开发(卷1)-- 第五章随笔

RISC(reduced instruction set computer)精简指令集计算机 简介 精简指令集,是计算机中央处理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computer的缩写).[1] 这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高.常用的精简指令集微处理器包括DECAlpha.ARC.ARM.AVR.MIPS.PA-RISC.PowerArchitecture(包括PowerPC)和

android驱动开发第三、四章读书笔记

第三章讲解了git及git操作的基本命令 1.git是一款免费.开源的分布式版本控制系统,符合linux的开源思想,且相对于svn cvs等,git有自己的优势,且广受开发者欢迎 2.git的安装: apt-get install git apt-get install git-doc git-svn apt-get install git-email git-gui gitk 3.常见命令: man git—checkout   /  git help git-checkout    查看gi

Android深度探索(卷1)HAL与驱动开发学习笔记(2)

Android深度探索(卷1)HAL与驱动开发学习笔记(2) 第二章搭建Android开发环境 书中介绍了两种JDK的安装方法, 方法一: 从官网下载JDK并进行配置,解压后在终端打开profile文件来设置PATH环境变量(# soure /etc/profile),打开profile文件后输入下面的内容 export PATH=.:developer/jdk6/bin:$PATH 保存profile文件以后,有两种方法可以重新加载profile文件. 1.# sourse  /etc/pro