The Linux Programming Interface: A Linux and UNIX System Programming Handbook

0
(0)

The Linux Programming Interface: A Linux and UNIX System Programming Handbook
 

  • Author:Michael Kerrisk
  • Length: 1552 pages
  • Edition: 1
  • Publisher: No Starch Press
  • Publication Date: 2010-10-28
  • ISBN-10: 1593272200
  • ISBN-13: 9781593272203
  • Sales Rank: #37108 (See Top 100 Books)
  • Download:Register/Login to Download
  • Buy Print:Buy from amazon


    Book Description

    The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.

    In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.

    You’ll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You’ll learn how to:

    • Read and write files efficiently
    • Use signals, clocks, and timers
    • Create processes and execute programs
    • Write secure programs
    • Write multithreaded programs using POSIX threads
    • Build and use shared libraries
    • Perform interprocess communication using pipes, message queues, shared memory, and semaphores
    • Write network applications with the sockets API

    While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.

    The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that’s destined to become a new classic.

    Praise for The Linux Programming Interface

    “If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it.” —Martin Landers, Software Engineer, Google

    “This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book.” —Mel Gorman, Author of Understanding the Linux Virtual Memory Manager

    “Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in The Linux Programming Interface . . . makes it a must-have reference for both new and experienced Linux programmers.” —Andreas Jaeger, Program Manager, openSUSE, Novell

    “Michael’s inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem.” —David Butenhof, Author of Programming with POSIX Threads and Contributor to the POSIX and UNIX Standards

    “. . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It’s certainly a book I’d recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know ‘what’s new’ in the popular GNU/Linux system.” —Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author

    “. . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for.” —Anthony Robins, Associate Professor of Computer Science, The University of Otago

    “I’ve been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs.” —Christophe Blaess, Author of Programmation systeme en C sous Linux

    “. . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1.” —Andrew Josey, Director, Standards, The Open Group, and Chair of the POSIX 1003.1 Working Group

    “What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? The Linux Programming Interface is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf.” —Bill Gallmeister, Author of POSIX.4 Programmer’s Guide: Programming for the Real World

    “. . . the most complete and up-to-date book about Linux and UNIX system programming. If you’re new to Linux system programming, if you’re a UNIX veteran focused on portability while interested in learning the Linux way, or if you’re simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk’s book is definitely the companion you want on your bookshelf.” —Loic Domaigne, Chief Software Architect (Embedded), Corpuls.com

    Table of Contents

    1: History and Standards
    2: Fundamental Concepts
    3: System Programming Concepts
    4: File I/O: The Universal I/O Model
    5: File I/O: Further Details
    6: Processes
    7: Memory Allocation
    8: Users and Groups
    9: Process Credentials
    10: Time
    11: System Limits and Options
    12: System and Process Information
    13: File I/O Buffering
    14: File Systems
    15:File Attributes
    16: Extended Attributes
    17: Access Control Lists
    18: Directories and Links
    19: Monitoring File Events
    20: Signals: Fundamental Concepts
    21: Signals: Signal Handlers
    22: Signals: Advanced Features
    23: Timers and Sleeping
    24: Process Creation
    25: Process Termination
    26: Monitoring Child Processes
    27: Program Execution
    28: Process Creation and Program Execution in More Detail
    29: Threads: Introduction
    30: Threads: Thread Synchronization
    31: Threads: Thread Safety and Per-Thread Storage
    32: Threads: Thread Cancellation
    33: Threads: Further Details
    34: Process Groups, Sessions, and Job Control
    35: Process Priorities and Scheduling
    36: Process Resources
    37: Daemons
    38: Writing Secure Privileged Programs
    39: Capabilities
    40: Login Accounting
    41: Fundamentals of Shared Libraries
    42: Advanced Features of Shared Libraries
    43: Interprocess Communication Overview
    44: Pipes and FIFOs
    45: Introduction to System V IPC
    46: System V Message Queues
    47: System V Semaphores
    48: System V Shared Memory
    49: Memory Mappings
    50: Virtual Memory Operations
    51: Introduction to POSIX IPC
    52: POSIX Message Queues
    53: POSIX Semaphores
    54: POSIX Shared Memory
    55: File Locking
    56: Sockets: Introduction
    57: Sockets: UNIX Domain
    58: Sockets: Fundamentals of TCP/IP Networks
    59: Sockets: Internet Domains
    60: Sockets: Server Design
    61: Sockets: Advanced Topics
    62: Terminals
    63: Alternative I/O Models
    64: Pseudoterminals
    A: Tracing System Calls
    B: Parsing Command-Line Options
    C: Casting the NULL Pointer
    D: Kernel Configuration
    E: Further Sources of Information
    F: Solutions to Selected Exercises

    中文:

    书名:The Linux Programming Interface: A Linux and UNIX System Programming Handbook

    Linux编程接口 是Linux和Unix编程接口的权威指南–几乎所有在Linux或Unix系统上运行的应用程序都使用该接口。

    在这本权威的著作中,Linux编程专家Michael Kerrisk详细描述了掌握系统编程技巧所需的系统调用和库函数,并附带了清晰、完整的示例程序。

    您将找到500多个系统调用和库函数的描述,以及200多个示例程序、88个表格和115个图表。您将学习如何:

    • 高效地读写文件
    • 使用信号、时钟和定时器
    • Create processes and execute programs
    • 编写安全的程序
    • Write multithreaded programs using POSIX threads
    • 构建和使用共享库
    • 使用管道、消息队列、共享内存和信号量执行进程间通信
    • Write network applications with the sockets API

    While Linux编程接口 介绍了大量特定于Linux的特性,包括 epoll, inotify,而 /proc 文件系统,它对UNIX标准(POSIX.1-2001/SUSv3和POSIX.1-2008/SUSv4)的重视使其对在其他UNIX平台上工作的程序员具有同等的价值。

    Linux编程接口 是关于Linux和Unix编程接口的最全面的单卷著作,也是一本注定要成为新经典的书。

    表扬 Linux编程接口

    如果在为Linux编写软件时,我必须选择一本书放在我的机器旁边,我会选这本。

    这本书包含了详细的描述和示例,包含了理解Linux中低级编程API的细节和细微差别所需的一切。。。无论什么层次的读者,都会从这本书中学到东西。梅尔·戈尔曼,《 Understanding the Linux Virtual Memory Manager

    Michael Kerrisk不仅写了一本关于Linux编程以及它如何与各种标准相关的伟大书籍,而且还注意到他注意到的错误得到了修复,手册页(大大)得到了改进。在这三个方面,他都让Linux编程变得更容易。中对主题的深入处理 Linux编程接口 . . . makes it a must-have reference for both new and experienced Linux programmers.” —Andreas Jaeger, Program Manager, openSUSE, Novell

    迈克尔坚定不移地获取正确的信息,并清晰而简洁地表达这些信息,这为程序员提供了一个强有力的参考资料。虽然这项工作的目标是Linux程序员,但它对在Unix/POSIX生态系统中工作的任何程序员都是有价值的。 使用POSIX线程进行编程 and Contributor to the POSIX and UNIX Standards

    “。。非常透彻–但又容易阅读–对UNIX系统和网络编程的解释,重点放在Linux系统上。这当然是一本书,我推荐给任何想要研究Unix编程的人,或者想知道流行的GNU/Linux系统有什么新功能的有经验的Unix程序员。网络安全研究员、IETF参与者和RFC作者费尔南多·贡特

    “。。其报道的广度和深度是百科全书式的,而其丰富的工作例子和练习则像教科书一样。从理论到实际操作的工作代码,每个主题都有明确而全面的介绍。专业人士、学生、教育工作者,这是你们期待已久的Linux/Unix参考资料。–安东尼·罗宾斯,奥塔哥大学计算机科学副教授

    迈克尔·科里奇在他的书中的精确度、质量和细节程度给我留下了非常深刻的印象。他是一位伟大的Linux系统调用专家,让我们分享他对Linux API的知识和理解。 基于Linux的C系统编程

    “。。对于认真或专业的Linux和Unix系统程序员来说,这是一个必不可少的资源。Michael Kerrisk介绍了Linux和Unix系统接口上所有关键API的使用,并提供了清晰的描述和教程示例,并强调了以下标准的重要性和好处,如Single Unix规范和POSIX 1003.1。&#**#*#*开放小组标准总监兼POSIX 1003.1工作组主席安德鲁·乔西

    “从系统程序员的角度来看,还有什么比百科全书般的Linux系统参考更好的呢?这本书不是别人,正是手册页的维护者自己写的。 Linux编程接口 是全面和详细的。我坚定地希望它能成为我编程书架上不可或缺的补充。 POSIX.4程序员指南:为现实世界编程

    “。。关于Linux和Unix系统编程的最完整和最新的书籍。如果你是Linux系统编程的新手,如果你是一名专注于可移植性的Unix老手,同时又对学习Linux的方式感兴趣,或者如果你只是在寻找一本关于Linux编程接口的极好的参考资料,那么Michael Kerrisk的书绝对是你想要的书架上的伴侣。CorPuls.com首席软件架构师(嵌入式)Loic Domaigne

    目录表

    1: History and Standards
    2:基本概念
    3: System Programming Concepts
    4:文件I/O:通用I/O模型
    5: File I/O: Further Details
    6:流程
    7:内存分配
    8:用户和组
    9:处理凭据
    10:《时代》杂志
    11: System Limits and Options
    12: System and Process Information
    13: File I/O Buffering
    14:文件系统
    15:File Attributes
    16:扩展属性
    17:访问控制列表
    18:目录和链接
    19:监视文件事件
    20:信号:基本概念
    21: Signals: Signal Handlers
    22: Signals: Advanced Features
    23: Timers and Sleeping
    24:流程创建
    25:进程终止
    26: Monitoring Child Processes
    27:程序执行
    28:更详细地创建流程和执行程序
    29:线索:简介
    30:线程:线程同步
    31:线程:线程安全和每线程存储
    32:线程:线程取消
    33: Threads: Further Details
    34:进程组、会话和作业控制
    35: Process Priorities and Scheduling
    36:流程资源
    37:后台进程
    38:编写安全的特权程序
    39:能力
    40:登录记账
    41:共享库的基础
    42:共享库的高级功能
    43:进程间通信概述
    44:管道和FIFO
    45:System V IPC简介
    46:System V消息提示
    47:系统V信号量
    48:System V共享内存
    49:内存映射
    50: Virtual Memory Operations
    51: Introduction to POSIX IPC
    52:POSIX消息提示
    53: POSIX Semaphores
    54:POSIX共享内存
    55:文件锁定
    56:套接字:简介
    57:套接字:Unix域
    58:套接字:TCP/IP网络的基础
    59: Sockets: Internet Domains
    60:套接字:服务器设计
    61: Sockets: Advanced Topics
    62:航站楼
    63:替代I/O模式
    64:伪终端
    A:跟踪系统调用
    B: Parsing Command-Line Options
    C:强制转换空指针
    D:内核配置
    E:进一步的信息来源
    F:精选练习的解决方案

  • 下载电子版:下载地址
  • 购买纸质版:亚马逊商城

    点击星号评分!

    平均分 0 / 5. 投票数: 0

    还没有投票!请为他投一票。

  • 推荐阅读

    评论 抢沙发

    评论前必须登录!

     

    登录

    找回密码

    注册