タグ

システムコールに関するhigedのブックマーク (4)

  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

    ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
  • Linuxシステムコール徹底ガイド | POSTD

    要約 この記事では、LinuxカーネルにてLinuxプログラムがどのように関数を呼び出すのかについて紹介していきます。 システムコールを行う様々な方法、システムコールを行うための独自のアセンブリの作成方法(例あり)、システムコールへのカーネルエントリポイント、システムコールからのカーネルイグジットポイント、glibcのラッパ関数、バグなど多くの点について説明します。 要約 システムコールとは? 必要条件に関する情報 ハードウェアとソフトウェア ユーザプログラム、カーネル、CPUの特権レベル 割り込み モデル固有レジスタ(MSR) アセンブリコードでシステムコールを呼び出すことの問題点 レガシーシステムコール 独自のアセンブリを用いたレガシーシステムコールの使用 カーネル側での int $0x80 エントリポイント iret を使用したレガシーシステムコールからの復帰 高速システムコール 3

    Linuxシステムコール徹底ガイド | POSTD
  • man ページのセクション番号の意味

    Landscape トップページ | < 前の日 2005-08-08 2005-08-09 次の日 2005-08-10 > Landscape - エンジニアのメモ 2005-08-09 man ページのセクション番号の意味 当サイト内を Google 検索できます * man ページのセクション番号の意味この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [unix] Unix 関連の文書を読んでいると、コマンドなどの後ろに数字が書かれているものを目にすることがある。たとえば、mail(1) など。この (1) はセクション番号を表している。ここまでは覚えてるんだけど、「どの番号がどのセクションを表しているのか」はなぜかどうしても覚えられないのでメモ。 THE LINUX MAN-PAGE-HOWTO : man page はいかにしてアクセスされるか? h

  • fork, exec, pipe - とあるSIerの憂鬱

    UNIX(Linux)のプロセス起動は createProcess というような1つのシステムコールではなく、fork と exec の組み合わせ(Fork-Exec)で実現される。 fork は現在のプロセスをまるまるコピーし、別々の実行コンテキストを作る。 fork への戻り値をそれぞれのコンテキストで変えて区別させる。 仮想メモリ空間の情報もコピーされる。 exec は自プロセスを別のバイナリ実行用プロセスに置き換える。 fork と exec が分かれており、かつ、fork が親プロセスの仮想メモリ空間をコピーしていることで、親プロセスと子プロセス(または子プロセス同士)の間の通信用のパイプを作る処理を fork と exec の間で行うことができる。 「fork」『フリー百科事典 ウィキペディア日語版』より Fork-Execは、UNIXで一般的に使われる手法であり、新たなプロ

    fork, exec, pipe - とあるSIerの憂鬱
  • 1