タグ

kernelとsystemcallに関するsomathorのブックマーク (6)

  • ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする

    Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。yasukata氏は、バイナリの書き換えで、システムコールをフックする「Zpoline」の仕組みについて紹介しました。 システムコールをフックしたくなった理由 yasukata氏(以下、yasukata):yasukataといいます。発表を始めます。 今回は、「Zpoline」という、バイナリを書き換えることでシステムコールをフックする仕組みを紹介します。ここではx84-64のCPUで動作するLinuxを想定しています。(スライドを示して)ソースコードはこちらにURLがあるので、よろしければ見てみてください。あとでスライドも公開するので、そちらも併せてご覧ください。 まず、なぜシステムコールをフックしたくなったのかですが、個人的にカーネルに実装

    ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする
  • GNU/Linux (x86/x86-64) のシステムコールをアセンブラから呼んでみる - CUBE SUGAR CONTAINER

    今回は、表題の通り x86/x86-64 の GNU/Linux でシステムコールをアセンブラから呼んでみる。 システムコールは、OS (ディストリビューション) のコアとなるカーネルがユーザ空間のプログラムに向けて提供しているインターフェースのこと。 なお、アセンブラの実装に関しては以下の二つを試した。 NASM (Netwide Assembler) GAS (GNU Assembler) アセンブラには INTEL 記法と AT&T 記法という二つのシンタックスがある。 NASM はデフォルトで INTEL 記法を、GAS はデフォルトで AT&T 記法を使うことになる。 使った環境は次の通り。 $ uname -sr Linux 4.15.0-65-generic $ nasm -v NASM version 2.13.02 $ as -v GNU assembler versio

    GNU/Linux (x86/x86-64) のシステムコールをアセンブラから呼んでみる - CUBE SUGAR CONTAINER
  • Linux スケジューラーのコア実装とシステムコール - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに これは Linux Advent Calendar 2016 の第 11 日目の記事です。Linux のタスクスケジューラーのソースコードや関連するドキュメントなどを読んで分かったことをまとめました。とても長いです・・・ はじめにスケジューラーのアーキテクチャと重要な概念を紹介し、その後はスケジューラーコアとシステムコールの実装について分かったことを延々と述べます。調べきれなかったことや分からなかったことは TODO に残したので、コメント欄とかツイッターで教えてもらえると嬉しいです。間違いの指摘も大歓迎です。 ちなみに私が読

    Linux スケジューラーのコア実装とシステムコール - Qiita
  • Linuxシステムコール徹底ガイド | POSTD

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

    Linuxシステムコール徹底ガイド | POSTD
  • シグナルの使い方と実装について - へにゃぺんて@日々勉強のまとめ

    今回は、Linuxのシグナルについて、自分なりにちゃんと調べてみましたので、 記事にまとめてみます。 ほとんどUNIXシグナルと変わらない話だとは思いますが、ソースコードは Linuxのものを参照しているので、Linuxに限った話も混じっているかと思いま す。 そもそも「シグナル」とは? 辞書を引いてみると、"signal"は signal 【他動】 〜に信号を送る、合図する、〜を信号で伝える 〜の前兆となる、〜を示す、示唆する、知らしめる文例 【名】 〔メッセージを伝えるための〕合図、信号、信号機 〔合図で伝える〕メッセージ、意図、警告 〔行動を起こす〕きっかけ、引き金 《電気》信号 【形】 信号の(働きをする) 際立った、目立つ、顕著な、目覚ましい、注目に値するとのことです。 signalの意味・用例|英辞郎 on the WEB:アルク http://eow.alc.co.jp/se

    シグナルの使い方と実装について - へにゃぺんて@日々勉強のまとめ
  • Anatomy of a system call, part 2 [LWN.net]

    July 16, 2014 This article was contributed by David Drysdale The previous article explored the kernel implementation of system calls (syscalls) in its most vanilla form: a normal syscall, on the most common architecture: x86_64. We complete our look at syscalls with variations on that basic theme, covering other x86 architectures and other syscall mechanisms. We start by exploring the various 32-b

    Anatomy of a system call, part 2 [LWN.net]
  • 1