linux应用程序开发 第 版,Linux应用程序开发(第2版)(英文影印版)

Part I Getting Started.

Chapter 1 History of Linux Development

1.1 A Short History of Free Unix Software

1.2 Development of Linux

1.3 Notional Lineage of Unix Systems

1.4 Linux Lineage

Chapter 2 Licenses and Copyright

2.1 Copyright

2.2 Licensing

2.3 Free Software Licenses

Chapter 3 Online System Documentation

3.1 The man Pages

3.2 The Info Pages

3.3 Other Documentation

4.2 Make

4.3 The GNU Debugger

4.4 Tracing Program Actions

Chapter 5 gcc Options and Extensions

5.1 gcc Options

5.2 Header Files

Chapter 6 The GNU C Library

6.1 Feature Selection

6.2 POSIX Interfaces

6.3 Compatibility

Chapter 7 Memory Debugging Tools

7.1 Buggy Code

7.2 Memory-Checking Tools Included in glibc

7.3 Finding Memory Leaks with mpr

7.4 Investigating Memory Errors with Valgrind

7.5 Electric Fence

Chapter 8 Creating and Using Libraries

8.1 Static Libraries

8.2 Shared Libraries

8.3 Designing Shared Libraries

8.4 Building Shared Libraries

8.5 Installing Shared Libraries

8.6 Using Shared Libraries

Chapter 9 Linux System Environment

9.1 The Process Environment

9.2 Understanding System Calls

9.3 Finding Header and Library Files

Part 3 System Programming

Chapter 10 The Process Model

10.1 Defining a Process

10.2 Process Attributes

10.3 Process Information

10.4 Process Primitives

10.5 Simple Children

10.6 Sessions and Process Groups

10.7 Introduction to ladsh

10.8 Creating Clones

Chapter 11 Simple File Handling

11.1 The File Mode

11.2 Basic File Operations

11.3 Querying and Changing Inode Information

11.4 Manipulating Directory Entries

11.5 Manipulating File Descriptors

11.6 Creating Unnamed Pipes

11.7 Adding Redirection to ladsh

Chapter 12 Signal Processing

12.1 Signal Concepts

12.2 The Linux (and PosIx) Signal API

12.3 Available Signals

12.4 Writing Signal Handlers

12.5 Reopening Log Files

12.6 Real-Time Signals

12.7 Learning About a Signal

Chapter 13 Advanced File Handling

13.1 Input and Output Multiplexing

13.2 Memory Mapping

13.3 File Locking

13.4 Alternatives to read() and write()

Chapter 14 Directory Operations

14.1 The Current Working Directory

14.2 Changing the Root Directory

14.3 Creating and Removing Directories

14.4 Reading a Directory's Contents

14.5 File Name Globbing

14.6 Adding Directories and Globbing to ladsh

14.7 Walking File System Trees

14.8 Directory Change Notification

Chapter 15 Job Control..

15.1 Job Control Basics

15.2 Job Control in ladsh

Chapter 16 Terminals and Pseudo Terminals

16.1 tty Operations

16.2 termios Overview

16.3 termios Examples

16.4 termios Debugging

16.5 termios Reference

16.6 Pseudo ttys

Chapter 17 Networking with Sockets

17.1 Protocol Support

17.2 Utility Functions

17.3 Basic Socket Operations

17.5 Networking Machines with TCP/IP

17.6 Using UDP Datagrams

17.7 Socket Errors

17.8 Legacy Networking Functions

Chapter 18 Time

18.1 Telling Time and Dates

18.2 Using Timers

Chapter 19 Random Numbers

19.1 Pseudo-Random Numbers

19.2 Cryptography and Random Numbers

Chapter 20 Programming Virtual Consoles

20.1 Getting Started

20.2 Beeping

20.3 Determining Whether the Terminal Is a VC

20.4 Finding the Current VC

20.5 Managing VC Switching

20.6 Example: The open Command

Chapter 21 The Linux Console

21.1 Capability Databases

21.2 Glyphs, Characters, and Maps

21.3 Linux Console Capabilities

21.4 Direct Screen Writing

Chapter 22 Writing Secure Programs

22.1 When Security Matters

22.2 Minimizing the Opportunity for Attack

22.3 Common Security Holes

22.4 Running as a Daemon

Part 4 Development Libraries

Chapter 23 String Matching

23.1 Globbing Arbitrary Strings

23.2 Regular Expressions

Chapter 24 Terminal Handling with S-Lang

24.1 Input Handling

24.2 Output Handling

Chapter 25 A Hashed Database Library

25.1 Overview

25.2 Basic Operations

25.3 Reading Records

25.4 Modifying the Database

25.5 Example

Chapter 26 Parsing Command-Line Options

26.1 The Option Table

26.2 Using the Option Table

26.3 Using Callbacks

26.4 Error Handling

26.5 Option Aliasing

26.6 Parsing Argument Strings

26.7 Handling Extra Arguments

26.8 Sample Application

Chapter 27 Dynamic Loading at Run Time

27.1 The dl Interface

Chapter 28 User identification and Authentication

28.1 ID-to-Name Translation

28.2 Pluggable Authentication Modules

Appendices

Appendix A Header Files

Appendix B ladsh Source Code

Glossary

Bibliography

Index...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Preface The Audience for This Book Organization of the Material Level of Description Overview of the Book Background Information Conventions in This Book How to Contact Us Safari? Enabled Acknowledgments Chapter 1. Introduction Section 1.1. Linux Versus Other Unix-Like Kernels Section 1.2. Hardware Dependency Section 1.3. Linux Versions Section 1.4. Basic Operating System Concepts Section 1.5. An Overview of the Unix Filesystem Section 1.6. An Overview of Unix Kernels Chapter 2. Memory Addressing Section 2.1. Memory Addresses Section 2.2. Segmentation in Hardware Section 2.3. Segmentation in Linux Section 2.4. Paging in Hardware Section 2.5. Paging in Linux Chapter 3. Processes Section 3.1. Processes, Lightweight Processes, and Threads Section 3.2. Process Descriptor Section 3.3. Process Switch Section 3.4. Creating Processes Section 3.5. Destroying Processes Chapter 4. Interrupts and Exceptions Section 4.1. The Role of Interrupt Signals Section 4.2. Interrupts and Exceptions Section 4.3. Nested Execution of Exception and Interrupt Handlers Section 4.4. Initializing the Interrupt Descriptor Table Section 4.5. Exception Handling Section 4.6. Interrupt Handling Section 4.7. Softirqs and Tasklets Section 4.8. Work Queues Section 4.9. Returning from Interrupts and Exceptions Chapter 5. Kernel Synchronization Section 5.1. How the Kernel Services Requests Section 5.2. Synchronization Primitives Section 5.3. Synchronizing Accesses to Kernel Data Structures Section 5.4. Examples of Race Condition Prevention Chapter 6. Timing Measurements Section 6.1. Clock and Timer Circuits Section 6.2. The Linux Timekeeping Architecture Section 6.3. Updating the Time and Date Section 6.4. Updating System Statistics Section 6.5. Software Timers and Delay Functions Section 6.6. System Calls Related to Timing Measurements Chapter 7. Process Scheduling Section 7.1. Scheduling Policy Section 7.2. The Scheduling Algorithm Section 7.3. Data Structures Used by the Scheduler Section 7.4. Functions Used by the Scheduler Section 7.5. Runqueue Balancing in Multiprocessor Systems Section 7.6. System Calls Related to Scheduling Chapter 8. Memory Management Section 8.1. Page Frame Management Section 8.2. Memory Area Management Section 8.3. Noncontiguous Memory Area Management Chapter 9. Process Address Space Section 9.1. The Processs Address Space Section 9.2. The Memory Descriptor Section 9.3. Memory Regions Section 9.4. Page Fault Exception Handler Section 9.5. Creating and Deleting a Process Address Space Section 9.6. Managing the Heap Chapter 10. System Calls Section 10.1. POSIX APIs and System Calls Section 10.2. System Call Handler and Service Routines Section 10.3. Entering and Exiting a System Call Section 10.4. Parameter Passing Section 10.5. Kernel Wrapper Routines Chapter 11. Signals Section 11.1. The Role of Signals Section 11.2. Generating a Signal Section 11.3. Delivering a Signal Section 11.4. System Calls Related to Signal Handling Chapter 12. The Virtual Filesystem Section 12.1. The Role of the Virtual Filesystem (VFS) Section 12.2. VFS Data Structures Section 12.3. Filesystem Types Section 12.4. Filesystem Handling Section 12.5. Pathname Lookup Section 12.6. Implementations of VFS System Calls Section 12.7. File Locking Chapter 13. I/O Architecture and Device Drivers Section 13.1. I/O Architecture Section 13.2. The Device Driver Model Section 13.3. Device Files Section 13.4. Device Drivers Section 13.5. Character Device Drivers Chapter 14. Block Device Drivers Section 14.1. Block Devices Handling Section 14.2. The Generic Block Layer Section 14.3. The I/O Scheduler Section 14.4. Block Device Drivers Section 14.5. Opening a Block Device File Chapter 15. The Page Cache Section 15.1. The Page Cache Section 15.2. Storing Blocks in the Page Cache Section 15.3. Writing Dirty Pages to Disk Section 15.4. The sync( ), fsync( ), and fdatasync( ) System Calls Chapter 16. Accessing Files Section 16.1. Reading and Writing a File Section 16.2. Memory Mapping Section 16.3. Direct I/O Transfers Section 16.4. Asynchronous I/O Chapter 17. Page Frame Reclaiming Section 17.1. The Page Frame Reclaiming Algorithm Section 17.2. Reverse Mapping Section 17.3. Implementing the PFRA Section 17.4. Swapping Chapter 18. The Ext2 and Ext3 Filesystems Section 18.1. General Characteristics of Ext2 Section 18.2. Ext2 Disk Data Structures Section 18.3. Ext2 Memory Data Structures Section 18.4. Creating the Ext2 Filesystem Section 18.5. Ext2 Methods Section 18.6. Managing Ext2 Disk Space Section 18.7. The Ext3 Filesystem Chapter 19. Process Communication Section 19.1. Pipes Section 19.2. FIFOs Section 19.3. System V IPC Section 19.4. POSIX Message Queues Chapter 20. Program ExZecution Section 20.1. Executable Files Section 20.2. Executable Formats Section 20.3. Execution Domains Section 20.4. The exec Functions Appendix A. System Startup Section A.1. Prehistoric Age: the BIOS Section A.2. Ancient Age: the Boot Loader Section A.3. Middle Ages: the setup( ) Function Section A.4. Renaissance: the startup_32( ) Functions Section A.5. Modern Age: the start_kernel( ) Function Appendix B. Modules Section B.1. To Be (a Module) or Not to Be? Section B.2. Module Implementation Section B.3. Linking and Unlinking Modules Section B.4. Linking Modules on Demand Bibliography Books on Unix Kernels Books on the Linux Kernel Books on PC Architecture and Technical Manuals on Intel Microprocessors Other Online Documentation Sources Research Papers Related to Linux Development About the Authors Colophon Index
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值