|
|
Books > Computing & IT > Computer hardware & operating systems > Operating systems & graphical user interfaces (GUIs) > Unix, Unix Linux & Unix TCL/TK
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 DescriptionLinux 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
forThis 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.
Docker lets you create, deploy, and manage your applications
anywhere at anytime - flexibility is key so you can deploy stable,
secure, and scalable app containers across a wide variety of
platforms and delve into microservices architecture About This Book
* This up-to-date edition shows how to leverage Docker's features
to deploy your existing applications * Learn how to package your
applications with Docker and build, ship, and scale your containers
* Explore real-world examples of securing and managing Docker
containers Who This Book Is For This book is ideal for developers,
operations managers, and IT professionals who would like to learn
about Docker and use it to build and deploy container-based apps.
No prior knowledge of Docker is expected. What You Will Learn *
Develop containerized applications using the Docker version 17.03 *
Build Docker images from containers and launch them * Develop
Docker images and containers leveraging Dockerfiles * Use Docker
volumes to share data * Get to know how data is shared between
containers * Understand Docker Jenkins integration * Gain the power
of container orchestration * Familiarize yourself with the
frequently used commands such as docker exec, docker ps, docker
top, and docker stats In Detail Docker is an open source
containerization engine that offers a simple and faster way for
developing and running software. Docker containers wrap software in
a complete filesystem that contains everything it needs to run,
enabling any application to be run anywhere - this flexibily and
portabily means that you can run apps in the cloud, on virtual
machines, or on dedicated servers. This book will give you a tour
of the new features of Docker and help you get started with Docker
by building and deploying a simple application. It will walk you
through the commands required to manage Docker images and
containers. You'll be shown how to download new images, run
containers, list the containers running on the Docker host, and
kill them. You'll learn how to leverage Docker's volumes feature to
share data between the Docker host and its containers - this data
management feature is also useful for persistent data. This book
also covers how to orchestrate containers using Docker compose,
debug containers, and secure containers using the AppArmor and
SELinux security modules. Style and approach This step-by-step
guide will walk you through the features and use of Docker, from
Docker software installation to the impenetrable security of
containers.
Optimize and boost your Linux-based system with Yocto Project and
increase its reliability and robustness efficiently and
cost-effectively. About This Book * Optimize your Yocto Project
tools to develop efficient Linux-based projects * Practical
approach to learning Linux development using Yocto Project *
Demonstrates concepts in a practical and easy-to-understand way Who
This Book Is For If you are an embedded Linux developer with a
basic knowledge of Yocto Project and want to broaden your knowledge
with examples of embedded development, then this book is for you.
This book is also for professionals who want to find new insights
into working methodologies for Linux development. What You Will
Learn * Understand the basic concepts involved in Poky workflows
along with configuring and preparing the Poky build environment. *
Configure a build server and customize images using Toaster. *
Generate images and fit packages into created images using BitBake.
* Support the development process by setting up and using Package
feeds. * Debug Yocto Project by configuring Poky. * Build an image
for the BeagleBone Black, RaspberryPi 3, and Wandboard, and boot it
from an SD card. In Detail Yocto Project is turning out to be the
best integration framework for creating reliable embedded Linux
projects. It has the edge over other frameworks because of its
features such as less development time and improved reliability and
robustness. Embedded Linux Development using Yocto Project starts
with an in-depth explanation of all Yocto Project tools, to help
you perform different Linux-based tasks. The book then moves on to
in-depth explanations of Poky and BitBake. It also includes some
practical use cases for building a Linux subsystem project using
Yocto Project tools available for embedded Linux. The book also
covers topics such as SDK, recipetool, and others. By the end of
the book, you will have learned how to generate and run an image
for real hardware boards and will have gained hands-on experience
at building efficient Linux systems using Yocto Project. Style and
approach A clear, concise, and straightforward book that will
enable you to use and implement the latest features of Yocto
Project.
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 DescriptionServerless 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 forThis 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
Learn the skills you need to take advantage of Kali Linux for
digital forensics investigations using this comprehensive guide
About This Book * Master powerful Kali Linux tools for digital
investigation and analysis * Perform evidence acquisition,
preservation, and analysis using various tools within Kali Linux *
Implement the concept of cryptographic hashing and imaging using
Kali Linux * Perform memory forensics with Volatility and internet
forensics with Xplico. * Discover the capabilities of professional
forensic tools such as Autopsy and DFF (Digital Forensic Framework)
used by law enforcement and military personnel alike Who This Book
Is For This book is targeted at forensics and digital
investigators, security analysts, or any stakeholder interested in
learning digital forensics using Kali Linux. Basic knowledge of
Kali Linux will be an advantage. What You Will Learn * Get to grips
with the fundamentals of digital forensics and explore best
practices * Understand the workings of file systems, storage, and
data fundamentals * Discover incident response procedures and best
practices * Use DC3DD and Guymager for acquisition and preservation
techniques * Recover deleted data with Foremost and Scalpel * Find
evidence of accessed programs and malicious programs using
Volatility. * Perform network and internet capture analysis with
Xplico * Carry out professional digital forensics investigations
using the DFF and Autopsy automated forensic suites In Detail Kali
Linux is a Linux-based distribution used mainly for penetration
testing and digital forensics. It has a wide range of tools to help
in forensics investigations and incident response mechanisms. You
will start by understanding the fundamentals of digital forensics
and setting up your Kali Linux environment to perform different
investigation practices. The book will delve into the realm of
operating systems and the various formats for file storage,
including secret hiding places unseen by the end user or even the
operating system. The book will also teach you to create forensic
images of data and maintain integrity using hashing tools. Next,
you will also master some advanced topics such as autopsies and
acquiring investigation data from the network, operating system
memory, and so on. The book introduces you to powerful tools that
will take your forensic abilities and investigations to a
professional level, catering for all aspects of full digital
forensic investigations from hashing to reporting. By the end of
this book, you will have had hands-on experience in implementing
all the pillars of digital forensics-acquisition, extraction,
analysis, and presentation using Kali Linux tools. Style and
approach While covering the best practices of digital forensics
investigations, evidence acquisition, preservation, and analysis,
this book delivers easy-to-follow practical examples and detailed
labs for an easy approach to learning forensics. Following the
guidelines within each lab, you can easily practice all readily
available forensic tools in Kali Linux, within either a dedicated
physical or virtual machine.
A journey toward containerized applications in production with a
cloud-portable, secure, robust and highly available Docker
Enterprise platform. Key Features Get an insider's view into the
container movement and Docker Enterprise Manage the transformation
associated with enterprise container adoption Walk through the
enterprise container adoption journey Book DescriptionWhile known
mostly as the open source engine behind tens of millions of server
nodes, Docker also offers commercially supported enterprise tooling
known as the Docker Enterprise. This platform leverages the deep
roots from Docker Engine - Community (formerly Docker CE) and
Kubernetes, but adds support and tooling to efficiently operate a
secure container platform at scale. With hundreds of enterprises on
board, best practices and adoption patterns are emerging rapidly.
These learning points can be used to inform adopters and help
manage the enterprise transformation associated with enterprise
container adoption. This book starts by explaining the case for
Docker Enterprise, as well as its structure and reference
architecture. From there, we progress through the PoC,pilot and
production stages as a working model for adoption, evolving the
platform's design and configuration for each stage and using
detailed application examples along the way to clarify and
demonstrate important concepts.The book concludes with Docker's
impact on other emerging software technologies, such as Blockchain
and Serverless computing. By the end of this book, you'll have a
better understanding of what it takes to get your enterprise up and
running with Docker Enterprise and beyond. What you will learn
Understand why containers are important to an enterprise Understand
the features and components of Docker Enterprise 2 Find out about
the PoC, pilot, and production adoption phases Get to know the best
practices for installing and operating Docker Enterprise Understand
what is important for a Docker Enterprise in production Run
Kubernetes on Docker Enterprise Who this book is forThis book is
for Software Architects, DevOps Engineers, Tech Ops, Docker
professionals, or any IT professional working with Docker and
containers who wants to move containerized workloads to production.
This book discusses the enterprise adoption of Docker and
Kubernetes,therefore a basic understanding of Docker concepts will
be helpful.
A concise, fast-paced guide to orchestrating and deploying scalable
services with Docker About This Book * Explore the new features
added to the core Docker Engine to make multi-container
orchestration easy * Leverage tools such as Docker Machine, Swarm,
Compose, and third-party tools such as Kubernetes, Mesosphere, and
CoreOS to orchestrate containers * Use Docker Compose with Swarm
and apply rolling updates for zero downtime deployments Who This
Book Is For This book is aimed at Sysadmins and DevOps engineers
who know what Docker does and are now looking to manage multiple
containers on multiple hosts using the orchestration feature. What
You Will Learn * Build scalable, reliable services with Docker *
See how to manage a service in Docker using Docker Swarm,
Kubernetes, and Mesosphere * Discover simpler orchestration tools
such as CoreOS/Fleet and Rancher Cattle * Understand cluster-wide
logging, system monitoring, and troubleshooting * Build, test, and
deploy containers using Continuous Integration * Deploy cluster
hosts on cloud services and automate your infrastructure In Detail
Docker orchestration is what you need when transitioning from
deploying containers individually on a single host to deploying
complex multi-container apps on many machines. This book covers the
new orchestration features of Docker 1.12 and helps you efficiently
build, test, and deploy your application using Docker. You will be
shown how to build multi-container applications using Docker
Compose. You will also be introduced to the building blocks for
multi-host Docker clusters such as registry, overlay networks, and
shared storage using practical examples. This book gives an
overview of core tools such as Docker Machine, Swarm, and Compose
which will enhance your orchestration skills. You'll learn how to
set up a swarm using the decentralized building block. Next, you'll
be shown how to make the most out of the in-built orchestration
feature of Docker engine and you'll use third-party tools such as
Kubernetes, Mesosphere, and CoreOS to orchestrate your existing
process. Finally, you will learn to deploy cluster hosts on cloud
services and automate your infrastructure. Style and approach This
comprehensive guide will take you through the orchestration feature
of Docker. Using practical examples, you will discover various
tools that can be used to manage multiple containers with ease.
Enhance your software deployment workflow using containers Key
Features Get up-and-running with basic to advanced concepts of
Docker Get acquainted with concepts such as Docker containers,
Docker images, orchestrators and so on. Practical test-based
approach to learning a prominent containerization tool Book
DescriptionDocker containers have revolutionized the software
supply chain in small and big enterprises. Never before has a new
technology so rapidly penetrated the top 500 enterprises worldwide.
Companies that embrace containers and containerize their
traditional mission-critical applications have reported savings of
at least 50% in total maintenance cost and a reduction of 90% (or
more) of the time required to deploy new versions of those
applications. Furthermore they are benefitting from increased
security just by using containers as opposed to running
applications outside containers. This book starts from scratch,
introducing you to Docker fundamentals and setting up an
environment to work with it. Then we delve into concepts such as
Docker containers, Docker images, Docker Compose, and so on. We
will also cover the concepts of deployment, orchestration,
networking, and security. Furthermore, we explain Docker
functionalities on public clouds such as AWS. By the end of this
book, you will have hands-on experience working with Docker
containers and orchestrators such as SwarmKit and Kubernetes. What
you will learn Containerize your traditional or microservice-based
application Share or ship your application as an immutable
container image Build a Docker swarm and a Kubernetes cluster in
the cloud Run a highly distributed application using Docker Swarm
or Kubernetes Update or rollback a distributed application with
zero downtime Secure your applications via encapsulation, networks,
and secrets Know your options when deploying your containerized app
into the cloud Who this book is forThis book is targeted at system
administrators, operations engineers, DevOps engineers, and
developers or stakeholders who are interested in getting started
with Docker from scratch. No prior experience with Docker
Containers is required.
Get up and running with system programming concepts in Linux Key
Features Acquire insight on Linux system architecture and its
programming interfaces Get to grips with core concepts such as
process management, signalling and pthreads Packed with industry
best practices and dozens of code examples Book DescriptionThe
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. 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 Who this book is forHands-On System Programming with
Linux is for Linux system engineers, programmers, or anyone who
wants to go beyond using an API set to understanding the
theoretical underpinnings and concepts behind powerful Linux system
programming APIs. To get the most out of this book, you should be
familiar with Linux at the user-level logging in, using shell via
the command line interface, the ability to use tools such as find,
grep, and sort. Working knowledge of the C programming language is
required. No prior experience with Linux systems programming is
assumed.
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 DescriptionAndroid 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 forThis
book is for developers who have a basic knowledge of Android and
want to start using the Android Things developer kit.
Create and maintain powerful Bash scripts for automation and
administration. Key Features Get up and running with Linux shell
scripting using real-world examples Leverage command-line
techniques and methodologies to automate common yet complex
administration tasks A practical guide with exposure to scripting
constructs and common scripting patterns Book DescriptionShell
scripts allow us to program commands in chains and have the system
execute them as a scripted event, just like batch files. This book
will start with an overview of Linux and Bash shell scripting, and
then quickly deep dive into helping you set up your local
environment, before introducing you to tools that are used to write
shell scripts. The next set of chapters will focus on helping you
understand Linux under the hood and what Bash provides the user.
Soon, you will have embarked on your journey along the command
line. You will now begin writing actual scripts instead of
commands, and will be introduced to practical applications for
scripts. The final set of chapters will deep dive into the more
advanced topics in shell scripting. These advanced topics will take
you from simple scripts to reusable, valuable programs that exist
in the real world. The final chapter will leave you with some handy
tips and tricks and, as regards the most frequently used commands,
a cheat sheet containing the most interesting flags and options
will also be provided. After completing this book, you should feel
confident about starting your own shell scripting projects, no
matter how simple or complex the task previously seemed. We aim to
teach you how to script and what to consider, to complement the
clear-cut patterns that you can use in your daily scripting
challenges. What you will learn Understand Linux and Bash basics as
well as shell scripting fundamentals Learn to write simple shell
scripts that interact with Linux operating system Build, maintain,
and deploy scripts in a Linux environment Learn best practices for
writing shell scripts Avoid common pitfalls associated with Bash
scripting Gain experience and the right toolset to write your own
complex shell scripts Who this book is forThis book targets new and
existing Linux system administrators, Windows system administrators
or developers who are interested in automating administrative
tasks. No prior shell scripting experience is needed but in case
you do this book will make a pro quickly. Readers should have a
basic understanding of the command line.
Learn how to build physical computing systems using BeagleBone
Black and Python About This Book * Get to grips with the
fundamentals of BeagleBone * Leverage Python scripts to program
BeagleBone for your requirements * Build four exciting projects,
from home automation to a tele-controlled robot Who This Book Is
For This book is intended for hobbyists and consumers who wish to
create impressive projects using BeagleBone. You must be familiar
with Python programming. What You Will Learn * Program on
BeagleBone Black using Python * Interface sensors and actuators to
BeagleBone Black * Build your own real-time physical computing
systems * Connect physical computing systems to cloud servers *
Build your own home automation and home security system * Build
your own tele-controlled robot with real-time video streaming In
Detail BeagleBone is a low cost, community-supported development
platform to develop a variety of electronic projects. This book
will introduce you to BeagleBone and get you building fun, cool,
and innovative projects with it. Start with the specifications of
BeagleBone Black and its operating systems, then get to grips with
the GPIOs available in BeagleBone Black. Work through four types of
exciting projects: building real-time physical computing systems,
home automation, image processing for a security system, and
building your own tele-controlled robot and learn the fundamentals
of a variety of projects in a single book. By the end of this book,
you will be able to write code for BeagleBone in order to operate
hardware and impart decision-making capabilities with the help of
efficient coding in Python. Style and approach This book is a step
by step guide that will walk you through the fundamentals of
building different projects using BeagleBone Black.
Develop a solid understanding of the important command-line tools
and utilities in Linux Key Features Delve into the fundamentals of
Linux Explore and work with virtualization, command lines, and Bash
shell scripts Use special file permission flags such as setuid and
setgid Book DescriptionLinux is a Unix-like operating system
assembled under the model of free and open source software
development and distribution. Fundamentals of Linux will help you
learn all the essentials of the Linux command line required to get
you started. The book will start by teaching you how to work with
virtualization software and install CentOS 7 Linux as a VM. Then,
you will get to grips with the workings of various command line
operations, such as cursor movement, commands, options, and
arguments. As you make your way through the chapters, the book will
not only focus on the most essential Linux commands but also give
an introduction to Bash shell scripting. Finally, you will explore
advanced topics, such as networking and troubleshooting your
system, and you will get familiar with the advanced file
permissions: ACL, setuid, and setgid. Fundamentals of Linux
includes real-world tasks, use cases, and problems that, as a
system administrator, you might encounter in your day-to-day
activities. What you will learn Explore basic and advanced
command-line concepts Install Linux, work with VirtualBox, and
install CentOS 7 in VirtualBox Work with the command line
efficiently and learn how to navigate through the Linux filesystem
Create file and user group permissions and edit files Use Sticky
bit to secure your Linux filesystem Define and remove ACL from
Linux files Who this book is forFundamentals of Linux is for
individuals looking to work as a Linux system administrator.
|
|