Book Recommendations

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
Zacariaz
Member
Member
Posts: 1069
Joined: Tue May 22, 2007 2:36 pm
Contact:

Re: Book Recommendations

Post by Zacariaz »

I would have liked to post this in another thread where a certain newly registered user asked about books about assembly, but that thread was locked for some reason, so even though this is not actually a book, but rather a number of video tutorials, I'll post them here anyway as I think they'll be a great introduction to those who are new to the assembly programming concept.

http://www.vtc.com/products/Assembly-La ... orials.htm

NB:
This is a site earning their living from selling such tutorials and thus not a very big portion of it is free, but the introductory part is.
This was supposed to be a cool signature...
User avatar
xfelix
Member
Member
Posts: 25
Joined: Fri Feb 18, 2011 5:40 pm

Re: Book Recommendations

Post by xfelix »

kop99 wrote:How about "Operating System Concepts 7th edition" by Silberschatz Galvin and "Understanding the Linux Kernel"...
I got the 8th edition :D It's also known as "Dinosaur Book".
I recommend this book, but you should build an OS as you're reading it.
Check out GeekOS (http://geekos.sourceforge.net/)
The More I See, The More I See There Is To See!
sathishmls
Posts: 1
Joined: Tue Jun 07, 2011 12:10 am

Re: Book Recommendations

Post by sathishmls »

how could you forget the book by John H. Crawford and Patrick P. Gelsinger called "Programming the 80386" (ISBN-13: 978-0895883810, URL: http://www.amazon.com/Programming-80386 ... 0895883813) by Sybex.

In fact people who wrote Unix like kernel (including BSD, Linux) on 80386+ machines used this book to code their kernel. Because John H. Crawford is the Chief Architect of the 80386 and family processors (wikipedia: http://en.wikipedia.org/wiki/John_Crawford_(engineer))
Last edited by JamesM on Tue Jun 07, 2011 3:11 am, edited 2 times in total.
Reason: Acting on Combuster's kind request to clean up the stupid colours.
rashkin
Posts: 1
Joined: Wed Sep 28, 2011 5:42 am

Re: Book Recommendations

Post by rashkin »

I read several books on os design the choice might be yours in following books
1. Operating systems M Milenkovic
2. Operating systems Internals William Stallings
3. Modern Operating systems A S Tanenbaum
4. The Design of the unix Operating systems M J Bach
5. Operating Systems Principles Silberschatz

these are basically the world's best books on os design and implementation.

thankxx....
mikegonta
Member
Member
Posts: 229
Joined: Thu May 19, 2011 5:13 am
Contact:

USB: The Universal Serial Bus

Post by mikegonta »

USB: The Universal Serial Bus
USB: The Universal Serial Bus
USB - The Universal Serial Bus.png (17.35 KiB) Viewed 73907 times
[/url]
Benjamin David Lunt wrote: This book explains, from the beginning, how to write code to communicate with the USB, to be able to write a driver for the
four major types of USB controllers; the UHCI, OHCI, EHCI, and the new xHCI. It explains how to send requests to the
devices attached, to return the device's descriptors to be able to configure and use the devices. Some examples include drives,
mice, keyboards, printers, and external hubs. This is all done without any outside help. In other words, you are communicating
directly with the hardware. You are not relying on an existing operating system's function calls. This book also contains example
descriptions of why your driver may not be working and then gives details on how to fix it. If you are an operating system
development enthusiast, a beginner or a more advanced developer, this is a book for your desk.

The author fully supports this book and upon request and receipt of purchase, will send you an .ISO image with example source
code to retrieve a device's Device Descriptor, plugged in to one of the four controller types, along with other source code
described within the book.
USB: The Universal Serial Bus by Benjamin David Lunt.

Volume 8 of the Operating System Design Book Series
Last edited by mikegonta on Tue Jun 02, 2015 6:36 am, edited 4 times in total.
Mike Gonta
look and see - many look but few see

https://mikegonta.com
Kortath
Member
Member
Posts: 57
Joined: Sat Sep 07, 2013 11:23 am

Re: Book Recommendations

Post by Kortath »

These are some of the books I physically bought and are sitting here in my office..

"Operating Systems: Design and Implementation", 2nd. ed., by Andrew S. Tanenbaum and Albert S. Woodhull
ISBN-10: 0136386776 | ISBN-13: 978-0136386773
Publication Date: January 15, 1997

AMAZON LINK
http://www.amazon.com/Operating-Systems ... ementation




"Programmer's Guide to the EGA, VGA, and Super VGA Cards", 3rd ed., by Richard F. Ferraro
ISBN-10: 0201624907 | ISBN-13: 978-0201624908
Publication Date: 1994

AMAZON LINK
http://www.amazon.com/Programmers-Guide ... +VGA+Cards




"PC Interrupts : A programmer's Reference to Bios, DOS, and Third-Party Calls", 1st ed., by Ralf Brown & Jim Kyle
NOTE : I have the black paperback cover which is the first edition. The one at amazon shows the white 2nd edition cover. However, when I ordered it from there, I ended up with the first edition. Fine by me, but just thought you might need this info before buying.
1st Edition ( The one I have )
ISBN : 0-201-57797-6
Publication Date: October 1991
2nd Edition
ISBN-10: 0201624850 | ISBN-13: 978-0201624854
Publication Date: January 1, 1994

AMAZON LINK
http://www.amazon.com/PC-Interrupts-Pro ... arty+Calls




"The 80x86 IBM PC and Compatible Computers ( Volumes I & II ) Assembly Language, Design, and Interfacing", 4th ed., by Muhammod Ali Mazidi & Janice Gillispie Mazidi
ISBN-10: 013061775X | ISBN-13: 978-0130617750
Publication Date: August 31, 2002

AMAZON LINK
http://www.amazon.com/80X86-IBM-Compati ... nterfacing




"PC Assembly Language Paperback", by Paul A. Carter
Publication Date: April 29, 2007
NOTE : The book shows to be in print from 2001 to 2004. But then when you look at the updated printing on the very first page, the year shows it to be 2007.
AUTHOR'S HOMEPAGE : http://www.drpaulcarter.com

AMAZON LINK
http://www.amazon.com/PC-Assembly-Langu ... aul+carter

I paid for the book here which is where the author will point you toward :
http://www.lulu.com/shop/paul-carter/pc ... F57C286F60
mikegonta
Member
Member
Posts: 229
Joined: Thu May 19, 2011 5:13 am
Contact:

FYSOS: The System Core

Post by mikegonta »

FYSOS: The System Core
FYSOS: The System Core
FYSOS - The System Core.png (17.33 KiB) Viewed 73909 times
[/url]
Benjamin David Lunt wrote:This book is for those who are building an operating system, or want to start building one. This book takes you from the
first step to the last step to create a minimal multi-threading protected mode OS with a round-robin style task scheduler,
memory allocator, etc., as well as retrieving all the information you will need before the switch to protected mode.
This book is for those who want to start but have no idea where or how to do so. Full source code is included as well as
many utilities, all with source, to build your system.
It is designed so that once you have this minimal system up and running, you can then start adding all of the items you need
to make it a fully functional operating system. Part 2 contains an example of a more detailed memory allocator, just an
example on how to add to this operating system.
Chapter 11 gives an example of creating the link between the kernel and the devices and file systems attached.
The remaining books in this series explains in more detail these devices.
FYSOS: The System Core by Benjamin David Lunt.

Volume 1 of the Operating System Design Book Series
Last edited by mikegonta on Tue Jun 02, 2015 6:35 am, edited 3 times in total.
Mike Gonta
look and see - many look but few see

https://mikegonta.com
mikegonta
Member
Member
Posts: 229
Joined: Thu May 19, 2011 5:13 am
Contact:

FYSOS: The Virtual File System

Post by mikegonta »

FYSOS: The Virtual File System
FYSOS: The Virtual File System
FYSOS - The Virtual File System.png (17.61 KiB) Viewed 73908 times
[/url]
Benjamin David Lunt wrote: This book is Volume 2 of the series, FYSOS: Operating System Design, and will describe the process needed to connect a file
system to your kernel.
It explains the steps to create a file system independent link between a file system residing on the media to your kernel code.
Once you have done this, a simple call to fopen("C:\filename.txt", OPEN) is all you need to open a file.
It then goes into detail, giving examples of what a file system should be, how to create your own, and what to include in that
file system. It also explains the process of a simple journaling file system.
Part 2 of this book details four file systems, two commonly used and well known, and two hobby file systems.
The companion CD-ROM contains source code to utilities to check your work, display the contents of a file system, dump a file
system, and repair a file system.
This book, and its continued series of books, does not expect you to build the next great wonder of the computer world. It
simply will help you with your interest in controlling the computer's hardware, from the point the BIOS releases execution to
your boot code to the point of a fully working Graphical User Interface.
It is not required that you know much about operating system design to use this book and no specific hardware or software
is required.
FYSOS: The Virtual File System by Benjamin David Lunt.

Volume 2 of the Operating System Design Book Series
Last edited by mikegonta on Tue Jun 02, 2015 6:35 am, edited 2 times in total.
Mike Gonta
look and see - many look but few see

https://mikegonta.com
blacky
Posts: 20
Joined: Mon Apr 06, 2015 3:59 am

Re: Book Recommendations

Post by blacky »

Since I haven't seen the book anywhere mentioned within previous posts (apologize in case I have missed it) I really would like to suggest the following reading material:

Professional Linux Kernel Architecture
Wolfgang Mauerer
ISBN: 978-0-470-34343-2

Btw: the book can be found online as well ;)
mikegonta
Member
Member
Posts: 229
Joined: Thu May 19, 2011 5:13 am
Contact:

FYSOS: Media Storage Devices

Post by mikegonta »

FYSOS: Media Storage Devices
FYSOS: Media Storage Devices
FYSOS - Media Storage Devices.png (21.36 KiB) Viewed 73910 times
[/url]
Benjamin David Lunt wrote:This book is Volume 3 of the series, FYSOS: Operating System Design, and will show the reader how to detect, initialize, and communicate
with three of the most common media hardware devices, the Floppy Disk Controller, the IDE Hard Disk Controller, and the SATA (AHCI)
Hard Disk Controller. The reader will learn how to detect the controller, what type of controller it is, initialize it to default values, detect
attached devices, and then communicate with those devices, such as reading and writing to the attached media.
All of this is done without any outside help, such as operating system calls or the help of the BIOS. The reader will learn how to communicate
with the hardware directly, reading and writing to the system bus to achieve these tasks.
The companion CD-ROM contains complete source code of each example within the book, showing how to accomplish these tasks.
This book, and its companion series of books, does not expect you to build the next great wonder of the computer world. It simply will help
you with your interest in controlling the computer's hardware, from the point the BIOS releases execution to your boot code to the point of a
fully working Graphical User Interface.
It is not required that you know much about operating system design, though a good knowledge of C Programming Language and a moderate
knowledge of an Intel/AMD x86 computer's hardware is expected to use this book.
FYSOS: Media Storage Devices by Benjamin David Lunt.

Volume 3 of the Operating System Design Book Series
Mike Gonta
look and see - many look but few see

https://mikegonta.com
thxbb12
Posts: 23
Joined: Sun Aug 30, 2015 10:47 am

Re: Book Recommendations

Post by thxbb12 »

I think the best book about CPU and memory virtualization (cpu scheduling, paging, segmentation) and file systems is "Three Easy Pieces" from Remzi and Andrea H. Arpaci-Dusseau at the University of Wisconsin. The book is very accessible, it's extremely very well written, very pedagogical and the authors manage to explain difficult concepts in a very clear manner.
I've read many others OS books, but this one is IMHO the best of all, by a good margin and the best part is that one can download the different chapters for free here: http://pages.cs.wisc.edu/~remzi/OSTEP/
I'm actually pretty surprised nobody mentionned it here...
Florent
noobling33
Posts: 1
Joined: Fri Mar 04, 2016 10:09 pm

Re: Book Recommendations

Post by noobling33 »

thxbb12 wrote:I think the best book about CPU and memory virtualization (cpu scheduling, paging, segmentation) and file systems is "Three Easy Pieces" from Remzi and Andrea H. Arpaci-Dusseau at the University of Wisconsin. The book is very accessible, it's extremely very well written, very pedagogical and the authors manage to explain difficult concepts in a very clear manner. Someone was talking about it here and they were saying it has received good reviews. You can also see this which was talking about the same thing. Overall, people seem to agree with this point, and you can also check the posts below to find more information.There is a lot of info out there and it's just a matter of filtering the good from the bad. People of the older generation generally don't understand this because back then they did not have all this information available to them.
I've read many others OS books, but this one is IMHO the best of all, by a good margin and the best part is that one can download the different chapters for free here.
I'm actually pretty surprised nobody mentionned it here...
This is a great resource. I just skimmed through the chapters for a while and I can say it is really good. Easy to follow. Do you know if all the chapters of the book is also available here? If you have similar resources please share them too. Thanks! :D
Last edited by noobling33 on Thu Oct 19, 2017 2:00 pm, edited 1 time in total.
thxbb12
Posts: 23
Joined: Sun Aug 30, 2015 10:47 am

Re: Book Recommendations

Post by thxbb12 »

noobling33 wrote:
thxbb12 wrote:I think the best book about CPU and memory virtualization (cpu scheduling, paging, segmentation) and file systems is "Three Easy Pieces" from Remzi and Andrea H. Arpaci-Dusseau at the University of Wisconsin. The book is very accessible, it's extremely very well written, very pedagogical and the authors manage to explain difficult concepts in a very clear manner.
I've read many others OS books, but this one is IMHO the best of all, by a good margin and the best part is that one can download the different chapters for free here: http://pages.cs.wisc.edu/~remzi/OSTEP/
I'm actually pretty surprised nobody mentionned it here...
This is a great resource. I just skimmed through the chapters for a while and I can say it is really good. Easy to follow. Do you know if all the chapters of the book is also available here? If you have similar resources please share them too. Thanks! :D
Yes, all the chapters are available at the URL I mentioned above.
However, there is one pdf per chapter. If you want to have the whole book as a single pdf you need to buy it. You can also buy a printed version (hardcover).
I personally bought it to support the authors.
Another strong point is that they update the content on a regular basis.
Florent
irvanherz
Member
Member
Posts: 27
Joined: Mon Sep 19, 2016 5:34 am

Re: Book Recommendations

Post by irvanherz »

Try "Understanding Linux Kernel" and "Understanding the Linux Virtual Memory Manager". These will help you much in design consideration.
User avatar
zaval
Member
Member
Posts: 656
Joined: Fri Feb 17, 2017 4:01 pm
Location: Ukraine, Bachmut
Contact:

Re: Book Recommendations

Post by zaval »

irvanherz wrote:Try "Understanding Linux Kernel" and "Understanding the Linux Virtual Memory Manager". These will help you much in design consideration.
... by avoiding it as much as possible. :mrgreen:
ANT - NT-like OS for x64 and arm64.
efify - UEFI for a couple of boards (mips and arm). suspended due to lost of all the target park boards (russians destroyed our town).
Post Reply