
عنوان:
System Programming in Linux
نویسنده:
.Weiss, Stewart N
انتشارات:
No Starch Press City: San Francisco, CA
تاریخ انتشار:
2025
حجم:
6.04MB
معرفی کتاب:" برنامهنویسی سیستم در لینوکس: یک معرفی عملی"
یاد بگیرید که نرمافزار واقعی لینوکس بنویسید—نه فقط آن را اجرا کنید.
بیشتر برنامهنویسان هیچوقت نمیآموزند که لینوکس چگونه واقعاً کار میکند. چرا؟ چون برنامهنویسی سیستم به ندرت آموزش داده میشود و ابزارها میتوانند بدون راهنمایی مناسب، ترسناک باشند. در نتیجه، بسیاری از توسعهدهندگان به زبانها و فریمورکهای سطح بالا متکی میشوند—کدی مینویسند که روی لینوکس اجرا میشود بدون اینکه درک کنند چگونه با لینوکس تعامل دارد.
در دنیای امروزی، این برای برجسته شدن کافی نیست. بهویژه با توجه به اینکه بیشتر شرکتها به سمت هوش مصنوعی میروند تا نرمافزار خود را بنویسند، سوال این میشود: چگونه در دنیای تحتتأثیر هوش مصنوعی مرتبط بمانید؟ جواب این است که یاد بگیرید واقعاً چگونه چیزها کار میکنند.
اگر تا به حال تعجب کردهاید که چگونه فرآیندها ایجاد میشوند، چگونه حافظه و فایلها مدیریت میشوند، یا چگونه برنامهها در یک محیط Unix با هم ارتباط برقرار میکنند، System Programming in Linux تمام این مفاهیم را برای شما روشن خواهد کرد.
این کتاب یک راهنمای عملی برای نوشتن نرمافزاری است که بهطور مستقیم با سیستمعامل لینوکس تعامل دارد. شما فراتر از دستورات شل و انتزاعات خواهید رفت تا درک کنید کرنل چه کاری انجام میدهد—و چگونه میتوانید آن را از طریق کد خود بهرهبرداری کنید. به جای اینکه به شما بگوییم چگونه هر مسئلهای را حل کنید، پروفسور استوارت ن. وایس شما را در فرآیند کشف راهحلها هدایت میکند.
با مفاهیم اصلی Unix و لینوکس شروع کرده و سپس به مباحث پیشرفتهای مانند:
- ساختار سیستمعاملهای Unix و Linux و دلیل اهمیت آن
- استفاده از system calls برای ایجاد و مدیریت فرآیندها
- مکانیزمهای سیگنالها، تایمرها، و ارتباطات بین فرآیندی
- استفاده از ابزارهای همزمانی برای نوشتن برنامههای چندنخی
- تعامل با سیستمفایلها، دستگاهها، و ترمینالها
- ساخت رابطهای کاربری مبتنی بر متن با استفاده از ncurses
- توسعه برنامههایی که مقاوم، کارآمد و قابل حمل هستند
در Hunter College، پروفسور وایس دورهای را که این کتاب بر اساس آن ساخته شده، طراحی کرده و در طول بیش از 40 سال تدریس برنامهنویسی، به هزاران دانشجو کمک کرده است تا از سردرگمی به اعتماد به نفس برسند. سبک گفتگوی واضح و فنی، عمق تکنیکی و تمرکز بر کاربردهای دنیای واقعی این کتاب را به یکی از مناسبترین و قدرتمندترین کتابهای برنامهنویسی سیستم تبدیل کرده است.
با ادامه تسلط لینوکس بر محیطهای توسعه، سرور و جاسازی، درک سیستم پشت نرمافزار شما فقط مفید نیست؛ بلکه ضروری است.
مخاطب این کتاب:
چه دانشجو باشید، چه توسعهدهنده یا سیستمادمین، این کتاب ابزارهایی را به شما میدهد تا مستقیماً با لینوکس کار کنید و درک عمیقی از آنچه که در پسزمینه در حال رخ دادن است بدست آورید.
فهرست مطالب
- About the Author
- Brief Contents
- Contents in Detail
- Acknowledgments
- Preface
- Introduction
- Chapter 1: Core Concepts
- What Is System Programming?
- Fundamental Concepts of Unix
- Using the Manual Pages
- Unix History and Standards
- C Standards
- Summary
- Exercises
- Chapter 2: Fundamentals of System Programming
- Object Libraries
- System Calls
- Handling Errors from System Calls and Library Functions
- Portability
- System Limits
- Internationalization
- Processing the Command Line and Environment
- Summary
- Exercises
- Chapter 3: Time, Dates, and Locales
- Learning System Programming
- Organization of Common Code
- Planning Our First System Program
- Designing the First Version of spl_date
- Designing a Second Version of spl_date
- Designing a Third Version of spl_date
- Working with Locales
- Summary
- Exercises
- Chapter 4: Basic Concepts of File I/O
- High-Level vs. Low-Level File I/O
- Universal I/O
- File Permissions Revisited
- A Process's User IDs
- The setuid Bit
- Input/Output Mechanics
- Standard File Descriptors
- The Kernel I/O Interface
- Writing a copy Command
- Timing Programs
- Summary
- Exercises
- Chapter 5: File I/O and Login Accounting
- Controlling the Position of I/O Operations
- Displaying Last Login Information
- Usernames, User IDs, and the passwd File
- Developing a lastlog Program
- Developing a last Command
- Summary
- Exercises
- Chapter 6: Overview of Filesystems and Files
- Disks and Disk Partitions
- Many, Many Filesystems
- Filesystem Structure
- The Kernel's Filesystem Interface
- The Virtual Filesystem
- Exploring the Filesystem API
- The stat Command
- The stat() System Call
- The statx() System Call
- Writing an spl_stat Command
- Writing an spl_statfs Command
- Summary
- Exercises
- Chapter 7: The Directory Hierarchy
- Directory Structure
- Processing Directories
- A Simple ls Program
- Other Functions in the Directory API
- Processing the Directory Hierarchy
- Mounting File Systems
- Tree Walks
- The pwd Command
- Summary
- Exercises
- Chapter 8: Introduction to Signals
- The Role of Signals
- Signal Concepts
- Basic Signal Handling
- Sending Signals
- Blocking Signals
- The sigaction() System Call
- Guidance on Designing Signal Handlers
- Summary
- Exercises
- Chapter 9: Timers and Sleep Functions
- Keeping Track of Time
- Time, Clocks, and Timing
- High-Resolution Sleep Functions
- Software Timers
- Interval Timers
- Summary
- Exercises
- Chapter 10: Process Fundamentals
- Processes Revisited
- The Process Tree
- Process Groups
- Sessions
- Foreground and Background Processes and Process Groups
- Program Files
- The Virtual Memory Layout of a Process
- The Kernel's Process Representation
- The proc Pseudofilesystem
- Summary
- Exercises
- Chapter 11: Process Creation and Termination
- The Lifetime of a Process
- Creating Processes
- Terminating Processes
- Executing Programs
- Waiting for Children
- Putting It All Together: A Simple Shell
- The system() Library Function
- Summary
- Exercises
- Chapter 12: Introduction to Interprocess Communication
- Why Do We Need IPC?
- An Overview of Interprocess Communication
- POSIX Shared Memory
- Semaphores
- A Shared Memory Producer Consumer Program
- POSIX Message Queues
- Summary
- Exercises
- Chapter 13: Pipes and FIFOs
- An Overview of Pipes
- Pipe Basics
- Unnamed Pipes
- The popen() and pclose() Library Functions
- FIFOs
- Summary
- Exercises
- Chapter 14: Client-Server Applications and Daemons
- Introduction to Client-Server Applications
- System Logging Facilities
- Daemons
- An Iterative Server
- A Concurrent Server
- Summary
- Exercises
- Chapter 15: Introduction to Threads
- Background
- Threads and Processes
- Program Design Considerations with Threads
- Overview of the Pthreads Library
- Thread Management
- Signals and Threads
- A Multithreaded Concurrent Server
- Summary
- Exercises
- Chapter 16: Thread Synchronization
- Correctness and Performance Considerations
- Mutexes
- Condition Variables
- Barrier Synchronization
- Read-Write Locks
- Summary
- Exercises
- Chapter 17: Alternative Methods of I/O
- Nonblocking I/O
- Signal-Driven I/O
- POSIX Asynchronous I/O
- Multiplexed I/O
- Summary
- Exercises
- Chapter 18: Terminals and Terminal I/O
- About Interactive Programs
- An Overview of Terminals
- Terminal Drivers
- The Terminal Driver API
- Writing an spl_stty Command
- The ioctl() System Call
- Summary
- Exercises
- Chapter 19: Interactive Programming and the ncurses Library
- Canonical and Noncanonical Modes
- An Interactive Program in Noncanonical Mode
- Curses and the ncurses Library
- A Curses Version of sprite.c
- The top Program
- Summary
- Exercises
- Appendix A: Creating Libraries
- Appendix B: Unicode and UTF-8
- Appendix C: Date and Time Format Specifiers
- Bibliography
- Index
مشخصات
نام کتاب
System Programming in Linux: A Hands-On Introduction Edition: 1
نویسنده
.Weiss, Stewart N
انتشارات
No Starch Press City: San Francisco, CA
تاریخ انتشار
2025
ISBN
9781718503571
تعداد صفحات
1051
زبان
انگلیسی
فرمت
حجم
6.04MB
موضوع
Computers > Operating Systems Computers > Programming