(sorry by my poor english)
I had seen a lots of small programas that boots a pc, go to PM and run a small program. This sistems are't OS because they execute a very spcecific task. An OS is a protocol , a set of rules like a constitution , that stablish how programs must be build to use the computer , or run in the OS enviorment. A great number of questions in this board is relative a how PC works. An OS have very few references a machine architeture - In fact it must be machine independent .An OS development must begin in a very high level before down to hardware level. The hardware interface is frequently becames small in time and code if you do a good project. But a top-down canone don't works fine in real word. There are a lots of central problems in development that demand our atention before all others - like enter in protect mode - write a drive to floppy and HD ... - but they are't the most interesting - nothing compared a general I/O protocol like a file system or a inter process comunication. This high level functions can be implemented ( and must be ) before the architeture particularities. If start in a high level, you can let the hardware interface as a small procedures and develop a lots of code and steps that requeries only your imagination and logic without consult a tedious manuals.
What is an OS ?
RE:What is an OS ?
I am highly agree to what you say and I can understand it. I am just a beginner but I believe that an OS must be actually machine independent to be called an OS. It must be flexible and stable.
RE:What is an OS ?
when only that is an OS, then there are no OS out there.
i don't know any 'OS' which is really machine independent. the whole system-architecture is different when you want to port it to another processor (machine) as for example not all processors support paging, or segmentation.
but the OS actually bases on for instance the paging-structure of a processor, the memory-management will be completely different.
greets, hartyl
i don't know any 'OS' which is really machine independent. the whole system-architecture is different when you want to port it to another processor (machine) as for example not all processors support paging, or segmentation.
but the OS actually bases on for instance the paging-structure of a processor, the memory-management will be completely different.
greets, hartyl
RE:What is an OS ?
The definition of an operating system is much simplier. All an Operating System is, essentially, is a form of abstraction. It is generally extremely dependent on hardware, so "machine independent" is a definite no.
As long as the operating system can provide some form of abstraction for application developers, then it is an operating system. That abstraction may not be a much, it may be quite a lot, or it may be completely optional. The point is, it is there.
It doesn't have to multitask, heck, it doesn't even have to run more than one task. It doesn't have to interface with a user. The only things it has to do is run program(s) and interface with the hardware (either directly or indirectly).
As long as the operating system can provide some form of abstraction for application developers, then it is an operating system. That abstraction may not be a much, it may be quite a lot, or it may be completely optional. The point is, it is there.
It doesn't have to multitask, heck, it doesn't even have to run more than one task. It doesn't have to interface with a user. The only things it has to do is run program(s) and interface with the hardware (either directly or indirectly).
RE:What is an OS ?
I agree, most of the projects described & talked about here can't be called os projects- they should be called stand alone program projects.
Anton.
Anton.
RE:What is an OS ?
Interesting.
Suppose you have a system that, on startup, runs what is essentially a primitive IDE -- simple text editor and compiler, i.e., it takes text and generates executable machine code from it -- and offers a way to save and reload programs (either pre-compiled, or source code that has to be recompiled each time). Such programs, in theory, can not only extend the editor/compiler; they can also do things with graphics and with data stored on disk (such as databases, pictures, or sound files).
This is more or less what I'm working on (www.karig.net). So, do I have an OS, or do I just have a standalone program that takes over the machine at bootup? (Not that the answer truly matters to me, but this conversation is interesting. )
Suppose you have a system that, on startup, runs what is essentially a primitive IDE -- simple text editor and compiler, i.e., it takes text and generates executable machine code from it -- and offers a way to save and reload programs (either pre-compiled, or source code that has to be recompiled each time). Such programs, in theory, can not only extend the editor/compiler; they can also do things with graphics and with data stored on disk (such as databases, pictures, or sound files).
This is more or less what I'm working on (www.karig.net). So, do I have an OS, or do I just have a standalone program that takes over the machine at bootup? (Not that the answer truly matters to me, but this conversation is interesting. )
RE:What is an OS ?
It is an OS, since: you have a way to run programs(which might have to be changed for your os.), which are not part of the OS itself. So you can do useful things(like solve a big matrix system:) or run a game(like tetris) ) other then writing a memorymanager or ...
Anton.
Anton.
RE:What is an OS ?
I hear ya.
Yeah, I'd kinda like to be able to do other things with my system than write a memory manager, even if this means my system doesn't have the latest coolest thread-scheduler design, or the most impressive paging algorithm, or the ability to run 1024 processes all at once.
I'm guessing most projects listed on this site are just "learning experiences." So far, mine is too, but I am working slo-o-owly toward making a real working system out of it. (If I can just get my hard-disk code to work, I'll be on my way again. )
Yeah, I'd kinda like to be able to do other things with my system than write a memory manager, even if this means my system doesn't have the latest coolest thread-scheduler design, or the most impressive paging algorithm, or the ability to run 1024 processes all at once.
I'm guessing most projects listed on this site are just "learning experiences." So far, mine is too, but I am working slo-o-owly toward making a real working system out of it. (If I can just get my hard-disk code to work, I'll be on my way again. )