FYSOS: OS Development Series

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
~
Member
Member
Posts: 1225
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: FYSOS: OS Development Series

Post by ~ »

BenLunt wrote:
~ wrote:Please send me the source code for the book.
Sent.
zaval wrote:
On a side note, and I hope not to start a war here, I have been using WinXP since its release and have never had the desire to change.
WinXP forever! It's just the best.)
I bet you are using classic Win95 theme on it. ;) Just like me. I have 2 development machines, and both run XP (32 and 64-bit)).
I do use the classic Win95 theme. I have not had any reason to upgrade. If it isn't broke, don't fix it.

Ben
I don't seem to have received the attached ZIP file.
I can only receive to these email addresses:

[email protected]
[email protected]

Maybe you sent the code to the previous owner of the book because as you can see, I bought an used book.

I will wait so you can send me the code CD-ROM to one of the email addresses above.

[email protected]
[email protected]


Thank you.
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

~ wrote:I don't seem to have received the attached ZIP file.
I can only receive to these email addresses:

udocproject@yah...
alt.comp.126@gmai...
I sent it to the undocproject address. I just tried again. Be sure to let me know if it does not arrive.

Also, might I suggested that you don't place your email address in plain text like that, especially if the address is not yours.

Use something like:

undocproject [at] yahoo [dot] com

However, a smart BOT will get that anyway, though you get the idea.

Ben
User avatar
~
Member
Member
Posts: 1225
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: FYSOS: OS Development Series

Post by ~ »

BenLunt wrote:
~ wrote:I don't seem to have received the attached ZIP file.
I can only receive to these email addresses:

udocproject@yah...
alt.comp.126@gmai...
I sent it to the udocproject address. I just tried again. Be sure to let me know if it does not arrive.

Also, might I suggested that you don't place your email address in plain text like that, especially if the address is not yours.

Use something like:

udocproject [at] yahoo [dot] com

However, a smart BOT will get that anyway, though you get the idea.

Ben
Thank you.

I received it (usb_vol8.zip).

The address is mine.

It's read easier with case:

UDocProject [at] yahoo [dot] com
Rorsch
Posts: 2
Joined: Sun Jul 24, 2016 4:55 am
Location: Serbia

Re: FYSOS: OS Development Series

Post by Rorsch »

As a osdev beginner enthusiast, with general knowledge of os internal workings and in need of finding concrete examples that can be tested/played with, I was wondering if the first four books(volume 1 - volume 4) would be sufficient to get started?
My goal is to make a simple, single threaded unix clone for x86 which can be tested/developed on some emulator.

Correct me if i am wrong, but some stuff that aren't included in your series on osdev but which I think I need to get my head around before setting on completing my goal are:
1) making text user interface (as I think they are simpler to write)
2) processes implementation (switching context, clock interrupts, ipc)
3) managing memory (from physical to virtual(paging) needed for processes)
4) concrete file system (or is this covered by virtual file system book?)
5) setting up environment for developing (emulators, compilers, build/make, etc.)

Btw. I am not trying to undermine your series, which seem great and I am really intrested in buying them, but just trying to get an idea how far would they aid me in my goal and what's "missing" from them.

Cheers
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

Hi
Rorsch wrote:As a osdev beginner enthusiast, with general knowledge of os internal workings and in need of finding concrete examples that can be tested/played with, I was wondering if the first four books(volume 1 - volume 4) would be sufficient to get started?
My goal is to make a simple, single threaded unix clone for x86 which can be tested/developed on some emulator.
For a case such as this, Volume 1 should be sufficient.

Volume 1 explains the processes from power up (POST) to a working single tasking/multi-threading kernel.
1) POST to 0x07C00 (boot code)
2) Various forms of boot code from MBR, eMBR, GDT, etc., including extended partitions and creating a partition stack.
3) Partition boot code: boot code for a floppy and/or a partition found via 2) above, including how to load additional sectors if needed.
4) Loading a loader file. This shows how to load a file from disk to any location in (lower) memory, then jump to it.
5) The loader. This shows what a loader can/should do including getting information from the BIOS.
6) Loading multiple kernel files and jumping to the kernel.
7) The Kernel. A simple single-tasking/multi-threading kernel using hardware task switching (TSS's)

Volume 2 shows what is needed to make your kernel file-system independent as well as explains the details of some of the most used *simple* file systems, such as FAT, FYSFS (created for the series as well as for the fun of it), and CD-ROM's. Includes information on booting CD-ROMs.

Volume 3 is for creating media drivers. It shows how to read from various forms of media: FDC, ATA, SATA, and AHCI. Shows how to detect, initialize, and read and write to the media using each controller type.

Volume 4 shows how to detect and initialize a mouse (PS2, AT, Bus) and a keyboard. This volume is pretty much for outdated, obsolete (Bus Mouse) hardware since most mice and keyboards are now USB ( Volume 8 ). However, I only write these books for the enjoyment of writing them, and I enjoyed writing Volume 4. And yes, I have a few Bus mouse ISA cards and mice...:-)
Rorsch wrote:Correct me if i am wrong, but some stuff that aren't included in your series on osdev but which I think I need to get my head around before setting on completing my goal are:
1) making text user interface (as I think they are simpler to write)
2) processes implementation (switching context, clock interrupts, ipc)
3) managing memory (from physical to virtual(paging) needed for processes)
4) concrete file system (or is this covered by virtual file system book?)
5) setting up environment for developing (emulators, compilers, build/make, etc.)
You are correct. Volume 1 does contain a minimal memory manager.

Please note that the intent of the series is not to write the OS for you, but to show you what can be done using minimal code. The intent is to then let the reader expand upon each portion of that code to create a better memory manager, file system driver, task manager, etc.

In my opinion, the reader will learn and enjoy the process of doing it him/herself rather than copy/pasting the code.
Rorsch wrote:Btw. I am not trying to undermine your series, which seem great and I am really interested in buying them, but just trying to get an idea how far would they aid me in my goal and what's "missing" from them.
Oh no, absolutely no thought of undermining taken. I write these books for enjoyment only. I make very little money on them, just enough to pay for the web page and various other items I use to write them with. So by no means do I express that this is the next best book series. I know that there can be much information added.

For example, I am currently editing/adding to Volume 1.
1) UEFI BIOS. How to boot from and use various items within the UEFI.
2) APIC. The Advanced PIC including multi-processor function.
3) HPET. The High Precision Event Timer and how to use at least the first 3 timers.
4) Paging. How to use paging to have separate task spaces.
5) ACPI. How to parse the ACPI for hardware information with an included example for the APIC information.
6) More information on the older hardware items such as the PIC, PIT, RTC.

I still have a little editing to do, but this should add to the information required to get started. (Sorry, I don't have an estimated time of release).

To be complete:
Volume 6 shows how to write to the video screen, creating objects to form a Graphical User Interface, showing how to move windows, switching between items, buttons, icons, etc.

Volume 8 is my favorite. It shows how to use the USB from detecting the hardware all the way to reading and writing data from/to a device such as a thumb drive. It shows detailed examples of how to use a mouse, keyboard and various thumb drives. It shows the information on all four controller types: UHCI, OHCI, EHCI, and xHCI. It has information about Super-speed devices as well.

Please note that each volume contains a companion CD-ROM with source code from each chapter and a set of utilities to show how to use the subject read. Once you have the book, send me a simple "proof of purchase" email, and I will send you the ISO of the CD-ROM.

I tried to write this series so that a beginner with little to no background in OS development could start and learn how to create an operating system, as well as a moderate to well versed programmer could use these books for reference. I admit that I am not a great writer nor am I a great programmer, though I learned as a wrote. Remember, I do this because I want to and enjoy the work, not because I need to or for the money. :-)

One more thing I would like to point out though. I do include many notes and off-topic items to help the newbie understand why his/her code doesn't work. For example, Volume 1 explains that if you intend to have more than one sector of code in your boot sector, you *must* contain all of the code used to read addition sectors within the first sector of your code. How many of us, be honest, have written a multi-sector boot sector and couldn't figure out why it didn't work until we realized that the read_sector code or even a simple little thing as our variable to hold the DL value was beyond the 512 mark?

I tried to write the text so that a newbie as well as a more versed reader would not make these little mistakes.

Anyway, thanks for the comments. When I receive comments like this, it fuels the flames under my seat to continue working on them.

Thank you,
Ben
Rorsch
Posts: 2
Joined: Sun Jul 24, 2016 4:55 am
Location: Serbia

Re: FYSOS: OS Development Series

Post by Rorsch »

Thank you for such a detailed reply,
I really appreciate and understand your motivation for writing these books(helping others and enjoyment) as this is also one of my main reasons for learning os programming.
Expect to receive a proof of purchase soon as I look forward to getting your books!
User avatar
~
Member
Member
Posts: 1225
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: FYSOS: OS Development Series

Post by ~ »

Regards.

I just bought volumes 1-4 of your FYSOS books from Amazon so you can review your records.

Please send me the code CD-ROMs for those 4 volumes.

Now I have the 6 books you have published.

I attached an image with the Amazon invoice showing the 4 bought books in an email I sent you almost identical to this post, and below there are the 2 packages where Amazon sent me the books.


System Core USPS package tracking:
--------------------------
1Z50V7423A99448766


Volumes 2-4 USPS package tracking:
--------------------------------
9341989677090016037665
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

~ wrote:I just bought volumes 1-4 of your FYSOS books from Amazon so you can review your records.

Please send me the code CD-ROMs for those 4 volumes.
I received your email(s). Thank you.

Give me a little while to get back to it, and I will send you an email for each ISO plus a confirmation email.

Thank you,
Ben
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

I am proud to announce that the 3rd Edition of "USB: The Universal Serial Bus" is now available.
ISBN-13: 978-1717425362
ISBN-10: 1717425364

I have added:
* information on the xHCI Stream mechanism and the USB Attached SCSI Protocol (UASP) that uses them (new high-end thumb drives)
* more detailed information on external HUBs
* more detailed information on ISO transfers for all four controller types
* more detailed information on receiving video feed from a USB camera
* per user request, I added numerous more figures, outlines, and images to help with the text
* USB Legacy Support information
* corrected and/or clarified a few items and other additions.
* as well as many other updates/clarifications/corrections.

More than 100 pages has been added.

I want to thank all of you here in this group for your support. I an truly grateful.

As always, whether you buy my book or not, if you have any questions about USB, please feel free to ask, preferably here in this forum so all can benefit, but if you must, my email address can be found on the book URL above.

Ben
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

Hi,

Amazon is changing, maybe more importantly, adding function to the way they do the Kindle format, as well as moving/adding other features.

With this in mind, I am able to create PDF versions of my printed books and save them to Kindle format. Each page on the Kindle is a single PDF page. Therefore, all Kindle versions are updated to the latest print version/edition.

As far as I know, if you have already purchased the Kindle version, downloading the update does not cost anything (please let me know if I am wrong here), so I recommend that you go do this.

http://www.fysnet.net/osdesign_book_series.htm

Along with this, I have added the Kindle versions of the remaining two books, as well as completely updated the previously marked (#5) books as 1st editions only to the latest editions.

Thank you everyone for your support, suggestions, and comments. They are greatly appreciated. If you come across a URL that comments about my books, has an URL, or otherwise, I would sure like to see it.

Please email me if you see something (fys [at] fysnet [dot] net), or message me via this forum. {to cut down on "spam" to this forum, please don't post a reply here per this request, instead use the email or message form} Thanks again.

Ben

P.S. Amazon is going through a transition of their formats, so please let me know if the kindle version for a specific edition is not what it should be.
Bowlslaw
Posts: 20
Joined: Fri Oct 26, 2018 12:54 pm
Contact:

Re: FYSOS: OS Development Series

Post by Bowlslaw »

Is it reasonable for a beginner to apply the knowledge and code from this book to, say, a *NIX system, or develop this on a *NIX system?
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

Bowlslaw wrote:Is it reasonable for a beginner to apply the knowledge and code from this book to, say, a *NIX system, or develop this on a *NIX system?
Hi,

Good question. I get this question quite a bit.

The technical part of the series is independent upon the host development system as long as the target is an 80x386+ compatible system. i.e.: It is an Intel or AMD 32-bit system. The documentation and flow of the text explains what needs to be done to get the target computer to boot, load files, etc., independent of the host development system.

With that being said, there are examples and source code that must be targeted toward a host development system and I chose a DOS based system since this is so easily available and usable. However, the source code is *mostly* portable and should be able to be compiled on most any ANSI C system.

The source does require a DPMI (which is included). If you don't know what a DPMI is, it is a DOS Protected Mode Interface which allows for protected mode 32-bit apps to be run in a DOS interface. I do this for memory access. i.e.: Most newer hardware requires a way to access mem-mapped devices in the 0xF0000000 -> 0xFFFFFFFF range and I need some way to easily use a single memory pointer to do this. The DPMI allows this.

With this being said, the code is well documented so that if you are somewhat familiar with C programming, you can easily change it to compile and work on your target host development system.

Also included are two images, a 1.44M floppy image and a somewhat larger image for booting USB thumb drives. These both include FreeDOS and instructions on how to emulate them in Bochs, QEMU or another emulator as well as on physical machines.

As long as you have a 32-bit x86 target machine to test with, *or* a similar emulated environment via QEMU or what not, you can easily use and learn from the text and source code from this series.

One thing to remember, I totally support my work. If you have any questions about anything within the series, your work, your code, whatever--I do my best to help out. I would prefer that you post your questions to this forum so that all can have a chance to help and/or learn from the questions and answers, but I do accept questions via email as well.

Hopefully this answers your question. Feel free to ask any more that you may have,
Ben
- http://www.fysnet.net/osdesign_book_series.htm
Bowlslaw
Posts: 20
Joined: Fri Oct 26, 2018 12:54 pm
Contact:

Re: FYSOS: OS Development Series

Post by Bowlslaw »

Very cool. Are you aware that an Amazon Kindle Unlimited subscriber can read the kindle versions for free(aside from the obvious subscription cost of Kindle Unlimited)?

I am reading your first book now. If I like it, and I do so far, I will definately purchase a physical copy.
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: FYSOS: OS Development Series

Post by BenLunt »

Bowlslaw wrote:Very cool. Are you aware that an Amazon Kindle Unlimited subscriber can read the kindle versions for free(aside from the obvious subscription cost of Kindle Unlimited)?

I am reading your first book now. If I like it, and I do so far, I will definately purchase a physical copy.
I am aware of it and am glad that people can do this.

I too prefer a physical paper-copy so that I can write notes, insert bookmarks (using self sticky tabs, etc.), and can turn pages.

Thank you for trying my book(s). Be sure to let me know if you have any questions.

Ben
User avatar
DavidCooper
Member
Member
Posts: 1150
Joined: Wed Oct 27, 2010 4:53 pm
Location: Scotland

Re: FYSOS: OS Development Series

Post by DavidCooper »

The subscription that you pay for Amazon Unlimited goes into a fund which is used to pay the writers of the books that you read for "free". Amazon monitors how much of the book you actually read, and the writer is paid accordingly, so no one should feel guilty about reading books in this manner - it's a great way of assessing books properly without bad writers being paid a significant amount for their dismal work, while quality books receive full payment (if every page has been turned and kept open long enough to read its content). But yes - it's still advisable to buy copies of Ben's books on paper if you need to work from them a lot (I'm thinking of his USB book in particular) as it's a lot easier to work from those, while any extra pennies sent his way are always going to be small compensation for providing such a great service to a very narrow readership.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c

MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
Post Reply