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

What are the legitimate uses of global keyboard hooks?

Other than for app launch shortcuts, which should only be provided by the O/S, what are the legitimate uses of things like Windows keyboard hooks? It seems to me that we only have problems with things like key loggers because operating systems…
Lawrence Dol
  • 63,018
  • 25
  • 139
  • 189
5
votes
1 answer

What does the User/Supervisor bit in the page table entry mean?

I am trying to understand whether: the User/Supervisor bit is used to distinguish pages of kernel memory, from those of the user process the User/Supervisor bit changes when execution moves to the kernel while executing a system call Or perhaps…
piggyback
  • 9,034
  • 13
  • 51
  • 80
5
votes
1 answer

Implementing LRU with timestamp: How expensive is memory store and load?

I'm talking about LRU memory page replacement algorithm implement in C, NOT in Java or C++. According to the OS course notes: OK, so how do we actually implement a LRU? Idea 1): mark everything we touch with a timestamp. Whenever we need to…
Junji Zhi
  • 1,382
  • 1
  • 14
  • 22
5
votes
0 answers

Does ARM have any mechanism like the VESA/VGA text mode console on x86?

In x86, the kernel can write to 0xB8000 and have ASCII characters displayed on screen, after some setup of the VGA device. Is there a similar standard mechanism for the kernel to display messages during boot? If not, do chip manufacturers tend to…
Leonora Tindall
  • 1,391
  • 2
  • 12
  • 30
5
votes
3 answers

Copy files from multiple directories into one directory using Python

What is the easiest way to copy files from multiple directories into just one directory using python? To be more clear, I have a tree that looks like this +Home_Directory ++folder1 -csv1.csv -csv2.csv ++folder2 -csv3.csv …
sfortney
  • 2,075
  • 6
  • 23
  • 43
5
votes
1 answer

Different implementations of opening files

I am reading the book "Operating System Concepts by Galvin" and encountered the following statement: File open can be implemented in any of two ways: Some system open files when it is referenced first time. And closes them, once the job is…
Shivendra Mishra
  • 638
  • 4
  • 25
5
votes
3 answers

Android OS 2.2 Permissions: I have absolutely no idea why this simple piece of code doesn't work. What am I doing wrong?

I'm just playing around with some code. I create an Activity and simply do something like this: long lo = currentTimeMillis(); System.out.println(lo); lo *= 3; System.out.println(lo); SystemClock.setCurrentTimeMillis(lo); System.out.println(…
K-RAN
  • 896
  • 1
  • 13
  • 26
5
votes
2 answers

What are all the disadvantages of using files as a means of communicating between two processes?

I have legacy code which I need to improve for performance reasons. My application comprises of two executables that need to exchange certain information. In the legacy code, one exe writes to a file ( the file name is passed as an argument to exe)…
Manny
  • 699
  • 6
  • 19
5
votes
3 answers

What is the difference between kernel and user mode programming?

I would like to know how a kernel programmer thinks about memory vs user mode programmer. I would also like to know a few differences between kernel programming and user mode programming.
mousey
  • 11,601
  • 16
  • 52
  • 59
5
votes
1 answer

who controls the process control block(PCB)?

Recently, I am learning about kernel and find a question that who controls the process control block(PCB)? The kernel or the process itself? Does it differ in different platform (windows/Linux)? So far, I know PCB is controlled in hardware, but I…
Zubair
  • 103
  • 6
5
votes
2 answers

When one thread blocks in C, why doesn't the entire process block

I'm in a course on operating systems and we're talking about threading. On Wikipedia here it says that for 1:N kernel threads: If one of the threads needs to execute an I/O request, the whole process is blocked and the threading advantage cannot…
user2333700
  • 127
  • 1
  • 5
5
votes
5 answers

How can my program determine if it is running on 32-bit or 64-bit Windows?

Here's my question. What is the best way to determine what bit architecture your app is running on? What I am looking to do: On a 64 bit server I want my app to read 64 bit datasources (stored in reg key Software\Wow6432Node\ODBC\ODBC.INI\ODBC Data…
user48408
  • 3,234
  • 11
  • 39
  • 59
5
votes
2 answers

Do exceptions explicitly caught and handled cause switch to kernel mode?

From an OS book, I learned that exceptions (such as arithmetic overflow, undefined instructions, invalid memory access) will cause cpu to switch from user mode to kernel mode, so that the OS can handle the exceptions In high level programming…
Tim
  • 1
  • 141
  • 372
  • 590
5
votes
3 answers

Why do 32-bit applications work on 64-bit x86 CPUs?

32-bit application executables contain machine code for a 32-bit CPU, but the assembly and internal architecture (number of registers, register width, calling convention) of 32-bit and 64-bit Intel CPU's differ, so how can a 32-bit exe run on a…
5
votes
4 answers

memory segments and physical RAM

The memory map of a process appears to be fragmented into segments (stack, heap, bss, data, and text), I was wondering are these segments just an abstraction for the convenience of the process and the physical RAM is just a linear array of…
lychee
  • 1,771
  • 3
  • 21
  • 31