Linux
Linux设备驱动开发详解 豆瓣
作者: 宋宝华 机械工业出版社 2015 - 8
对于嵌入式工程师来说,进入更高阶段后,学习Linux设备驱动开发无疑就是职业生涯的一次“重生”。这是因为Linux设备驱动开发不仅仅涉及操作系统的转换,开发方式的转换,更重要的是思维上的转变。对于Linux这样一个复杂系统,如何从复杂的代码中抓住设备驱动开发的关键是任何一个Linux设备驱动开发者入门时需要面对的挑战。除了知识、工具之外,往往还需要思路上的指导。本书不但帮助Linux设备驱动开发的初学者厘清必要的概念,还从具体的实例、设备驱动开发的指导原则循序渐进地引导读者渐入学习佳境。为了让读者能够达到Linux设备驱动开发的至臻境界,作者更是从软件工程的角度抽象出设备驱动开发的一般思想。毫无疑问,本书将成为读者学习Linux设备驱动开发过程中的一座“灯塔”。
Small, Sharp Software Tools 豆瓣
作者: Brian P. Hogan Pragmatic Bookshelf 2019 - 6
The command-line interface is making a comeback. That's because developers know that all the best features of your operating system are hidden behind a user interface designed to help average people use the computer. But you're not the average user, and the CLI is the most efficient way to get work done fast. Turn tedious chores into quick tasks: read and write files, manage complex directory hierarchies, perform network diagnostics, download files, work with APIs, and combine individual programs to create your own workflows. Put down that mouse, open the CLI, and take control of your software development environment.
No matter what language or platform you're using, you can use the CLI to create projects, run servers, and manage files. You can even create new tools that fit right in with grep, sed, awk, and xargs. You'll work with the Bash shell and the most common command-line utilities available on macOS, Windows 10, and many flavors of Linux.
Create files without opening a text editor. Manage complex directory strutures and move around your entire file system without touching the mouse. Diagnose network issues and interact with APIs. Chain several commands together to transform data, and create your own scripts to automate repetitive tasks. Make things even faster by customizing your environment, creating shortcuts, and integrating other tools into your environment. Hands-on activities and exercises will cement your newfound knowledge and give you the confidence to use the CLI to its fullest potential. And if you're worried you'll wreck your system, this book walks you through creating an Ubuntu virtual machine so you can practice worry-free.
Dive into the CLI and join the thousands of other devs who use it every day.
2019年11月20日 想读 senior SWE真是啥都见过, 啥都会, 而且立刻搞出来. Network, Storage, etc.
Pattern: 啥问题? -> 5min -> 好了.
计算机科学 Linux 软件工程
Essential Linux Device Drivers 豆瓣
作者: Sreekrishnan Venkateswaran Prentice Hall 2008 - 4
Linux now offers an exceptionally robust environment for driver development: with today's kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world's most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today's fastest growing areas of Linux development. For each, Venkateswaran explains the technology, inspects relevant kernel source files, and walks through developing a complete example.
• Addresses drivers discussed in no other book, including drivers for I2C, video, sound, PCMCIA, and different types of flash memory
• Demystifies essential kernel services and facilities, including kernel threads and helper interfaces
• Teaches polling, asynchronous notification, and I/O control
• Introduces the Inter-Integrated Circuit Protocol for embedded Linux drivers
• Covers multimedia device drivers using the Linux-Video subsystem and Linux-Audio framework
• Shows how Linux implements support for wireless technologies such as Bluetooth, Infrared, WiFi, and cellular networking
• Describes the entire driver development lifecycle, through debugging and maintenance
• Includes reference appendixes covering Linux assembly, BIOS calls, and Seq files
Systems Performance 豆瓣 Goodreads
作者: Brendan Gregg Prentice Hall 2013 - 10
The accelerating deployment of large-scale web, cloud, Big Data, and virtualized computing systems has introduced serious new challenges in performance optimization. Until now, however, little reliable, practical information has been available to IT professionals who are responsible for running these systems efficiently and cost-effectively.
Systems Performance: Enterprise and the Cloud is the solution. Internationally renowned performance optimization expert Brendan Gregg brings together state-of-the-art techniques and tools for analysis and tuning of large-scale web/cloud computing environments.
Gregg focuses on Linux/Unix/Solaris performance issues, while offering proven methodologies and discussing key issues that apply to all enterprise operating systems. Coverage includes:
Modern performance analysis and capacity planning, including key issues such as latency and dynamic tracing
New performance and reliability challenges associated with cloud computing
Methodology, concepts, terminology, tools, and metrics
Key tradeoffs, including problems of load vs. architecture
Tuning operating systems, CPUs, memory, file systems, disks, networks, and busses
Tuning virtualized systems
Programming language issues related to performance — including application profiling for C, C++, Java, and node.js
Benchmarking strategies and pitfalls, including custom microbenchmarking
Professional Linux Kernel Architecture 豆瓣
作者: Wolfgang Mauerer Wrox 2008 - 10
Find an introduction to the architecture, concepts and algorithms of the Linux kernel in Professional Linux Kernel Architecture, a guide to the kernel sources and large number of connections among subsystems. Find an introduction to the relevant structures and functions exported by the kernel to userland, understand the theoretical and conceptual aspects of the Linux kernel and Unix derivatives, and gain a deeper understanding of the kernel. Learn how to reduce the vast amount of information contained in the kernel sources and obtain the skills necessary to understand the kernel sources.
Professional Linux Kernel Architecture
As the Linux kernel constantly evolves, so must your understanding of the central functions of the kernel. Linux expert Wolfgang Mauerer focuses on version 2.6.24 (as well as summarizing changes to versions 2.6.25 and 2.6.26) of the kernel as he walks you through the concepts, underlying structures, and implementation of the Linux kernel. Keeping a close connection with the source code—as well as the components and subsystems of the kernel—this book reviews the VFS layer and discusses virtual filesystems and the Extended filesystem family and examines how the page and buffer cache speed up kernel operations.
You'll take a look at the peculiarities of various architectures supported by the kernel, explore the assorted tools and means of working efficiently with the kernel sources, and investigate the numerous social aspects of kernel development and the Linux kernel community. Ultimately, this insightful book will serve as an indispensable step towards understanding structure and implementation of the Linux kernel.
What you will learn from this book
*Various ways of viewing the kernel—as an enhanced machine, a resource manager, and a library
*How the kernel handles all time-related requirements, both with low and high resolution
*The mechanisms required to ensure proper operation of the kernel on multiprocessor systems
*How modules add new functionality to the kernel
*How the kernel deals with memory management, page reclaim, and swapping
*How the kernel deals with networks and implements TCP/IP
Who this book is for
This book is for system programmers, administrators, developers of Linux-based solutions, and overall Linux enthusiasts. A solid foundation of C programming is required.
2017年8月6日 在读
最详实的内核梳理 不过很老了...
kernel Linux os