タグ

*knowledgeとkernelに関するkanbayashiのブックマーク (7)

  • だれがLinuxを開発している? | The Linux Foundation Japan

    kanbayashi
    kanbayashi 2009/02/01
    Linuxカーネルに関する興味深い数字がたくさん
  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
  • Kernel/Internal/プロセス管理/スレッド - PukiWiki

    LinuxThreads glibcに実装されているスレッド Kernel2.0からサポートされるようになった__clone() システムコールを利用することによって、カーネルレベルスレッドが利用可能になった。 実際に、この __clone() を利用して作成されたPthread ライブラリである linuxthreads (glibc版)のソースコードには、以下のような記述を見つけることができる。 /* Do the cloning */ pid = __clone(pthread_start_thread, (void **) new_thread, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | __pthread_sig_cancel, new_thread); このシステムコールは Linux に固有であり、べったりと Li

  • アドレッシングモード - Wikipedia

    アドレッシングモード(Addressing Mode)は、CPUの命令セットアーキテクチャ(ISA)において、命令のオペランド部(演算の対象となるデータのこと)を表すための方法のことである。一般に、プロセッサの命令において、オペランドとその結果を出力する場所が必要である。アドレッシングモードは、結果を出力する場所をオペランドと同じ場所とし、オペランドの領域に結果を書き戻す方法である。これによって、命令での場所の指定が最小限に抑えられる。そのため、狭義のアドレッシングモードでは、オペランドとして使用すべきメモリ領域を指定する。しかし、広義には、レジスタを指定したり、値が命令のオペランドとして直接与えられたりする場合も含まれる。 プログラミングの観点では、アドレッシングモードはコンパイラ開発を行う時やアセンブリ言語を利用する際に重視される。 コンピュータ・アーキテクチャが異なれば、それぞれに独

    アドレッシングモード - Wikipedia
  • initrd - スペシャルファイル (デバイス)の説明 - Linux コマンド集 一覧表

    /dev/initrd スペシャルファイルは読み込み専用のブロックデバイスである。 /dev/initrd デバイスはカーネルが起動される前にブートローダ (boot loader) によって初期化 (例えば、ロード) される RAM ディスクである。 その後、カーネルは /dev/initrd ブロックデバイスの内容を二段階のシステム起動 (two phased system boot-up) で利用することができる。 最初のブートアップ段階 (first boot-up phase) では、カーネルは (例えば、ブートローダによって初期化された RAM disk である) /dev/initrd の内容を初期ルートファイルシステム (root file-system) としてマウント して起動する。 第二段階では初期ルートデバイスに含まれているものから、追加のドライ バやその他のモジュ

  • 18:initrdファイルの作成

    開発マシンのファイルを流用してinitrdファイルを作成する 早速,自分Linux用initrdファイルの作成を開始しよう。自分Linux用initrdファイルは,他のファイルと区別しやすいようにファイル名「ramdisk.img」とする。なお,作成手順が複雑なため,2段階に分けて作業する。前半の手順は次の通りだ。 (1)ひな形のinitrdファイルを作成 (2)initrdファイルを展開 (3)ファイル・システムとしてマウント (4)linuxrcスクリプトの書き換え (5)ドライバの導入 (1)のひな形になるinitrdファイルとは,自分Linux開発マシンで用いられているinitrdファイルだ。mkinitrdコマンドにより作成できる。initrdファイルを一から作成するにはディレクトリを作ったり,linuxrcスクリプトを記述したり,起動時に必要なドライバを用意したりと煩雑な作業が

    18:initrdファイルの作成
  • initrd

    写真1 initrdのディレクトリ構成例。これは,Fedora Core 6に付属するinitrdの内容を展開したもの。 initrdは,Linuxが起動する際に一時的に利用されるファイル・システムのイメージです。initrdは通常,/boot/initrd-xxxx.imgというファイルとして,Linuxシステム内に保管されています。initrdの内容を展開すると,写真1のように,必要最小限のファイルやコマンドを備えたファイル・システムであることが分かります。 initrdはシステム起動時に,カーネルによってメモリー上に展開されます。具体的には,メイン・メモリー内に確保したRAMディスク領域のファイル・システムとして使われます。ハード・ディスク上のファイル・システムをマウントした後はメモリーから消去されます。 なぜ,initrdのような仕組みが必要なのでしょうか。その理由は,Linux

    initrd
  • 1