iT邦幫忙

鐵人檔案

2017 iT 邦幫忙鐵人賽
回列表
自我挑戰組

跨界的追尋:trace 30個基本Linux系統呼叫 系列

系統呼叫(System Call)是應用程式所在之使用者空間(User Space)與核心空間(Kernel Space)之中間界面,也是理解核心運作的一個良好切入點。在這次的鐵人挑戰中,筆者將採用由上而下(Top-Down)的視角,每天trace一個系統呼叫。
Happy Hacking!

鐵人鍊成 | 共 30 篇文章 | 44 人訂閱 訂閱系列文 RSS系列文
DAY 11

trace 30個基本Linux系統呼叫第十一日:get/setsid

前情提要 延續前兩日的程序識別探討,本文要完成程序識別的二層級架構的的最高層,也就是共用一個終端機的程序共同所在的單位:session。 標頭定義 先看get...

2016-12-11 ‧ 由 高魁良 分享
DAY 12

trace 30個基本Linux系統呼叫第十二日:clone

前情提要 前幾日介紹了與程序創建相關的fork、控制相關的wait、資訊取得/設定相關的xetxid系列呼叫等等,程序管理功能已經接近尾聲。然而,Linux核心...

2016-12-12 ‧ 由 高魁良 分享
DAY 13

trace 30個基本Linux系統呼叫第十三日:exit

前情提要 昨日非常簡略地帶過clone呼叫,在程序管理篇章的最後,介紹中止程序,也就是exit相關的系統呼叫。 介紹 分別看看exit(3)和exit_gro...

2016-12-13 ‧ 由 高魁良 分享
DAY 14

trace 30個基本Linux系統呼叫第十四日:其實不帶殺氣的kill

前情提要 程序管理的部份告一段落,我們在過程中看到許多與signal相關的事件,因此接下來的單元準備介紹signal相關的系統呼叫。 signal為何物? 推...

2016-12-14 ‧ 由 高魁良 分享
DAY 15

trace 30個基本Linux系統呼叫第十五日:sigaction

前情提要 昨日的kill看到訊號在核心中的傳送,本日則來探討程序如何指定特定行為來回應特定的訊號。 sigaction的用途 原本一個程序對於每一種訊號都有預...

2016-12-15 ‧ 由 高魁良 分享
DAY 16

trace 30個基本Linux系統呼叫第十六日:sigprocmask

前情提要 kill是讓程序可以互相傳送訊號,sigaction則是讓程序可以在特定訊號來臨時執行特定行為。本日是訊號管理第三日,要來探索的是sigprocmas...

2016-12-16 ‧ 由 高魁良 分享
DAY 17

trace 30個基本Linux系統呼叫第十七日:pause

前情提要 終於來到了訊號處理系列的尾聲。程序對訊號的處理,端看這個訊號是否被阻攔(sigprocmask相關設定),以及訊號處理程序的設置(sigaction的...

2016-12-17 ‧ 由 高魁良 分享
DAY 18

trace 30個基本Linux系統呼叫第十八日:alarm

前情提要 訊息處理作為一個章節,我們看過了kill、sigprocmask、sigaction以及pause,對於訊息的許多機制仍然不清楚,但學習就是一步一步走...

2016-12-18 ‧ 由 高魁良 分享
DAY 19

trace 30個基本Linux系統呼叫第十九日:ptrace

前情提要 我們已有了基本的標準檔案操作、程序相關操作以及訊號處理操作在核心裡面的相關實作的概念。過程中我們大量使用gdb或strace這樣的工具來透視系統呼叫的...

2016-12-19 ‧ 由 高魁良 分享
DAY 20

trace 30個基本Linux系統呼叫第二十日:execve

前情提要 與訊號處理有關的系統呼叫告一段落,新篇章也尚未開始的本日,介紹一個很重要卻難以歸類的系統呼叫:execve。 介紹 NAME exec...

2016-12-20 ‧ 由 高魁良 分享