Page 1 of 5

FYSOS: OS Development Series

Posted: Mon May 30, 2016 1:28 am
by BenLunt
For those of you who may not know, I have been working on a book series for some time.
http://www.fysnet.net/osdesign_book_series.htm
The USB book, Volume 8, has been the most inquired about, which is good, because it is my favorite.

I am currently working on the Graphic User Interface book, Volume 6. For a peek at what to expect, have a look at a few images:
http://www.fysnet.net/temp/vol6_gui.png
http://www.fysnet.net/temp/FontEdit.png

The first image is a screen shot of the FYSOS GUI. It needs work, but what project doesn't?

The second image is a Windows XP app that helps me make the fonts for the GUI. I will include this app on the companion CD-ROM. (I have coded it to not use MFC and other Windows specific items, so it should be portable to other platforms. However, I don't use other platforms, so don't know for sure).

The book is coming along well, as I add numerous examples and pages to guide the user through the process.

I know some of you have been following along and I appreciate all the kind words. For those of you who have not been following along, you might be interested in my work.

I fully support this project and am willing to do the best I can at answering your questions, whether you buy my books or not.

My OS is located at:
http://www.fysnet.net/fysos.htm

It is a bit outdated, as far as the books are concerned. I use it to research the books, then put the updated code into the companion CD-ROMS. I have yet to update the website with the new version of the 1.44meg floppy.

Yes, my whole OS, USB, GUI, everything fits well on a single 1.44 meg floppy with room to spare :-)

Anyway, just thought I would comment to see if others are interested.

Thanks again to those who have been following along with my work.
Ben

Re: FYSOS: OS Development Series

Posted: Mon May 30, 2016 4:20 am
by mikegonta
BenLunt wrote:Yes, my whole OS, USB, GUI, everything fits well on a single 1.44 meg floppy with room to spare....
Oh, the irony of it all.
Today, putting FAT32 on a 1.44MB FAT32 floppy disk is apparently a silly waste of space and yet putting a 1.44MB FAT12 image on a
(say) 32GB flash drive is common practice. After all, it's still the the same FAT file system with only minor technical differences
due to historical limitations in the size of the formatted media. Today, (for practical purposes) there is no readily available
small capacity media anyway, FAT is FAT (as early as XP both FAT12 and FAT16 were categorized as FAT.
MS says that 1.44MB is too small for FAT32 and they also say that 64GB is too large for FAT32.
MS says that the world is flat and many programmers (and not just the ones that work there) believe it.

Oh, and the OS Development Series comes highly recommended.

Oh, and the 1.44MB FAT32 floppy disk image fits nicely on a 32GB flash drive, is fully compatible with Windows and Linux,
and boots and runs just fine.

Re: FYSOS: OS Development Series

Posted: Mon May 30, 2016 11:57 am
by BenLunt
Hi Mike,

It is and always has been an interesting discussion about FAT. I think the enjoyment for me is that I can still fit all of my system on that 1.44Meg using FAT12.

Anyway, as usual, thanks for the kind words.

Ben

Re: FYSOS: OS Development Series

Posted: Mon May 30, 2016 12:03 pm
by DavidCooper
Hi Ben,

I'm about half way through writing my USB code, building a little bit of it every now and then whenever I feel the need to take a break from more pressing work. I wouldn't be attempting the task at all at this point without your book as it would be at least ten times as hard trying to do it all directly from the USB specification (and more likely close to a hundred times harder). I might not buy any of the other books because I've either done the work on those areas already or have worked out how I'm going to do them, but USB is an area where there's little room for variation and where it's sensible to follow a clear path that's guaranteed to get the job done and without it being prohibitively expensive in terms of time.

I bought the Kindle edition before the later additions were made to it (such as the new chapter on webcams), and I had to contact Amazon to ask them to make the new edition available to me as the update wasn't automatically offered (and I couldn't buy the new version as the ASIN number was unchanged). It only took a few minutes to sort that out through text chat and the new chapters then appeared, but I couldn't find any way to save my old bookmarks before doing this and had to recreate them all manually (the menu option which is supposed to do this on the Kindle simply didn't exist on mine).

I'd recommend that people buy the book on paper if they can afford to because it's hard to work with the Kindle version (even if you have it open on two devices at a time) because you need to keep jumping around between bookmarks (which are handled abysmally by e-reader software). I ended up writing extensive notes on paper to get round this difficulty. Either way though, I would consider the book to be an essential purchace for anyone wanting to build a serious OS who hasn't already built USB drivers the hard way, and even the few who have will likely find enough useful things in it to justify a read through the Kindle version.

Re: FYSOS: OS Development Series

Posted: Mon May 30, 2016 12:14 pm
by BenLunt
David,

Thanks for your kind words.

Unfortunately, the Kindle versions are very difficult to read and understand. I don't care for that format, but had many requests for it, so I made it available.

I too need a hard copy. A physical paper book has always been easier and more readily available for me. I put many small paper bookmarks within pages and can tell which book mark I need by the wear on the tab sticking out. :-)

Thanks again,
Ben

Re: FYSOS: OS Development Series

Posted: Wed Jun 15, 2016 5:54 pm
by BenLunt
For those interested, I have made a small demo of this GUI available. Please see http://www.fysnet.net/temp/gui_demo.html for more information.
(Please be sure to read all of the readme.txt file or all of the text on that page before you use this demo)

Please note that it is only a demo and is intended to run from a TRUE DOS (FreeDOS, MS-DOS, other DOS) environment. It also is not a complete GUI system, though my intent is to show the reader how to create a GUI system, not create it for them.

If you wish to comment about it, you may send me an email or post a response here (or both).

Thanks,
Ben

Re: FYSOS: OS Development Series

Posted: Wed Jun 15, 2016 7:40 pm
by ~
The GUI demo also runs under DOSBox.


What about making self-bootable demos in floppy images or bootable USB storage?

Those that don't depend on any DOS calls are the easier to reimplement and understand.

It's easy to write a tiny boot manager that loads all fonts, resources and then just boot a raw binary, probably using Unreal Mode instead of DPMI, or a very basic Protected Mode environment without paging to overcome the 65536 limit for COM programs, etc...

Re: FYSOS: OS Development Series

Posted: Wed Jun 15, 2016 7:59 pm
by BenLunt
I understand your thinking here, and I did think about it. However, the demo uses a massive amount of memory allocation, not necessarily large amounts, but many small amounts, many. Therefore, it would need a memory allocator/manager.

It also uses DOS calls to retrieve drive and file information, read from the disk, etc.

As for floppy/flash drive boots, there is and I already documented how to do that with the current .zip file. Simply take the gui_deom.img file from the .zip file and write it to a floppy or flash drive and boot that device.

Anyway, thanks for the information about DOSBox.

Ben

Re: FYSOS: OS Development Series

Posted: Thu Jun 16, 2016 12:16 am
by alexfru
Nice! (Tried in DOSBox)

Re: FYSOS: OS Development Series

Posted: Thu Jun 16, 2016 11:44 pm
by ~
BenLunt wrote:I understand your thinking here, and I did think about it. However, the demo uses a massive amount of memory allocation, not necessarily large amounts, but many small amounts, many. Therefore, it would need a memory allocator/manager.

It also uses DOS calls to retrieve drive and file information, read from the disk, etc.

As for floppy/flash drive boots, there is and I already documented how to do that with the current .zip file. Simply take the gui_deom.img file from the .zip file and write it to a floppy or flash drive and boot that device.

Anyway, thanks for the information about DOSBox.

Ben
The volume about GUIs will be an exceptional book. I don't know other books that talk about that topic in good detail.

What other volumes of these series are required to understand the GUIs volume, or is it independent? It would be better if it was, but if now I would try to see how to buy the other prerrequisite volumes gradually.

Re: FYSOS: OS Development Series

Posted: Fri Jun 17, 2016 12:14 am
by BenLunt
It is, as with the other books, as much independent as I can make it. In fact, this volume will not rely on the other books at all. It only requires that you know a bit about the C programming language and a general knowledge of an operating system and the platform it is created for.

If you are writing an operating system and are ready to create the GUI, you should have enough knowledge of operating systems and how a machine functions.

This book, however, does require that you already have created a mouse driver of some kind, whether it be PS2, Serial, USB, or a Bus mouse. [Those that have been following my work will understand the mention of the Bus mouse (smile)]. The GUI code simply calls a routine to retrieve the current state of the mouse. This routine in maintained by your mouse driver, which is not discussed in this book, but is discussed in detail in Volume 4, Input and Output Devices.

As for the other volumes, they are mostly independent of each other. For example, the USB book requires knowledge of the PCI(e) bus, yet the PCI Bus volume is not yet available. Therefore, the USB book discusses and shows how to use the PCI(e) bus enough to detect and use a USB device, but nothing more as far as the PCI(e) is concerned.

If you are not interested in one of the volumes, then there is no need to acquire it. If you are only interested in the subject of one of the volumes, then you should be just fine acquiring just that volume.

Also, if you find that the book didn't explain a certain subject well enough, didn't include enough information about it, or didn't include it at all, please let me know and I will see about adding that information to the next issue.

Anyway, thanks to everyone for their support. These books have been a real enjoyment to me and I have gotten a lot of feedback and am grateful they are helping others.

Thanks,
Ben

Re: FYSOS: OS Development Series

Posted: Fri Jul 08, 2016 12:49 pm
by BenLunt
Hello everyone,

I am pleased to announce that Volume 6: The Graphical User Interface is now available. Currently it is only available directly from the publisher, however, by mid-week next week it should be available via Amazon.com and other outlets, so continue to watch for updates on the URL above.

The book has two parts. The first describes most of the internals of the GUI system, but to a newcomer, and most anyone else (smile), this might be confusing, though continue to read on and I will explain. The second part shows how to use these internals to create windows, objects, fonts, images, progress bars, and other items.

To help with the (could be) confusing first part, along with the items in the second part is the source code. The source code is the key to the book. One without the other, each would be confusing, but with both, after a little bit of familiarization, you will start to understand the code quite quickly and then be able to create objects yourself.

I have been asked many questions about what this project will be, and I wish to address the most important ones here.
Q. "Does the GUI rely upon a third part graphics library?"
A. No. Absolutely not. The source code included on the CD-ROM shows how to draw to the screen, creating images, windows, text, and all components of the system. No other software is needed.
Q. "Does the GUI rely on any underlining OS?"
A. No. However, the GUI demo included on the CD-ROM does use DOS and a DPMI to allocate memory, read and write to the file system, and call the BIOS video services. However, these are common to any operating system and can easily be modified to work with your OS.
Q. "Does the GUI rely on the underlining hardware?"
A. No. The GUI code is written in C and is completely portable except for the writing to memory and calling the BIOS services. However, the writing to memory code is documented and easily modified. It currently uses the DPMI services and DJGPP which is well documented. The calling of the BIOS is also well documented within DJGPP.

The CDROM is not available at the time of the purchase of the book. However, once you receive the book, with a simple verification of proof of purchase, I will be more than happy to send you the ISO image via an email attachment. Please see the URL above for instructions on proof of purchase.

As with all my other work, I support it 100%. If you have any questions, feel free to post here or contact me directly via the email address found at the URL above. I welcome all comments, good and bad, for with bad comments, I try to improve my work.

Thank you to all for your support,
Ben
http://www.fysnet.net/the_graphical_user_interface.htm

Re: FYSOS: OS Development Series

Posted: Sat Jul 09, 2016 4:30 am
by mikegonta
BenLunt wrote:I am pleased to announce that Volume 6: The Graphical User Interface is now available. Currently it is only available directly from the publisher, however, by mid-week next week it should be available via Amazon.com and other outlets, so continue to watch for updates on the URL above.

The book has two parts. The first describes most of the internals of the GUI system, but to a newcomer, and most anyone else (smile), this might be confusing, though continue to read on and I will explain. The second part shows how to use these internals to create windows, objects, fonts, images, progress bars, and other items.

To help with the (could be) confusing first part, along with the items in the second part is the source code. The source code is the key to the book. One without the other, each would be confusing, but with both, after a little bit of familiarization, you will start to understand the code quite quickly and then be able to create objects yourself.
Q. What is the license for the code?

Q. If the demo code were to be ported to a non DOS / non DPMI environment would it be possible for the ported code to be publicly released under a compatible license?

Q. Do you have any intention of releasing the code on, for example, GitHub?

Re: FYSOS: OS Development Series

Posted: Sat Jul 09, 2016 11:13 am
by BenLunt
mikegonta wrote:Q. What is the license for the code?
Q. If the demo code were to be ported to a non DOS / non DPMI environment would it be possible for the ported code to be publicly released under a compatible license?
Q. Do you have any intention of releasing the code on, for example, GitHub?
Hi Mike,

I don't use any licenses that are generally available. Here is the comment at the top of most source files:

Code: Select all

/*             Author: Benjamin David Lunt
 *                     Forever Young Software
 *                     Copyright (c) 1984-2016
 *  
 *  This code is included on the disc that is included with the book
 *   FYSOS: The Graphical User Interface, and is for that purpose only.
 *   You have the right to use it for learning purposes only.  You may
 *   not modify it for redistribution for any other purpose unless you
 *   have written permission from the author.
 *
 *  You may modify and use it in your own projects as long as they are
 *   for non profit only and not distributed.  Any project for profit that 
 *   uses this code must have written permission from the author.
Straight up honest, I believe that if I released the code freely, no one would by the book. Not that I am greedy or anything, but I do want people to purchase my books.

However, with that said, I do want to help people and if my code would help them I would be grateful. There is another point, if I release the code and the reader does not have the book, they may email me asking a question that the book itself explains.

I have been thinking about releasing the source code to FYSOS, which of course contains all of the source code described by the books, though more specific to the OS than generalized to the subject of the book.

So to answer your question, as of now, no, I do not plan to release the code to the public and anyone who receives the code (legally or otherwise) and posts it publicly, I will consider it done illegally. The code is intended for the reader alone to do with as they wish as long as they do not distribute it freely or for profit.

Please note though that I am considering releasing to the public some form of code, whether it be the whole OS, only the base kernel, or just the code from one or more books. I just haven't decided yet when or how much.

On a different note, and as other comments within this forum, I have the attitude of "I won't do your homework" :-). I believe that it is more beneficial to the reader if they code their own and use my code as an example. One learns better, though maybe not as quickly, if they go through the hardship of coding it themselves. I am sure you agree.

Anyway, thanks for your comments, Mike, both publicly and private.

Ben

Re: FYSOS: OS Development Series

Posted: Tue Jul 12, 2016 9:55 pm
by BenLunt
I prefer the email method. This forum is public and unless you delete your previous post, everyone will see your information. :-)

Anyway, email sent and thank you for your support,
Ben