Page 1 of 1

Non programming related articles

Posted: Fri Sep 15, 2006 6:08 pm
by ahelg
I'm doing a BTEC course at the moment in computers. Not exactly advanced, I know, but I have to start somewhere.

I'm quite interested in operating systems, how their put together, etc. I would quite like to dabble with my own OS but I don't have enough coding knowledge at the moment. What I do wish to do now is read articles about how operating systems work which are written in a non-programmer related way. Any tips would be greatly apreciated.

Re:Non programming related articles

Posted: Fri Sep 15, 2006 11:32 pm
by Brendan
Hi,
ahelg wrote:I'm quite interested in operating systems, how their put together, etc. I would quite like to dabble with my own OS but I don't have enough coding knowledge at the moment. What I do wish to do now is read articles about how operating systems work which are written in a non-programmer related way. Any tips would be greatly apreciated.
I'd probably begin with the Wikipedia's entry for operating systems - it describes the most fundamental things an operating system does. Then you could look through the Wikipedia or use a web search engine for more detailed information on each topic.

In very general terms, a "computer system" consists of 4 layers. At the lowest layer there's the hardware, then the operating system, then code used by the user, with the user/s themselves at the top. To implement an operating system you need to know enough about the layer underneath it (the hardware) and the layer above it (the code used by the user/s). The idea is to provide a layer that allows the code used by the user/s to access the hardware without hassles.

This usually involves 2 things - providing abstractions so that the code used by the user/s doesn't need to care about hardware details, and sharing access to hardware (memory, CPU time, etc) while preventing problems/conflicts. For example, most applications read and write files because this is much easier than figuring out exactly where data is stored and how to use the hardware to access it, and the OS provides this abstraction while also making sure different applications don't try to modify the same file at the same time and mess each other up.

This actually makes it sound easy, considering that there's only around 5 types of hardware (RAM, CPUs, storage devices, networking devices, and "user related" devices). For each of these you need some sort of abstraction.

The most common set of abstractions are address spaces, "applications, processes and threads", file systems, network protocols and GUIs. These aren't the only abstractions possible though (for e.g. persistent object oriented operating systems would be an example of different abstractions)...


Cheers,

Brendan

Re:Non programming related articles

Posted: Sat Sep 16, 2006 3:58 am
by ahelg
Looks like wikipedia has quite a few links to some good articles. Thanks, I'll check it out.