The Linux Programming Interface – An Overview



This content originally appeared on DEV Community and was authored by Ahmet Can Gulmez

I’m starting the new journey. In this series, I’ll talk about Linux programming!

In this post, I wanna give you an overview about the key topics and terms in Linux. These are

  • The Kernel

  • The Shell

  • Users and Groups

  • Directories, Links, and Files

  • File I/O Model

  • Programs

  • Processes

  • Memory Mappings

  • Static and Dynamic Libraries

  • IPC and Synchronization

  • Signals

  • Threads

  • Process Groups and Shell Job Control

  • Sessions and Controlling Terminals

  • Pseudoterminals

  • Date and Time

  • Client-Server Architecture

  • Realtime

  • The /proc File System

The term operating system is commonly used with two different meanings:

  • To denote the entire package consisting of the central software managing a computer’s resources.

  • More narrowly, to refer to the central software that manages and allocates computer resources (i.e., the CPU, RAM, and devices).

The kernel is often used as a synonym for the second meaning. Among other things, the kernel performs the following tasks:

  • Process scheduling: Linux is a preemptive multitasking kernel. In here, multitasking means that multiple processes can reside in memory and each may receive use of the CPU(s) and preemptive means that the rules governing which processes receive use of the CPU and for how long are determined by the kernel process scheduler.

  • Memory management:


This content originally appeared on DEV Community and was authored by Ahmet Can Gulmez