Questions tagged [operating-system]

An operating System (OS) is a software program whose role is to be an abstract layer between software requisitions for resources and the hardware available, manage input/output, memory allocation/deallocation, file systems, among other basic tasks a device (not necessarily a computer) should do.

An operating system (OS) is a basic software whose role is to be an abstract layer between software requisitions for resources and the hardware available. The basic components of an operational system can be listed as:

  • Boot loader

Although some may say it is not part of the OS, it's the starting point where the hardware after doing booting routines transfers the control to a small procedure that will bring up the entire system

  • User interface

Can be graphical or text-based, is the central point of communication between the user and the OS

  • Kernel

The core of the OS that manages all the resources of the hardware according to the requisitions. Kernels can be either a micro kernel or a monolithic kernel. Both types include the following functionality:

  • Process management (scheduling, multitasking, pseudo-parallelism, and so on)
  • Memory (and virtual memory) management
  • Inter-process communications (IPC)
  • Interrupt management

Monolithic kernels include these additional features:

  • File system and disk access organization
  • Device management (with the aid of device drivers, plug-and-play routines, dynamic modules, and so on)

These features are not included directly in a micro-kernel, but are instead implemented in tasks. One example of a fairly widely used micro-kernel is QNX. As well, many hypervisors are micro kernel designs. A major argument for micro-kernels is that their small size makes them easier to analyze and more secure.Tanenbaum

Most well known operating systems are monolithic. In fact, the majority of commercial and Open source OS's are monolithic. Generally they allow faster hardware response.

Book : Operating System Concepts by Abraham Silberschatz

Recommended preliminary reading before posting a question: OSDev Wiki

See also: .

13710 questions
75
votes
10 answers

How to get the OS on which PHP is running?

For building a unix/dos specific script I need to know on which kind of operating system I am. How do i get this information? phpinfo(); tells me a lot more and not very clear whether I'm running on unix or not.
Martin Klepsch
  • 1,875
  • 3
  • 18
  • 24
74
votes
24 answers

Difference between multitasking, multithreading and multiprocessing?

Whats the difference between multitasking, multiprogramming & multiprocessing This comes regularly for my university OS exams and I can't find a good answer. I know quite a bit about multitasking and multiprogramming, but need to confirm it.
73
votes
7 answers

Running windows shell commands with python

How can we interact with OS shell using Python ? I want to run windows cmd commands via python. How can it be achieved ?
avimehenwal
  • 1,502
  • 3
  • 21
  • 30
72
votes
12 answers

How to get the "friendly" OS Version Name?

I am looking for an elegant way to get the OS version like: "Windows XP Professional Service Pack 1" or "Windows Server 2008 Standard Edition" etc. Is there an elegant way of doing that? I am also interested in the processor architecture (like x86…
Stefan Koell
  • 1,476
  • 3
  • 15
  • 25
72
votes
6 answers

How closely are Mac OS X and BSD related?

I read that Mac OS X and bsd are related. How closely are they related. Can Mac OS X software be tweaked and installed on BSD?
Boolean
  • 14,266
  • 30
  • 88
  • 129
72
votes
2 answers

What is the difference between Full, Para and Hardware assisted virtualization?

I am going through the topic of virtualization and i am totally sucked up understanding the basic concept, Wikipedia does provide some relevant information, but it is not good enough for me to understand the basic idea. The concept will be of 2 to 3…
mfs
  • 3,984
  • 6
  • 32
  • 51
72
votes
3 answers

How does the OS scheduler regain control of CPU?

I recently started to learn how the CPU and the operating system works, and I am a bit confused about the operation of a single-CPU machine with an operating system that provides multitasking. Supposing my machine has a single CPU, this would mean…
69
votes
5 answers

What is progress and bounded waiting in critical section?

I was reading Critical Section Problem from Operating System Concepts by Peter B. Galvin. According to it 1) Progress is : If no process is executing in its critical section and some processes wish to enter their critical sections, then only those…
68
votes
3 answers

python mkdir to make folder with subfolder?

This works: mkdir('folder') but this doesn't mkdir('folder/subfolder') error: WindowsError: [Error 3] The system cannot find the path specified: 'folder/subfolder'
b7875787
  • 681
  • 1
  • 5
  • 3
68
votes
4 answers

How to change the user and group permissions for a directory, by name?

os.chown is exactly what I want, but I want to specify the user and group by name, not ID (I don't know what they are). How can I do that?
mpen
  • 272,448
  • 266
  • 850
  • 1,236
68
votes
2 answers

What are Ring 0 and Ring 3 in the context of operating systems?

I've been learning basics about driver development in Windows I keep finding the terms Ring 0 and Ring 3. What do these refer to? Are they the same thing as kernel mode and user mode?
just.another.programmer
  • 8,579
  • 8
  • 51
  • 90
67
votes
5 answers

What is preemption / What is a preemtible kernel? What is it good for?

Explained in your own words, what is preemption and what does it mean to a (linux) kernel? What are advantages and disadvantages in having a preemptible kernel?
Markus
  • 1,772
  • 1
  • 12
  • 20
67
votes
1 answer

Difference between sequential write and random write

What is the difference between sequential write and random write in case of :- 1)Disk based systems 2)SSD [Flash Device ] based systems When the application writes something and the information/data needs to be modified on the disk then how do we…
66
votes
15 answers

Resources to develop an operating system

I'm planning to write an operating system and I don't know very much about operating systems. Are there any good resources or books to read in order for me to learn? What are your recommendations?
Agusti-N
  • 3,956
  • 10
  • 40
  • 47
66
votes
7 answers

Check the open FD limit for a given process in Linux

I recently had a Linux process which “leaked” file descriptors: It opened them and didn't properly close some of them. If I had monitored this, I could tell – in advance – that the process was reaching its limit. Is there a nice, Bash or Python way…
Adam Matan
  • 128,757
  • 147
  • 397
  • 562