Operating system concepts in an app by Linux System calls

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 2K views
pairofstrings
Messages
411
Reaction score
7
Before I begin learning what System Calls, Kernel, and Operating System is, I want to confirm that Operating System concepts like Multi-threading, Concurrency, Parallelism, Scheduling, Memory Management, Process Management, Network Management, Device Drivers can be implemented by using Linux Kernel or System Calls in a program.

So, programs with system calls can implement operating system concepts that are mentioned above?

If System Calls or Kernel is not responsible to bring Operating System concepts into a program then who is responsible for it?
 
on Phys.org
Multi-threading, Concurrency, Parallelism, Scheduling, Memory Management is all done by the kernel and you would surely use system calls to use these.

The kernel is also used to send and receive packets over the network. With "Network management" you probably mean something more high level, for which you would use another program.

Device drivers are usually a part of the kernel, or at least a part of the driver is. An user program does not directly use device drivers most of the time, but talks to another program. If you want to do X Window graphics, you open a network connection to another process. (can be on the same machine), which will do all screen i/o. If you want to use a scanner you might use another program that uses a USB or SCSI driver. If you use an USB stick, you issue filesystem commands to the kernel, which uses the device driver.
 
pairofstrings said:
Before I begin learning what System Calls, Kernel, and Operating System is, I want to confirm that Operating System concepts like Multi-threading, Concurrency, Parallelism, Scheduling, Memory Management, Process Management, Network Management, Device Drivers can be implemented by using Linux Kernel or System Calls in a program.

That question is a bit muddled. Most of those things are what the kernel does. Do you want to write your own kernel, or to use the existing kernel? Are you trying to write a Linux simulator to run on Linux?

My advice, just learn the concepts they are trying to teach you without concern about which level implements them.
 
A nitpick bit of trivia about Linux / Posix. A minor drawback of Linux is the lack of the equivalent of Windows WaitForMultipleObjects(), especially if one of the objects is a mutex (versus an event). High end server applications or programming languages like Microsoft Azure install device drivers into Linux, probably since device drivers can use spinlock as replacements for mutex.