Limit search to available items
Record 31 of 235
Previous Record Next Record
E-book
Author Andreev, Desislav, author

Title C++ programming for Linux systems : create robust enterprise software for Linux and Unix-based operating systems / Desislav Andreev, Stanimir Lukanov ; foreword by Milena Lazarova
Edition [First edition]
Published Birmingham, UK : Packt Publishing Ltd., 2023

Copies

Description 1 online resource (288 pages) : illustrations
Contents Cover -- Title Page -- Copyright and Credit -- Dedicated -- Foreword -- Contributors -- Table of Contents -- Preface -- Part 1: Securing the Fundamentals -- Chapter 1: Getting Started with Linux Systems and the POSIX Standard -- Technical requirements -- Getting familiar with the concept of OSs -- Types of OSs -- Linux in short -- Getting to know the Linux kernel -- Introducing the system call interface and system programming -- Navigating through files, processes, and threads -- File -- Process and thread -- Types of processes based on their running mode
Running services with init and systemd -- Portable Operating System Interface (POSIX) -- Summary -- Chapter 2: Learning More about Process Management -- Technical requirements -- Disassembling process creation -- Memory segments -- Continuing with process states and some scheduling mechanisms -- Scheduling mechanisms -- Scheduling at a high level -- Scheduling at a low level -- Learning more about process creation -- Introducing fork() -- exec and clone() -- Terminating a process -- Blocking a calling process -- Introducing the system calls for thread manipulation in C++
Joining and detaching threads -- Thread termination -- Summary -- Chapter 3: Navigating through the Filesystems -- Technical requirements -- Going through Linux's filesystem fundamentals -- Linux's FS -- Directory structure and partitioning -- Linux FS objects -- Executing FS operations with C++ -- IPC through anonymous pipes and named pipes -- Anonymous or unnamed pipes -- Named pipes -- Briefly observing signal handling -- Summary -- Chapter 4: Diving Deep into the C++ Object -- Technical requirements -- Understanding the C++ object model -- Declaration versus definition
Scope, storage duration, and lifetimes -- The object -- The reference -- Understanding why initialization matters -- Functors and lambdas -- Exploring functional objects -- Lambda expressions -- Summary -- Chapter 5: Handling Errors with C++ -- Technical requirements -- Handling errors from POSIX APIs with C++ -- Using std::error_code and std::error_condition -- From error codes to exceptions -- std::system_error -- Throw by value, catch by reference -- try/catch ... finally -- Summary -- Part 2: Advanced Techniques for System Programming -- Chapter 6: Concurrent System Programming with C++
Technical requirements -- What is concurrency? -- Threads versus processes -- Concurrency with C++ -- Demystifying race conditions and data races -- How do we avoid them? -- Practical multithreading -- Hello C++ jthread -- Canceling threads -- is this really possible? -- std::stop_source -- Sharing data during parallel execution -- Barriers and latches -- Summary -- Chapter 7: Proceeding with Inter-Process Communication -- Technical requirements -- Introducing MQs and the pub/sub mechanism -- The pub/sub mechanism -- Guaranteeing atomic operations through semaphores and mutual exclusions
Summary Boost your C++ skills by working through realistic examples and exploring system specifications Key Features Master essential skills to build robust Linux systems Explore hands-on examples to demystify crucial development concepts, upskilling your system programming abilities Master the art of creating software for Linux systems and supercharge your C++ skills Purchase of the print or Kindle book includes a free PDF eBook Book Description Around 35 million Linux and almost 2 billion Android users rely on C++ for everything from the simplest embedded and IoT devices to cloud services, supercomputing, and space exploration. To help you produce high-quality software, two industry experts have transformed their knowledge and experience into practical examples in system programming with C++ Programming for Linux Systems. In this book, you'll explore the latest C++20 features, while working on multiple specific use cases. You'll get familiar with the coroutines and modern approaches in concurrent and multithreaded programming. You'll also learn to reshape your thinking when analyzing system behavior in Linux (POSIX) environments. Additionally, you'll discover advanced discussions and novel solutions for complex challenges, while approaching trivial system operations with a new outlook and learning to choose the best design for your particular case. You can use this workbook as an introduction to system programming and software design in Linux or any Unix-based environment. You'll also find it useful as a guideline or a supplement to any C++ book. By the end of this book, you'll have gained advanced knowledge and skills for working with Linux or any Unix-based environment. What you will learn Use C++20 features to craft elegant, efficient, and modern code for Linux systems Acquire essential system programming skills with hands-on examples Develop a deep understanding of Linux programming, from embedded systems to cloud services Tailor your applications to exploit the strengths and mitigate the weaknesses of different architectures Merge advanced C++, system programming, Linux insights, and architecture to create exceptional software Boost your code quality by using system programming techniques to refine and optimize your codebase Who this book is for This book is for every software developer looking to improve and update their C++ development skills. Both students and professionals will find this book useful as the examples are curated to match any area of expertise and are easily adaptable. At the same time, they don't lose focus of the system specifics. A basic understanding of operating systems' interfaces is a must along with experience in software development
Notes Includes index
SUBJECT Linux. http://id.loc.gov/authorities/names/n94087892
UNIX (Computer file) http://id.loc.gov/authorities/names/n91019960
Linux fast
UNIX (Computer file) fast
Subject C++ (Computer program language)
Computer programming.
Operating systems (Computers)
computer programming.
operating systems.
C++ (Computer program language)
Computer programming
Operating systems (Computers)
Form Electronic book
Author Lukanov, Stanimir, author
Lazarova, Milena, writer of foreword