A better book to read would be one that informs you on how to interface C++ code with a C API. Armed with this information, you'd be able to cope with any 3rd party library with a C API, not just the Linux kernel.
For example, using C++ creature comforts like RAII - such as the ctor opens a file and the dtor closes the file - so you don't end up with annoying resource leaks.
Half the book you imagine would be describing
- this is a wrapper for files
- this is a wrapper for sockets
- this is a wrapper for processes
Lets consider: fopen(), fclose(), fflush(), fread(), fwrite(). They all operate on an opaque type FILE*. It's a pointer so the implementation can remain private.
So, how would we implement this ADT in C++? One possible implementation might be:
Most C APIs are abstract data types, some are object oriented; most notably the sockets library and GUI interfaces. But it doesn't matter, most of these C ADT or OO interfaces are better expressed in C++ using this technique.
I hope this helps.
BTW, I wrote this code into the editor and not compiled it. Consider any syntax errors an exercise for the reader.