下载 >  移动开发 >  Android > 深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf
0分

深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf

深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf
2017-07-11 上传大小:7.55MB
立即下载 开通VIP
分享
收藏 (1) 举报
深入Android内核设计思想pdf

深入Android内核设计思想pdf深入Android内核设计思想pdf深入Android内核设计思想pdf

立即下载
5积分/C币
《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译
深入理解Android内核设计思想——读书笔记
Android组件设计思想

Android应用开发的哲学是把一切都看作是组件。把应用程序组件化的好处是降低模块间的耦合性,同时提高模块的复用性。Android的组件设计思想与传统的组件设计思想最大的区别在于,前者不依赖于进程。也就是说,进程即使由于内存紧张被强行杀掉了,但是运行在里面的组件还是存在的。这样就可以在组件再次需要使用时,原地满血复活,就像什么都没发生过一样。这种设计思想非常适合内存较小的移动设备。理解Android组件设计思想,对Android应用程序架构会有更好的认识。这一节讲Android组件化设计的背景、理念、原则,以及Android在OS级别上提供的组件化支持,其中还会包含一个实验来验证这种组件化设计思想,可以对Android系统有一个高层次的抽象理解。

立即下载
50积分/C币
深入理解Android(卷2)(带全目录完整版)邓凡平.pdf

内容简介 《深入理解android:卷ii》是“深入理解android”系列的第二本,第一本书上市后得到了广大读者的高度评价,在android开发者社群内口口相传。本书不仅继承了第一本的优点、改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是android framework的java层,对java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。   全书共8章:第1章介绍了阅读本书所需要做的准备工作,包括android 4.0源码的下载和编译、eclipse环境的搭建,以及android系统进程(system_process)的调试等;第2章对java binder和messagequeue的实现进行了深入分析;第3章详细剖析了systemserver的工作原理,这些服务包括entropyservice、dropboxmanagerservice、diskstatsservice、devicestoragemonitorservice、samplingprofilerservice和clipboardservice;第4章对系统中负责package信息查询和apk安装、卸载、更新等工作的服务packagemanagerservice进行了详细分析;第5章则对android系统中负责电源管理的核心服务 powermanagerservice的原理进行了一番深入的分析;第6章以activitymanagerservice为分析重点,对它的启动、activity的创建和启动、broadcastreceiver的工作原理、android中的进程管理等内容展开了较为深入的研究;第7章对contentprovider的创建和启动、sqlite、cursor query和close的实现等进行了深入分析;第8章以contentservice和accountmanagerservice为分析对象,介绍了数据更新通知机制的实现,以及账户管理和数据同步等相关知识。 目录 《深入理解android:卷ii》 前 言 第1章 搭建android源码工作环境 / 1 1.1 android系统架构 / 2 1.2 搭建开发环境 / 3 1.2.1 下载源码 / 3 1.2.2 编译源码 / 4 1.2.3 利用eclipse调试system_process / 5 1.3 本章小结 / 11 第2章 深入理解java binder和messagequeue / 12 2.1 概述 / 13 2.2 java层中的binder架构分析 / 13 2.2.1 binder架构总览 / 13 2.2.2 初始化java层binder框架 / 14 2.2.3 addservice实例分析 / 17 2.2.4 java层binder架构总结 / 26 2.3 心系两界的messagequeue / 27 2.3.1 messagequeue的创建 / 27 2.3.2 提取消息 / 28 2.3.3 nativepollonce函数分析 / 31 2.3.4 messagequeue总结 / 41 2.4 本章小结 / 42 第3章 深入理解systemserver / 44 3.1 概述 / 45 3.2 systemserver分析 / 45 3.2.1 main函数分析 / 45 3.2.2 service群英会 / 48 3.3 entropyservice分析 / 49 3.4 dropboxmanagerservice分析 / 50 3.4.1 dbms构造函数分析 / 51 3.4.2 dropbox日志文件的添加 / 51 3.4.3 dbms和settings数据库 / 56 3.5 diskstatsservice和devicestoragemonitorservice分析 / 56 3.5.1 diskstatsservice分析 / 56 3.5.2 devicestoragemanagerservice分析 / 58 3.6 samplingprofilerservice分析 / 60 3.6.1 samplingprofilerservice构造函数分析 / 61 3.6.2 samplingprofilerintegration分析 / 62 3.7 clipboardservice分析 / 64 3.7.1 复制数据到剪贴板 / 64 3.7.2 从剪切板粘贴数据 / 67 3.7.3 cbs中的权限管理 / 69 3.8 本章小结 / 73 第4章 深入理解packagemanagerservice / 74 4.1 概述 / 75 4.2 初识packagemanagerservice / 76 4.3 pkms的main函数分析 / 77 4.3.1 构造函数分析之前期准备工作 / 78 4.3.2 构造函数分析之扫描package / 90 4.3.3 构造函数分析之扫尾工作 / 105 4.3.4 pkms构造函数总结 / 105 4.4 apk installation分析 / 105 4.4.1 adb install分析 / 105 4.4.2 pm分析 / 107 4.4.3 installpackagewithverification函数分析 / 109 4.4.4 apk 安装流程总结 / 121 4.4.5 verification介绍 / 122 4.5 queryintentactivities分析 / 124 4.5.1 intent及intentfilter介绍 / 124 4.5.2 activity信息的管理 / 125 4.5.3 intent 匹配查询分析 / 128 4.5.4 queryintentactivities总结 / 131 4.6 installd及usermanager介绍 / 131 4.6.1 installd介绍 / 131 4.6.2 usermanager介绍 / 136 4.7 本章学习指导 / 138 4.8 本章小结 / 138 第5章 深入理解powermanagerservice / 139 5.1 概述 / 140 5.2 初识powermanagerservice / 140 5.2.1 pms构造函数分析 / 141 5.2.2 init分析 / 141 5.2.3 systemready分析 / 147 5.2.4 bootcomplete处理 / 148 5.2.5 初识powermanagerservice总结 / 149 5.3 pms wakelock分析 / 149 5.3.1 wakelock客户端分析 / 149 5.3.2 pms acquirewakelock分析 / 151 5.3.3 power类及lightservice类介绍 / 160 5.3.4 wakelock总结 / 163 5.4 useractivity及power按键处理分析 / 164 5.4.1 useractivity分析 / 164 5.4.2 power按键处理分析 / 167 5.5 batteryservice及batterystatsservice分析 / 168 5.5.1 batteryservice分析 / 169 5.5.2 batterystatsservice分析 / 172 5.5.3 batteryservice及batterystatsservice总结 / 182 5.6 本章学习指导 / 183 5.7 本章小结 / 183 第6章 深入理解activitymanagerservice / 184 6.1 概述 / 185 6.2 初识activitymanagerservice / 186 6.2.1 activitymanagerservice的main函数分析 / 187 6.2.2 ams的 setsystemprocess分析 / 197 6.2.3 ams的 installsystemproviders函数分析 / 202 6.2.4 ams的 systemready分析 / 211 6.2.5 初识activitymanagerservice总结 / 218 6.3 startactivity分析 / 219 6.3.1 从am说起 / 219 6.3.2 ams的startactivityandwait函数分析 / 221 6.3.3 startactivitylocked分析 / 230 6.4 broadcast和broadcastreceiver分析 / 265 6.4.1 registerreceiver流程分析 / 267 6.4.2 sendbroadcast流程分析 / 272 6.4.3 broadcast_intent_msg消息处理函数 / 276 6.4.4 应用进程处理广播分析 / 282 6.4.5 广播处理总结 / 284 6.5 startservice之按图索骥 / 285 6.5.1 service知识介绍 / 285 6.5.2 startservice流程图 / 286 6.6 ams中的进程管理 / 287 6.6.1 linux进程管理介绍 / 287 6.6.2 关于android中的进程管理的介绍 / 289 6.6.3 ams进程管理函数分析 / 294 6.6.4 ams进程管理总结 / 305 6.7 app的 crash处理 / 305 6.7.1 应用进程的crash处理 / 306 6.7.2 ams的handleapplicationcrash分析 / 306 6.7.3 appdeathrecipient binderdied分析 / 309 6.7.4 app的crash处理总结 / 313 6.8 本章学习指导 / 314 6.9 本章小结 / 315 第7章 深入理解contentprovider / 316 7.1 概述 / 317 7.2 mediaprovider的启动及创建 / 318 7.2.1 context的getcontentresolver函数分析 / 318 7.2.2 mediastore.image.media的query函数分析 / 319 7.2.3 mediaprovider的启动及创建总结 / 329 7.3 sqlite创建数据库分析 / 330 7.3.1 sqlite及sqlitedatabase家族 / 330 7.3.2 mediaprovider创建数据库分析 / 335 7.3.3 sqlitedatabase创建数据库的分析总结 / 344 7.4 cursor 的query函数的实现分析 / 345 7.4.1 提取query关键点 / 346 7.4.2 mediaprovider 的query分析 / 349 7.4.3 query关键点分析 / 356 7.4.4 cursor query实现分析总结 / 368 7.5 cursor close函数实现分析 / 368 7.5.1 客户端close的分析 / 369 7.5.2 服务端close的分析 / 371 7.5.3 finalize函数分析 / 372 7.5.4 cursor close函数总结 / 373 7.6 contentresolver openassetfiledescriptor函数分析 / 373 7.6.1 openassetfiledescriptor之客户端调用分析 / 374 7.6.2 contentprovider的 opentypedassetfile函数分析 / 376 7.6.3 跨进程传递文件描述符的探讨 / 379 7.6.4 openassetfiledescriptor函数分析总结 / 384 7.7 本章学习指导 / 384 7.8 本章小结 / 385 第8章 深入理解contentservice和accountmanagerservice / 386 8.1 概述 / 387 8.2 数据更新通知机制分析 / 387 8.2.1 初识contentservice / 388 8.2.2 contentresovler 的registercontentobserver分析 / 389 8.2.3 contentresolver的 notifychange分析 / 391 8.2.4 数据更新通知机制总结和深入探讨 / 393 8.3 accountmanagerservice分析 / 395 8.3.1 初识accountmanagerservice / 396 8.3.2 accountmanager addaccount分析 / 402 8.3.3 accountmanagerservice的分析总结 / 414 8.4 数据同步管理syncmanager分析 / 415 8.4.1 初识syncmanager / 415 8.4.2 contentresolver 的requestsync分析 / 424 8.4.3 数据同步管理syncmanager分析总结 / 436 8.5 本章学习指导 / 437 8.6 本章小结 / 437 “深入理解android”系列书籍的规划路线图 / 438

立即下载
50积分/C币
深入理解Android内核设计思想电子书pdf下载
深入理解Android内核设计思想 第二天 第二章
深入理解Android内核设计思想.pdf

深入理解Android内核设计思想.pdf

立即下载
12积分/C币
C++程序设计 思想与方法 第2版 完整扫描版-翁惠玉2012

C++程序设计:思想与方法 第2版 s12908247 翁惠玉 上海交大计算机系 2012完整扫描版 带完整书签目录 页数:360 出版社:人民邮电出版社 出版日期:2012 01 丛书名:高等院校计算机教材系列 简介:本书以C++语言为环境 重点讲授程序设计的思想和方法 包括过程化的程序设计和面向对象的程序设计 本书也非常强调程序设计的风格 使读者通过学习 并经过一定的训练和实践 能够掌握程序设计的方法和过程 并具备良好的程序设计风格 ">C++程序设计:思想与方法 第2版 s12908247 翁惠玉 上海交大计算机系 2012完整扫描版 带完整书签目录 页数:360 出版社:人民邮电出版社 出版日期:2012 01 丛书名:高等院校计算机教材系列 简介:本书以C++语言为环境 重点讲授程序 [更多]

立即下载
50积分/C币
深入理解Android内核设计思想 第一天 第二章
android学习的几本书:深入理解Android内核设计思想
Linux内核设计的艺术(第2版)

本书的第1版广获好评,版权被中国台湾和美国两家大型出版社引进,第2版根据读者的反馈和作者对操作系统的最新研究成果对第1版进行了大幅优化和重写,使其内容质量更上一层楼。本书在众多关于Linux内核的书中独树一帜,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想主奴机制,这是所有操作系统研究者的一笔宝贵财富。它也是一本能真正引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系统的著作。

立即下载
3积分/C币
HTML5与CSS3权威指南(第3版)上下册

HTML5与CSS3权威指南(第3版)上下册 part1 带完整目录

立即下载
30积分/C币
Android启动过程分析(深入理解Android内核设计思想)
深入理解Android内核设计思想
Linux 内核设计的艺术(第2版) : -图解Linux操作系统架构设计与实现原理-第2版

绝对是《Linux内核完全剖析》那本书不可缺失的辅助书籍!不用再对着一串串神秘的十六进地址抓瞎了,在本书上都以图的形式把运行位置跳转位置详细标注,还是挺感谢的。尽管linux0.11 源码剖析 那本才把启动啃完。。

立即下载
50积分/C币
Linux内核API完全参考手册(第2版).邱铁(带详细书签).pdf

经过十年多的Linux操作系统教学与Linux内核实践开发,目前很难找到一本能够详细讲解Linux内核API的参考书。目前出版的Linux方面很多图书相似度很大,基本上可以分为以下三种:1. Linux内核分析。这类书一般都很老,版本陈旧。与当前最新的内核差别很大。2. Linux操作系统。以原理为主,以实例为辅,一般都设计成操作系统课上的常用实例。3. Linux上层应用函数库。这些图书不便于内核开发,因为内核开发所需要的API恰恰很少提及。因此计划编写一本适合最新的Linux内核3.0版本,指导思想是基于PC机完成所有代码分析与实例练习,增强其通用性。 在近五年的教学与大学生创新实践开发中,在已经积累经验的基础上编写Linux内核API,以“Linux内核模块式API开发与实例验证”为主线,以阶梯式前进的方式,使读者能够低起点、高效率的学习理论、深入实践,从而为LINUX内核开发打下一定的基础。全书共分10章,书定稿后约90万字,约500页,并配有实例代码。 作者简介 邱铁 博士,拥有超过10年的Linux使用和开发经验。从高中时代起就对嵌入式电子及控制技术产生了浓厚的兴趣,并且具有多项发明创造。大学毕业后开始涉足精彩的开源世界,特别是在Linux开放源码系统方面,做了大量的工作。他创立了飞翔电子工作室,专门进行嵌入式与开放源代码开发。2009年参加中国嵌入式系统课件大赛并获得一等奖。著作有《ARM嵌入式系统结构与编程》《Linux应用与开发典型实例精讲》《Linux环境下Qt4图形界面与MySQL编程》。 周玉 硕士,飞翔电子工作室主要成员,主要从事ARM、Linux方面的工作,曾参加全国大学生嵌入式设计大赛,参与完成的“基于S3C6410的全智能物联网自组织与智能车导航设计”获得大赛特等奖,熟悉Linux驱动、内核编程及应用开发,参与编写《Linux环境下Qt4图形界面与MySQL编程》。 本书特色 全面介绍Linux内核API开发与编程的手册; 对Linux内核系统知识进行精心策划,以内核模块方式对内核API进行系统分析; 基于系统功能模块内部,内核API以函数名称排序,方便快速检索; 立足于基础,高效学习理论配合内核API经典实例,深入Linux编程实践; 为Linux内核开发与编程提供高效指导与参考。 本书范例源代码可以到华章网站(www.hzbook.com)下载。 图书前言 进入21世纪以来,IT技术以前所未有的速度向前发展。Linux作为源码开放的操作系统,在众多的爱好者和网络黑客的共同努力下,不断成长并趋于完善。由于GNU计划所开发的各种组件和系统发行版所必备的软件可以运行于Linux内核之上,整个内核符合GNU通用公共许可证(GNU General Public License),使得Linux在PC、服务器以及嵌入式系统开发等领域得到了广泛的应用。 作者在长期的Linux内核开发中发现,当前介绍内核API方面的书籍很少。目前市面的关于Linux内核编程开发方面的书可以分为三类:第一类,Linux内核分析,所分析的内核源代码版本一般相对较早,而对于最新版本的内核源代码很少提及;第二类,Linux编程类,主要是以用户层面上的编程为主,一般涉及用户API;第三类,嵌入式Linux开发,相对于特定的硬件平台,只对所用到的特定内核API进行简要说明。对于Linux内核编程开发,需要全面了解内核API,而目前市面上找不到一本能够全面介绍最新的Linux内核API的图书,这也正是本书写作的目的所在。 本书的编写工作从2015年6月开始,所有的内核API验证实例基于最新的Linux内核源代码3.19.3版本。经过近十一个月的源代码分析、编程实践与实例验证,对常用的内核API进行系统归纳,并编写了典型验证程序,使理论分析与实际编程实现统一。分析的内核API模块包括:内核模块机制API、进程管理内核API、进程调度内核API、中断机制内核API、时间与定时机制内核API、内存管理内核API、内核同步机制API、文件系统内核API和设备驱动及设备管理模块内核API。 在实例编写过程中,感谢邓莹莹参与了部分实例的验证,以及机械工业出版社华章公司编辑为本书的出版所做的工作。另外,笔者听取了同事、同行专家意见和建议,并参阅了大量中文、外文文献和网络论坛的精华资料,特别是活跃在开放源代码社区的Linux爱好者,在此向他们表示感谢。 由于Linux更新速度较快,再加上编者所具备知识的广度和深度所限,书中存在的错误与不当之处请各位同仁批评指正。对于书中的问题,读者可以发送到E-mail:qiutie@ieee.org,能够及时与笔者交流,以便再版时更正与完善。 编者 2016年5月1日于大连 本书特色 全面介绍Linux内核API开发与编程的手册; 对Linux内核系统知识进行精心策划,以内核模块方式对内核API进行系统分析; 基于系统功能模块内部,内核API以函数名称排序,方便快速检索; 立足于基础,高效学习理论配合内核API经典实例,深入Linux编程实践; 为Linux内核开发与编程提供高效指导与参考。 本书主要内容 Linux内核模块机制API Linux进程管理内核API Linux进程调度内核API Linux中断机制内核API Linux内存管理内核API Linux内核定时机制API Linux内核同步机制API Linux文件系统内核API Linux设备驱动与设备管理API 本书范例源代码可以到华章网站(www.hzbook.com)下载。 作者简介 邱铁 周玉 编著:邱 铁 博士,拥有超过10年的Linux使用和开发经验。从高中时代起就对嵌入式电子及控制技术产生了浓厚的兴趣,并且具有多项发明创造。大学毕业后开始涉足精彩的开源世界,特别是在Linux开放源码系统方面,做了大量的工作。他创立了飞翔电子工作室,专门进行嵌入式与开放源代码开发。2009年参加中国嵌入式系统课件大赛并获得一等奖。著作有《ARM嵌入式系统结构与编程》《Linux应用与开发典型实例精讲》《Linux环境下Qt4图形界面与MySQL编程》。 周 玉 硕士,飞翔电子工作室主要成员,主要从事ARM、Linux方面的工作,曾参加全国大学生嵌入式设计大赛,参与完成的“基于S3C6410的全智能物联网自组织与智能车导航设计”获得大赛特等奖,熟悉Linux驱动、内核编程及应用开发,参与编写《Linux环境下Qt4图形界面与MySQL编程》。 前言 第1章 Linux内核API分析必备知识 1 1.1 Linux内核编程注意事项 1 1.2 本书中模块编译Makefile模板 2 1.3 内核调试函数printk 3 1.4 内核编译与定制 5 1.4.1 获得Linux内核与补丁 5 1.4.2 准备编译需要的工具 5 1.4.3 解压内核 6 1.4.4 给内核打补丁 6 1.4.5 设定编译选项 7 1.4.6 编译与安装内核 9 1.4.7 创建initramfs 10 1.4.8 设置grub 11 1.4.9 启动选项 12 1.5 温馨提示 12 本章参考文献 13 第2章 内核模块机制API 14 2.1 函数:__module_address( ) 14 2.2 函数:__module_text_address( ) 16 2.3 函数:__print_symbol( ) 19 2.4 函数:__symbol_get( ) 22 2.5 函数:__symbol_put( ) 25 2.6 函数:find_module( ) 27 2.7 函数:find_symbol( ) 31 2.8 函数:module_is_live( ) 36 2.9 函数:module_put( ) 38 2.10 函数:module_refcount( ) 40 2.11 函数:sprint_symbol( ) 42 2.12 函数:symbol_put_addr( ) 45 2.13 函数:try_module_get( ) 48 本章参考文献 50 第3章 Linux进程管理内核API 51 3.1 函数:__task_pid_nr_ns( ) 51 3.2 函数:find_get_pid( ) 54 3.3 函数:find_pid_ns( ) 56 3.4 函数:find_vpid( ) 58 3.5 函数:get_pid( ) 60 3.6 函数:get_task_mm( ) 62 3.7 函数:mmput( ) 66 3.8 函数:ns_of_pid( ) 68 3.9 函数:pid_nr( ) 70 3.10 函数:pid_task( ) 72 3.11 函数:pid_vnr( ) 74 3.12 函数:put_pid( ) 76 3.13 函数:task_active_pid_ns( ) 78 3.14 函数:task_tgid_nr_ns( ) 80 本章参考文献 82 第4章 Linux 进程调度内核API 83 4.1 函数:__wake_up( ) 83 4.2 函数:__wake_up_sync( ) 88 4.3 函数:__wake_up_sync_key( ) 91 4.4 函数:abort_exclusive_wait( ) 94 4.5 函数:add_wait_queue( ) 99 4.6 函数:add_wait_queue_exclusive( ) 102 4.7 函数:autoremove_wake_function( ) 105 4.8 函数:complete( ) 109 4.9 函数:complete_all( ) 112 4.10 函数:completion_done( ) 115 4.11 函数:current_thread_info( ) 118 4.12 函数:default_wake_function( ) 121 4.13 函数:do_exit( ) 124 4.14 函数:finish_wait( ) 126 4.15 函数:init_waitqueue_entry( ) 130 4.16 函数:init_waitqueue_head( ) 132 4.17 函数:kthread_create_on_node( ) 134 4.18 函数:kthread_stop( ) 136 4.19 函数:prepare_to_wait( ) 138 4.20 函数:prepare_to_wait_exclusive( ) 142 4.21 函数:remove_wait_queue( ) 147 4.22 函数:sched_setscheduler( ) 150 4.23 函数:set_cpus_allowed_ptr( ) 154 4.24 函数:set_user_nice( ) 157 4.25 函数:task_nice( ) 160 4.26 函数:try_wait_for_completion( ) 162 4.27 函数:wait_for_completion( ) 166 4.28 函数:wait_for_completion_interruptible_timeout( ) 169 4.29 函数:wait_for_completion_killable( ) 173 4.30 函数:wait_for_completion_timeout( ) 177 4.31 函数:wake_up_process( ) 180 4.32 函数:yield( ) 183 本章参考文献 185 第5章 Linux中断机制内核API 187 5.1 函数:__tasklet_hi_schedule( ) 187 5.2 函数:__tasklet_schedule( ) 190 5.3 函数:disable_irq( ) 193 5.4 函数:disable_irq_nosync( ) 193 5.5 函数:disable_irq_wake( ) 196 5.6 函数:enable_irq( ) 199 5.7 函数:enable_irq_wake( ) 201 5.8 函数:free_irq( ) 204 5.9 函数:irq_set_chip( ) 205 5.10 函数:irq_set_chip_data( ) 209 5.11 函数:irq_set_irq_type( ) 212 5.12 函数:irq_set_irq_wake( ) 214 5.13 函数:remove_irq( ) 217 5.14 函数:request_irq( ) 221 5.15 函数:request_threaded_irq( ) 225 5.16 函数:setup_irq( ) 229 5.17 函数:tasklet_disable( ) 232 5.18 函数:tasklet_disable_nosync( ) 234 5.19 函数:tasklet_enable( ) 236 5.20 函数:tasklet_hi_schedule( ) 237 5.21 函数:tasklet_init( ) 241 5.22 函数:tasklet_kill( ) 243 5.23 函数:tasklet_schedule( ) 245 5.24 函数:tasklet_trylock( ) 247 5.25 函数:tasklet_unlock( ) 248 本章参考文献 251 第6章 Linux内存管理内核API 252 6.1 函数:__free_pages( ) 252 6.2 函数:__get_free_pages( ) 253 6.3 函数:__get_vm_area( ) 255 6.4 函数:__krealloc( ) 258 6.5 函数:alloc_pages( ) 261 6.6 函数:alloc_pages_exact( ) 264 6.7 函数:find_vma( ) 266 6.8 函数:find_vma_intersection( ) 270 6.9 函数:free_pages( ) 272 6.10 函数:free_pages_exact( ) 273 6.11 函数:get_unmapped_area( ) 274 6.12 函数:get_zeroed_page( ) 276 6.13 函数:kcalloc( ) 278 6.14 函数:kfree( ) 280 6.15 函数:kmalloc( ) 281 6.16 函数:kmem_cache_alloc( ) 283 6.17 函数:kmem_cache_create( ) 285 6.18 函数:kmem_cache_destroy( ) 288 6.19 函数:kmem_cache_free( ) 289 6.20 函数:kmem_cache_zalloc( ) 290 6.21 函数:kmemdup( ) 292 6.22 函数:ksize( ) 295 6.23 函数:kstrdup( ) 298 6.24 函数:kstrndup( ) 299 6.25 函数:kzalloc( ) 301 6.26 函数:memdup_user( ) 303 6.27 函数:mempool_alloc( ) 306 6.28 函数:mempool_alloc_pages( ) 308 6.29 函数:mempool_alloc_slab( ) 311 6.30 函数:mempool_create( ) 313 6.31 函数:mempool_destroy( ) 316 6.32 函数:mempool_free( ) 317 6.33 函数:mempool_free_pages( ) 318 6.34 函数:mempool_free_slab( ) 318 6.35 函数:mempool_kfree( ) 319 6.36 函数:mempool_kmalloc( ) 320 6.37 函数:mempool_resize( ) 322 6.38 函数:nr_free_buffer_pages( ) 325 6.39 宏:page_address( ) 326 6.40 宏:page_cache_get( ) 328 6.41 宏:page_cache_release( ) 330 6.42 函数:page_zone( ) 331 6.43 宏:probe_kernel_address( ) 334 6.44 函数:probe_kernel_read( ) 336 6.45 函数:vfree( ) 338 6.46 函数:vma_pages( ) 339 6.47 函数:vmalloc( ) 341 6.48 函数:vmalloc_to_page( ) 343 6.49 函数:vmalloc_to_pfn( ) 345 6.50 函数:vmalloc_user( ) 347 本章参考文献 349 第7章 Linux内核定时机制API 350 7.1 函数:__round_jiffies( ) 350 7.2 函数:__round_jiffies_relative( ) 352 7.3 函数:__round_jiffies_up( ) 354 7.4 函数:__round_jiffies_up_relative( ) 356 7.5 函数:add_timer( ) 358 7.6 函数:current_kernel_time( ) 359 7.7 函数:del_timer( ) 361 7.8 函数:del_timer_sync( ) 364 7.9 函数:do_gettimeofday( ) 367 7.10 函数:do_settimeofday( ) 369 7.11 函数:get_seconds( ) 372 7.12 函数:getnstimeofday( ) 374 7.13 函数:init_timer( ) 376 7.14 函数:init_timer_deferrable( ) 378 7.15 函数:init_timer_key( ) 380 7.16 函数:init_timer_on_stack( ) 382 7.17 函数:init_timer_on_stack_key( ) 385 7.18 函数:mktime( ) 387 7.19 函数:mod_timer( ) 389 7.20 函数:mod_timer_pending( ) 392 7.21 函数:ns_to_timespec( ) 394 7.22 函数:ns_to_timeval( ) 396 7.23 函数:round_jiffies( ) 398 7.24 函数:round_jiffies_relative( ) 401 7.25 函数:round_jiffies_up( ) 404 7.26 函数:round_jiffies_up_relative( ) 406 7.27 函数:set_normalized_timespec( ) 409 7.28 函数:setup_timer( ) 411 7.29 函数:setup_timer_on_stack( ) 413 7.30 函数:timer_pending( ) 415 7.31 函数:timespec_add_ns( ) 417 7.32 函数:timespec_compare( ) 420 7.33 函数:timespec_equal( ) 422 7.34 函数:timespec_sub( ) 424 7.35 函数:timespec_to_ns( ) 426 7.36 函数:timeval_compare( ) 428 7.37 函数:timeval_to_ns( ) 431 7.38 函数:try_to_del_timer_sync( ) 433 本章参考文献 435 第8章 Linux内核同步机制API 436 8.1 函数:atomic_add( ) 436 8.2 函数:atomic_add_negative( ) 438 8.3 函数:atomic_add_return( ) 440 8.4 函数:atomic_add_unless( ) 442 8.5 函数:atomic_cmpxchg( ) 444 8.6 函数:atomic_dec( ) 446 8.7 函数:atomic_dec_and_test( ) 448 8.8 函数:atomic_inc( ) 449 8.9 函数:atomic_inc_and_test( ) 451 8.10 函数:atomic_read( ) 453 8.11 函数:atomic_set( ) 453 8.12 函数:atomic_sub( ) 455 8.13 函数:atomic_sub_and_test( ) 457 8.14 函数:atomic_sub_return( ) 459 8.15 函数:down( ) 461 8.16 函数:down_interruptible( ) 463 8.17 函数:down_killable( ) 465 8.18 函数:down_read( ) 468 8.19 函数:down_read_trylock( ) 470 8.20 函数:down_timeout( ) 472 8.21 函数:down_trylock( ) 474 8.22 函数:down_write( ) 476 8.23 函数:down_write_trylock( ) 479 8.24 函数:downgrade_write( ) 481 8.25 宏:init_rwsem( ) 483 8.26 函数:read_seqbegin( ) 486 8.27 函数:read_seqretry( ) 488 8.28 函数:sema_init( ) 490 8.29 宏:seqlock_init( ) 492 8.30 函数:up( ) 494 8.31 函数:up_read( ) 496 8.32 函数:up_write( ) 497 8.33 函数:write_seqlock( ) 498 8.34 函数:write_sequnlock( ) 498 本章参考文献 499 第9章 Linux文件系统内核API 500 9.1 函数:__mnt_is_readonly( ) 500 9.2 函数:current_umask( ) 502 9.3 函数:d_alloc( ) 504 9.4 函数:d_find_alias( ) 507 9.5 函数:dput( ) 510 9.6 函数:fget( ) 512 9.7 函数:generic_fillattr( ) 515 9.8 函数:get_fs_type( ) 517 9.9 函数:get_max_files( ) 520 9.10 函数:get_super( ) 522 9.11 函数:have_submounts( ) 525 9.12 函数:I_BDEV( ) 527 9.13 函数:inode_add_bytes( ) 529 9.14 函数:inode_get_bytes( ) 531 9.15 函数:inode_set_bytes( ) 533 9.16 函数:inode_sub_bytes( ) 535 9.17 函数:is_bad_inode( ) 537 9.18 函数:make_bad_inode( ) 538 9.19 函数:may_umount( ) 540 9.20 函数:may_umount_tree( ) 542 9.21 函数:mnt_want_write( ) 544 9.22 函数:notify_change( ) 545 9.23 函数:put_unused_fd( ) 547 9.24 函数:unshare_fs_struct( ) 549 9.25 函数:vfs_fstat( ) 551 9.26 函数:vfs_getattr( ) 553 9.27 函数:vfs_statfs( ) 556 本章参考文献 559 第10章 Linux 设备驱动及设备管理API 560 10.1 函数:__class_create( ) 560 10.2 函数:__class_register( ) 562 10.3 函数:cdev_add( ) 563 10.4 函数:cdev_alloc( ) 564 10.5 函数:cdev_del( ) 566 10.6 函数:cdev_init( ) 572 10.7 宏:class_create( ) 577 10.8 函数:class_destroy( ) 578 10.9 宏:class_register( ) 581 10.10 函数:class_unregister( ) 582 10.11 函数:device_add( ) 589 10.12 函数:device_create( ) 589 10.13 函数:device_del( ) 592 10.14 函数:device_destroy( ) 592 10.15 函数:device_initialize( ) 599 10.16 函数:device_register( ) 606 10.17 函数:device_rename( ) 607 10.18 函数:device_unregister( ) 613 10.19 函数:get_device( ) 620 10.20 函数:put_device( ) 621 10.21 函数:register_chrdev( ) 625 10.22 函数:unregister_chrdev( ) 626 10.23 部分相关函数说明 634 本章参考文献 635 附录 Linux内核API快速检索表 636

立即下载
5积分/C币
《深入理解Android内核设计思想》学习笔记
Android底层开发技术实战详解-内核、移植和驱动(第2版,Kindle电子书)

本书从底层原理开始讲起,结合真实的案例向读者详细介绍了android内核、移植和驱动开发的整个流程。全书分为19章,依次讲解驱动移植的必要性,何为hal层深入分析,goldfish、msm、map内核和驱动解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的驱动,openmax多媒体、多媒体插件框架,传感器、照相机、wi-fi、蓝牙、gps和电话系统等。在每一章中,重点介绍了与android驱动开发相关的底层知识,并对android源码进行了剖析。

立即下载
50积分/C币
MySQL技术内幕 InnoDB存储引擎(第2版)高清扫描带完整目录.pdf

MySQL技术内幕 InnoDB存储引擎(第2版)高清扫描带完整目录.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除! 目录: 前言 第1章 MySQL体系结构和存储引擎 1 1.1 定义数据库和实例 1 1.2 MySQL体系结构 3 1.3 MySQL存储引擎 5 1.3.1 InnoDB存储引擎 6 1.3.2 MyISAM存储引擎 7 1.3.3 NDB存储引擎 7 1.3.4 Memory存储引擎 8 1.3.5 Archive存储引擎 9 1.3.6 Federated存储引擎 9 1.3.7 Maria存储引擎 9 1.3.8 其他存储引擎 9 1.4 各存储引擎之间的比较 10 1.5 连接MySQL 13 1.5.1 TCP/IP 13 1.5.2 命名管道和共享内存 15 1.5.3 UNIX域套接字 15 1.6 小结 15 第2章 InnoDB存储引擎 17 2.1 InnoDB存储引擎概述 17 2.2 InnoDB存储引擎的版本 18 2.3 InnoDB体系架构 19 2.3.1 后台线程 19 2.3.2 内存 22 2.4 Checkpoint技术 32 2.5 Master Thread工作方式 36 2.5.1 InnoDB 1.0.x版本之前的Master Thread 36 2.5.2 InnoDB1.2.x版本之前的Master Thread 41 2.5.3 InnoDB1.2.x版本的Master Thread 45 2.6 InnoDB关键特性 45 2.6.1 插入缓冲 46 2.6.2 两次写 53 2.6.3 自适应哈希索引 55 2.6.4 异步IO 57 2.6.5 刷新邻接页 58 2.7 启动、关闭与恢复 58 2.8 小结 61 第3章 文件 62 3.1 参数文件 62 3.1.1 什么是参数 63 3.1.2 参数类型 64 3.2 日志文件 65 3.2.1 错误日志 66 3.2.2 慢查询日志 67 3.2.3 查询日志 72 3.2.4 二进制日志 73 3.3 套接字文件 83 3.4 pid文件 83 3.5 表结构定义文件 84 3.6 InnoDB存储引擎文件 84 3.6.1 表空间文件 85 3.6.2 重做日志文件 86 3.7 小结 90 第4章 表 91 4.1 索引组织表 91 4.2 InnoDB逻辑存储结构 93 4.2.1 表空间 93 4.2.2 段 95 4.2.3 区 95 4.2.4 页 101 4.2.5 行 101 4.3 InnoDB行记录格式 102 4.3.1 Compact行记录格式 103 4.3.2 Redundant行记录格式 106 4.3.3 行溢出数据 110 4.3.4 Compressed和Dynamic行记录格式 117 4.3.5 CHAR的行结构存储 117 4.4 InnoDB数据页结构 120 4.4.1 File Header 121 4.4.2 Page Header 122 4.4.3 Infimum和Supremum Records 123 4.4.4 User Records和Free Space 123 4.4.5 Page Directory 124 4.4.6 File Trailer 124 4.4.7 InnoDB数据页结构示例分析 125 4.5 Named File Formats机制 132 4.6 约束 134 4.6.1 数据完整性 134 4.6.2 约束的创建和查找 135 4.6.3 约束和索引的区别 137 4.6.4 对错误数据的约束 137 4.6.5 ENUM和SET约束 139 4.6.6 触发器与约束 139 4.6.7 外键约束 142 4.7 视图 144 4.7.1 视图的作用 144 4.7.2 物化视图 147 4.8 分区表 152 4.8.1 分区概述 152 4.8.2 分区类型 155 4.8.3 子分区 168 4.8.4 分区中的NULL值 172 4.8.5 分区和性能 176 4.8.6 在表和分区间交换数据 180 4.9 小结 182 第5章 索引与算法 183 5.1 InnoDB存储引擎索引概述 183 5.2 数据结构与算法 184 5.2.1 二分查找法 184 5.2.2 二叉查找树和平衡二叉树 185 5.3 B+树 187 5.3.1 B+树的插入操作 187 5.3.2 B+树的删除操作 190 5.4 B+树索引 191 5.4.1 聚集索引 192 5.4.2 辅助索引 196 5.4.3 B+树索引的分裂 200 5.4.4 B+树索引的管理 202 5.5 Cardinality值 210 5.5.1 什么是Cardinality 210 5.5.2 InnoDB存储引擎的Cardinality统计 212 5.6 B+树索引的使用 215 5.6.1 不同应用中B+树索引的使用 215 5.6.2 联合索引 215 5.6.3 覆盖索引 218 5.6.4 优化器选择不使用索引的情况 219 5.6.5 索引提示 221 5.6.6 Multi-Range Read优化 223 5.6.7 Index Condition Pushdown(ICP)优化 226 5.7 哈希算法 227 5.7.1 哈希表 228 5.7.2 InnoDB存储引擎中的哈希算法 229 5.7.3 自适应哈希索引 230 5.8 全文检索 231 5.8.1 概述 231 5.8.2 倒排索引 232 5.8.3 InnoDB全文检索 233 5.8.4 全文检索 240 5.9 小结 248 第6章 锁 249 6.1 什么是锁 249 6.2 lock与latch 250 6.3 InnoDB存储引擎中的锁 252 6.3.1 锁的类型 252 6.3.2 一致性非锁定读 258 6.3.3 一致性锁定读 261 6.3.4 自增长与锁 262 6.3.5 外键和锁 264 6.4 锁的算法 265 6.4.1 行锁的3种算法 265 6.4.2 解决Phantom Problem 269 6.5 锁问题 271 6.5.1 脏读 271 6.5.2 不可重复读 273 6.5.3 丢失更新 274 6.6 阻塞 276 6.7 死锁 278 6.7.1 死锁的概念 278 6.7.2 死锁概率 280 6.7.3 死锁的示例 281 6.8 锁升级 283 6.9 小结 284 第7章 事务 285 7.1 认识事务 285 7.1.1 概述 285 7.1.2 分类 287 7.2 事务的实现 294 7.2.1 redo 294 7.2.2 undo 305 7.2.3 purge 317 7.2.4 group commit 319 7.3 事务控制语句 323 7.4 隐式提交的SQL语句 328 7.5 对于事务操作的统计 329 7.6 事务的隔离级别 330 7.7 分布式事务 335 7.7.1 MySQL数据库分布式事务 335 7.7.2 内部XA事务 340 7.8 不好的事务习惯 341 7.8.1 在循环中提交 341 7.8.2 使用自动提交 343 7.8.3 使用自动回滚 344 7.9 长事务 347 7.10 小结 349 第8章 备份与恢复 350 8.1 备份与恢复概述 350 8.2 冷备 352 8.3 逻辑备份 353 8.3.1 mysqldump 353 8.3.2 SELECT...INTO OUTFILE 360 8.3.3 逻辑备份的恢复 362 8.3.4 LOAD DATA INFILE 362 8.3.5 mysqlimport 364 8.4 二进制日志备份与恢复 366 8.5 热备 367 8.5.1 ibbackup 367 8.5.2 XtraBackup 368 8.5.3 XtraBackup实现增量备份 370 8.6 快照备份 372 8.7 复制 376 8.7.1 复制的工作原理 376 8.7.2 快照+复制的备份架构 380 8.8 小结 382 第9章 性能调优 383 9.1 选择合适的CPU 383 9.2 内存的重要性 384 9.3 硬盘对数据库性能的影响 387 9.3.1 传统机械硬盘 387 9.3.2 固态硬盘 387 9.4 合理地设置RAID 389 9.4.1 RAID类型 389 9.4.2 RAID Write Back功能 392 9.4.3 RAID配置工具 394 9.5 操作系统的选择 397 9.6 不同的文件系统对数据库性能的影响 398 9.7 选择合适的基准测试工具 399 9.7.1 sysbench 399 9.7.2 mysql-tpcc 405 9.8 小结 410 第10章 InnoDB存储引擎源代码的编译和调试 411 10.1 获取InnoDB存储引擎源代码 411 10.2 InnoDB源代码结构 413 10.3 MySQL 5.1版本编译和调试InnoDB源代码 415 10.3.1 Windows下的调试 415 10.3.2 Linux下的调试 418 10.4 cmake方式编译和调试InnoDB存储引擎 423 10.5 小结 424

立即下载
50积分/C币
Spark高级数据分析(第2版)【试读】

本书是使用Spark 进行大规模数据分析的实战宝典,由知名数据科学家撰写。本书在第1 版的基础上,针对Spark 近年来的发展,对样例代码和所使用的资料进行了大量更新。新版Spark 使用了全新的核心API,MLlib 和Spark SQL 两个子项目也发生了较大变化,本书为关注Spark 发展趋势的读者提供了与时俱进的资料,例如Dataset 和DataFrame 的使用,以及与DataFrame API高度集成的Spark ML API。

立即下载
1积分/C币
python基础教程第2版pdf下载 高清

Python基础教程(第2版).pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

立即下载
50积分/C币
Git版本控制管理 第2版带书签 高清完整PDF版

Git版本控制管理 第2版.pdf

立即下载
50积分/C币
数字图像处理与机器视觉--Visual C++与MATLAB实现第2版DVD.zip

《数字图像处理与机器视觉--Visual C++与MATLAB实现》第2版DVD内容 内容推荐   《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》将理论知识、科学研究和工程实践有机结合起来,内容涉及数字图像处理和识别技术的方方面面,包括图像的点运算、几何变换、空域和频域滤波、小波变换、图像复原、彩色图像处理、形态学处理、图像分割、图像压缩以及图像特征提取等;同时对机器视觉进行了前导性的探究,重点介绍了3种目前在工程技术领域非常流行的分类技术——人工神经网络(ANN)、支持向量机(SVM)和AdaBoost,并在配套给出的识别案例中直击光学字符识别(OCR)、人脸识别和性别分类等热点问题。   《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》结构紧凑,内容深入浅出,讲解图文并茂,适合于计算机、通信和自动化等相关专业的本科生、研究生,以及工作在图像处理和识别领域一线的广大工程技术人员阅读参考。 共2个文件。z01和zip

立即下载
2积分/C币
JAVA程序设计教程第2版.pdf

 基础与实战。相关概念及知识点都辅以相应的实例,通俗易懂,便于理解掌握面向对象的编程思想。   实用与流行。涵盖了Java开发过程中重要的及流行的方法和技巧,讲解细致,环环相扣。   教学与互动。文字叙述注重可读性,知识组织注意合理性,提供辅助在线教学平台。

立即下载
2积分/C币
Zabbix监控系统深度实践 第2版

Zabbix监控系统深度实践 第2版

立即下载
5积分/C币
Android底层开发技术实战详解 内核、移植和驱动

Android底层开发技术实战详解 内核、移植和驱动 第2版_试读版 PDF电子书下载 带书签目录Android底层开发技术实战详解 内核、移植和驱动 第2版_试读版 PDF电子书下载 带书签目录Android底层开发技术实战详解 内核、移植和驱动 第2版_试读版 PDF电子书下载 带书签目录Android底层开发技术实战详解 内核、移植和驱动 第2版_试读版 PDF电子书下载 带书签目录

立即下载
5积分/C币
快学Scala第二版

快学Scala第二版,非常好的Scala入门书籍,讲的通俗易懂,是spark开发必备书籍~~

立即下载
5积分/C币
C++程序设计思想与方法

C++程序设计思想与方法 C++ 面向对象 程序设计 设计思想 思想与方法 【作 者】翁惠玉编著 【出版发行】 北京市:人民邮电出版社 【ISBN号】978-7-115-18309-5 【页 数】 304 【丛书名】图灵高等院校计算机教材系列 【主题词】C语言-程序设计-高等学校-教材 【中图法分类号】TP312 (工业技术>自动化技术、计算机技术>计算技术、计算机技术>计算机软件>程序语言、算法语言) 【参考文献格式】翁惠玉编著. C++程序设计 思想与方法. 北京市:人民邮电出版社 【内容提要】 本书以C++ 为语言环境,重点讲授程序设计的思想和方法,涉及过程化程序设计和面向对象程序设计。本书分为两大部分:第一部分主要介绍一些基本的程序设计思想、概念、技术、良好的程序设计风格以及过程化程序设计,包括数据类型、控制结构、数组、指针、数据封装、过程封装以及各种常用的算法;第二部分重点介绍面向对象的思想,包括类的设计与使用、运算符的重载、继承、多态性、输入/输出、异常处理、容器和迭代器等。

立即下载
10积分/C币
MySQL技术内幕 InnoDB存储引擎 第2版 高清完整中文PDF版

畅销书全新升级,第1版广获好评;资深MySQL专家撰写,全球知名MySQL数据库服务提供商Percona公司CTO作序推荐,国内多位数据库专家联袂推荐 基于MySQL 5.6,结合源代码,从存储引擎内核角度对InnoDB的整体架构、核心实现和工作机制进行深入剖析

立即下载
50积分/C币
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

深入理解Android内核设计思想(第2版)(上下册)-试读版.pdf

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: