Systems programming is a broad field that includes topics as diverse as operating systems, memory management, drivers, and direct access to hardware through programming using assembly language.
A key distinguishing characteristic that underlies this domain is the ability to program at the level of abstraction that is most appropriate for the problem at hand. Naturally, some problems require one to intimately understand concepts that are usually hidden by modern languages, such as working with unmanaged memory.
I am excited about Modern Systems Programming with Scala Native as it covers modern systems programming through the lens of the Scala programming language. The book builds up from foundational concepts, such as pointers and manual memory management. It walks through direct interoperability with both traditional C APIs and modern native libraries.
As you progress through the book, you are going to dive deeper into the world of lower-level programming. Even though the domain might seem intimidating at first, the gradual delivery of the key insights makes the whole process completely seamless.
Richard Whaling has been at the forefront of building the async I/O story for the Scala Native ecosystem. He is spearheading the adoption of libuv as the avenue for next-generation high-performance async I/O in Scala. In addition to the many great talks he has given on the topic over the years, this book provides another opportunity to learn from his experience.