Operating system concepts in an app by Linux System calls

In summary, the conversation discusses the use of System Calls and the Linux Kernel to implement various Operating System concepts such as Multi-threading, Concurrency, Parallelism, Scheduling, Memory Management, Process Management, Network Management, and Device Drivers. It also mentions that some high-end applications or programming languages may install their own device drivers into Linux to improve performance.
  • #1
pairofstrings
411
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?
 
Technology news on Phys.org
  • #2
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.
 
  • #3
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.
 
  • #4
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.
 

1. What is an operating system?

An operating system is a software that manages all the hardware and software resources of a computer. It provides a common platform for applications to run and performs tasks such as memory management, process scheduling, and device control.

2. What are Linux system calls?

Linux system calls are functions that provide an interface between user-space applications and the kernel. They allow user-space programs to request services from the operating system, such as opening files, creating processes, and communicating with hardware devices.

3. How do Linux system calls work in an app?

In an app, Linux system calls are used to interact with the operating system and perform tasks that require kernel-level access. This could include managing files, networking, and memory allocation. The app makes a request to the kernel through a system call and the kernel executes the requested task on behalf of the app.

4. What are the benefits of using Linux system calls in an app?

Using Linux system calls in an app allows for better performance and efficiency. Since system calls are directly handled by the kernel, they can bypass the overhead of user-space libraries and improve the speed of the app. Additionally, system calls provide a standardized interface for apps to interact with the operating system, making them more portable across different Linux distributions.

5. Are there any downsides to using Linux system calls in an app?

One downside of using Linux system calls in an app is that it requires a good understanding of the underlying system and its APIs. This can make development more complex and time-consuming. Additionally, system calls are more prone to errors and can cause the entire system to crash if not handled properly. It is important to carefully design and test system calls in an app to avoid potential issues.

Similar threads

Replies
6
Views
1K
  • Programming and Computer Science
Replies
3
Views
1K
Replies
2
Views
2K
  • Programming and Computer Science
Replies
29
Views
3K
  • Computing and Technology
2
Replies
43
Views
3K
  • STEM Academic Advising
Replies
5
Views
1K
  • Programming and Computer Science
Replies
5
Views
3K
  • Programming and Computer Science
Replies
1
Views
1K
  • Programming and Computer Science
Replies
1
Views
1K
Back
Top