Skip to content

gino0717/gpt_linux_interface_textbook

Repository files navigation

Learning Linux Programming with ChatGPT: A Beginner's Guide to Linux System Programming

Table of contents

Part I: Introduction to Linux Programming Interface

Chapter 1: Overview of the Linux Programming Interface

  • 1.1 History of UNIX and Linux
  • 1.2 Key Features of the Linux Programming Interface
  • 1.3 Comparison with Other Operating Systems
  • 1.4 Overview of the Book

Chapter 2: Basic Concepts and Terminology

  • 2.1 System Calls
  • 2.2 Library Functions
  • 2.3 Standard Input and Output
  • 2.4 Error Handling
  • 2.5 Files and Directories

Chapter 3: System Programming Concepts

  • 3.1 Processes and Threads
  • 3.2 Memory Management
  • 3.3 Signals
  • 3.4 Time and Timers
  • 3.5 Users and Groups
  • 3.6 Permissions and Access Control

Part II: File I/O: The Universal I/O Model

Chapter 4: File I/O Overview

  • 4.1 The Universal I/O Model
  • 4.2 File Descriptors
  • 4.3 Opening and Closing Files

Chapter 5: File I/O APIs

  • 5.1 Reading and Writing Files
  • 5.2 Seeking within a File
  • 5.3 File and Record Locking

Chapter 6: File I/O Buffering

  • 6.1 Buffered and Unbuffered I/O
  • 6.2 Controlling Buffering with setvbuf()
  • 6.3 Flushing Buffers with fflush()

Chapter 7: Advanced File I/O Operations

  • 7.1 Nonblocking I/O
  • 7.2 Asynchronous I/O
  • 7.3 Memory-mapped Files

Chapter 8: Directories and Links

  • 8.1 Directory Operations
  • 8.2 Symbolic and Hard Links
  • 8.3 Monitoring File Changes with inotify()

Part III: Processes and Threads

Chapter 9: Processes Overview

  • 9.1 Process Creation
  • 9.2 Process Termination

Chapter 10: Process Control

  • 10.1 Process Scheduling
  • 10.2 Changing Process Priority
  • 10.3 Process Resource Limits
  • 10.4 Process Groups and Sessions

Chapter 11: Process Relationships

  • 11.1 Parent-Child Relationships
  • 11.2 Orphaned and Zombie Processes

Chapter 12: Threads: Introduction and Overview

  • 12.1 Thread Creation and Termination
  • 12.2 Thread Scheduling

Chapter 13: Thread Synchronization

  • 13.1 Mutexes and Condition Variables
  • 13.2 Read-Write Locks
  • 13.3 Barriers and Thread-Safe Functions

Chapter 14: Thread Safety and Reentrancy

  • 14.1 Thread-Safe Functions
  • 14.2 Reentrant Functions

Part IV: Interprocess Communication

Chapter 15: Introduction to Interprocess Communication

  • 15.1 IPC Mechanisms
  • 15.2 Pros and Cons of IPC

Chapter 16: Pipes and FIFOs

  • 16.1 Anonymous Pipes
  • 16.2 Named Pipes (FIFOs)

Chapter 17: Message Queues

  • 17.1 Overview of Message Queues
  • 17.2 Creating and Using Message Queues
  • 17.3 Message Queue Limits and Permissions

Chapter 18: Semaphores

  • 18.1 Overview of Semaphores
  • 18.2 Creating and Using Semaphores
  • 18.3 Semaphore Limits and Permissions

Chapter 19: Shared Memory

  • 19.1 Overview of Shared Memory
  • 19.2 Creating and Using Shared Memory
  • 19.3 Shared Memory Limits and Permissions

Chapter 20: Sockets

  • 20.1 Overview of Sockets
  • 20.2 Creating and Using Sockets
  • 20.3 Socket Addresses and Ports
  • 20.4 Socket Options

Part V: Advanced Topics

Chapter 21: Advanced I/O Interfaces

  • 21.1 poll() and select()
  • 21.2 eventfd() and timerfd()

Chapter 22: Terminal I/O

  • 22.1 Overview of Terminal I/O
  • 22.2 Terminal Modes and Control Characters
  • 22.3 Terminal I/O APIs

Chapter 23: Advanced Process Management

  • 23.1 Executing Other Programs
  • 23.2 Daemon Processes
  • 23.3 Controlling and Debugging Processes

Chapter 24: Network Programming

  • 24.1 Network Protocols and APIs
  • 24.2 Client-Server Communication with TCP/IP
  • 24.3 Broadcasting and Multicasting

Chapter 25: Signal Handling

  • 25.1 Overview of Signals
  • 25.2 Signal Handling Functions
  • 25.3 Advanced Signal Handling Techniques

Chapter 26: Advanced IPC Techniques

  • 26.1 Using Multiple IPC Mechanisms
  • 26.2 Advanced IPC Techniques with Shared Memory
  • 26.3 Advanced IPC Techniques with Sockets

本課文與目錄由chatGPT產生,並由人類小幫手挑選或增加提示以讓內容盡量對標坊間課堂所使用的標準課本,而非chatGPT產生什麼就直接貼上來。

About

chatGPT generated liunx interface textbook

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages