(I am repeating a question nobody answer...)
I have been thinking about a distinctive OS design:
In contrast with UNIX, I would like to base the design of the system on the idea that everything is a device (instead of a file), but according to it type occurs a special treatment to them...
The memory is a device handled through the memory manager; the processor is a device handled through the processes manager; the disc is a device handled through the file manager; and all the other devices (peripheral) are handle through a generic manager called device manager (E/S system).
It is really a new idea?
It is a new kind of OS really?
Re: It is a new kind of OS really?
What you're talking about is basically a set of abstractions. It's hard to say whether they're good are not unless we can see them in action; try implementing them -- write some code -- and see how things work out.
Unix implements a simple set of abstractions that are easy to understand, and work well together; that's one of the reasons why it is so successful.
Your ideas may be good, but they are probably not new ones. There aren't many new ideas in OS development; most of the basics were thought out as early as the 1960s. If you have an idea but don't see it in use in existing systems, it probably means the idea isn't very good, or there's a better alternative.
Unix implements a simple set of abstractions that are easy to understand, and work well together; that's one of the reasons why it is so successful.
Your ideas may be good, but they are probably not new ones. There aren't many new ideas in OS development; most of the basics were thought out as early as the 1960s. If you have an idea but don't see it in use in existing systems, it probably means the idea isn't very good, or there's a better alternative.
Re: It is a new kind of OS really?
I just remembered that the Plan 9 OS handles things in a vaguely similar way to what you're talking about. Plan 9 carries the "everything is a file" approach to its logical conclusion: things like ioctl(), network sockets and window systems are accessible via virtual files or devices. This seems like a great idea to me because it unifies the system, encapsulating more things through the basic abstraction (the file) instead of creating new abstractions like BSD socket connections (which have their own API and semantics, and which don't work completely like files/streams). You could try to do something like this, although I bet it would take a lot of work.
Re: It is a new kind of OS really?
I will try...
I am begining the second version of my OS (the first version just said me that I can program an OS). In this version I want to put special attention in subjects like ABSTRACTION.
Maybe I can build an OS really easy to use, and it could be my contribution to the OS development.
Thank you for your response.
I am begining the second version of my OS (the first version just said me that I can program an OS). In this version I want to put special attention in subjects like ABSTRACTION.
Maybe I can build an OS really easy to use, and it could be my contribution to the OS development.
Thank you for your response.
Pepito
Re: It is a new kind of OS really?
I think everything is an object is the base that you should have.
An object does not really impose any semantic that would be bulls**t with some types of things in the system
(let it be devices, files, or libraries for anything).
Of course an object doesn't mean too much, too, but hey, you need to specialize the class of the object.
With the idea of files, one has to show me yet code that really handles(!) all(!) devices. (not cp rawaudiodatefile /dev/dsp or such).
You need to specialize your code to one type of devices anyway (like graphics cards etc.)
An object does not really impose any semantic that would be bulls**t with some types of things in the system
(let it be devices, files, or libraries for anything).
Of course an object doesn't mean too much, too, but hey, you need to specialize the class of the object.
With the idea of files, one has to show me yet code that really handles(!) all(!) devices. (not cp rawaudiodatefile /dev/dsp or such).
You need to specialize your code to one type of devices anyway (like graphics cards etc.)
*post*