本書(shū)提供作譯者介紹Michael K. Johnson是Specifix公司的操作系統(tǒng)工程師。他曾是Red Hat的操作系統(tǒng)開(kāi)發(fā)人員,在那里他管理一個(gè)內(nèi)核開(kāi)發(fā)小組長(zhǎng)達(dá)3年半的時(shí)間,他是Fedora項(xiàng)目基礎(chǔ)技術(shù)負(fù)責(zé)人。他還曾做過(guò)有關(guān)Linux應(yīng)用程序開(kāi)發(fā)的教學(xué)工作。Erik W. Troan是Specifix公司的合伙創(chuàng)始人和執(zhí)行副總裁。他曾經(jīng)是Red Hat公司產(chǎn)品工程部的副總裁,負(fù)責(zé)規(guī)格描述和創(chuàng)建技術(shù),例如RPM、Linux操作系統(tǒng)、Red Hat網(wǎng)絡(luò)、高性能服務(wù)器以及Red Had網(wǎng)站的基礎(chǔ)設(shè)施。
圖書(shū)目錄
Contents Part 1 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 Documentatiion 3.1 The man Pages 3.2 The Info Pages 3.3 Other Documetation Part 2 Development Tools and Environment Chapter 4 Development Tools 4.1 Editors 4.2 Make 4.3 The GNU Debugger 4.4 Tracing Program Actions Chapter 5 gcc Options and Extenslons 5.1 gcc Options 5.2 Header Files Chapter 6 The GNU C Library 6.1 Feature Selection 6.2 POSIX Interfaces 6.3 Compatibilit y 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 Envlronment 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 Chidren 10.6 Sessions and rocess 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 Ceaating 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 Chatpter 13 Advanced File Handling 13.1 Input and utput 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.2Utility Functions 17.3 Basic Socket Operations 17.4 Unix Domain Sockets 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 T imers Chapter 19 Random Numbers 19.1 Pseudo-Random Numbers 19.2 Cryptography and Random Numbers Chapter 20 Programing 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 Daernon 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 Hased 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 di Interface Chapter 28 User Identfication and Authentication 28.1 ID-to-Name Transation 28.2 Pluggable Authentication Modules A ppendices Appendix A Header Files Appendix B ladsh Source Code Glossary Bibliography Index