《Android深度探索(卷1):HAL与驱动开发》虚拟实验环境(Ubuntu Linux)及源代码免费下载,不需要CPU虚拟化支持

由于有些同学安装随书光盘虚拟环境时发现CPU不支持虚拟化,所以我特意做了个不需要虚拟化的虚拟环境,使用Virtual Box,Ubuntu Linux10.04 LTS(4G左右)

有需要的可以下载使用。该虚拟环境包含了书中所需的实验环境(除了Android源代码,太大,需要自己下,否则得接近20G了)。

其他的使用说明详见虚拟环境桌面的readme.txt

 

用户名:root

秘密:12345678

 

virtual box请到oracle官方网站下载最新版本,本虚拟环境使用的是VirtualBox-4.2.10-84105,其他相近版本应该也没问题。

共6卷,点击下载

 

源代码

时间: 2024-10-06 09:24:27

《Android深度探索(卷1):HAL与驱动开发》虚拟实验环境(Ubuntu Linux)及源代码免费下载,不需要CPU虚拟化支持的相关文章

《Android深度探索(卷1):HAL与驱动开发》实验环境配置与实验资源下载

     由于光盘中带的Ubuntu Linux12.04虚拟环境需要CPU支持虚拟化,所有可能有一部分PC无法成功打开虚拟化环境,AMD的CPU也不可以.不过这不要紧,光盘中包含了源代码(sources目录).只需要将这些源代码放到ubuntu linux的/root/drivers目录中,然后打开源代码根目录中的common.sh文件,在前面找到如下的一行 UBUNTU_KERNEL_PATH=/usr/src/linux-headers-3.2.0-29-generic 将后面哪个路径改成

《Android深度探索(卷1):HAL与驱动开发》——1.4节 Linux内核版本号的定义规则

1.4 Linux内核版本号的定义规则Android深度探索(卷1):HAL与驱动开发Linux内核版本号由下面几部分组成.主版本号:次版本号:修订版本号:微调版本号:为特定的Linux系统特别调校的描述.在Linux内核版本2.6.29.7-flykernel-12a中,2是主版本号,6是次版本号,29是修订版本号,7是对2.6.29的微调,称为微调版本号,而flykernel-12a则是该Linux内核专门为flykernel调校.要注意的是,调校描述可以是任意字符串,由开发者自行定义.主版

《Android深度探索(卷1):HAL与驱动开发》——1.6节 Linux设备驱动

1.6 Linux设备驱动Android深度探索(卷1):HAL与驱动开发随着计算机技术的不断发展,与计算机(也包括手机等计算设备)相关的硬件设备的种类也不断丰富起来.这就需要大量的Linux设备驱动来与这些硬件设备进行交互.为了使读者在学习如何编写Linux驱动之前对Linux驱动有一个初步的认识,本节介绍了设备驱动在整个操作系统中的作用以及设备驱动的分类. 1.6.1 设备驱动的发展和作用任何一台计算机系统的运行都是由软硬件共同作用的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则是一堆废

《Android深度探索(卷1):HAL与驱动开发》——6.1节Linux驱动到底是个什么东西

6.1 Linux驱动到底是个什么东西Android深度探索(卷1):HAL与驱动开发对于从未接触过驱动开发的程序员可能会感觉Linux驱动很神秘.感觉开发起来会很复杂.其实,这完全是误解.实际上Linux驱动和普通的Linux API没有本质的区别.只是使用Linux驱动的方式与使用Linux API的方式不同而已. 在学习Linux驱动之前我们先来介绍一下Linux驱动的工作方式.如果读者以前接触过Windows或其他非Unix体系的操作系统,最好将它们的工作方式暂时忘掉,因为这些记忆会干扰

《Android深度探索(卷1):HAL与驱动开发》——1.1节Android系统架构

1.1 Android系统架构 Android深度探索(卷1):HAL与驱动开发 Android是一个非常优秀的嵌入式操作系统.经过几年的发展和演进,Android已经形成了非常完善的系统架构,如图1-1所示. 从图1-1可以看出,Android的系统架构分为4层.这4层所包含的内容如下. 第1层:Linux内核 由于Android是基于Linux内核的,因此,Android和其他Linux系统(如Ubuntu Linux.Fedora Linux等)的核心部分差异非常小.这一层主要包括Linu

《Android深度探索(卷1):HAL与驱动开发》——1.3节查看Linux内核版本

1.3 查看Linux内核版本 Android深度探索(卷1):HAL与驱动开发 目前Linux内核主要维护3个版本:Linux 2.4.Linux 2.6和Linux 3.x,大多数Linux系统都使用了这3个版本的内核,其中Linux 2.6是目前使用最广泛的Linux内核版本,Android就使用了该内核版本.而Linux 2.4由于其内部设计缺陷(主要是进程调度上的缺陷),除了一些遗留Linux系统,已很少有新的Linux系统使用Linux 2.4了.Linux 3.x是最新推出的Lin

《Android深度探索(卷1):HAL与驱动开发》——6.4节使用多种方式测试Linux驱动

6.4 使用多种方式测试Linux驱动 Android深度探索(卷1):HAL与驱动开发 在上一节已经实现了一个简单的Linux驱动程序,该驱动的功能是统计给定字符串中的单词数,并且在最后已经将该Linux驱动的源代码成功编译成动态Linux驱动模块word_count.ko.下一步就是测试该模块.测试的方法很多,最常用的就是直接在Ubuntu Linux中测试.当然,这对于本章实现的Linux驱动是没问题的,但是对于需要直接访问硬件的驱动在Ubuntu Linux上测试就不太方便.在这种情况下

《Android深度探索(卷1):HAL与驱动开发》——6.5节使用Eclipse开发和测试Linux驱动程序

6.5 使用Eclipse开发和测试Linux驱动程序 Android深度探索(卷1):HAL与驱动开发 在前面几节开发的word_count驱动和测试程序大多都需要在Linux终端进行编译(Android应用程序除外)和运行,而且也无法跟踪到Linux内核函数.变量.宏的内部(除非自己到Linux内核源代码中就寻找这些源代码文件),这并不利于深入了解Linux内核技术.在本节将为读者展示如何在Eclipse中开发Linux驱动程序,并且可以像跟踪Java代码一样直接跟踪到Linux内核源代码.

《Android深度探索(卷1):HAL与驱动开发》——1.5节如何学习Linux驱动开发

1.5 如何学习Linux驱动开发 Android深度探索(卷1):HAL与驱动开发 由于Linux的内核版本更新较快(稳定版本1至3月更新一次,升级版本1至2周更新一次),每一次内核的变化就意味着Linux驱动的变化(就算不需要修改驱动代码,至少也得在新的Linux内核版本下重新编译),所以Linux内核的不断变化对从事Linux驱动开发的程序员影响比较大.不过这对于学习Linux驱动开发来说影响相对较小.因为不管是哪个版本的Linux内核,开发Linux驱动的方法和步骤基本相同,只要掌握了一

《Android深度探索(卷1):HAL与驱动开发》——1.8节小结

1.8 小 结Android深度探索(卷1):HAL与驱动开发学习Linux驱动编程一定要了解Linux驱动只与Linux内核有关,与用户使用的Linux系统(Ubuntu Linux.Fedora Linux.Android等)无关.也就是说,不管是哪个Linux系统,只要使用了同样的Linux内核,驱动就可以通用.唯一可以判断Linux内核是否相同的方法就是Linux内核版本号.在1.4节介绍了Linux内核版本号的定义规则,只有组成内核版本号的五部分完全相同,才能说明两个Linux系统的内