タグ システムコール
人気順 5 users 10 users 100 users 500 users 1000 usersLinux システムコール 徹底入門
Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.... 続きを読む
Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話
tl;dr いままでは Go プログラムを Nintendo Switch 上で動かすために WebAssembly に一度変換し、それを C++ に変換してコンパイルするということを行ってきました。今回、 Go の Nintendo Switch 向けネイティブコンパイルに成功し、実際に手元でゲームを動かすことができました。手法として、システムコール呼び出し... 続きを読む
プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE
ソフトウェア開発において「ファイルの読み書き」は使用頻度の高い操作であり、速度の向上はソフトウェア全体のパフォーマンスに大きく影響します。そんなファイルの読み書き操作を行う際に「mmapを使った方が通常のシステムコールよりも高速にファイルを操作できる理由」について、ブリティッシュコロンビア大学の准教... 続きを読む
APIとかABIとかシステムコールとか - Qiita
note 本記事はまだドラフトです。 はじめに 本記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaや... 続きを読む
OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来
2018 - 04 - 24 OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する プログラミング Webサーバ 今回は、Webサーバの実装に依存することなく、OSレイヤでWebサーバソフトウェアが起動時に実行するであろうシステムコールを監視して、そのタイミングでプロセスをイメージ化する方法(PoC)について紹介します。 その前に、まずは前提の一致... 続きを読む
ディレクトリを getdents(2) しつつ rename(2) を繰り返す実験 - hibomaの日記
2018 - 03 - 23 ディレクトリを getdents(2) しつつ rename(2) を繰り返す実験 www.kunst1080.net シンプルそうな問題でありながら手強いネタで、背後にいろんな理由や工夫やあるのだな〜と非常におもしろかったです. この手の調査では strace を取って システムコール を追いかけたくなる。find(1) が呼び出す getdents(2) がどんな... 続きを読む
ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
2017 - 07 - 31 ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! C Rust 他のプロセスを中断せずに、その出力を ミラーリング して新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceや gdb といったコマンドは一体どういう仕組みで動いているのでしょうか。 ptrace システムコール を使い、プロセスが呼ぶ システムコール を調べて出力を覗... 続きを読む
ptraceとELFとLinuxレジスタ - sonots:blog
ptrace(2)に入門。ptrace(2) は Linux を含む Unix 系OS にあるシステムコールで、実行中のプロセスに対して、メモリ上のデータやレジスタの値を抜き出したり、書き換えたりすることができる。 これを使ってごにょごにょすると、実行中の関数とその引数を取り出して、実行中のプロセスを止めずにスタックトレースを取得したり、 デバッガを作ったり 、 標準出力を横取りして audit ... 続きを読む
Linux におけるファイル I/O の基礎
すべてがファイルというモデルの Linux (Unix) において、ファイル I/O (以降単に I/O と書く) を知っておいて損はない。 この記事では、基本的なファイルと関連する I/O について、対応する Linux システムコールも併せて説明する。 次回はこれらを実際に Linux 上で確認する予定。 ファイルUnix におけるファイルとは... 続きを読む
詳解システム・パフォーマンス 3章「オペレーティングシステム」メモ - ゆううきメモ
2017 - 04 - 16 詳解システム・パフォーマンス 3章「オペレーティングシステム」メモ Books System Performance 詳解システム・パフォーマンス 輪読メモ2 - ゆううきメモ の続き。今回は第3章「 オペレーティングシステム 」 システムパフォーマンス分析では、オペレーティングシステムとその カーネル についての理解は必要不可欠だ。 システムコール がと... 続きを読む
LinuxカーネルのTCPスタックとシステムコールの組み合わせによる手法よりも高速にポートのListenチェックを行う - 人間とウェブの未来
2017 - 02 - 16 LinuxカーネルのTCPスタックとシステムコールの組み合わせによる手法よりも高速にポートのListenチェックを行う プログラミング まずは前回の記事で盛大な誤認をしていたことを訂正しなければなりません。 hb.matsumoto-r.jp 前回の記事では、高速にリモートホストのポートチェックを3パケットで実現する実装を行うために、RAWソケットとユーザランドの簡易... 続きを読む
Linux スケジューラーのコア実装とシステムコール - Qiita
はじめに これは Linux Advent Calendar 2016 の第 11 日目の記事です。Linux のタスクスケジューラーのソースコードや関連するドキュメントなどを読んで分かったことをまとめました。とても長いです・・・ はじめにスケジューラーのアーキテクチャと重要な概念を紹介し、その後はスケジューラーコアとシステムコールの実装について分かったことを延々と述べます。 調べきれなかったこと... 続きを読む
システムコールを経由する生のLinuxスレッド | コンピュータサイエンス | POSTD
Linuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メインLinuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メイン”スレッドの”親プロセスに追加さ... 続きを読む
strace でシステムコールの所要時間を調べる - ablog
Linuxシステムコールの所要時間は strace の -T オプションで調べることができる。上はEXCELでピボットテーブルを使ってグラフ化したものI/Oレスポンス(read システムコールの所要時間)は5〜15ミリ秒であることがわかる 例strace でシステムコールのトレースを取得する $ strace -ttT -o strace-T_fs_`date +'%Y%m%d%H%M%S'`.l... 続きを読む
OSXでもstraceしたい?よろしい、ならばdtrussだ - すがブロ
2014-12-31 OSXでもstraceしたい?よろしい、ならばdtrussだ straec便利ですよね。最近もnginxがどのファイル開いてるのか調べるのに使いました。ただ、OSXだとそれに準ずるコマンドってないのかなーと勝手に諦めていたのですが、ありましたね。 dtruss straceと同じように sudo dtruss -p プロセスIDでシステムコールを確認できる。 例えば、ngin... 続きを読む
同時にwrite(2)すると混ざるかどうか - kazuhoのメモ置き場
Linux のシステムコールである write(2) の ドキュメントを読むとAtomic/non-atomic: A write is atomic if the whole amount written in one operation is not interleavedwith data from any other process. This is useful when there a... 続きを読む
I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - Dive into the Tech World!
サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threadsI/Oの多重化 非同期I/Oといった方法があります。 この中のI/Oの多重化を実... 続きを読む
「日本の企業はなぜOSをアップグレードしないのか」 ― @IT
「アプリケーションがクラッシュしたときに出るWindowsエラー報告というのがありますよね。あれでマイクロソフトに送られてきたデータを分析した結果、クラッシュのうち相当量がスパイウェアがOSのシステムコールをフックしているために引き起こしたものだということが分かりました」――。JPNICとJPCERT/CCが3月13日に開催したセキュリティーセミナー「知っておくべき不正アクセス対策」で基調講演をし... 続きを読む
いやなブログ: Jockey で Linux のプログラムの実行を記録・再生する
Jockey で Linux のプログラムの実行を記録・再生する Jockey は Linux のプログラムの実行を記録・再生するツールです。システムコールと一部の CPU命令をフックして実行時の入出力をログに記録することによってプログラムの再生を実現しています。主にデバッグ用途に使います。 インストール Jockey は Debian パッケージになっていないため、ソースコードからビルド・インス... 続きを読む
いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す
普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセ... 続きを読む