The Linux System Call Execution Model: An Insight
Open Source For You|August 2024
This two-part series of articles focuses on the system call execution model in Linux based operating systems. This first part explains what system calls are, why they are required and the role of the glibc wrapper in system call execution. It then touches on the system call execution model from the Linux kernel perspective.
The Linux System Call Execution Model: An Insight

A system call is a request by a user space program (application) to interact with an OS executing in the kernel space. Basically, the user application invokes a system call when it requires access to the services that can only be accessed through a higher privilege mode — for example, creating a new task, doing network I/O or file I/O, or accessing hardware resources. These operations cannot be directly performed by the user space application; hence, operating systems like Linux provide a set of routines called system calls which are basically C functions executing in the kernel space.

When a user space program invokes a system call, there is a software interrupt (nowadays x86-64 provides syscall instruction for fast system call execution) and the mode switches from user space to kernel space (or more precisely, the privilege mode changes from lower to higher). Now the system call handler in the kernel space performs the required operation on behalf of the user space application and sends the response back to it.

We will see in detail in later sections as to how the user space to kernel space mode switching happens and how kernel space system call handlers are invoked. But first let’s examine the role of the standard C library in the execution of system calls.

Role of the C library

When we say C library, the most commonly and widely distributed C library with a Linux based OS is glibc or GNU C library. This C library helps implement standard C functions and APIs like print(), scanf(), malloc(), fopen(), strcpy(), etc. These standard functions may or may not invoke system calls internally — for example, printf() internally invokes write(2) system calls. However, all these internal invocations of system calls are hidden from the user space application.

この蚘事は Open Source For You の August 2024 版に掲茉されおいたす。

7 日間の Magzter GOLD 無料トラむアルを開始しお、䜕千もの厳遞されたプレミアム ストヌリヌ、9,000 以䞊の雑誌や新聞にアクセスしおください。

この蚘事は Open Source For You の August 2024 版に掲茉されおいたす。

7 日間の Magzter GOLD 無料トラむアルを開始しお、䜕千もの厳遞されたプレミアム ストヌリヌ、9,000 以䞊の雑誌や新聞にアクセスしおください。

OPEN SOURCE FOR YOUのその他の蚘事すべお衚瀺
Modelling Toeplitz Networks with SageMath
Open Source For You

Modelling Toeplitz Networks with SageMath

A Toeplitz network refers to a graph that has a comparable regularity in its structure. SageMath is an excellent tool for facilitating the creation, analysis, and visualisation of graphs. Hence, SageMath can be used to effectively model Toeplitz networks and get insights into their structural characteristics, leading to advancements in network design and analysis.

time-read
5 分  |
March 2025
It's the Age of AI Agents!
Open Source For You

It's the Age of AI Agents!

Businesses must get ready to work with AI agents if they want to stay competitive. Many have already adopted them, while others are gearing up to do so. These agents will soon be part of almost every organisation, making up a large global digital workforce.

time-read
9 分  |
March 2025
Building Machine Learning Models with Scikit-learn
Open Source For You

Building Machine Learning Models with Scikit-learn

Scikit-learn scores over other machine learning libraries because it is easy to use, comes with a comprehensive feature set, has strong community support, and is customisable. Here's a quick look at its features and use cases.

time-read
6 分  |
March 2025
SageMath: Deeper Insights into Cybersecurity
Open Source For You

SageMath: Deeper Insights into Cybersecurity

In the previous article in this SageMath series (published in the January 2025 issue of OSFY), we concluded our discussion of classical encryption techniques and moved on to the exploration of modern cryptography by looking at symmetric-key cryptography. In this ninth article in the series, we will continue the focus on symmetric-key cryptography.

time-read
10+ 分  |
March 2025
Why You Should Go for Grafana
Open Source For You

Why You Should Go for Grafana

Explore the main characteristics of Grafana, the open source analytics and visualisation tool for application in the Internet of Things, and see how it compares with other similar popular tools.

time-read
3 分  |
March 2025
Metaverse and Digital Twins: Partnering to Innovate
Open Source For You

Metaverse and Digital Twins: Partnering to Innovate

Let's explore Al-powered digital twin technology and the Metaverse, delving into what they promise, their limitations, and how large language models and generative Al help address these challenges.

time-read
8 分  |
March 2025
How Open Source LLMs are Shaping the Future of AI
Open Source For You

How Open Source LLMs are Shaping the Future of AI

The future of AI isn't locked behind proprietary paywalls—it's open and collaborative, with open source LLMs giving businesses the power to innovate on their own terms.

time-read
10 分  |
March 2025
Netbooting a Large Language Model-based OS in an Ubuntu Live Server
Open Source For You

Netbooting a Large Language Model-based OS in an Ubuntu Live Server

This brief tutorial explores the wireless netbooting of the LLM model Gemini AI in an Ubuntu server.

time-read
4 分  |
March 2025
NLP: Text Summarisation with Python
Open Source For You

NLP: Text Summarisation with Python

Here's a simple Python method based on the Natural Language Toolkit for extractive text summarisation in natural language processing.

time-read
4 分  |
March 2025
MLOps vs AlOps: What, Where, and Why
Open Source For You

MLOps vs AlOps: What, Where, and Why

MLOps and AIOps excel at driving efficiency and innovation in an organisation. Let's find out what they are, where they can be used, and why we should do so.

time-read
4 分  |
March 2025