Hi,
I thought I should comment too, if you don't mind.
Octacone wrote:Can I hear some general vertified experiences? Do they teach as well as what I've heard?
I am very interested in hearing some comments too. Other than this forum, have you heard elsewhere, and if so, I would like to know where that was.
Octacone wrote:Are they written in a way that is generally easy to understand?
I tried to write as if the reader knew very little about the subject, though some knowledge is a requirement. For example, they do not teach you how to program, program the x86, nor how to use a compiler or assembler. These things are prerequisites to reading the books. However, I explain why something is needed and how to implement it. Some say that I repeat myself throughout the text, but I do so to get a point across when that point is important.
Octacone wrote:I would really appreciate some quality feedback.
So would I...(smile)
Octacone wrote:Totally weird side question: approximately (really thin, average, thick) how "thin" is a single page? (asking it because I hope it is not easily tear-able).
Have you heard that the pages are thin? If so, where? The book is professionally bound using a professional company on a mass producing printing press. The paper is high-quality and does not tear very easily. The only thing I have found is that the cover tends to not stay closed, though this will happen to any book that is pressed open to stay at a certain page on the desk.
Now for some comments for you as well as other (potential) readers:
1) Please keep in mind that the books are written as if you have done little to no operating system development at all. Therefore, if you are at all fluent in OS development, you might find much of it boring and/or useless. However, with this in mind, I do put many comments throughout the books of quirks and other things a fluent programmer might not catch or know. For example, in another thread here in this forum, someone asked what the CS:IP register pair should be at boot time. This has been discussed numerous times in many forums and groups. In my opinion, it doesn't matter one bit what the CS:IP register pair is as long as you don't rely upon it. The CS:IP register pair could be 0010:7B00 for all I care, and your boot code should still function just the same. It is little things like this that I discuss in little side notes, peppered throughout the pages.
2) These books were/are done, for the most part, for my enjoyment. Therefore, and for example,
Volume 4 has information about the
BUS mouse. Yes, a mouse that is so for behind times, you can't even find hardware for it anymore. I did this, because I enjoyed the research and development of the chapter. However, keep in mind that reading that chapter might teach you how the BUS mouse is programmed, in turn teaching you how to program hardware.
3) Each volume is specific to a certain subject. For example,
Volume 2 has quite a bit of information about creating a file system, showing details on a few known systems (FAT, ISO, etc), as well as creating a file system. However, it has very little to so with anything else that is not file system related.
4) Again, depending on your knowledge of OS development, you may or may not need one or more of the volumes in the set. If you have a good knowledge of OS development, you may only need Volumes 3 and 8.
Volume 3 describing the details of the FDC and floppy programming, ATA(PI)/IDE controllers, and AHCI/SATA controllers.
Volume 8, of course, is the USB volume (which is my favorite) and explains how to communicate with the UHCI, OHCI, EHCI, and xHCI controllers as well as common USB devices.
5) Volume 5 is not released and probably won't be since it doesn't have a lot to do with OS development, as well as any PCI programming needed for the other volumes are included in those volumes. I might change Volume 5 to something else.
6) Volume 7 is not yet released either, because it needs a lot of work. I have a working NE2k and RTL8139 network controller driver write up, as well as the start of a Network Stack, but it needs some more work.
7)
Volume 6 shows the details and examples of a simple GUI, how to write to the VESA video screen, creating windows and objects. This one requires that you know a bit about mouse and keyboard input, explained in Volume 4.
8) I tried to write each book independent of another, not requiring you to have one volume to use another. Each book can be used by itself, as long as you are somewhat knowledgeable about programming.
9) Each book is written so that no underlining OS is needed. Each book is written to teach you, the programmer, how to directly communicate with the hardware, at an Port/Mem-mapped I/O level.
Anyway, I support all my work and if anyone has any questions, please feel free to ask. Once you have the book, simply send me a proof of purchase and I will send you the ISO of the source code. Why a proof of purchase? Imagine someone with the source code and not the book asking about a particular function within the code, while it is explained in heavy detailed on Page X, paragraph Y of Volume Z.
Another note is that I did not write the source code so that you could copy/paste it to your project. I wrote the source code to show how it can be done, leaving the implementation to you, the reader. You are to take the example source code and modify it and/or simply use it as a guide to write your own implementation. I won't do your homework for you.
I appreciate all the support I have received from the readers, the praise and not so praise, the corrections, the comments, etc. With this in mind, please note that my books may not be 100% correct, and I don't imply that they are. I wrote them for the enjoyment of the research and development, are correct to the best of my knowledge, and hope that others learn from my work.
Thank you for your comments, and I would very much appreciate any comments you or others in this forum might have.
Ben