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
5551
votes
27 answers

How do I create a directory, and any missing parent directories?

How do I create a directory at a given path, and also create any missing parent directories along that path? For example, the Bash command mkdir -p /path/to/nested/directory does this.
Parand
  • 102,950
  • 48
  • 151
  • 186
1995
votes
35 answers

What is the difference between a process and a thread?

What is the technical difference between a process and a thread? I get the feeling a word like 'process' is overused and there are also hardware and software threads. How about light-weight processes in languages like Erlang? Is there a definitive…
James Fassett
  • 40,306
  • 11
  • 38
  • 43
983
votes
36 answers

Difference between binary semaphore and mutex

Is there any difference between a binary semaphore and mutex or are they essentially the same?
Nitin
  • 15,151
  • 8
  • 23
  • 14
924
votes
27 answers

How to identify which OS Python is running on

What do I need to look at to see whether I'm on Windows or Unix, etc.?
Mark Harrison
  • 297,451
  • 125
  • 333
  • 465
623
votes
22 answers

How do I programmatically determine operating system in Java?

I would like to determine the operating system of the host that my Java program is running programmatically (for example: I would like to be able to load different properties based on whether I am on a Windows or Unix platform). What is the safest…
karlgrz
  • 14,485
  • 12
  • 47
  • 58
609
votes
28 answers

What are some resources for getting started in operating system development?

One thing I've always wanted to do is develop my very own operating system (not necessarily fancy like Linux or Windows, but better than a simple boot loader which I've already done). I'm having a hard time finding resources/guides that take you…
Giovanni Galbo
  • 12,963
  • 13
  • 59
  • 78
591
votes
13 answers

What are file descriptors, explained in simple terms?

What would be a more simplified description of file descriptors compared to Wikipedia's? Why are they required? Say, take shell processes as an example and how does it apply for it? Does a process table contain more than one file descriptor. If…
Nishant
  • 20,354
  • 18
  • 69
  • 101
572
votes
4 answers

What is private bytes, virtual bytes, working set?

I am trying to use the perfmon windows utility to debug memory leaks in a process. This is how perfmon explains the terms: Working Set is the current size, in bytes, of the Working Set of this process. The Working Set is the set of memory pages…
pankajt
  • 7,642
  • 12
  • 39
  • 60
383
votes
34 answers

Context.startForegroundService() did not then call Service.startForeground()

I am using Service Class on the Android O OS. I plan to use the Service in the background. The Android documentation states that If your app targets API level 26 or higher, the system imposes restrictions on using or creating background services…
NiceGuy
  • 3,866
  • 2
  • 9
  • 10
335
votes
13 answers

What resources are shared between threads?

Recently, I have been asked a question in an interview what's the difference between a process and a thread. Really, I did not know the answer. I thought for a minute and gave a very weird answer. Threads share the same memory, processes do not.…
Xinus
  • 29,617
  • 32
  • 119
  • 165
332
votes
12 answers

What languages are Windows, Mac OS X and Linux written in?

I was just wondering who knows what programming languages Windows, Mac OS X and Linux are made up from and what languages are used for each part of the OS (ie: Kernel, plug-in architecture, GUI components, etc). I assume that there are multiple…
Brock Woolf
  • 46,656
  • 50
  • 121
  • 144
306
votes
4 answers

How to run a program without an operating system?

How do you run a program all by itself without an operating system running? Can you create assembly programs that the computer can load and run at startup, e.g. boot the computer from a flash drive and it runs the program that is on the CPU?
user2320609
  • 2,059
  • 3
  • 13
  • 6
306
votes
17 answers

How do I check OS with a preprocessor directive?

I need my code to do different things based on the operating system on which it gets compiled. I'm looking for something like this: #ifdef OSisWindows // do Windows-specific stuff #else // do Unix-specific stuff #endif Is there a way to do this? Is…
perimosocordiae
  • 17,287
  • 14
  • 60
  • 76
283
votes
18 answers

How to find the operating system details using JavaScript?

How can I find the OS name and OS version using JavaScript?
vipin katiyar
  • 3,437
  • 7
  • 24
  • 32
277
votes
5 answers

How do I check the operating system in Python?

I want to check the operating system (on the computer where the script runs). I know I can use os.system('uname -o') in Linux, but it gives me a message in the console, and I want to write to a variable. It will be okay if the script can tell if it…
kolek
  • 3,690
  • 3
  • 24
  • 31
1
2 3
99 100