目錄(182章)
倒序
- 封面
- 版權頁
- Credits
- Foreword
- About the Author
- About the Reviewers
- www.PacktPub.com
- Support files eBooks discount offers and more
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Chapter 1. Starting Out
- Selecting the right operating system
- The players
- Project lifecycle
- Open source
- Hardware for embedded Linux
- Hardware used in this book
- Software used in this book
- Summary
- Chapter 2. Learning About Toolchains
- What is a toolchain?
- Types of toolchain - native versus cross toolchain
- Choosing the C library
- Finding a toolchain
- Anatomy of a toolchain
- Other tools in the toolchain
- Looking at the components of the C library
- Linking with libraries: static and dynamic linking
- The art of cross compiling
- Problems with cross compiling
- Summary
- Chapter 3. All About Bootloaders
- What does a bootloader do?
- The boot sequence
- Booting with UEFI firmware
- Moving from bootloader to kernel
- Introducing device trees
- Choosing a bootloader
- U-Boot
- Barebox
- Summary
- Chapter 4. Porting and Configuring the Kernel
- What does the kernel do?
- Choosing a kernel
- Building the kernel
- Compiling
- Cleaning kernel sources
- Booting your kernel
- Porting Linux to a new board
- Additional reading
- Summary
- Chapter 5. Building a Root Filesystem
- What should be in the root filesystem?
- Programs for the root filesystem
- Libraries for the root filesystem
- Device nodes
- The proc and sysfs filesystems
- Kernel modules
- Transfering the root filesystem to the target
- Creating a boot ramdisk
- The init program
- Configuring user accounts
- Starting a daemon process
- A better way of managing device nodes
- Configuring the network
- Creating filesystem images with device tables
- Mounting the root filesystem using NFS
- Using TFTP to load the kernel
- Additional reading
- Summary
- Chapter 6. Selecting a Build System
- No more rolling your own embedded Linux
- Build systems
- Package formats and package managers
- Buildroot
- The Yocto Project
- Further reading
- Summary
- Chapter 7. Creating a Storage Strategy
- Storage options
- Accessing flash memory from the bootloader
- Accessing flash memory from Linux
- Filesystems for flash memory
- Filesystems for NOR and NAND flash memory
- Filesystems for managed flash
- Read-only compressed filesystems
- Temporary filesystems
- Making the root filesystem read-only
- Filesystem choices
- Updating in the field
- Further reading
- Summary
- Chapter 8. Introducing Device Drivers
- The role of device drivers
- Character devices
- Block devices
- Network devices
- Finding out about drivers at runtime
- Finding the right device driver
- Device drivers in user-space
- Writing a kernel device driver
- Loading kernel modules
- Discovering hardware configuration
- Additional reading
- Summary
- Chapter 9. Starting up - the init Program
- After the kernel has booted
- Introducing the init programs
- BusyBox init
- System V init
- systemd
- Further reading
- Summary
- Chapter 10. Learning About Processes and Threads
- Process or thread?
- Processes
- Threads
- Scheduling
- Further reading
- Summary
- Chapter 11. Managing Memory
- Virtual memory basics
- Kernel space memory layout
- User space memory layout
- Process memory map
- Swap
- Mapping memory with mmap
- How much memory does my application use?
- Per-process memory usage
- Identifying memory leaks
- Running out of memory
- Further reading
- Summary
- Chapter 12. Debugging with GDB
- The GNU debugger
- Preparing to debug
- Debugging applications using GDB
- Remote debugging using gdbserver
- Starting to debug
- Debugging shared libraries
- Just-in-time debugging
- Debugging forks and threads
- Core files
- GDB user interfaces
- Debugging kernel code
- Additional reading
- Summary
- Chapter 13. Profiling and Tracing
- The observer effect
- Beginning to profile
- Profiling with top
- Introducing perf
- Other profilers: OProfile and gprof
- Tracing events
- Introducing Ftrace
- Using LTTng
- Using Valgrind for application profiling
- Callgrind
- Helgrind
- Using strace to show system calls
- Summary
- Chapter 14. Real-time Programming
- What is real-time?
- Identifying the sources of non-determinism
- Understanding scheduling latency
- Kernel preemption
- The real-time Linux kernel (PREEMPT_RT)
- Threaded interrupt handlers
- Preemptible kernel locks
- Getting the PREEMPT_RT patches
- High resolution timers
- Avoiding page faults in a real-time application
- Interrupt shielding
- Measuring scheduling latencies
- Further reading
- Summary
- Index 更新時間:2021-07-30 09:45:30
推薦閱讀
- Python程序設計教程(第2版)
- Arduino by Example
- 跟小海龜學Python
- MATLAB應用與實驗教程
- Access 2010數據庫基礎與應用項目式教程(第3版)
- Mastering Unity Shaders and Effects
- Mastering KnockoutJS
- Getting Started with Laravel 4
- C#應用程序設計教程
- 一塊面包板玩轉Arduino編程
- PHP+Ajax+jQuery網站開發項目式教程
- 深入淺出Go語言編程
- R數據科學實戰:工具詳解與案例分析
- Python網絡爬蟲技術與應用
- 邊玩邊學Scratch3.0少兒趣味編程
- Photoshop智能手機APP界面設計
- 大規模語言模型開發基礎與實踐
- Learn Linux Quickly
- Java編程指南:語法基礎、面向對象、函數式編程與項目實戰
- C# 7 and .NET Core 2.0 Blueprints
- Magento 2 Developer's Guide
- LibGDX Game Development By Example
- The Java Workshop
- 天天學敏捷:Scrum團隊轉型記
- 微信小程序開發零基礎入門
- 輕松玩轉Scratch 3.0編程(第2版)
- C++碼農日記(全程視頻講解)
- 跨平臺的移動Web開發實戰(HTML5+CSS3)
- Java 9 Regular Expressions
- Java編程講義