登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』嵌入式Linux编程

書城自編碼: 2987333
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: [美]克里斯·西蒙兹[Chris Simmonds]
國際書號(ISBN): 9787111561286
出版社: 机械工业出版社
出版日期: 2017-04-01
版次: 1 印次: 1
頁數/字數: 274/300000
書度/開本: 16开 釘裝: 平装

售價:NT$ 569

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
佛教文化十八讲
《 佛教文化十八讲 》

售價:NT$ 418.0
背弃圣约:处于考验中的美国公民宗教(社会学名著译丛)
《 背弃圣约:处于考验中的美国公民宗教(社会学名著译丛) 》

售價:NT$ 215.0
卖掉法拉利的高僧
《 卖掉法拉利的高僧 》

售價:NT$ 324.0
次经导论
《 次经导论 》

售價:NT$ 829.0
叔本华暮年之思
《 叔本华暮年之思 》

售價:NT$ 325.0
故纸留痕:抗日战争时期澳门报刊资料选辑
《 故纸留痕:抗日战争时期澳门报刊资料选辑 》

售價:NT$ 1613.0
玩转Photoshop(零基础快速上手,全彩赠视频)
《 玩转Photoshop(零基础快速上手,全彩赠视频) 》

售價:NT$ 269.0
故事力:TED演讲者助力,当代青年克服表达难题(两位TED专业讲者教你掌握故事五大力)
《 故事力:TED演讲者助力,当代青年克服表达难题(两位TED专业讲者教你掌握故事五大力) 》

售價:NT$ 381.0

建議一齊購買:

+

NT$ 644
《 嵌入式Linux系统开发:基于Yocto Project 》
+

NT$ 861
《 GNU/Linux嵌入式快速编程 》
+

NT$ 593
《 嵌入式Linux开发教程(上册) 》
+

NT$ 561
《 嵌入式Linux与物联网软件开发 C语言内核深度解析 》
內容簡介:
本书引导你遍历整个嵌入式linux产品的周期,并提供在每个阶段可用组件和选项的深入描述。首先,你将学习关于工具链、引导加载程序、Linux内核,以及如何配置根文件系统。然后,你将学习如何使用两个常用的构建系统,即Buildroot和Yocto项目,以加快和简化开发过程。在这个坚实的基础上,下面的章节考虑如何佳地使用rawNANDNOR闪存和托管闪存eMMC芯片,包括增加器件寿命的机制以及进行可靠的现场更新。然后,我们将探讨POSIX线程的使用,这对终设备的响应能力和性能有着很大的影响。本书的结尾部分探讨使用perf和ftrace剖析和跟踪应用程序以及内核代码的技术。
目錄
Contents 目录
译者序
推荐序
审校者简介
前言
第1章 概述1
1.1 选择合适的操作系统2
1.2 参与者3
1.3 项目生命周期4
1.4 开放源码5
1.5 嵌入式Linux系统硬件6
1.6 本书使用的硬件7
1.7 本书使用的软件9
1.8 总结9
第2章 学习工具链10
2.1 工具链是什么10
2.2 工具链类型:本地工具链和交叉工具链11
2.3 选择C库13
2.4 寻找工具链14
2.5 工具链解析17
2.6 工具链中的其他工具20
2.7 查看C库的组件21
2.8 链接库:静态和动态链接21
2.9  交叉编译艺术24
2.10 交叉编译的问题28
2.11 总结29
第3章 引导加载程序30
3.1 引导加载程序都做了些什么30
3.2 引导序列31
3.3 使用UEFI固件引导32
3.4 从引导加载程序到内核33
3.5 设备树介绍34
3.6 选择引导加载程序38
3.7 U-Boot39
3.8 Barebox49
3.9 总结51
第4章 移植与配置内核52
4.1 内核做了什么52
4.2 选择内核53
4.3 内核构建55
4.4 编译60
4.5 清理内核源63
4.6 启动你的内核63
4.7 将Linux移植到新板上66
4.8 延伸阅读69
4.9 总结69
第5章 构建根文件系统71
5.1 根文件系统是什么71
5.2 根文件系统的程序75
5.3 根文件系统库78
5.4 设备节点79
5.5 proc与sysfs文件系统80
5.6 内核模块81
5.7 把根文件系统转移到目标81
5.8 创建启动内存磁盘82
5.9 init程序85
5.10 配置用户账号86
5.11 启动守护进程87
5.12 管理设备节点的更好方法88
5.13 配置网络89
5.14 借助设备表创建文件系统映像90
5.15 使用NFS挂载根文件系统92
5.16 使用TFTP加载内核94
5.17 延伸阅读95
5.18 总结95
第6章 选择构建系统96
6.1 不再手动创建嵌入式Linux96
6.2 构建系统96
6.3 包格式和包管理器98
6.4 Buildroot98
6.5 Yocto项目104
6.6 延伸阅读116
6.7 总结116
第7章 创建存储策略117
7.1 存储器选择117
7.2 从引导加载程序访问闪存121
7.3 从Linux中访问闪存122
7.4 闪存文件系统127
7.5 NOR和NAND闪存的文件系统128
7.6 托管闪存的文件系统134
7.7 只读压缩文件系统138
7.8 临时文件系统138
7.9 使根文件系统为只读139
7.10 文件系统选择140
7.11 现场更新140
7.12 延伸阅读142
7.13 总结143
第8章 设备驱动程序介绍144
8.1 设备驱动程序的作用144
8.2 字符设备145
8.3 块设备147
8.4 网络设备147
8.5 在运行时寻找驱动程序149
8.6 找到正确的设备驱动程序153
8.7 用户空间中的设备驱动程序153
8.8 编写内核设备驱动程序158
8.9 加载内核模块163
8.10 查找硬件配置163
8.11 延伸阅读166
8.12 总结167
第9章 启动初始化程序168
9.1 在内核启动后168
9.2 初始化程序简介169
9.3 BusyBox init169
9.4 System V init171
9.5 systemd176
9.6 延伸阅读181
9.7 总结181
第10章 学习进程和线程182
10.1 进程还是线程182
10.2 进程183
10.3 线程191
10.4 调度196
10.5 延伸阅读200
10.6 总结200
第11章 内存管理201
11.1 虚拟内存基础201
11.2 内核空间内存布局202
11.3 用户空间内存布局205
11.4 进程内存映射206
11.5 交换207
11.6 用mmap映射内存208
11.7 我的应用程序使用了多少内存209
11.8 每个进程的内存使用情况210
11.9 识别内存泄漏213
11.10 内存耗尽215
11.11 延伸阅读217
11.12 总结217
第12章 使用GDB调试218
12.1 GNU调试器:GDB218
12.2 准备调试218
12.3 使用GDB调试应用程序219
12.4 使用gdbserver远程调试219
12.5 开始调试221
12.6 调试共享库224
12.7 即时调试225
12.8 调试分叉和线程226
12.9 核心文件226
12.10 GDB用户界面228
12.11 调试内核代码230
12.12 延伸阅读237
12.13 总结237
第13章 剖析和跟踪238
13.1 观察者效应238
13.2 开始剖析239
13.3 使用top进行剖析240
13.4 介绍perf241
13.5 其他剖析器:OProf?ile和gprof245
13.6 跟踪事件247
13.7 介绍Ftrace247
13.8 使用LTTng252
13.9 使用Valgrind剖析应用程序256
13.10 Callgrind256
13.11 Helgrind256
13.12 使用strace显示系统调用257
13.13 总结259
第14章 实时编程260
14.1 什么是实时性260
14.2 确认非确定性的来源262
14.3 理解调度延迟263
14.4 内核抢占263
14.5 实时Linux内核(PREEMPT_RT)264
14.6 线程化中断处理程序264
14.7 可抢占的内核锁266
14.8 获得PREEMPT_RT补丁266
14.9 高精度定时器267
14.10 在实时应用中避免页面错误268
14.11 中断屏蔽269
14.12 测量调度延迟2
內容試閱
Preface 前言嵌入式系统是一种设备,它的里面有一台微控制器。洗衣机、电视机、打印机、汽车、飞机和机器人都是由一个或多个微控制器控制的。随着这些设备变得越来越复杂,以及我们对于这些设备所拥有功能期望的提高,对于一个强大的操作系统来控制它们的需求不断增长。Linux逐渐成为首选的操作系统。
Linux的优势来源于它的开源模型,它鼓励代码共享。这意味着,具有众多背景并且经常由不同竞争公司雇用的软件工程师们,可以合作创建最新的操作系统内核并且跟踪硬件开发。这样一个代码库,可以对上至最大的超级计算机下至手表提供支持。Linux只是操作系统的一个组件。要创建一个工作系统,还需要许多其他组件,从基本的工具,如命令外壳,到具有Web内容并且与云服务通信的图形用户界面。Linux内核与众多其他的开源组件一起,可以构建一个在广泛的领域中发挥作用的系统。
然而,灵活性是一把双刃剑。尽管它可以针对一个特定问题给系统设计师提供广泛的备选解决方案,但是它也提出了这样的问题,即需要知道哪个方案是最好的选择。本书的目的是详细描述如何使用免费的开源项目构建一个嵌入式Linux系统,以生成一个健壮、可靠、高效的系统。基于作者作为一名咨询顾问和培训师的多年经验,本书将使用实例来说明最佳实践。
本书内容本书是按典型的嵌入式Linux项目的生命周期线组织的。前6章介绍如何建立项目,组织、Linux系统,以及选择合适的Linux构建系统。下一步,到达需要对系统架构和设计选择做出某些关键决策的阶段,包括闪存、设备驱动程序和init系统。接着,是利用已构建的嵌入式平台编写应用程序的阶段,其中有两章是关于进程、线程和内存管理的。最后,来到调试和优化平台的阶段,这是在第12章和第13章讨论的。最后一章描述如何为实时应用程序配置Linux。
第1章 通过描述系统设计师在项目开始时的可行选择来设置场景。
第2章 描述工具链的组件,特别是交叉编译。本章描述从何处获取一个工具链,并且提供从源代码构建工具链的细节。
第3章 以U-Boot和Bareboot为例,解释引导加载程序在初始化设备硬件中的作用。本章还描述设备树,这是一种在许多嵌入式系统中使用的硬件配置编码方式。
第4章 提供关于如何针对一个嵌入式系统选择Linux内核以及为设备内部硬件配置Linux内核的信息。本章还包括如何将Linux移植到新的硬件。
第5章 通过一个关于如何配置根文件系统的分步指南,介绍关于嵌入式Linux实现的用户空间部分所隐含的思想。
第6章 包括两个嵌入式Linux构建系统,通过构建系统可以自动化前面4章描述的步骤,并且总结本书第一部分。
第7章 讨论闪存管理所引起的挑战,包括raw f?lash芯片和嵌入式MMC或eMMC封装。本章描述适用于每种技术类型的文件系统。本章还包括如何现场更新设备固件的技术。
第8章 通过一个简单的驱动程序实例描述内核设备驱动程序如何与硬件交互。本章还描述从用户空间调用设备驱动程序的各种方法。
第9章 说明第一个用户空间程序init如何启动系统的其余部分。本章描述init程序的三个版本,每个版本适用于一组不同的嵌入式系统,从BusyBox init到systemd复杂性递增。
第10章 从应用程序员的角度描述嵌入式系统。本章讨论进程和线程、进程间通信和调度策略。
第11章 介绍虚拟内存背后的思想,以及如何将地址空间划分为内存映射。本章还介绍如何检测正在使用的内存和内存泄漏。
第12章 介绍如何使用GNU调试器GDB,以交互方式调试用户空间和内核代码。本章还描述内核调试器kdb。
第13章 涵盖可用于测量系统性能的技术,从全系统分析开始,然后聚焦特定的区域,该区域通常是造成性能不佳的瓶颈。本章还描述Valgrind工具,用于检查应用程序是否正确使用线程同步和内存分配。
第14章 提供关于Linux实时编程的详细指南,包括内核配置和实时内核补丁,还提供关于测量实时延迟的工具描述。本章还包括关于如何通过锁定内存来减少页面故障数量的信息。
本书所需配套环境本书中使用的软件完全是开源的。在大多数情况下,使用的版本是在本书写作时可用的最新的稳定版本。尽管我试图以一种不针对特定版本的方式描述主要特性,但是不可避免地,在命令实例中包含的一些细节将无法在后来的版本中工作。我希望与它们相关的描述能够提供足够的信息,从而可以将同样的原则应用到软件包的后期版本中。
在创建一个嵌入式系统时涉及两个系统:用于交叉编译软件的主机系统和用于运行软件的目标系统。对于主机系统,我使用的是Ubuntu 14.04,但是大多数Linux发行版只需要很小的修改即可工作。同样地,需要选择一个目标系统来表示嵌入式系统。我选择了两个:BeagelBone Black和QEMU CPU仿真器,用于仿真ARM目标。后者意味着你可以试验这些实例,而不必为一个实际的目标设备来投资硬件。同时,通过对特定细节的修改,例如设备名称和内存布局,应该有可能将实例应用到范围更广泛的目标。
目标系统的主软件包版本是U-Boot 2015.07、Linux 4.1、Yocto Project 1.8 "Fido"和Buildroot

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.