Preface
Rust is a language for systems programming.
This bears some explanation these days, as systems programming is unfamiliar to most working programmers. Yet it underlies everything we do.
You close your laptop. The operating system detects this, suspends all the running programs, turns off the screen, and puts the computer to sleep. Later, you open the laptop: the screen and other components are powered up again, and each program is able to pick up where it left off. We take this for granted. But systems programmers wrote a lot of code to make that happen.
Systems programming is for:
Operating systems
Device drivers of all kinds
Filesystems
Databases
Code that runs in very cheap devices, or devices that must be extremely reliable
Cryptography
Media codecs (software for reading and writing audio, video, and image files)
Media processing (for example, speech recognition or photo editing software)
Memory management (for example, implementing a garbage collector)
Text rendering (the conversion of text and fonts into pixels)
Implementing higher-level programming languages (like JavaScript and Python)
Networking
Virtualization and software containers
Scientific simulations
Games
In short, systems programming is resource-constrained programming. It is programming when every byte and every CPU cycle counts.
The amount of systems code involved in supporting a basic app is staggering.
This book will not teach you systems programming. In fact, this book covers many details of memory ...