Hi
could help me about the kernel archetecture, is the kernel contain the file system or not ?
and how can i determine and design the arch of kernel, is by distribution of OS files or by an other standard ?
Operating system archetecture
Re:Operating system archetecture
I haven't got a clue what you're talking about. You can put the filesystem wherever you like, if you are making a Microkernel OS then you would probably want it as a service, a monolithic OS would have it in the kernel or you can take the middle ground and run it as a server in kernel space. Asking that sort of question is like asking "can you design my OS for me?"
What do you mean by architecture? If you mean hardware architecture then you'll probably want the hardware specific code to be in seperate directories which are linked via a configuration header included in every source file. If you are refering to the basic internal design then you can do that however you like.
What do you mean by architecture? If you mean hardware architecture then you'll probably want the hardware specific code to be in seperate directories which are linked via a configuration header included in every source file. If you are refering to the basic internal design then you can do that however you like.
Re:Operating system archetecture
It depends what type of OS you are designing. To take two examples, an OS designed for a particular embedded system (or even a particular desktop system ala old macs) might have have the filesystem built into the kernel. On the other hand, an OS that needs to support a variety of formats would probably benefit from having the filesystem installable at runtime as a service or driver (depending on how you implement those two things and what type of interface you want to it).
As with almost anything in this field, it's entirely up to you and how you what things done. There isn't usually a "right" answer and there sometimes aren't even "correct" answers.
As with almost anything in this field, it's entirely up to you and how you what things done. There isn't usually a "right" answer and there sometimes aren't even "correct" answers.
Re:Operating system archetecture
sorry about unclear question...
yes i know the arachitecture of os depend on the os designer, but when show the linux folders and files i thought that the file destribution represent the architecture of linux, but when search about the archticture of os i understand that there are different designs for os,
mono
layer
client/server
mickro kernel
my quistion now is about the layered Opertatin system...
how can i determine and differentate between the layer os OS, suppose that i talk about existing OS and i want to know the layer of this existing OS.
how can i detemine the layer of OS, and the place of each component of OS (File system,Device drivers, Mem management..) in an OS ?
yes i know the arachitecture of os depend on the os designer, but when show the linux folders and files i thought that the file destribution represent the architecture of linux, but when search about the archticture of os i understand that there are different designs for os,
mono
layer
client/server
mickro kernel
my quistion now is about the layered Opertatin system...
how can i determine and differentate between the layer os OS, suppose that i talk about existing OS and i want to know the layer of this existing OS.
how can i detemine the layer of OS, and the place of each component of OS (File system,Device drivers, Mem management..) in an OS ?
Re:Operating system archetecture
That doesn't make much sense either, and is still in the same ballpark as "can you design my OS for me."
Typically the OS has 4 layers: Kernel > Drivers > Services > Programs. Linux only has 2 (Kernel > Programs), Windows has 3 (Kernel > Drivers > Programs). The less layers you have, the faster the system may be able to go but it is also less flexible (Recompiling the Linux Kernel to add/remove drivers for example)
The filesystem service is wherever you put it as per the design, memory management is usually in the kernel but you can have a service that simply runs in kernel space. Device drivers can run in kernel space (eg. Windows), be part of the kernel (eg. Linux) or run as seperate programs in user space (microkernel)
Typically the OS has 4 layers: Kernel > Drivers > Services > Programs. Linux only has 2 (Kernel > Programs), Windows has 3 (Kernel > Drivers > Programs). The less layers you have, the faster the system may be able to go but it is also less flexible (Recompiling the Linux Kernel to add/remove drivers for example)
The filesystem service is wherever you put it as per the design, memory management is usually in the kernel but you can have a service that simply runs in kernel space. Device drivers can run in kernel space (eg. Windows), be part of the kernel (eg. Linux) or run as seperate programs in user space (microkernel)
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Re:Operating system archetecture
mar-rih,
first of all, be welcome to ask questions.
second, please, don't try to write sentences complicated beyond your capabilities in english. They don't come out as you expect them. Just keep it simple.
third, this link might reveal some elucidations for you:
http://www.osdev.org/osfaq2/index.php/DesignAllInOne
It should give you a fair amount of hints about your question.
@AR: I for one see at least three layers inside the linux kernel (arch,abstraction,modules). But look yourself. Understanding doesn't come by merely telling and pointing the finger at essentials. Besides thinking in layers won't prove that useful, will it? Better is to think in *modules*. May be I'm just off the edge, but that's what I think.
first of all, be welcome to ask questions.
second, please, don't try to write sentences complicated beyond your capabilities in english. They don't come out as you expect them. Just keep it simple.
third, this link might reveal some elucidations for you:
http://www.osdev.org/osfaq2/index.php/DesignAllInOne
It should give you a fair amount of hints about your question.
@AR: I for one see at least three layers inside the linux kernel (arch,abstraction,modules). But look yourself. Understanding doesn't come by merely telling and pointing the finger at essentials. Besides thinking in layers won't prove that useful, will it? Better is to think in *modules*. May be I'm just off the edge, but that's what I think.
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
BlueillusionOS iso image
Re:Operating system archetecture
I was operating on the design of the system as a whole, not the Kernel's internal structure (which I was deliberately avoiding). Those things are part of the Linux Kernel, when built it yields one part of the Operating System, but there are no other parts in the system anyway. Kernel Modules don't really count as a layer because a module is basically a chunk of code that is integrated into the kernel at runtime, but is still essentially part of the kernel.
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Re:Operating system archetecture
in this case you should lay it out as follows, I'd propose:
Kernel <> Kernel Lib - for the system calls <> runtime Lib - wraps around system calls and provides additional functions <> Programs (be it shell, programs or server daemons)
Kernel <> Kernel Lib - for the system calls <> runtime Lib - wraps around system calls and provides additional functions <> Programs (be it shell, programs or server daemons)
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
BlueillusionOS iso image
Re:Operating system archetecture
I left out the libraries as they are more or less part of the user program, a Library like a kernel module is a chunk of code that is loaded and integrated into an executable at runtime so is more or less part of the program (The library executes within the processes' time slice until control is eventually either passed to the kernel or returned to the program).
A full map would be something like: Program > Library > Kernel [> Service > Library > Kernel] > Driver
A full map would be something like: Program > Library > Kernel [> Service > Library > Kernel] > Driver