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
241
votes
6 answers

Why is Linux called a monolithic kernel?

I read that Linux is a monolithic kernel. Does monolithic kernel mean compiling and linking the complete kernel code into an executable? If Linux is able to support modules, why not break all the subsystems into modules and load them when necessary?…
Boolean
  • 14,266
  • 30
  • 88
  • 129
217
votes
10 answers

What is the difference between Trap and Interrupt?

What is the difference between Trap and Interrupt? If the terminology is different for different systems, then what do they mean on x86?
David
  • 3,190
  • 8
  • 25
  • 31
205
votes
4 answers

What specifically are wall-clock-time, user-cpu-time, and system-cpu-time in Unix?

I can take a guess based on the names, but what specifically are wall-clock-time, user-cpu-time, and system-cpu-time in Unix? Is user-cpu time the amount of time spent executing user-code while kernel-cpu time the amount of time spent in the kernel…
John Humphreys
  • 37,047
  • 37
  • 155
  • 255
199
votes
9 answers

Programmatically get the cache line size?

All platforms welcome, please specify the platform for your answer. A similar question: How to programmatically get the CPU cache page size in C++?
oz10
  • 153,307
  • 27
  • 93
  • 128
198
votes
5 answers

What is the difference between user variables and system variables?

What is the difference between user variables such as PATH, TMP, etc. and system variables? I accidentally deleted the user variable PATH. What am I supposed to do?
rookie
  • 7,723
  • 15
  • 49
  • 59
192
votes
18 answers

Detect Windows version in .NET

How can I detect the Windows OS versions in .NET? What code can I use?
Hossein Moradinia
  • 6,116
  • 14
  • 59
  • 85
190
votes
4 answers

What happens when a computer program runs?

I know the general theory but I can't fit in the details. I know that a program resides in the secondary memory of a computer. Once the program begins execution it is entirely copied to the RAM. Then the processor retrive a few instructions (it…
gaijinco
  • 2,146
  • 4
  • 17
  • 16
177
votes
5 answers

How to get the PATH environment-variable separator in Python?

When multiple directories need to be concatenated, as in an executable search path, there is an os-dependent separator character. For Windows it's ';', for Linux it's ':'. Is there a way in Python to get which character to split on? In the…
Mark Ransom
  • 299,747
  • 42
  • 398
  • 622
171
votes
13 answers

PHP script - detect whether running under linux or Windows?

I have a PHP script that may be placed on a windows system or a linux system. I need to run different commands in either case. How can I detect which environment I am in? (preferably something PHP rather than clever system hacks) Update To clarify,…
siliconpi
  • 8,105
  • 18
  • 69
  • 107
170
votes
5 answers

How is TeamViewer so fast?

Sorry about the length, it's kinda necessary. Introduction I'm developing a remote desktop software (just for fun) in C# 4.0 for Windows Vista/7. I've gotten through basic obstacles: I have a robust UDP messaging system, relatively clean program…
Jason
  • 6,878
  • 5
  • 41
  • 55
166
votes
2 answers

How do I set a Windows scheduled task to run in the background?

Does anyone know how to set a scheduled task to run in background using Windows Task Scheduler? There doesn't seem to be any option to do this.
Samuel Liew
  • 76,741
  • 107
  • 159
  • 260
165
votes
13 answers

How to detect my browser version and operating system using JavaScript?

I have tried using the code below but it only display results in Chrome and Mozilla not working in IE6.