I was expecting a book that really digs right into the Linux kernel, and would give me some insight into why Linux works as great as it does, but that's not what I found.
Author: Randolph Bentson
Publisher: Specialized Systems Consultants (SSC)
Reviewer: Richelo Killian
The title of this book, Inside Linux: A Look at Operating System Development, is a bit misleading. I was expecting a book that really digs right into the Linux kernel, and would give me some insight into why Linux works as great as it does, but that's not what I found.
Please don't misinterpret the above paragraph—Dr. Randolph Bentson has written an excellent book here. I just think the title is a bit misleading. Now that I have that off my chest, let's have a look at what the book does offer. The book is divided into three parts:
The Linux Programmer's View
The Advanced User's View
Chapter 1 discusses why Linux is becoming more popular, pointing out both its advantages and its shortcomings, although even those are looked at from a Linux-fanatic's point of view. This chapter alone makes buying the book worthwhile, if only as ammunition to convince your boss you need Linux in your organization.
In the next three chapters, Dr Bentson gives a fairly detailed history of the development of Linux, covering, among other topics: security rings, the shell, file system, timesharing, virtual memory, the X client, the X server, scheduling, synchronization, memory management and kernel security. These issues are discussed from the initial development of Linux, and why many of these elements are implemented differently in Linux than in any other system. Each system element is covered in sufficient detail, but not so much as to become boring. Dr. Bentson has done an excellent job of filtering through all the material available for these different areas of operating system Development, but just in case there are some people out there who want more information on one or more of the topics discussed, he includes more than enough pointers to sites on the Internet to satisfy even the most avid reader.
Part II, “The Linux Programmer's View”, gets a bit deeper into the actual kernel. Chapter 5 discusses the operating system kernel, concentrating on issues such as: user interface, process control, input/output, memory management, security, standards and “bootstrapping the kernel”. Each section is full of example code which better explains the concepts presented. All of this explanation is done in a mere 80 pages—I would have liked a more in-depth discussion of the inner workings of the kernel.
Chapter 6 looks at the networking side of the kernel and gives a brief overview of the ISO OSI Model, TCP/IP, UDP/IP and IP & ICMP. This chapter is very informative, mostly covering information that can also be found in The Linux Network Administrator's Guide. Part III starts off by looking at development tools, but does not discuss any specific tools, concentrating instead on the philosophies behind the tools.
Chapter 7 discusses languages, editors and file management tools. Chapter 8 goes into quite a bit of detail on the hardware supported by the Linux kernel. These chapters would be very useful to a new user in making decisions as to hardware and software tools. The book concludes with a quick run-down of available distributions—a good reference for someone looking to buy, as long as the rapid rate of change in software today is kept in mind. Covered in this last chapter are dual tracked kernel releases, distribution kits and CD-ROM publishers. Appendix B contains a concise list of system calls, and Appendix C consists of a nice time-line of Linux development to date. Overall I would say that this is an excellent read for the accomplished Unix User. Part II, however, could be a bit too advanced for the newcomer to Unix.
Dr. Bentson emphasizes that the book was written in LaTeX, and converted to HTML with LaTeX2HTML. It would be nice if SSC could include the book on CD in HTML format to make following the URLs easier.