C++ Programming for Linux Systems: Create robust enterprise software for Linux and Unix-based operating systems / Программирование на C++ для систем Linux: Создание надежного корпоративного программного обеспечения для операционных систем на базе Linux и Unix Год издания: 2023 Автор: Andreev D., Lazarova M., Lukanov S. / Андреев Д., Лазарова М., Луканов С. Издательство: Packt Publishing ISBN: 978-1-80512-900-4 Язык: Английский Формат: PDF (Not True), EPUB, MOBI Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 328 Описание: 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. Повысьте свои навыки работы с C++, работая с реалистичными примерами и изучая системные спецификации Ключевые функции Овладейте необходимыми навыками для создания надежных систем Linux Изучите практические примеры, чтобы прояснить важнейшие концепции разработки и развить свои способности в системном программировании Овладейте искусством создания программного обеспечения для систем Linux и улучшите свои навыки работы с C++ Описание книги Около 35 миллионов пользователей Linux и почти 2 миллиарда пользователей Android полагаются на C++ во всем - от простейших встраиваемых устройств и устройств Интернета вещей до облачных сервисов, суперкомпьютеров и освоения космоса. Чтобы помочь вам создавать высококачественное программное обеспечение, два отраслевых эксперта воплотили свои знания и опыт в практические примеры системного программирования с помощью C++ Programming for Linux Systems. В этой книге вы познакомитесь с новейшими возможностями C++20, работая над несколькими конкретными вариантами использования. Вы познакомитесь с сопрограммами и современными подходами в параллельном и многопоточном программировании. Вы также научитесь изменять свое мышление при анализе поведения системы в средах Linux (POSIX). Кроме того, вы познакомитесь с расширенными дискуссиями и новыми решениями для сложных задач, одновременно подходя к тривиальным системным операциям с новым взглядом и учась выбирать наилучший дизайн для вашего конкретного случая. Вы можете использовать эту книгу в качестве введения в системное программирование и разработку программного обеспечения в Linux или любой другой среде на базе Unix. Вы также найдете её полезной в качестве руководства или дополнения к любой книге по C++. К концу этой книги вы приобретете передовые знания и навыки для работы с Linux или любой другой средой на базе Unix. Чему вы научитесь Использовать возможности C++20 для создания элегантного, эффективного и современного кода для систем Linux Приобретёте необходимые навыки системного программирования на практических примерах Развьете глубокое понимание программирования на Linux, от встраиваемых систем до облачных сервисов Адаптировать свои приложения таким образом, чтобы использовать сильные стороны и смягчать недостатки различных архитектур Объедините передовые знания C++, системного программирования, Linux insights и архитектуры для создания исключительного программного обеспечения Повысите качество вашего кода, используя методы системного программирования для уточнения и оптимизации вашей кодовой базы Для кого предназначена Эта книга Эта книга предназначена для каждого разработчика программного обеспечения, стремящегося улучшить свои навыки разработки на C++. Как студенты, так и профессионалы найдут эту книгу полезной, поскольку примеры подобраны таким образом, чтобы соответствовать любой области знаний, и их легко адаптировать. В то же время они не упускают из виду специфику системы. Базовое понимание интерфейсов операционных систем является обязательным наряду с опытом разработки программного обеспечения.
Примеры страниц
Оглавление
Preface Part 1: Securing the Fundamentals 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 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 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 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 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 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 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 Semaphore Mutual exclusion (mutex) Using shared memory Learning about mmap() and shm_open() Communicating through the network with sockets Overview of the OSI model Getting familiar with networking through UDP Thinking about robustness through TCP Summary 8 Using Clocks, Timers, and Signals in Linux Technical requirements Handling time in Linux Linux epoch Using timers in Linux POSIX timer characteristics Handling time in C++ Using clocks, timers, and ratios More about clocks in C++20 Using calendar and time zone capabilities Working with time zones in C++ Summary 9 Understanding the C++ Memory Model Technical requirements Getting to know smart pointers and optionals in C++ Retracing RAII via smart pointers Doing a lazy initialization in C++ Learning about condition variables, read-write locks, and ranges in C++ Cooperative cancellation through condition variables Combining smart pointers, condition variables, and shared memory Implementing read-write locks and ranges with C++ Discussing multiprocessor systems – cache locality and cache friendliness in C++ Considering cache locality through cache-friendly code A glance at false sharing Sharing resources larger than a cache line in C++ Revisiting shared resources through the C++ memory model via spinlock implementation Introducing the memory_order type in C++ Designing spinlocks for multiprocessor systems in C++ Summary 10 Using Coroutines in C++ for System Programming Technical requirements Introducing coroutines The coroutine facility in C++ Network programming and coroutines in C++ Revisiting the shared memory problem through coroutines in C++ Final thoughts on coroutines and their implementations in C++ Summary Index Other Books You May Enjoy
[only-soft.org].t185791.torrent
Торрент:
Зарегистрирован
[ 2023-09-27 14:10 ]
5 KB
Статус:
√проверено
Скачан:
1 раз
Размер:
14 MB
Оценка:
(Голосов: 0)
Поблагодарили:
0
Andreev D., Lazarova M., Lukanov S. - C++ Programming for Linux Systems: Create robust enterprise software for Linux and Unix-based operating systems / Программирование на C++ для систем Linux [2023, PDF, EPUB, MOBI, ENG] скачать торрент бесплатно и без регистрации
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы