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

Debugging an Operating System

I was going through some general stuff about operating systems and struck on a question. How will a developer debug when developing an operating system i.e. debug the OS itself? What tools are available to debug for the OS developer?
Light_handle
  • 3,947
  • 7
  • 29
  • 25
27
votes
8 answers

Get OS Version / Friendly Name in C#

I am currently working on a C# project. I want to collect users statistics to better develop the software. I am using the Environment.OS feature of C# but its only showing the OS name as something like Microsoft Windows NT What I want to be able to…
Boardy
  • 35,417
  • 104
  • 256
  • 447
27
votes
4 answers

Implementing an N process barrier using semaphores

I'm currently training for an OS exam with previous iterations and I came across this: Implement a "N Process Barrier", that is, making sure that each process out of a group of them waits, at some point in its respective execution, for the other…
27
votes
5 answers

Python: How to open a folder on Windows Explorer(Python 3.6.2, Windows 10)

If I store the path that i want to open in a string called finalpath which looks something like this: "./2.8 Movies/English/Die Hard Series" then how do i open this in Windows Explorer?(Windows 10)(Python 3.6.2) P.S I know many people have asked…
27
votes
4 answers

How can I check the bitness of my OS using Java? (J2SE, not os.arch)

I'm developing a software application that checks what kind of software you have installed, but in order to do so, I must know if the OS is a 32 bit or a 64 bit OS. I tried System.getProperty("os.arch"); but then I read that this command only shows…
Raúl Núñez Cuevas
  • 838
  • 4
  • 10
  • 14
27
votes
9 answers

Why There is a difference between assembly languages like Windows, Linux?

I am relatively new to all this low level stuff,assembly language.. and want to learn more detail. Why there is a difference between Linux, Windows Assembly languages? As I understand when I compile a C code Operating system does not really produce…
caltuntas
  • 10,747
  • 7
  • 34
  • 39
27
votes
5 answers

Do threads share local variables?

I'm reading Operating System Concepts by Silberschatz 7th ed, and it says that threads of the same process share the code section, data section, and other O.S. resources, but have separate sets of stacks and registers. However, the problem set I'm…
Tony Tarng
  • 699
  • 2
  • 8
  • 17
27
votes
8 answers

Multicore + Hyperthreading - how are threads distributed?

I was reading a review of the new Intel Atom 330, where they noted that Task Manager shows 4 cores - two physical cores, plus two more simulated by Hyperthreading. Suppose you have a program with two threads. Suppose also that these are the only…
Mark Ransom
  • 299,747
  • 42
  • 398
  • 622
27
votes
12 answers

How to discover what Linux distribution is in use

Sometimes I need to access some servers running Linux (or maybe another Unix-like SO), but I don't know how to verify which distribution is in use on the server (there are times that even the "responsible" person for the server doesn't know). Is…
Seiti
  • 2,138
  • 2
  • 21
  • 33
27
votes
2 answers

What does fflush(stdin) do in C programing?

I am very new to C programming and I am trying to understand how fflush(stdin) really works. In the following example does fflush(stdin) clears all the buffer or it clears whatever entered after the third item? What I mean is user enters account…
C graphics
  • 7,308
  • 19
  • 83
  • 134
27
votes
9 answers

What kind of code can be called "re-entrant"?

Could someone tell me what code can be called "re-entrant" code? I came across this word when reading some real time operating system. What disciplines must be stuck to in order for code to be "re-entrant" code?
smwikipedia
  • 61,609
  • 92
  • 309
  • 482
27
votes
9 answers

Difference between .com, .exe, and .bat?

What is the difference between the a.bat, a.com and a.exe extensions?
Sarfraz
  • 273
  • 1
  • 3
  • 5
27
votes
9 answers

How does program execute? Where does the Operating Systems come into play?

A program is compiled from some language to ASM --> Machine Code (directly executable). When people say that this is platform dependent, the mean that the binaries formed will run (correctly) only on the CPUs with same Instruction Set Architecture…
27
votes
2 answers

How does a compiled program interact with the OS?

When a program is compiled it is converted to machine code which can be "understood" by the machine. How does this machine code interact with the operating system in order to do things like getting input from the keyboard ? To me, it seems that the…
mahela007
  • 1,399
  • 4
  • 19
  • 29
27
votes
1 answer

How do x86 page tables work?

I'm familiar with the MIPS architecture, which is has a software-managed TLB. So how and where you (the operating system) wants to store the page tables and the page table entries is completely up to you. For example I did a project with a single…
JDS
  • 16,388
  • 47
  • 161
  • 224