Take a look at our Linux books. Shulph carries a great selection of Linux books, and we are always adding more.
Android Things is the new Android based Operating System for the Internet of Things. With this book you will learn the core concepts by running code examples on different peripherals. Key Features No previous knowledge of IoT or microcontrollers required. Hands-On with simple code and plenty of examples. Use Kotlin to write simpler and more readable code Book Description Android Things is the IoT platform made by Google, based on Android. It allows us to build smart devices in a simple and convenient way, leveraging on the Android ecosystem tools and libraries, while letting Google take care of security updates. This book takes you through the basics of IoT and smart devices. It will help you to interact with common IoT device components and learn the underlying protocols. For a simple setup, we will be using Rainbow HAT so that we don't need to do any wiring. In the first chapter, you will learn about the Android Things platform, the design concepts behind it, and how it relates to other IoT frameworks. We will look at the Developer Kits and learn how to install Android Things on them by creating a simple project. Later, we will explore the real power of Android Things, learning how to make a UI, designing and communicating with companion apps in different ways, showcasing a few libraries. We will demonstrate libraries and you will see how powerful the Android Things operating system is. What you will learn Understand key design concepts of Android Things and its advantages Set up an Android Things Developer Kit Interact with all the components of Rainbow HAT Understand how peripheral protocols work (GPIO, PWM, I2C, and SPI) Implement best practices of how to handle IoT peripherals with in terms Android Things Develop techniques for building companion apps for your devices Who this book is for This book is for developers who have a basic knowledge of Android and want to start using the Android Things developer kit.
Master the concepts and techniques that will help you gain the LX0-103 and LX0-104 certifications on your first attempt Key Features Get a clear understanding of how to achieve the Linux+ certification Explore system architecture, shell scripts, data management, and Linux security Work through practice and mock tests to pass both LX0-103 and LX0-104 exams Book Description Linux+ certification demonstrates technical competency and provides a broad awareness of Linux operating systems. Professionals who have achieved the Linux+ certification exhibit all-important knowledge of installation, operation, administration, and troubleshooting services. The CompTIA Linux+ Certification Guide is an overview of the certification that gives you insights into the system architecture. You'll understand how to install and uninstall Linux distributions, followed by working with various package managers. Once you've grasped all this, you'll move on to manipulating files and processes at command-line interface (CLI) and creating, monitoring, killing, restarting, and modifying processes. As you progress, you'll be equipped to work with display managers and learn how to create, modify, and remove user accounts and groups, as well as understand how to automate tasks. The last set of chapters helps you configure dates and set up local and remote system logging. In addition to this, you'll explore different internet protocols, along with discovering network configuration, security administration, Shell scripting, and SQL management. By the end of this book, you'll not only have got to grips with all the modules using practice questions and mock exams, but you'll also be well prepared to pass the LX0-103 and LX0-104 certification exams. What you will learn Understand the Linux system architecture Install, upgrade, and manage Linux system packages Configure devices and maintain the Linux filesystem Manage the Shell environment, write scripts, and manage data Set user interfaces and desktops in the Linux operating system Automate system admin tasks and manage essential system services Manage SQL server on Linux and log locally and remotely with rsyslogd Administer network and local security Who this book is for The CompTIA Linux+ Certification Guide is for you if you want to gain the CompTIA Linux+ certificate. This guide is also for system administrators and rookie Linux professionals interested in enhancing their Linux and Shell scripting skills. No prior knowledge of Linux is needed, although some understanding of Shell scripting would be helpful.
Deploy functions efficiently using different cloud-based serverless offerings Key Features Understand the concept of Function-as-a-Service Implement Serverless solutions using AWS Lambda, Azure Functions and Google Cloud Functions Practical approach towards choosing the best tool for your serverless environment Book Description Serverless applications and architectures are gaining momentum and are increasingly being used by companies of all sizes. Serverless software takes care of many problems that developers face when running systems and servers, such as fault tolerance, centralized logging, horizontal scalability, and deployments. You will learn how to harness serverless technology to rapidly reduce production time and minimize your costs, while still having the freedom to customize your code, without hindering functionality. Upon finishing the book, you will have the knowledge and resources to build your own serverless application hosted in AWS, Microsoft Azure, or Google Cloud Platform, and will have experienced the benefits of event-driven technology for yourself. This hands-on guide dives into the basis of serverless architectures and how to build them using Node.js as a programming language, Visual Studio Code for code editing, and Postman for quickly and securely developing applications without the hassle of configuring and maintaining infrastructure on three public cloud platforms. What you will learn Understand the benefts of serverless computing and know when to use it Develop serverless applications on AWS, Azure, and Google Cloud Get to grips with Function as a Service (FaaS) Apply triggers to serverless functions Build event-driven apps using serverless frameworks Use the Node.js programming language to build serverless apps Use code editors, such as Visual Studio Code, as development environments Master the best development practices for creating scalable and practical solutions Who this book is for This book is targeted towards developers, system administrators or any stakeholder working in the Serverless environment and want to understand how functions work. Basic idea of serverless architecture can be an added advantage
A hands-on guide to making system programming with C++ easy Key Features Write system-level code leveraging C++17 Learn the internals of the Linux Application Binary Interface (ABI) and apply it to system programming Explore C++ concurrency to take advantage of server-level constructs Book Description C++ is a general-purpose programming language with a bias toward system programming as it provides ready access to hardware-level resources, efficient compilation, and a versatile approach to higher-level abstractions. This book will help you understand the benefits of system programming with C++17. You will gain a firm understanding of various C, C++, and POSIX standards, as well as their respective system types for both C++ and POSIX. After a brief refresher on C++, Resource Acquisition Is Initialization (RAII), and the new C++ Guideline Support Library (GSL), you will learn to program Linux and Unix systems along with process management. As you progress through the chapters, you will become acquainted with C++'s support for IO. You will then study various memory management methods, including a chapter on allocators and how they benefit system programming. You will also explore how to program file input and output and learn about POSIX sockets. This book will help you get to grips with safely setting up a UDP and TCP server/client. Finally, you will be guided through Unix time interfaces, multithreading, and error handling with C++ exceptions. By the end of this book, you will be comfortable with using C++ to program high-quality systems. What you will learn Understand the benefits of using C++ for system programming Program Linux/Unix systems using C++ Discover the advantages of Resource Acquisition Is Initialization (RAII) Program both console and file input and output Uncover the POSIX socket APIs and understand how to program them Explore advanced system programming topics, such as C++ allocators Use POSIX and C++ threads to program concurrent systems Grasp how C++ can be used to create performant system applications Who this book is for If you are a fresh developer with intermediate knowledge of C++ but little or no knowledge of Unix and Linux system programming, this book will help you learn system programming with C++ in a practical way.
Discover end-to-end penetration testing solutions to enhance your ethical hacking skills Key Features Practical recipes to conduct effective penetration testing using the latest version of Kali Linux Leverage tools like Metasploit, Wireshark, Nmap, and more to detect vulnerabilities with ease Confidently perform networking and application attacks using task-oriented recipes Book Description Many organizations have been affected by recent cyber events. At the current rate of hacking, it has become more important than ever to pentest your environment in order to ensure advanced-level security. This book is packed with practical recipes that will quickly get you started with Kali Linux (version 2018.4 / 2019), in addition to covering the core functionalities. The book will get you off to a strong start by introducing you to the installation and configuration of Kali Linux, which will help you to perform your tests. You will also learn how to plan attack strategies and perform web application exploitation using tools such as Burp and JexBoss. As you progress, you will get to grips with performing network exploitation using Metasploit, Sparta, and Wireshark. The book will also help you delve into the technique of carrying out wireless and password attacks using tools such as Patator, John the Ripper, and airoscript-ng. Later chapters will draw focus to the wide range of tools that help in forensics investigations and incident response mechanisms. As you wrap up the concluding chapters, you will learn to create an optimum quality pentest report. By the end of this book, you will be equipped with the knowledge you need to conduct advanced penetration testing, thanks to the book's crisp and task-oriented recipes. What you will learn Learn how to install, set up and customize Kali for pentesting on multiple platforms Pentest routers and embedded devices Get insights into fiddling around with software-defined radio Pwn and escalate through a corporate network Write good quality security reports Explore digital forensics and memory analysis with Kali Linux Who this book is for If you are an IT security professional, pentester, or security analyst who wants to conduct advanced penetration testing techniques, then this book is for you. Basic knowledge of Kali Linux is assumed.
Explore the latest ethical hacking tools and techniques in Kali Linux 2019 to perform penetration testing from scratch Key Features Get up and running with Kali Linux 2019.2 Gain comprehensive insights into security concepts such as social engineering, wireless network exploitation, and web application attacks Learn to use Linux commands in the way ethical hackers do to gain control of your environment Book Description The current rise in hacking and security breaches makes it more important than ever to effectively pentest your environment, ensuring endpoint protection. This book will take you through the latest version of Kali Linux and help you use various tools and techniques to efficiently deal with crucial security aspects. Through real-world examples, you'll understand how to set up a lab and later explore core penetration testing concepts. Throughout the course of this book, you'll get up to speed with gathering sensitive information and even discover different vulnerability assessment tools bundled in Kali Linux 2019. In later chapters, you'll gain insights into concepts such as social engineering, attacking wireless networks, exploitation of web applications and remote access connections to further build on your pentesting skills. You'll also focus on techniques such as bypassing controls, attacking the end user and maintaining persistence access through social media. Finally, this pentesting book covers best practices for performing complex penetration testing techniques in a highly secured environment. By the end of this book, you'll be able to use Kali Linux to detect vulnerabilities and secure your system by applying penetration testing techniques of varying complexity. What you will learn Explore the fundamentals of ethical hacking Learn how to install and configure Kali Linux Get up to speed with performing wireless network pentesting Gain insights into passive and active information gathering Understand web application pentesting Decode WEP, WPA, and WPA2 encryptions using a variety of methods, such as the fake authentication attack, the ARP request replay attack, and the dictionary attack Who this book is for If you are an IT security professional or a security consultant who wants to get started with penetration testing using Kali Linux 2019.2, then this book is for you. The book will also help if you're simply looking to learn more about ethical hacking and various security breaches. Although prior knowledge of Kali Linux is not necessary, some understanding of cybersecurity will be useful.
Get up to speed with the most important concepts in driver development and focus on common embedded system requirements such as memory management, interrupt management, and locking mechanismsKey FeaturesWrite feature-rich and customized Linux device drivers for any character, SPI, and I2C deviceDevelop a deep understanding of locking primitives, IRQ management, memory management, DMA, and so onGain practical experience in the embedded side of Linux using GPIO, IIO, and input subsystemsBook DescriptionLinux is by far the most-used kernel on embedded systems. Thanks to its subsystems, the Linux kernel supports almost all of the application fields in the industrial world. This updated second edition of Linux Device Driver Development is a comprehensive introduction to the Linux kernel world and the different subsystems that it is made of, and will be useful for embedded developers from any discipline.You'll learn how to configure, tailor, and build the Linux kernel. Filled with real-world examples, the book covers each of the most-used subsystems in the embedded domains such as GPIO, direct memory access, interrupt management, and I2C/SPI device drivers. This book will show you how Linux abstracts each device from a hardware point of view and how a device is bound to its driver(s). You'll also see how interrupts are propagated in the system as the book covers the interrupt processing mechanisms in-depth and describes every kernel structure and API involved. This new edition also addresses how not to write device drivers using user space libraries for GPIO clients, I2C, and SPI drivers.By the end of this Linux book, you'll be able to write device drivers for most of the embedded devices out there. What you will learnDownload, configure, build, and tailor the Linux kernelDescribe the hardware using a device treeWrite feature-rich platform drivers and leverage I2C and SPI busesGet the most out of the new concurrency managed workqueue infrastructureUnderstand the Linux kernel timekeeping mechanism and use time-related APIsUse the regmap framework to factor the code and make it genericOffload CPU for memory copies using DMAInteract with the real world using GPIO, IIO, and input subsystemsWho this book is forThis Linux OS book is for embedded system and embedded Linux enthusiasts/developers who want to get started with Linux kernel development and leverage its subsystems. Electronic hackers and hobbyists interested in Linux kernel development as well as anyone looking to interact with the platform using GPIO, IIO, and input subsystems will also find this book useful.
Over 30 recipes to develop custom drivers for your embedded Linux applications. Key Features Use Kernel facilities to develop powerful drivers Via a practical approach, learn core concepts of developing device drivers Program a custom character device to get access to kernel internals Book Description Linux is a unified kernel that is widely used to develop embedded systems. As Linux has turned out to be one of the most popular operating systems used, the interest in developing proprietary device drivers has also increased. Device drivers play a critical role in how the system performs and ensures that the device works in the manner intended. By offering several examples on the development of character devices and how to use other kernel internals, such as interrupts, kernel timers, and wait queue, as well as how to manage a device tree, you will be able to add proper management for custom peripherals to your embedded system. You will begin by installing the Linux kernel and then configuring it. Once you have installed the system, you will learn to use the different kernel features and the character drivers. You will also cover interrupts in-depth and how you can manage them. Later, you will get into the kernel internals required for developing applications. Next, you will implement advanced character drivers and also become an expert in writing important Linux device drivers. By the end of the book, you will be able to easily write a custom character driver and kernel code as per your requirements. What you will learn Become familiar with the latest kernel releases (4.19+/5.x) running on the ESPRESSObin devkit, an ARM 64-bit machine Download, configure, modify, and build kernel sources Add and remove a device driver or a module from the kernel Master kernel programming Understand how to implement character drivers to manage different kinds of computer peripherals Become well versed with kernel helper functions and objects that can be used to build kernel applications Acquire a knowledge of in-depth concepts to manage custom hardware with Linux from both the kernel and user space Who this book is for This book will help anyone who wants to develop their own Linux device drivers for embedded systems. Having basic hand-on with Linux operating system and embedded concepts is necessary.
Find solutions to all your problems related to Linux system programming using practical recipes for developing your own system programsKey FeaturesDevelop a deeper understanding of how Linux system programming worksGain hands-on experience of working with different Linux projects with the help of practical examplesLearn how to develop your own programs for LinuxBook DescriptionLinux is the world's most popular open source operating system (OS). Linux System Programming Techniques will enable you to extend the Linux OS with your own system programs and communicate with other programs on the system. The book begins by exploring the Linux filesystem, its basic commands, built-in manual pages, the GNU compiler collection (GCC), and Linux system calls. You'll then discover how to handle errors in your programs and will learn to catch errors and print relevant information about them. The book takes you through multiple recipes on how to read and write files on the system, using both streams and file descriptors. As you advance, you'll delve into forking, creating zombie processes, and daemons, along with recipes on how to handle daemons using systemd. After this, you'll find out how to create shared libraries and start exploring different types of interprocess communication (IPC). In the later chapters, recipes on how to write programs using POSIX threads and how to debug your programs using the GNU debugger (GDB) and Valgrind will also be covered. By the end of this Linux book, you will be able to develop your own system programs for Linux, including daemons, tools, clients, and filters.What you will learnDiscover how to write programs for the Linux system using a wide variety of system callsDelve into the working of POSIX functionsUnderstand and use key concepts such as signals, pipes, IPC, and process managementFind out how to integrate programs with a Linux systemExplore advanced topics such as filesystem operations, creating shared libraries, and debugging your programsGain an overall understanding of how to debug your programs using ValgrindWho this book is forThis book is for anyone who wants to develop system programs for Linux and gain a deeper understanding of the Linux system. The book is beneficial for anyone who is facing issues related to a particular part of Linux system programming and is looking for specific recipes or solutions.
Master the art of developing customized device drivers for your embedded Linux systemsKey FeaturesStay up to date with the Linux PCI, ASoC, and V4L2 subsystems and write device drivers for themGet to grips with the Linux kernel power management infrastructureAdopt a practical approach to customizing your Linux environment using best practicesBook DescriptionLinux is one of the fastest-growing operating systems around the world, and in the last few years, the Linux kernel has evolved significantly to support a wide variety of embedded devices with its improved subsystems and a range of new features. With this book, you'll find out how you can enhance your skills to write custom device drivers for your Linux operating system.Mastering Linux Device Driver Development provides complete coverage of kernel topics, including video and audio frameworks, that usually go unaddressed. You'll work with some of the most complex and impactful Linux kernel frameworks, such as PCI, ALSA for SoC, and Video4Linux2, and discover expert tips and best practices along the way. In addition to this, you'll understand how to make the most of frameworks such as NVMEM and Watchdog. Once you've got to grips with Linux kernel helpers, you'll advance to working with special device types such as Multi-Function Devices (MFD) followed by video and audio device drivers.By the end of this book, you'll be able to write feature-rich device drivers and integrate them with some of the most complex Linux kernel frameworks, including V4L2 and ALSA for SoC.What you will learnExplore and adopt Linux kernel helpers for locking, work deferral, and interrupt managementUnderstand the Regmap subsystem to manage memory accesses and work with the IRQ subsystemGet to grips with the PCI subsystem and write reliable drivers for PCI devicesWrite full multimedia device drivers using ALSA SoC and the V4L2 frameworkBuild power-aware device drivers using the kernel power management frameworkFind out how to get the most out of miscellaneous kernel subsystems such as NVMEM and WatchdogWho this book is forThis book is for embedded developers, Linux system engineers, and system programmers who want to explore Linux kernel frameworks and subsystems. C programming skills and a basic understanding of driver development are necessary to get started with this book.