Hands-On System Programming with Linux: Explore Linux system programming interfaces, theory, and practice
By 作者: Kaiwan N Billimoria
ISBN-10 书号: 1788998472
ISBN-13 书号: 9781788998475
Release Finelybook 出版日期: 2018-10-31
pages 页数: (794 )
Book Description to Finelybook sorting
The Linux OS and its embedded and server applications are critical components of today’s software infrastructure in a decentralized, networked universe. The industry’s demand for proficient Linux developers is only rising with time. Hands-On System Programming with Linux gives you a solid theoretical base and practical industry-relevant descriptions, and covers the Linux system programming domain. It delves into the art and science of Linux application programming— system architecture, process memory and management, signaling, timers, pthreads, and file IO.
This book goes beyond the use API X to do Y approach; it explains the concepts and theories required to understand programming interfaces and design decisions, the tradeoffs made by experienced developers when using them, and the rationale behind them. Troubleshooting tips and techniques are included in the concluding chapter.
By the end of this book, you will have gained essential conceptual design knowledge and hands-on experience working with Linux system programming interfaces.
1: LINUX SYSTEM ARCHITECTURE
2: VIRTUAL MEMORY
3: RESOURCE LIMITS
4: DYNAMIC MEMORY ALLOCATION
5: LINUX MEMORY ISSUES
6: DEBUGGING TOOLS FOR MEMORY ISSUES
7: PROCESS CREDENTIALS
8: PROCESS CAPABILITIES
9: PROCESS EXECUTION
10: PROCESS CREATION
11: SIGNALING – PART I
12: SIGNALING – PART II
14: MULTITHREADING WITH PTHREADS PART I – ESSENTIALS
15: MULTITHREADING WITH PTHREADS PART II – SYNCHRONIZATION
16: MULTITHREADING WITH PTHREADS PART III
17: CPU SCHEDULING ON LINUX
18: ADVANCED FILE I/O
19: TROUBLESHOOTING AND BEST PRACTICES
What You Will Learn
Explore the theoretical underpinnings of Linux system architecture
Understand why modern OSes use virtual memory and dynamic memory APIs
Get to grips with dynamic memory issues and effectively debug them
Learn key concepts and powerful system APIs related to process management
Effectively perform file IO and use signaling and timers
Deeply understand multithreading concepts, pthreads APIs, synchronization and scheduling
Kaiwan N Billimoria
Kaiwan N Billimoria taught himself programming on his dad’s IBM PC back in 1983. He was programming in C and Assembly on DOS until he discovered the joys of Unix (via Richard Steven’s iconic book, UNIX Network Programming, and by writing C code on SCO Unix).
Kaiwan has worked on many aspects of the Linux system programming stack, including Bash scripting, system programming in C, kernel internals, and embedded Linux work. He has actively worked on several commercial/OSS projects. His contributions include drivers to the mainline Linux OS, and many smaller projects hosted on GitHub. His Linux passion feeds well into his passion for teaching these topics to engineers, which he has done for over two decades now. It doesn’t hurt that he is a recreational ultra-marathoner too.