flat assembler
Message board for the users of flat assembler.

Index > OS Construction > New GUI OS

Author
Thread Post new topic Reply to topic
Geek



Joined: 01 Jun 2005
Posts: 26
Geek
Hello All.

Im designing an OS, and Im hoping it will be a good one.

the image included is a conceptual design.



One of the things I need is pointers, not address pointers
but advice.


GOALS:

(1) Able to execute most common executable file formats
(2) Small and Fast.
(3) Simple Memory manager
(4) Protected mode OS
(5) Multitasking OS
(6) Support for most if not all VESA versions
(7) Good Device Driver interface
(Cool Secure environment
(9) User Friendly


If anybody has any sugestions please respond.

Cool Wink Cool

_________________
Death is not the opposite of life, rather, it is the absence of it.
Post 07 Jun 2005, 20:01
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 559
smiddy
Suggestions? Sure, but alas you did ask...

You will need to review the latest in hard disk encryption for your secure environment along with having at least a semester-or-two of linear algebra in order to emplement something <cough> secure enough for say government types.

Your specification for a GOOD device driver interface is pretty weak, in that it doesn't specify what good is and how to compare it for a reference to for verification and validation.

Another hole, SIMPLE is a relative term too. It is best to, and for the rest of your specifications, to have measureable requirements, one's that you can test to for validation later on down the road.

User Friendly here again is not measureable...to who's satisfaction will your OS be user freindly?

OK, if you made it this far into my post then you actually must care about my response. I don't mean to be a pain-in-the-arse, but from a marketing standpoint, sure these are simple enough specifications in which you can drawn some requirements from. But in order to develope a system, you need specific technical direction. Your jump on VESA is a decent start but could use some refining. Specify say all 64k-bit and below or all VESA 2.0 compatible. This gives you a baseline in which to start development from.

I don't mean to be discouraging, rather point out that it is a difficult task to plan requirements, or rather, do requirements analysis when your target is squishy or less gelled as it could be.

An ASIDE: Death is a state of mind. One beings death, is another beings life, or re-existence...<OhMy> Wink
Post 07 Jun 2005, 23:04
View user's profile Send private message Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3170
Location: Denmark
f0dder
A word of advice: forget all about graphics mode and GUI until you have other major parts of the kernel working...
Post 08 Jun 2005, 12:21
View user's profile Send private message Visit poster's website Reply with quote
Geek



Joined: 01 Jun 2005
Posts: 26
Geek
What I mean by SIMPLE is, I'm a game developer and as you are developers you know that when you come up with the basic design for a program of any kind, the code comes out better -(Simple) if you sit down and study the actual execution of the program and plan it out before you write the actual code, rather then simply coding as you go along. The code comes out very simple, efficiant and clean that way, and make the system run faster when you dont have any unnecisary varibles or declaratrions.

So SIMPLE means the each component memory manager, Process/thread manager, ect,. will be studied, broken down into simple components and then implemented. Keeping it simple means keeping it as small and understandable as possible even from a user's standpoint at times.



A GOOD Device Driver interface would mean that it would be kept small, SIMPLE, efficiant, clean and reliable, with a low impact on system performance.




Security I will have to thing and research about.
I thaught about having the abuility to encrypt files and folders indevidualy,
using passwords. I also thaught about hiding the root directory completely.
The users may be able to choose to hide other files and folders of there choise.


Well thanks for the segs.

_________________
Death is not the opposite of life, rather, it is the absence of it.
Post 09 Jun 2005, 16:21
View user's profile Send private message Reply with quote
Adam Kachwalla



Joined: 01 Apr 2006
Posts: 150
Adam Kachwalla
For the multitasking, you should try preemptive multitasking. I am still trying to figure out how to do that using an 8086 to 80286 processor!
Post 02 Apr 2006, 08:51
View user's profile Send private message Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
tom tobias
f0dder wrote:
A word of advice: forget all about graphics mode and GUI until you have other major parts of the kernel working...

I would second Fudder's excellent point, and add, perhaps in contradiction to him, that, in my opinion, you would be well advised to forget as well, about "kernels", and focus, not on multitasking, but on implementing a SINGLE task first, without the apparatus needed for a bona fide operating system.
Most games, designed to work UNDER windows, carry a lot of baggage to permit interface with M$. You will not require that interface. You can work at ring zero, with a single (i.e. "simple") task--your game.
hope this reference will be useful:
http://www.openbg.net/sto/os/implement/boot.php
My personal preference, only a suggestion, is to use Bogdan's Sol OS, else, one of the other "hobby" operating systems out there, rather than trying to do the whole thing yourself. Sol is not yet quite ready for this type of situation, i.e. a "slender" operating system that is flexible, and easy to manipulate to accommodate one's own needs, but it is CLOSE to being that. The time needed to create your own operating system, as Smiddy implied, is formidable, and by then, perhaps SOL will be able to accommodate you. In the interim, you can elaborate, if it is helpful to you, the algorithm you wish to implement, and Fudder, and MANY others on this forum, can offer some helpful advice about reducing your program's length--"optimizing", since one of your goals is "small and fast". Smile
Post 04 Apr 2006, 18:11
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17658
Location: In your JS exploiting you and your system
revolution
Quote:
preemptive multitasking. I am still trying to figure out how to do that ...
Preemption is easy, all you need is an interrupt source. The difficult part with 8086 is try to prevent one task from interferring with the other tasks. 80286 is a better with preventing interference, but a real ugly environment to have to program within.
Post 05 Apr 2006, 01:14
View user's profile Send private message Visit poster's website Reply with quote
Adam Kachwalla



Joined: 01 Apr 2006
Posts: 150
Adam Kachwalla
revolution wrote:
Quote:
preemptive multitasking. I am still trying to figure out how to do that ...
Preemption is easy, all you need is an interrupt source. The difficult part with 8086 is try to prevent one task from interferring with the other tasks. 80286 is a better with preventing interference, but a real ugly environment to have to program within.
What do you mean by "interrupt source"? Also, I was doing the OS for a 286, but I found out that BCC generates 8086 code. How can you implement preemption in ASM (under 80286-)
Post 05 Apr 2006, 07:13
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
Try this multi-tasking in under 512bytes and in realmode Cool.


Description:
Download
Filename: nanoos2.zip
Filesize: 4.44 KB
Downloaded: 97 Time(s)

Post 05 Apr 2006, 09:15
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17658
Location: In your JS exploiting you and your system
revolution
Quote:
What do you mean by "interrupt source"?
Well of course I am talking abour the hardware interrupts, NMI and INT. If you are unaware of these hardware things then you had better read up soon because without such knowledge your will find writing an OS is not possible. Your OS will have to control everything so you need to know how to control the hardware you have.
Post 05 Apr 2006, 11:53
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.