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

What happens if I didn't call delete operator after allocating data using new and ending program?

What happens if I didn't call delete operator after allocating data using new. I know that the data that has been allocatted, won't be available until releasing it, but after ending the program ? Why the PC seems to have nausea xD, i mean that it is…
Sherif
  • 1,249
  • 4
  • 15
  • 38
5
votes
2 answers

As to CPU scheduling or interrupt, will CPU finish executing its current instruction?

As we know, one high-level language instruction like "counter++" in C++ will be translated into several assembly langauge instructions. My question is what about a single assembly language instruction? Is it true that some assembly language…
Eric Z
  • 14,327
  • 7
  • 45
  • 69
5
votes
1 answer

Is segmentation completely not used in x64?

In x86, when you want to access a memory address, you would specify an address that would be translated into a memory address through two stages: segmentation, and paging: But is segmentation also used in x64? (I think it is not used, but I am not…
Steve
  • 705
  • 5
  • 13
5
votes
2 answers

rbenv install 2.6.1 FAILED on Mac OS Mojave 10.14.3

PROBLEM I am trying to download ruby 2.6.1 on Mac OS Mojave 10.14.3 but I keep getting failed builds and I'm not sure what the error is. Please help! Completely lost :( Current setup: . > rbenv install --version ruby-build 20190130 > llvm-gcc…
5
votes
1 answer

How does the Linux Kernel know which file descriptor to write input events to?

I would like to know the mechanism in which the Linux Kernel knows which file descriptor (e.g. /dev/input/eventX) to write the input to. For example, I know that when the user clicks the mouse, an interrupt occurs, which gets handled by the driver…
5
votes
2 answers

Can you convert/build a docker image into a full OS image?

I have made a docker container meant with some code for deployment. However, I realised that the structure of the project I'm working with, it's more suitable to deploy a full ISO image, instead of running docker on top of a cloud VM running stock…
Larry Cai
  • 881
  • 1
  • 11
  • 24
5
votes
2 answers

Is it possible to access a physical memory address using C programming?

For example, when we write: int a; and doing &a gives us some address in hex form 0x12345678 which we call as virtual address. Now when we try to do int *temp = 0xfe000000; does this address acts like a virtual address or a physical address? As…
Navneet
  • 71
  • 8
5
votes
9 answers

Recommended OS for Visual Studio 2008

Which Operating System would you recommend when working with Visual Studio 2008 and it's asp.net framework? I will only use it for Web-developing and Visual Studio is the only thing I need on it. I do all my programming on a 2Ghz laptop with 2GB…
Daniel O
  • 4,607
  • 6
  • 44
  • 52
5
votes
3 answers

Location of OS Kernel Data

I'm a beginner with operating systems, and I had a question about the OS Kernel. I'm used to the standard notion of each user process having a virtual address space of stack, heap, data, and code. My question is that when a context switch occurs to…
5
votes
3 answers

How is fairness of thread scheduling ensured across processes?

Every process has at least one thread of execution and I read somewhere that modern Operating Systems only schedule Thread and not process. So if there are two processes running in the system - P1 with 1 thread and P2 with 100 threads, how will OS…
NPE
  • 1,401
  • 4
  • 18
  • 31
5
votes
1 answer

Python - How to make use of multiple CPU cores

I know that Python programs execute as a single process using a single CPU. Does this mean that opening 4 command prompts and launching, one after the other, 4 different .py scripts will result in making use of 4 CPU cores? My system: Alienware…
Employee
  • 3,109
  • 5
  • 31
  • 50
5
votes
1 answer

The effects of heavy thread consumption on ARM (4-core A72) vs x86 (2-core i5)

I have a realtime linux desktop application (written in C) that we are porting to ARM (4-core Cortex v8-A72 CPUs). Architecturally, it has a combination of high-priority explicit pthreads (6 of them), and a couple GCD(libdispatch) worker queues (one…
5
votes
2 answers

What is the difference between "Dispatch Latency" and "Context Switch" in operating systems?

I am currently studying operating systems from Silberschatz's book and have come across the "Dispatch Latency" concept. The book defines it as follows: The time it takes for the dispatcher to stop one process and start another running is known as…
Islam Hassan
  • 673
  • 1
  • 10
  • 21
5
votes
2 answers

Why is the heap in Go executable?

I recently read this article http://codearcana.com/posts/2012/05/06/securing-and-exploiting-go-binaries.html which claims in Go that the heap is executable. This raises a few different questions for me about the interaction between the runtime and…
5
votes
1 answer

no emulation booting OS

I'm working on no-emulation booting OS , as you know in no-emulation booting, the boot image can be any (real-mode) binary executable code. i use 2 stage bootloader for my os , first i load the fist stage the problem that i encounter is in the…