系統呼叫(System Call)是應用程式所在之使用者空間(User Space)與核心空間(Kernel Space)之中間界面,也是理解核心運作的一個良好切入點。在這次的鐵人挑戰中,筆者將採用由上而下(Top-Down)的視角,每天trace一個系統呼叫。
Happy Hacking!
前情提要 延續前兩日的程序識別探討,本文要完成程序識別的二層級架構的的最高層,也就是共用一個終端機的程序共同所在的單位:session。 標頭定義 先看get...
前情提要 前幾日介紹了與程序創建相關的fork、控制相關的wait、資訊取得/設定相關的xetxid系列呼叫等等,程序管理功能已經接近尾聲。然而,Linux核心...
前情提要 昨日非常簡略地帶過clone呼叫,在程序管理篇章的最後,介紹中止程序,也就是exit相關的系統呼叫。 介紹 分別看看exit(3)和exit_gro...
前情提要 程序管理的部份告一段落,我們在過程中看到許多與signal相關的事件,因此接下來的單元準備介紹signal相關的系統呼叫。 signal為何物? 推...
前情提要 昨日的kill看到訊號在核心中的傳送,本日則來探討程序如何指定特定行為來回應特定的訊號。 sigaction的用途 原本一個程序對於每一種訊號都有預...
前情提要 kill是讓程序可以互相傳送訊號,sigaction則是讓程序可以在特定訊號來臨時執行特定行為。本日是訊號管理第三日,要來探索的是sigprocmas...
前情提要 終於來到了訊號處理系列的尾聲。程序對訊號的處理,端看這個訊號是否被阻攔(sigprocmask相關設定),以及訊號處理程序的設置(sigaction的...
前情提要 訊息處理作為一個章節,我們看過了kill、sigprocmask、sigaction以及pause,對於訊息的許多機制仍然不清楚,但學習就是一步一步走...
前情提要 我們已有了基本的標準檔案操作、程序相關操作以及訊號處理操作在核心裡面的相關實作的概念。過程中我們大量使用gdb或strace這樣的工具來透視系統呼叫的...
前情提要 與訊號處理有關的系統呼叫告一段落,新篇章也尚未開始的本日,介紹一個很重要卻難以歸類的系統呼叫:execve。 介紹 NAME exec...