はてブログ

はてなブックマーク新着エントリーの過去ログサイトです。



タグ システムコール

新着順 人気順 5 users 10 users 50 users 100 users 500 users 1000 users
 
(1 - 25 / 36件)

Linux システムコール 徹底入門

2023/01/04 このエントリーをはてなブックマークに追加 503 users Instapaper Pocket Tweet Facebook Share Evernote Clip Linux cat CPU 徹底入門 etc

Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.... 続きを読む

Rustで自作OSをしているときのデバッグ例 - syscall 命令と仲良くなりたい!前編 - /var/log/hikalium

2022/12/17 このエントリーをはてなブックマークに追加 12 users Instapaper Pocket Tweet Facebook Share Evernote Clip rust hikalium あらすじ log var

この記事は自作OS Advent Calendar 2022の17日目の記事です。他の記事も是非お楽しみください!(そして書ける方はぜひ参加してみてください!!) 前回(?)までのあらすじ hikaliumは自作OS上で動くアプリからsyscall命令を使ってシステムコールを呼べるようにしようと頑張っていたが、なぜか発生するトリプルフォルトに... 続きを読む

【roff形式を手書きは無理ゲー】manページをMarkdown + Pandocで作成【with manページお作法】

2022/10/12 このエントリーをはてなブックマークに追加 11 users Instapaper Pocket Tweet Facebook Share Evernote Clip Markdown Pandoc 前書き 手書き コマンド

【roff形式を手書きは無理ゲー】manページをMarkdown + Pandocで作成【with manページお作法】 by nao · 公開済み 2020年12月19日 · 更新済み 2020年12月25日 前書き:manualページは伝統的なドキュメント manページは、UNIX系OSのドキュメントであり、コマンドやシステムコールなどの説明が記載されています。 Unix v7... 続きを読む

Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話

2021/12/24 このエントリーをはてなブックマークに追加 163 users Instapaper Pocket Tweet Facebook Share Evernote Clip WebAssembly ネイティブバイナリ tl;dr 手元

tl;dr いままでは Go プログラムを Nintendo Switch 上で動かすために WebAssembly に一度変換し、それを C++ に変換してコンパイルするということを行ってきました。今回、 Go の Nintendo Switch 向けネイティブコンパイルに成功し、実際に手元でゲームを動かすことができました。手法として、システムコール呼び出し... 続きを読む

システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog

2021/12/22 このエントリーをはてなブックマークに追加 10 users Instapaper Pocket Tweet Facebook Share Evernote Clip IIJ Engineers Blog 方法 ptrace

ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣... 続きを読む

APIとかABIとかシステムコールとか - 覚書

2021/03/17 このエントリーをはてなブックマークに追加 15 users Instapaper Pocket Tweet Facebook Share Evernote Clip ABI Wikipedia 覚書 API Linux環境

はじめに 本記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaやらにいろいろ情報が載ってるんです... 続きを読む

プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE

2020/10/31 このエントリーをはてなブックマークに追加 100 users Instapaper Pocket Tweet Facebook Share Evernote Clip mmap GIGAZINE 読み書き 速度 パフォーマンス

ソフトウェア開発において「ファイルの読み書き」は使用頻度の高い操作であり、速度の向上はソフトウェア全体のパフォーマンスに大きく影響します。そんなファイルの読み書き操作を行う際に「mmapを使った方が通常のシステムコールよりも高速にファイルを操作できる理由」について、ブリティッシュコロンビア大学の准教... 続きを読む

Linux GUIアプリがWindows 10にもたらす価値 - 阿久津良和のWindows Weekly Report | マイナビニュース

2020/05/31 このエントリーをはてなブックマークに追加 20 users Instapaper Pocket Tweet Facebook Share Evernote Clip Linuxカーネル Hyper-V仮想マシン 阿久津良和

Windows 10 バージョン2004は、ファイルI/Oのパフォーマンスを改善し、Linuxカーネルの機能を呼び出すシステムコールの互換性を大きく高めたWSL 2(Windows Subsystem for Linux 2)を搭載する。Docker DesktopのホストもHyper-V仮想マシンからWSL 2へ移行したことで、Windows 10 Homeエディションでも開発環境を整える... 続きを読む

Go 1.14でシステムコールがEINTRエラーを返すようになった - Plan 9とGo言語のブログ

2020/02/29 このエントリーをはてなブックマークに追加 23 users Instapaper Pocket Tweet Facebook Share Evernote Clip コンパイラ Go言語 コルーチン チャネル 送受信

Go 1.13までのゴルーチンの切り替えは、チャネルの送受信やシステムコール呼び出し、関数呼び出し前にコンパイラが暗黙的に挿入する処理などによって行われていました。そのため、上記の切り替わり操作を全く行わないループなどがあれば、そのゴルーチンがずっと実行されます。 func loop() { // この辺りにコンパイラが... 続きを読む

APIとかABIとかシステムコールとか - Qiita

2019/02/04 このエントリーをはてなブックマークに追加 81 users Instapaper Pocket Tweet Facebook Share Evernote Clip ABI Qiita Wikipedia API Note

note 本記事はまだドラフトです。 はじめに 本記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaや... 続きを読む

OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来

2018/04/24 このエントリーをはてなブックマークに追加 271 users Instapaper Pocket Tweet Facebook Share Evernote Clip PoC プロセス Webサーバ ウェブ 未来

2018 - 04 - 24 OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する プログラミング Webサーバ 今回は、Webサーバの実装に依存することなく、OSレイヤでWebサーバソフトウェアが起動時に実行するであろうシステムコールを監視して、そのタイミングでプロセスをイメージ化する方法(PoC)について紹介します。 その前に、まずは前提の一致... 続きを読む

ディレクトリを getdents(2) しつつ rename(2) を繰り返す実験 - hibomaの日記

2018/03/23 このエントリーをはてなブックマークに追加 54 users Instapaper Pocket Tweet Facebook Share Evernote Clip rename strace hiboma find 背後

2018 - 03 - 23 ディレクトリを getdents(2) しつつ rename(2) を繰り返す実験 www.kunst1080.net シンプルそうな問題でありながら手強いネタで、背後にいろんな理由や工夫やあるのだな〜と非常におもしろかったです. この手の調査では strace を取って システムコール を追いかけたくなる。find(1) が呼び出す getdents(2) がどんな... 続きを読む

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

2017/07/31 このエントリーをはてなブックマークに追加 16 users Instapaper Pocket Tweet Facebook Share Evernote Clip 出力 プロセス プログラム strace GDB

他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知... 続きを読む

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

2017/07/31 このエントリーをはてなブックマークに追加 369 users Instapaper Pocket Tweet Facebook Share Evernote Clip 出力 プロセス プログラム strace GDB

2017 - 07 - 31 ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! C Rust 他のプロセスを中断せずに、その出力を ミラーリング して新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceや gdb といったコマンドは一体どういう仕組みで動いているのでしょうか。 ptrace システムコール を使い、プロセスが呼ぶ システムコール を調べて出力を覗... 続きを読む

ptraceとELFとLinuxレジスタ - sonots:blog

2017/05/30 このエントリーをはてなブックマークに追加 80 users Instapaper Pocket Tweet Facebook Share Evernote Clip ptrace ELF スタックトレース レジスタ audit

ptrace(2)に入門。ptrace(2) は Linux を含む Unix 系OS にあるシステムコールで、実行中のプロセスに対して、メモリ上のデータやレジスタの値を抜き出したり、書き換えたりすることができる。 これを使ってごにょごにょすると、実行中の関数とその引数を取り出して、実行中のプロセスを止めずにスタックトレースを取得したり、 デバッガを作ったり 、 標準出力を横取りして audit ... 続きを読む

Linux におけるファイル I/O の基礎

2017/05/10 このエントリーをはてなブックマークに追加 592 users Instapaper Pocket Tweet Facebook Share Evernote Clip Linux UNIX ファイル 基礎 次回

すべてがファイルというモデルの Linux (Unix) において、ファイル I/O (以降単に I/O と書く) を知っておいて損はない。 この記事では、基本的なファイルと関連する I/O について、対応する Linux システムコールも併せて説明する。 次回はこれらを実際に Linux 上で確認する予定。 ファイルUnix におけるファイルとは... 続きを読む

詳解システム・パフォーマンス 3章「オペレーティングシステム」メモ - ゆううきメモ

2017/04/16 このエントリーをはてなブックマークに追加 76 users Instapaper Pocket Tweet Facebook Share Evernote Clip オペレーティングシステム カーネル ゆううきメモ メモ 理解

2017 - 04 - 16 詳解システム・パフォーマンス 3章「オペレーティングシステム」メモ Books System Performance 詳解システム・パフォーマンス 輪読メモ2 - ゆううきメモ の続き。今回は第3章「 オペレーティングシステム 」 システムパフォーマンス分析では、オペレーティングシステムとその カーネル についての理解は必要不可欠だ。 システムコール がと... 続きを読む

LinuxカーネルのTCPスタックとシステムコールの組み合わせによる手法よりも高速にポートのListenチェックを行う - 人間とウェブの未来

2017/02/16 このエントリーをはてなブックマークに追加 113 users Instapaper Pocket Tweet Facebook Share Evernote Clip TCPスタック Linuxカーネル リモートホスト ボート

2017 - 02 - 16 LinuxカーネルのTCPスタックとシステムコールの組み合わせによる手法よりも高速にポートのListenチェックを行う プログラミング まずは前回の記事で盛大な誤認をしていたことを訂正しなければなりません。 hb.matsumoto-r.jp 前回の記事では、高速にリモートホストのポートチェックを3パケットで実現する実装を行うために、RAWソケットとユーザランドの簡易... 続きを読む

Linuxのスレッド内でchrootした場合の影響範囲を調べた – kelp

2017/01/17 このエントリーをはてなブックマークに追加 17 users Instapaper Pocket Tweet Facebook Share Evernote Clip chroot Linux スレッド C言語 本エントリ

今年の目標は「はじめから無理と思わない」「基礎を学ぶ」なので、C言語からも逃げずに立ち向かう1年にしたい。 本日は、Linuxのスレッド内でchrootした場合の影響範囲を調べたのでまとめる。 はじめに 本エントリではLinuxでスレッドを作成して、システムコールの “chroot()” を実行した場合にスレッド内のみchrootされるのか?それとも、プロセス全体に影響するのかを調査していく。 実... 続きを読む

Linux スケジューラーのコア実装とシステムコール - Qiita

2016/12/11 このエントリーをはてなブックマークに追加 482 users Instapaper Pocket Tweet Facebook Share Evernote Clip スケジューラー Qiita タスクスケジューラー Linux

はじめに これは Linux Advent Calendar 2016 の第 11 日目の記事です。Linux のタスクスケジューラーのソースコードや関連するドキュメントなどを読んで分かったことをまとめました。とても長いです・・・ はじめにスケジューラーのアーキテクチャと重要な概念を紹介し、その後はスケジューラーコアとシステムコールの実装について分かったことを延々と述べます。 調べきれなかったこと... 続きを読む

glibcのmalloc(3)とLinuxカーネルのovercommitとOOM - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

2015/12/23 このエントリーをはてなブックマークに追加 35 users Instapaper Pocket Tweet Facebook Share Evernote Clip OOM malloc glibc カーネル Linuxカーネル

2015 - 12 - 23 glibcのmalloc(3)とLinuxカーネルのovercommitとOOM この記事は Linux Advent Calendar 2015の23日目 です。 glibc の malloc (3)と Linux カーネル のovercommitとOOMの関連でも見てみようと思います。 Linux カーネル の システムコール には malloc (3)的なものは... 続きを読む

システムコールを経由する生のLinuxスレッド | コンピュータサイエンス | POSTD

2015/07/09 このエントリーをはてなブックマークに追加 330 users Instapaper Pocket Tweet Facebook Share Evernote Clip POSTD コンピュータサイエンス

Linuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メインLinuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メイン”スレッドの”親プロセスに追加さ... 続きを読む

第29回 Perlプログラマのためのstrace入門ーWebアプリケーションをシステムコールレベルでデバッグしよう(1):Perl Hackers Hub|gihyo.jp … 技術評論社

2015/02/18 このエントリーをはてなブックマークに追加 36 users Instapaper Pocket Tweet Facebook Share Evernote Clip Perl Hackers Hub gihyo.jp

execve("/bin/cat", ["cat", "hoge"], [/* 24 vars */]) = 0 ... (中略) ... open("hoge", O_RDONLY)                  = 3 fstat(3, {st_mode=S_IFREG|0664, st_size=13, ...}) = 0 read(3, "This is hoge\n", 32768)... 続きを読む

strace でシステムコールの所要時間を調べる - ablog

2015/01/11 このエントリーをはてなブックマークに追加 66 users Instapaper Pocket Tweet Facebook Share Evernote Clip strace ピボットテーブル ABlog TTT Excel

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 このエントリーをはてなブックマークに追加 79 users Instapaper Pocket Tweet Facebook Share Evernote Clip OSX nginx コマンド プロ プロセスID

2014-12-31 OSXでもstraceしたい?よろしい、ならばdtrussだ straec便利ですよね。最近もnginxがどのファイル開いてるのか調べるのに使いました。ただ、OSXだとそれに準ずるコマンドってないのかなーと勝手に諦めていたのですが、ありましたね。 dtruss straceと同じように sudo dtruss -p プロセスIDでシステムコールを確認できる。 例えば、ngin... 続きを読む

 
(1 - 25 / 36件)