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

stdout thread-safe in C on Linux?

Is writing to stdout using printf thread-safe on Linux? What about using the lower-level write command?
Claudiu
  • 224,032
  • 165
  • 485
  • 680
48
votes
25 answers

How are Operating Systems "Made"?

Creating an OS seems like a massive project. How would anyone even get started? For example, when I pop Ubuntu into my drive, how can my computer just run it? (This, I guess, is what I'd really like to know.) Or, looking at it from another angle,…
stalepretzel
  • 15,543
  • 22
  • 76
  • 91
48
votes
5 answers

cache miss, a TLB miss and page fault

Can someone clearly explain me the difference between a cache miss, a tlb miss and page fault, and how do these affect the effective memory access time?
Pushp Sra
  • 606
  • 1
  • 6
  • 6
48
votes
4 answers

"zero copy networking" vs "kernel bypass"?

What is the difference between "zero-copy networking" and "kernel bypass"? Are they two phrases meaning the same thing, or different? Is kernel bypass a technique used within "zero copy networking" and this is the relationship?
user997112
  • 29,025
  • 43
  • 182
  • 361
48
votes
8 answers

How to move to one folder back in python

Actually need to go some path and execute some command and below is the code code: import os present_working_directory = '/home/Desktop/folder' presently i am in folder if some_condition == true : change_path = "nodes/hellofolder" …
Shiva Krishna Bavandla
  • 25,548
  • 75
  • 193
  • 313
48
votes
5 answers

Relationship between a kernel and a user thread

Is there a relationship between a kernel and a user thread? Some operating system textbooks said that "maps one (many) user thread to one (many) kernel thread". What does map means here?
Pwn
  • 3,387
  • 11
  • 38
  • 42
47
votes
5 answers

job, task and process, what's the difference

what is the difference between these concepts?
mochidino
  • 3,463
  • 4
  • 23
  • 15
47
votes
6 answers

How to set mobile system time and date in android?

When you want to change the mobile system date or time in your application, how do you go about doing it?
None
47
votes
2 answers

Why do I need ILK, PDB and EXP files?

I have downloaded some dll files and with it came also pdb, exp and ilk files. Now I need to know do I need to put them in my system file, or not and what is the purpose of each of them in the general?
46
votes
10 answers

How to uninstall a windows service and delete its files without rebooting

My current project involves deploying an upgraded .exe file that runs as a Windows Service. In order to overwrite the existing .exe with the new version, I currently need to: Stop the service Uninstall the service Reboot the system (so Windows…
46
votes
2 answers

Threads: Why must all user threads be mapped to a kernel thread?

So two questions here really. First, (and yes, I have searched this already, but wanted clarification), what is the difference between a user thread and a kernel thread? Is it simply that one is generated by a user program and the other by an OS,…
mino
  • 6,978
  • 21
  • 62
  • 75
45
votes
6 answers

Why are "Executable files" operating system dependent?

I understand that each CPU/architecture has it's own instruction set, therefore a program(binary) written for a specific CPU cannot run on another. But what i don't really understand is why an executable file (binary like .exe for instance) cannot…
45
votes
14 answers

Polling or Interrupt based method

When should one use polling method and when should one use interrupt based method ? Are there scenarios in which both can be used ?
Karthik Balaguru
  • 7,424
  • 7
  • 48
  • 65
45
votes
6 answers

Inode vs Vnode Difference

I had some doubts regarding an Inode vs a Vnode. As far as my understanding goes, inode is the representation of a file that is used by the Virtual File System. Whereas vnodes are file system specific. Is this correct? Also, I am confused whether…
Aadarsh Kenia
  • 461
  • 1
  • 4
  • 5
44
votes
7 answers

What's the difference between io.open() and os.open() on Python?

I realised that the open() function I've been using was an alias to io.open() and that importing * from os would overshadow that. What's the difference between opening files through the io module and os module?
Gio Borje
  • 20,314
  • 7
  • 36
  • 50