Table of Contents
The Linux Programming Interface - A Linux and UNIX System Programming Handbook Table of Contents
Linux: Linux Fundamentals, Linux Inventor: Linus Torvalds says “ Linux just sucks less.”, Linux Best Practices - Linux Anti-Patterns, Linux kernel, Linux commands-Linux Shells-Linux CLI-GNU-Linux GUI-X11, Linux DevOps-Linux development-Linux system programming-Bash-zsh-Linux API, Linux package managers, Linux configuration management (Ansible on Linux, Chef on Linux, Puppet on Linux, PowerShell on Linux), Linux Distros (RHEL-Rocky Linux-CentOS (CentOS Stream)-Oracle Linux-Fedora, Ubuntu-Debian-Linux Mint-Raspberry Pi OS-Kali Linux-Tails, openSUSE - SUSE Linux Enterprise Server (SLES), Arch Linux-Manjaro Linux, Alpine Linux-BusyBox - Slackware - Android-Chrome OS); UNIX-UNIX Distros (FreeBSD-OpenBSD, BSD, macOS), Linux networking, Linux storage, Linux secrets, Linux security (Linux IAM-LDAP-Linux Firewall-Linux Proxy), Linux docs, Linux GitHub, Linux Containers, Linux VM, Linux on AWS, Linux on Azure, Linux on GCP, Linux on Windows (WSL), Linux on IBM, Linux on Mainframe (Linux on IBM Z mainframe - Linux for System z - IBM LinuxONE), Embedded Linux, Linus IoT-Linux on Raspberry Pi, LinuxOps-Linux sysadmin, systemd-userland-kernel space-POSIX-SUS-Linux filesystem-Linux architecture, Linux books-UNIX books, Linux courses, Linux Foundation, Linux history, Linux philosophy, Linux adoption, Linux glossary, Linux topics (navbar_linux and navbar_unix - see also navbar_fedora, navbar_rhel, navbar_centos, navbar_debian, navbar_ubuntu, navbar_linux_mint, navbar_freebsd, navbar_opensuse, navbar_manjaro, navbar_kali_linux, navbar_nixos, navbar_alpine_linux, navbar_tails_linux, navbar_slackware, navbar_rocky_linux, navbar_arch_linux, navbar_oracle_linux)
Systems programming: Linux systems programming, UNIX systems programming, Windows system programming, macOS system programming. Linux Programming Interface - A Linux and UNIX System Programming Handbook, Advanced Programming in the UNIX Environment, Mainframe systems programming, Systems programming languages (C systems programming, C++ systems programming, Rust systems programming, Awesome systems programming (navbar_systemprogramming)
Brief Contents
BRIEF CONTENTS
- Chapter 14: File Systems
- Chapter 15: File Attributes
- Chapter 39: Capabilities
- Chapter 64: Pseudoterminals
Contents in Detail
- CONTENTS IN DETAIL
- 1.2.2 The Linux Kernel
- 1.3 Standardization
- 1.3.2 The First POSIX Standards
- 1.3.7 Implementation Standards
- 1.4 Summary
2 FUNDAMENTAL CONCEPTS
- 2.2 The Shell
- 2.6 Programs
- 2.7 Processes
- 2.9 Static and Shared Libraries
- 2.11 Signals
- 2.12 Threads
- 2.15 Pseudoterminals
- 2.18 Realtime
- 2.19 The /proc File System
- 2.20 Summary
3 SYSTEM PROGRAMMING CONCEPTS
- 3.1 System Calls
- 3.2 Library Functions
- 3.6 Portability Issues
- 3.6.3 Miscellaneous Portability Issues
- 3.7 Summary
- 3.8 Exercise
4 FILE I/O: THE UNIVERSAL I/O MODEL
- 4.1 Overview
- 4.2 Universality of I/O
- 4.3.3 The creat() System Call
- 4.4 Reading from a File: read()
- 4.5 Writing to a File: write()
- 4.6 Closing a File: close()
- 4.8 Operations Outside the Universal I/O Model: ioctl()
- 4.9 Summary
- 4.10 Exercises
- 5.5 Duplicating File Descriptors
- 5.13 Summary
- 5.14 Exercises
6 PROCESSES
- 6.7 Environment List
- 6.9 Summary
- 6.10 Exercises
- 7.3 Summary
- 7.4 Exercises
- 8.6 Summary
- 8.7 Exercises
- 9.8 Summary
- 9.9 Exercises
10 TIME
- 10.1 Calendar Time
- 10.4 Locales
- 10.8 Summary
- 10.9 Exercise
- 11.6 Summary
- 11.7 Exercises
12 SYSTEM AND PROCESS INFORMATION
- 12.1 The /proc File System
- 12.3 Summary
- 12.4 Exercises
- 13.8 Summary
- 13.9 Exercises
14 FILE SYSTEMS
- 14.3 File Systems
- 14.4 I-nodes
- 14.5 The Virtual File System (VFS)
- 14.6 Journaling File Systems
- 14.9.4 Bind Mounts
- 14.9.5 Recursive Bind Mounts
- 14.10 A Virtual Memory File System: tmpfs
- 14.11 Obtaining Information About a File System: statvfs()
- 14.12 Summary
- 14.13 Exercise
15 FILE ATTRIBUTES
- 15.3 File Ownership
- 15.3.1 Ownership of New Files
- 15.4 File Permissions
- 15.4.1 Permissions on Regular Files
- 15.4.2 Permissions on Directories
- 15.6 Summary
- 15.7 Exercises
- 16.1 Overview
- 16.4 Summary
- 16.5 Exercise
17 ACCESS CONTROL LISTS
- 17.1 Overview
- 17.9 Summary
- 17.10 Exercise
18 DIRECTORIES AND LINKS
- 18.15 Summary
- 18.16 Exercises
19 MONITORING FILE EVENTS
- 19.1 Overview
- 19.7 Summary
- 19.8 Exercise
20 SIGNALS: FUNDAMENTAL CONCEPTS
- 20.4 Introduction to Signal Handlers
- 20.14 Waiting for a Signal: pause()
- 20.15 Summary
- 20.16 Exercises
21 SIGNALS: SIGNAL HANDLERS
- 21.1 Designing Signal Handlers
- 21.4 The SA_SIGINFO Flag
- 21.5 Interruption and Restarting of System Calls
- 21.6 Summary
- 21.7 Exercise
- 22.10 Synchronously Waiting for a Signal
- 22.12 Interprocess Communication with Signals
- 22.14 Summary
- 22.15 Exercises
- 23.1 Interval Timers
- 23.2 Scheduling and Accuracy of Timers
- 23.6.5 Notification via a Signal
- 23.6.6 Timer Overruns
- 23.6.7 Notification via a Thread
- 23.8 Summary
- 23.9 Exercises
- 24.3 The vfork() System Call
- 24.6 Summary
- 24.7 Exercises
- 25.2 Details of Process Termination
- 25.3 Exit Handlers
- 25.5 Summary
- 25.6 Exercise
26 MONITORING CHILD PROCESSES
- 26.1 Waiting on a Child Process
- 26.1.1 The wait() System Call
- 26.1.2 The waitpid() System Call
- 26.1.4 Process Termination from a Signal Handler
- 26.1.5 The waitid() System Call
- 26.2 Orphans and Zombies
- 26.3 The SIGCHLD Signal
- 26.3.1 Establishing a Handler for SIGCHLD
- 26.3.3 Ignoring Dead Child Processes
- 26.4 Summary
- 26.5 Exercises
- 27.2 The exec() Library Functions
- 27.2.1 The PATH Environment Variable
- 27.3 Interpreter Scripts
- 27.4 File Descriptors and exec()
- 27.7 Implementing system()
- 27.8 Summary
- 27.9 Exercises
28 PROCESS CREATION AND PROGRAM EXECUTION IN MORE DETAIL
- 28.1 Process Accounting
- 28.2 The clone() System Call
- 28.3 Speed of Process Creation
- 28.5 Summary
- 28.6 Exercise
29 THREADS: INTRODUCTION
- 29.1 Overview
- 29.4 Thread Termination
- 29.7 Detaching a Thread
- 29.10 Summary
- 29.11 Exercises
30 THREADS: THREAD SYNCHRONIZATION
- 30.1.1 Statically Allocated Mutexes
- 30.1.3 Performance of Mutexes
- 30.1.4 Mutex Deadlocks
- 30.1.5 Dynamically Initializing a Mutex
- 30.1.6 Mutex Attributes
- 30.1.7 Mutex Types
- 30.3 Summary
- 30.4 Exercises
31 THREADS: THREAD SAFETY AND PER-THREAD STORAGE
- 31.5 Summary
- 31.6 Exercises
32 THREADS: THREAD CANCELLATION
- 32.7 Summary
- 33.2.4 Dealing with Asynchronous Signals Sanely
- 33.5.2 NPTL
- 33.5.3 Which Threading Implementation?
- 33.7 Summary
- 33.8 Exercises
34 PROCESS GROUPS, SESSIONS, AND JOB CONTROL
- 34.1 Overview
- 34.2 Process Groups
- 34.3 Sessions
- 34.5 Foreground and Background Process Groups
- 34.7 Job Control
- 34.7.1 Using Job Control Within the Shell
- 34.7.2 Implementing Job Control
- 34.7.4 Orphaned Process Groups (and SIGHUP Revisited)
- 34.8 Summary
- 34.9 Exercises
35 PROCESS PRIORITIES AND SCHEDULING
- 35.2.1 The SCHED_RR Policy
- 35.2.2 The SCHED_FIFO Policy
- 35.2.3 The SCHED_BATCH and SCHED_IDLE Policies
- 35.3.3 Relinquishing the CPU
- 35.3.4 The SCHED_RR Time Slice
- 35.4 CPU Affinity
- 35.5 Summary
- 35.6 Exercises
- 36.2 Process Resource Limits
- 36.3 Details of Specific Resource Limits
- 36.4 Summary
- 36.5 Exercises
37 DAEMONS
- 37.1 Overview
- 37.5.1 Overview
- 37.6 Summary
- 37.7 Exercise
38 WRITING SECURE PRIVILEGED PROGRAMS
- 38.4 Avoid Exposing Sensitive Information
- 38.12 Summary
- 38.13 Exercises
39 CAPABILITIES
- 39.1 Rationale for Capabilities
- 39.2 The Linux Capabilities
- 39.3.1 Process Capabilities
- 39.3.2 File Capabilities
- 39.11 Summary
- 39.12 Exercise
40 LOGIN ACCOUNTING
- 40.8 Summary
- 40.9 Exercises
41 FUNDAMENTALS OF SHARED LIBRARIES
- 41.3 Overview of Shared Libraries
- 41.4.1 Creating a Shared Library
- 41.4.3 Using a Shared Library
- 41.4.4 The Shared Library Soname
- 41.7 Installing Shared Libraries
- 41.14 Summary
- 41.15 Exercise
42 ADVANCED FEATURES OF SHARED LIBRARIES
- 42.2 Controlling Symbol Visibility
- 42.5 Preloading Shared Libraries
- 42.7 Summary
- 42.8 Exercises
43 INTERPROCESS COMMUNICATION OVERVIEW
- 43.1 A Taxonomy of IPC Facilities
- 43.2 Communication Facilities
- 43.4 Comparing IPC Facilities
- 43.5 Summary
- 43.6 Exercises
- 44.1 Overview
- 44.7 FIFOs
- 44.11 Summary
- 44.12 Exercises
45 INTRODUCTION TO SYSTEM V IPC
- 45.6 The ipcs and ipcrm Commands
- 45.9 Summary
- 45.10 Exercises
- 46.10 Summary
- 46.11 Exercises
- 47.1 Overview
- 47.12 Summary
- 47.13 Exercises
- 48.1 Overview
- 48.10 Summary
- 48.11 Exercises
- 49.1 Overview
- 49.12 Summary
- 49.13 Exercises
- 50.5 Summary
- 50.6 Exercises
51 INTRODUCTION TO POSIX IPC
- 51.3 Summary
- 52.1 Overview
- 52.6 Message Notification
- 52.10 Summary
- 52.11 Exercises
- 53.1 Overview
- 53.3.1 Waiting on a Semaphore
- 53.7 Summary
- 53.8 Exercises
- 54.1 Overview
- 54.6 Summary
- 54.7 Exercise
- 55.1 Overview
- 55.3.1 Deadlock
- 55.4 Mandatory Locking
- 55.8 Summary
- 55.9 Exercises
56 SOCKETS: INTRODUCTION
- 56.1 Overview
- 56.7 Summary
- 57.7 Summary
- 57.8 Exercises
58 SOCKETS: FUNDAMENTALS OF TCP/IP NETWORKS
- 58.1 Internets
- 58.8 Summary
- 59.2 Network Byte Order
- 59.3 Data Representation
- 59.15 Further Information
- 59.16 Summary
- 59.17 Exercises
- 60.6 Summary
- 60.7 Exercises
- 61.2 The shutdown() System Call
- 61.6.4 TCP Connection Establishment
- 61.13.3 Passing File Descriptors
- 61.14 Summary
- 61.15 Exercises
62 TERMINALS
- 62.1 Overview
- 62.3 The stty Command
- 62.11 Summary
- 62.12 Exercises
63 ALTERNATIVE I/O MODELS
- 63.1 Overview
- 63.2.1 The select() System Call
- 63.2.2 The poll() System Call
- 63.2.3 When Is a File Descriptor Ready?
- 63.4 The epoll API
- 63.4.3 Waiting for Events: epoll_wait()
- 63.5 Waiting on Signals and File Descriptors
- 63.5.1 The pselect() System Call
- 63.6 Summary
- 63.7 Exercises
- 64.1 Overview
- 64.2 UNIX 98 Pseudoterminals
- 64.5 Pseudoterminal I/O
- 64.6 Implementing script(1)
- 64.8 BSD Pseudoterminals
- 64.9 Summary
- 64.10 Exercises
B PARSING COMMAND-LINE OPTIONS
C CASTING THE NULL POINTER
E FURTHER SOURCES OF INFORMATION
Fair Use Sources
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.