タグ

Linuxとシステムコールに関するdshimizuのブックマーク (3)

  • Goから見たシステムコール (1/2)

    今回は、システムコールそのものについて深く掘り下げていきます。 システムコールとは何者で、ないとどうなるのか? システムコールを呼び出すコード(Go言語アプリケーション側)を探索しよう システムコールから、実際にOSカーネル内で仕事をする関数が呼び出されるまでのステップは? システムコールの呼び出しをモニターするツールの紹介 とはいえ、Goでアプリケーションプログラムを書くほとんどの人は、直接システムコールを呼び出すコードを書くわけではないでしょう。 また、OSを改造してシステムコールを自分で作成することもまれでしょう。 そのため、今回の記事にはサンプルコードを使ったハンズオンはあまりなく、手を動かしてコード化するネタはありません。 この連載のテーマは「プログラマの視点から、具体的で役に立ちそうな低レイヤーの情報を提供する」ことですが、今回に限っては座学的な内容です。 謝辞 今回の執筆にあ

    Goから見たシステムコール (1/2)
  • プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る

    書籍の中から有用な技術情報をピックアップして紹介するシリーズ。今回は、秀和システム発行の書籍『ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ(2015年9月11日発行)』からの抜粋です。 ご注意:稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 ※編集部注:前回記事「エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね?」はこちら Linuxカーネルの処理を見てみよう ここまでは主にglibcが持つスタートアップと終了処理について見てきた。 しかしOSカーネルの中では、プログラムの起動時にはどのような処理が行われているのだろうか。 例えばプログラムの実行はエントリ・ポイントから開始される、という説明をした。ということはエントリ

    プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る
  • システムコールと標準ライブラリ関数の違いを知る

    前回解説したように、システムコールは魔法の関数でもなければ、不思議なものでもなく、カーネルに正直に処理を依頼するものです。今回は、標準ライブラリ関数との違いについて解説します。(編集部) システムコールを使ってみる前に 今回から簡単なシステムコールプログラミングを通じて、いわゆる「システムコール」がどういったものであるかを紹介していこうと思う。システムコールに触れるための環境をどう構築するかという点については、連載:いまさら聞けないVim 第8回「Vimをプログラム開発環境にしてしまおう」に詳しくまとめてある。こちらを参考に環境を構築してほしい。 先に挙げた記事では、FreeBSDとUbuntuを例として環境構築法を解説している。ほかの環境(Mac OS X Lion、Ubuntu 11.10、Solaris 11)を使われている方のために、使用するコマンドをそれぞれの環境で置き換える方法

    システムコールと標準ライブラリ関数の違いを知る
  • 1