Reviewed: March 2013
It is a bit peculiar to pick-up the 4th edition of Johnson M. Hart’s Windows System Programming – especially now, 3 years after it was published in February 2010 – a book introducing improvements in Windows 7 and Windows Server 2008 with (a bit too) elaborate C code samples whilst there is shiny new Windows 8 and Windows RT with which Microsoft steps away from desktop into tablet market.
To be honest, I don’t recommend this book if you aren’t a developer deeply interested in inner workings of the Windows platform, who somehow hasn’t read one of previous editions and isn’t busy moonlighting on an iOS or Android pet projects. Thus, if Windows is your chosen (or forced) platform, it’s the book for you (at least until an updated edition arrives).
With the growing popularity of web frameworks, software hosted in the cloud or mobile system keeping us away from hardware and internals of the OS, it seems that there is little to worry about. However, even though we rarely write low level system code these days, it’s still relevant to know how things work under the bonnet. Even if hidden below various layers. these basic components provided by the OS are the building blocks of every system. Windows System Programming starts coverage of these building blocks with details of Windows File System, Unicode, character processing, system registry, and moves on to exception handling, memory management, memory mapped files, process management, threads and synchronisation primitives (covering advanced concepts like NT6 condition variables), to cover the IPC, sockets programming, skimming over DLL entry points and thread-safety, Windows Services, asynchronous I/O and finishes with security discussions, topped off with couple of substantial appendixes. The author didn’t skip a subject worth mentioning!
In fact the book belongs to an endangered species – a very well structured, solid and thought-through textbook, which, surprise, leaves the reader with additional exercises at the end of every chapter. Be assured that you will find concise discussion followed by almost self-explanatory code samples covering most of the subjects touched.
To the advantage of Windows System Programming , and in distinction to another great book on the subject, Richter’s Windows via C/C++ (also recently updated), most of the OS concepts are discussed with a note on how things are done in UNIX world.
I think you get the point, it’s just one of these must-read book for a Windows developer.