ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

シグナル (Unix)

索引 シグナル (Unix)

ナル(signal)とは、Unix系(POSIX標準に類似の)OSにおける、限定的なプロセス間通信の形式を使って、プロセスに対し、非同期で、イベントの発生を伝える機構である。シグナルが送信された際、OSは宛先プロセスの正常な処理の流れに割り込む。どんな不可分でない処理の間でも割り込むことができる。受信プロセスが以前にシグナルハンドラを登録しておけば、シグナル受信時にそのルーチンが実行される。さもなくば、デフォルトのシグナル処理が行われる。(同様なものは他のTSSなどでも開発されてはいるが、UNIXのシグナルは)1970年ごろベル研究所でUNIXに実装された。後にPOSIXである程度は標準化されているが、標準化が諦められているような振舞などもいくつかあり、特に他の幾つかの要素(fork等)とマルチスレッドとシグナルが絡むと実装毎の対処にプログラミングが大変になることがある。.

44 関係: AdeosAmoeba (オペレーティングシステム)同期 (計算機科学)例外ページテーブルページフォールトマイクロカーネルメモリバリアユーザー識別子リエントラントヌルポインタプロセスプロセスグループプロセス間通信ビジーウェイト制御の反転制御構造イベントループグローバル変数コールバック (情報工学)コールスタックシグナルシグナルプログラミングスレッド (コンピュータ)セグメンテーション違反BashBourne ShellBSD終了ステータスForkInotifyKillKillallNative POSIX Thread LibraryPerlPgrepPkillSetuidSIGINTStraceSystemdUser Mode LinuxXディスプレイマネージャ標準Cライブラリ

Adeos

Adeos(Adaptive Domain Environment for Operating Systems)は、ナノカーネル型の Hardware Abstract Layer (HAL) であり、ハードウェアとオペレーティングシステム (OS) の中間で動作する。他のナノカーネルと違う点は、OSのカーネルの一部として動作するわけではない点である。実際、複数のカーネルを上位で同時に動作させることができ、一種の仮想化技術になっている。 Adeos は複数のOSや単一OSの複数インスタンスの間でハードウェアリソースを共有する柔軟な環境を提供し、同一ハードウェア上に複数の優先順位付けされたドメインを同時に存在させることができる。 Adeos を Linuxカーネル の下に挿入することで、SMPクラスタリング、パッチを使わないカーネルのデバッグ、Linux によるリアルタイムシステムといった可能性が開けてくる。 他の HAL とは異なり、Adeos は Linux のローダブル・カーネル・モジュールとしてロードでき、それを使って他のOSを動作させることができる。Adeos は RTAI (Real-Time Application Interface) の一環として、リアルタイムカーネルからHALを分離しモジュール化するために開発された。.

新しい!!: シグナル (Unix)とAdeos · 続きを見る »

Amoeba (オペレーティングシステム)

Amoeba (Amoeba分散オペレーティングシステム、The Amoeba Distributed Operating System) は、マイクロカーネルの設計思想に基づいたオープンソースの分散オペレーティングシステム (分散OS) である。 オランダのアムステルダム自由大学のアンドリュー・タネンバウム教授、および彼の研究室の博士課程の学生であった Frans Kaashoek 、Sape J. Mullender 、Robbert van Renesse などの人々によって、開発された。 Amoebaプロジェクトの主な目標は、ネットワークにつながった複数のコンピュータ全体を、あたかも一つのコンピュータシステムであるように利用者が扱えるような、タイムシェアリングシステム (TSS) を構築することであった。 第2の目標は、分散型の並列プログラムを作成するための基本実験環境を提供することであった。.

新しい!!: シグナル (Unix)とAmoeba (オペレーティングシステム) · 続きを見る »

同期 (計算機科学)

同期(どうき、Synchronization)とは、コンピュータ関係(コンピュータ科学でも重要なテーマであるが、話題の広がりとしてはそれに留まらない)では、プロセスなどといった複数のエージェントの動作について、時系列的にタイミングを合わせる制御のことや、複数個所に格納された同一であるべき情報を同一に保つことである。.

新しい!!: シグナル (Unix)と同期 (計算機科学) · 続きを見る »

例外

例外(れいがい)とは、通例の原則にあてはまっていないこと広辞苑 「例外」。一般の原則の適用を受けないこと。.

新しい!!: シグナル (Unix)と例外 · 続きを見る »

ページテーブル

ページテーブル(page table)とは、コンピュータのオペレーティングシステムの中の仮想記憶(virtual memory)システムで仮想アドレスと物理アドレスを対応付けるために使われるデータ構造である。仮想アドレスはそれにアクセスするプロセスによって実行されるプログラムによって使われ、実際には物理アドレスはRAMサブシステム等のハードウェアによって使われる。.

新しい!!: シグナル (Unix)とページテーブル · 続きを見る »

ページフォールト

ページフォールト (page fault) とは、プログラムが物理メモリがマップされていない仮想アドレス空間上のページにアクセスしたときにハードウェアが発生する割り込み(または例外)である。ページフォールトを処理するソフトウェアは一般にオペレーティングシステム (OS) の一部であり、ページフォールトを発生させるハードウェアを一般にメモリ管理ユニットと呼ぶ。OSのメモリ管理がページフォールトを処理し、その仮想アドレスにアクセスできるようにするか、無効なアクセスであるとしてページフォールトを発生させたプログラムを強制終了させることができる。 名前にフォールト(障害)とあるものの、ページフォールトは必ずしも致命的なエラーではない。Windows、UNIX/Unix系OS(macOS、Linux、*BSD、Solaris、AIX、HP-UXなど)、z/OSといった仮想記憶方式を採用するOSでは、ページフォールトは普通に発生するし、必須な機能でもある。マイクロソフトは(Windows Vistaなどの)リソースモニタの最近のバージョンで、ページフォールトの意味で「ハードフォールト」(hard fault) という呼称を使っている。.

新しい!!: シグナル (Unix)とページフォールト · 続きを見る »

マイクロカーネル

マイクロカーネル(microkernel)とはオペレーティングシステムの設計思想、及びそのようなOSのカーネル部の名称である。OSが担う各種機能のうち、必要最小限のみをカーネル空間に残し、残りをユーザーレベルに移すことで全体の設計が簡素化でき、結果的に性能も向上できるという考え方。カーネル本体が小規模な機能に限定されるので「マイクロカーネル」と呼ばれるが、必ずしも小さなOSを構成するとは限らない。 マイクロカーネルの出現に伴い、従来型のOSを「モノリシックカーネル(一枚岩のカーネルという意)」と呼ぶようになった。.

新しい!!: シグナル (Unix)とマイクロカーネル · 続きを見る »

メモリバリア

メモリバリア(Memory Barrier)またはメモリフェンス(Memory Fence)とは、その前後のメモリ操作の順序性を制限するCPUの命令の一種である。 CPUには、性能最適化策としてアウト・オブ・オーダー実行を行うものがあり、メモリのロード命令やストア命令を含めて順序を入れ替えて実行する。この命令の並べ替えは、ひとつのスレッドの中で一般に暗黙のうちに行われるが、マルチスレッドプログラムやデバイスドライバでは慎重に制御しない限り予測不能の動作を生じる原因となる。順序性の制限の方法はハードウェア依存であり、そのアーキテクチャによって定義される。アーキテクチャによってはいくつかのバリアを用意して、それぞれ異なった順序性制限を実現している場合がある。 メモリバリアは低レベルの機械語で使われることが多く、複数のデバイスが共有するメモリを操作するのに使われる。そのようなコードとして、同期プリミティブ、マルチプロセッサシステムでのロックフリーなデータ構造、何らかのハードウェア機器を制御するデバイスドライバなどがある。.

新しい!!: シグナル (Unix)とメモリバリア · 続きを見る »

ユーザー識別子

ユーザー識別子(ユーザーしきべつし、user identifier)とは、Unix系システムでユーザーを表現(識別)する番号。UIDと略記される。 また、ユーザーはグループに属することができ、グループを識別するグループ識別子(Group Identifier)という番号がある。これをGIDと略記する。.

新しい!!: シグナル (Unix)とユーザー識別子 · 続きを見る »

リエントラント

リエントラント(reentrant、再入可能)とは、プログラムやサブルーチンが実行中に割り込まれ、その実行が完了する前に再び呼び出され実行されても安全だという性質を指す。割り込みは分岐や呼び出しなどの内部的な動きによって生じる場合もあるし、ハードウェア割り込みやシグナルなどの外部の動きによって生じる場合もある。割り込んでの呼び出しが完了すれば、割り込まれた呼び出しが実行を継続できる。 この定義はシングルスレッドのプログラミング環境が起源であり、ハードウェア割り込みで割り込まれた制御の流れが割り込みサービスルーチン (ISR) に転送されることから生まれた。ISRが使用するサブルーチンは割り込みをきっかけとして実行される可能性があるため、リエントラントでなければならない。OSのカーネルが使用するサブルーチンの多くは、カーネルで確保済みのリソースを超えられない制限がありリエントラントではない。そのためISRでできることは限られている。例えば、一般にISRからファイルシステムにはアクセスできないし、場合によってはヒープ領域も確保できない。 直接または間接に再帰可能なサブルーチンはリエントラントである。しかし、グローバル変数が処理の流れの中でしか変化しないことを前提としているサブルーチンはリエントラントではない。グローバル変数を更新するサブルーチンが再帰的に呼び出されれば、1回のサブルーチン実行の中でグローバル変数は突然変化することになる。 リエントラント性の概念はシングルスレッドの環境に起源があり、マルチスレッド環境でのスレッドセーフという概念とは異なる。リエントラントなサブルーチンはスレッドセーフにすることもできるが、リエントラントだというだけであらゆる状況でスレッドセーフと言えるわけではない。逆にスレッドセーフなコードはリエントラントである必要はない(後述の例を参照)。.

新しい!!: シグナル (Unix)とリエントラント · 続きを見る »

ヌルポインタ

ヌルポインタ(null pointer)とは、何のオブジェクトも指していないことを表す特別なポインタである。 プログラムではヌルポインタを、不定長のリストの終端を表したり、何らかの動作の結果が失敗であることを表したりするのに使用する。後者の用法は、やのNothing値を使用することもできる。 ヌルポインタの値や型がいかなるものかという詳細は言語によって異なる。実際的にはいかなるオブジェクトも参照しないという言語もあり、参照先を求めようとするとJava(NullPointerException)のように例外が発生するものもある。 ヌルポインタはほとんどの処理系(この場合、言語処理系プログラムだけではなく、ハードウェアまでを含めて)で、内部的に0で表現されるが、ごく希に、0でない処理系もある。言語仕様上の意味としては普通「アドレス0(あるいは他のアドレス)を指し示すポインタ」ではなく、どこも指し示さないものとされる。 ヌルポインタを未初期化のポインタと混同してはならない。ヌルポインタは、あらゆる有効なオブジェクトとも異なることが保証されている。それに対し、言語や実装によっては、未初期化のポインタはそのような保証はなく、他のオブジェクトやヌルポインタと同じになる可能性がある。 ヌルポインタはヌル値とは意味が違う。ヌルポインタは多くのプログラミング言語において「値がない(no value)」ことを意味し、ヌル値はリレーショナルデータベースにおいて「未詳値(unknown value)」であることを意味する。ほとんどのプログラミング言語では2つのヌルポインタは等しいが、リレーショナルデータベースエンジンは2つのヌル値を等しいとはみなさない(それらは未詳値を表しているので、それらが等しいかどうかはわからない)。.

新しい!!: シグナル (Unix)とヌルポインタ · 続きを見る »

プロセス

プロセスとは、情報処理においてプログラムの動作中のインスタンスを意味し、プログラムのコードおよび全ての変数やその他の状態を含む。オペレーティングシステム (OS) によっては、プロセスが複数のスレッドで構成される場合があり、命令を同時並行して実行する。.

新しい!!: シグナル (Unix)とプロセス · 続きを見る »

プロセスグループ

プロセスグループ (Process Group) とは、POSIX準拠のオペレーティングシステムにおいて、1個以上のプロセスの集まりを意味する。この集まりはプロセスグループリーダーとなっているプロセスのプロセスIDと同じ値をプロセスグループIDとして識別に使用する。 プロセスグループはシグナルを複数のプロセスに配布するために使用される。killシステムコールはシグナルを個々のプロセスに送るだけでなく、プロセスグループに送ることもできる。プロセスグループに向けられたシグナルは、そのグループのメンバーである全プロセスに送られる。 プロセスグループへのシグナル送信は、シェルプログラムが使用するジョブコントロールの基本となっている。ttyデバイスドライバは、キーボードからの割り込みを契機としてフォアグラウンドのプロセスグループに SIGTSTP、SIGQUIT、SIGINTというシグナルを送る。また、フォアグラウンドでないプロセスグループが端末からの入力待ち状態(また、適切なフラグが設定されていれば表示待ち状態も)になっている場合にSIGTTINシグナルやSIGTTOUシグナルを送る。シェル(ひいてはその操作者)はコマンドパイプラインからプロセスグループを生成し、どのプロセスグループが端末の制御を握るフォアグラウンドのプロセスグループになるかを制御する。 プロセスグループは常にひとつのリーダーから始まるが、必ずしも常にリーダーが必要というわけではない(リーダーが他のプロセスより先に終了することがある)。POSIXによれば、プロセスが偶然にグループリーダーなることはない。そのため、あるプロセスIDがプロセスグループIDとして使われている間は、それがプロセスIDとして再利用されないようにする必要がある。プロセスグループのリーダーになるには、明示的に setpgid() または setsid() システムコールを呼び出す必要がある。 setpgid()システムコールは新たなプロセスグループを生成したり、プロセスを既存のプロセスグループに入れたりする汎用の呼び出しである。リーダーになるには、自身のプロセスIDを指定すればよいが、通常 setpgid(0,0) という形で呼び出す。シェルがコマンドパイプラインのために新たな子プロセスをforkすると、親であるシェルプロセスと子プロセスは直ちにそのプロセスをプロセスグループリーダーにしようとする。(両者がそれを試みるのは、子プロセスがプロセスグループリーダーになろうとすること、子プロセスがコマンドを実行しようとすること、親または端末デバイスドライバがジョブコントロールのシグナルをそのプロセスグループに送ろうとすること、これらの競合状態が発生するのを防ぐためである。) プロセスグループ自体はセッション (session) の一員となる。これはテキストユーザインタフェースが使われているUnix系システムで使われたもので、いわゆる「ログインセッション」を意味している。グラフィカルユーザインタフェース (GUI) が使われるようになってこのコンセプトはほとんど意味がなくなり、カーネルがセッションに関して行っていた処理の大部分も無視されている。GUIではログインセッションに関しては全く別の機構が使用されている。セッションリーダーと呼ばれるひとつのプロセスが制御端末とやり取りして端末が切断されるときにセッション内の全プロセスが停止することを保証する。セッションリーダーがいない場合、その端末のフォアグラウンドのプロセスグループがセッション内の他のプロセスグループの面倒も見ることが期待されている。プロセスは異なるセッションのプロセスグループに移動することはできず、プロセスグループも別のセッションに移動することはできない。プロセスグループを生成するプロセスは、自身が入っているセッション内でしかプロセスグループを生成できない。 setsid()システムコールを使用して新しいセッションを作る。成功すると、そのプロセスは同時に新たなプロセスグループリーダーにもなる。つまり、このシステムコールはひとつの新しいプロセスグループを持つ新しいセッションを生成することを目的としている。そのとき現在のプロセスがセッションとプロセスグループのリーダーとなる。.

新しい!!: シグナル (Unix)とプロセスグループ · 続きを見る »

プロセス間通信

プロセス間通信(IPC、interprocess communication)はコンピュータの動作において複数のプロセス間(の複数のスレッド間)でデータをやりとりするための仕組み。通信するプロセスは同一コンピュータ上にある場合と、ネットワークで接続された別のコンピュータ上にある場合がある。そのようなローカル内対リモート間といったような分類以外にも多くの観点から分類でき、また、スレッド間の通信の帯域幅とレイテンシは様々であり、やりとりされるデータの種類も様々である。メッセージパッシング、同期、共有メモリ、RPCなどといったメカニズムやプリミティブがある。 プロセス間通信の目的・理由には以下のようなものがある。.

新しい!!: シグナル (Unix)とプロセス間通信 · 続きを見る »

ビジーウェイト

ビジーウェイト(Busy Waiting)とは、プロセスが条件が成り立つかどうかを定期的にチェックする手法の一種。例えば、キーボードからの入力を待ったり、ロックが獲得できるのを待ったりするのに使われる。ある時間だけ遅延させて何かを実行するのに使うこともある。 古いコンピュータでは特定の長さの時間だけ待つ方法がなかったため、何もしないループで時間をつぶした。しかし、最近のコンピュータはプロセッサの速度がそれぞれ異なるため、この種の時間遅延は不正確なことが多く、(ビジーウェイトをこの目的で使用しているプログラムは)プログラミングに不慣れなことを示す印でもある。 ビジーウェイトは特定の状況では正当な手法と言える。特にSMPシステム向けのオペレーティングシステム内のスピンロックの実装などがそうである。しかし、一般にはビジーウェイトすべきでない。CPU時間を費やして待つ時間があれば、他のスレッドを動作させるほうが効率的である。.

新しい!!: シグナル (Unix)とビジーウェイト · 続きを見る »

制御の反転

フトウェア工学において、制御の反転(Inversion of Control、IoC)とは、コンピュータ・プログラムの中で、個別の目的のために書かれたコード部分が、一般的で再利用可能なライブラリによるフロー制御を受ける形の設計を指す。この設計を採用した ソフトウェアアーキテクチャは、伝統的な手続き型プログラミングと比べると制御の方向が反転している。すなわち、従来の手続き型プログラミングでは、個別に開発するコードが、そのプログラムの目的を表現しており、汎用的なタスクを行う場合に再利用可能なライブラリを呼び出す形で作られる。一方、制御を反転させたプログラミングでは、再利用可能なコードの側が、個別目的に特化したコードを制御する。 制御の反転は、プログラムのモジュール化を促進して、その拡張性を高めるために用いられ 、オブジェクト指向プログラミングやその他のプログラミングパラダイムにおいて応用されている。「制御の反転」という用語は ロバート・マーティンとマーティン・ファウラーによって広められた。この用語は依存性反転原則とは関係しているが異なるものである。依存性反転原則は、共有された抽象化を通じて、高次と低次の抽象化レイヤー間の結合度を下げることを示している。 従来からのプログラミングでは、フローはコードの中核部分で制御されている。IoCを使うと、これが全く変わってくる。呼び出し側は応答を得るが、いつどのようにして応答を得るかは呼び出し側が制御できない。逆に呼び出された側がいつどのようにして応えるかを決定する。.

新しい!!: シグナル (Unix)と制御の反転 · 続きを見る »

制御構造

制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミングや命令型プログラミングにおいて、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 (プログラミング) 」などの構造(言語の構成要素)である。 制御構造の種類は言語によって様々だが、典型的には以下のようなものがある(用語「ブロック」については、ブロック (プログラミング) の記事を参照)。.

新しい!!: シグナル (Unix)と制御構造 · 続きを見る »

イベントループ

イベントループ (event loop)、メッセージディスパッチャ (message dispatcher)、メッセージループ (message loop)、メッセージポンプ (message pump)、ランループ (run loop) とは、プログラム内でイベントやメッセージを待ちうけ、それらをディスパッチする構成要素である。内部または外部の「イベントプロバイダー」(通常、イベントが到着するまで要求をブロックする)に要求することで作動し、次いで適当なを呼び出す(イベントのディスパッチ)。イベントプロバイダがファイルインタフェースに従う場合、イベントループは と連携する形で使われることがあり、select() または poll() を使ってファイルインタフェースにアクセスする。イベントループはほぼ常にメッセージの発信元とは非同期に動作する。 イベントループはプログラムの中心的制御構造となっていることが多い。そのためそれをメインループ (main loop) またはメインイベントループ (main event loop) とも呼ぶ。そのようなプログラムではイベントループが最上位の制御構造となっており、そのため「メイン」と名づけられている。.

新しい!!: シグナル (Unix)とイベントループ · 続きを見る »

グローバル変数

ーバル変数(大域変数、global variable)は、コンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことである。グローバル変数の寿命は、プログラムの生存期間と同じである。対する語は、ローカル変数である。スコープも参照。.

新しい!!: シグナル (Unix)とグローバル変数 · 続きを見る »

コールバック (情報工学)

ールバックでは、本来の caller のレベルに戻すことが多い 別の方式では、最初にコールバックを登録し、後で非同期的に呼び出す コールバック(英: Callback)とは、プログラミングにおいて、他のコードの引数として渡されるサブルーチンである。これにより、低レベルの抽象化層が高レベルの層で定義されたサブルーチン(または関数)を呼び出せるようになる。 一般に、まず高レベルのコードが低レベルのコードにある関数を呼び出すときに、別の関数へのポインタやハンドルを渡す。低レベルの関数を実行中に、その渡された関数を適当な回数呼び出して、部分タスクを実行する場合もある。別の方式では、低レベル関数は渡された関数を「ハンドラ」として登録し、低レベルの層で非同期的に(何らかの反応の一部として)後で呼び出すのに使う。 コールバックは、ポリモーフィズムとジェネリックプログラミングの単純化された代替手法であり、ある関数の正確な動作は、その低レベル関数に渡される関数ポインタ(ハンドラ)によって変わってくる。これは、コード再利用の非常に強力な技法と言える。.

新しい!!: シグナル (Unix)とコールバック (情報工学) · 続きを見る »

コールスタック

ールスタック (Call Stack)は、プログラムに実行中にサブルーチンに関する情報を格納するスタックである。実行中のサブルーチンとは、呼び出されたが処理を完了していないサブルーチンを意味する。実行スタック (Execution Stack)、制御スタック (Control Stack)、関数スタック (Function Stack)などとも呼ばれる。また、単に「スタック」と言ったときにコールスタックを指していることが多い。コールスタックを正しく保つことは多くのソフトウェアが正常動作するのに重要であるが、その詳細は高水準言語からは透過的である。.

新しい!!: シグナル (Unix)とコールスタック · 続きを見る »

シグナル

ナル(signal)は信号、信号機の意味を持つ英単語であり、様々な事物のタイトルに用いられている。.

新しい!!: シグナル (Unix)とシグナル · 続きを見る »

シグナルプログラミング

シグナルプログラミングは、しばしばイベント駆動型プログラミングと同じ意味で使用される。 「シグナル」という用語は、Qt、GTK+、libsigc++のようなライブラリのドキュメントで、「イベント」という用語の代わりに使われる。 しかし、「シグナル」は非同期なイベント待ちにも利用されるものの、むしろ同期のイベントを示すのにしばしば使われるようである。 同期シグナルプログラミングのための別の(より科学的な)名前はObserver パターンである。 また、シグナルプログラミングも狭い意味でSIGSEGVやSIGTERMなどのUnixシグナルでプログラムを作るのにも使われている。ちなみにUnixシグナルは非同期である。 しくなるふろくらみんく.

新しい!!: シグナル (Unix)とシグナルプログラミング · 続きを見る »

スレッド (コンピュータ)

レッド(thread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。 プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。また、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。.

新しい!!: シグナル (Unix)とスレッド (コンピュータ) · 続きを見る »

セグメンテーション違反

メンテーション違反(英語:segmentation fault)はソフトウェアの実行時に起きる特定のエラー条件である。segfault(セグフォールト)と略される場合がある。 セグメンテーション違反はアクセスが許可されていないメモリ上の位置、もしくは許可されていない方法(例えばリードオンリーの位置へ書き込みをしようとする、もしくはオペレーティングシステムの部分を上書きしようとする)でメモリ上の位置にアクセスしようとするときに起こる。MC68000のようなプロセッサに基づくシステムはこれらのイベントをアドレスエラーもしくはバスエラーとして参照しようとする傾向にある。 セグメント方式はメモリ管理とオペレーティングシステムを保護する方法の一つである。大部分の用途のためにページング方式に置き換えられつつあるが、セグメンテーションの専門用語はまだ多く使用されている。セグメンテーション違反はその一例である。オペレーティングシステムの中にはメインメモリ管理の方針としてページング方法が使用されているがいくつかの論理レベルでまだセグメンテーションを持つものがある。 UNIXライクのオペレーティングシステム上では、不正なメモリにアクセスをするプロセスはSIGSEGVシグナルを受け取る。Microsoft Windows上では、不正なメモリにアクセスするプロセスはSTATUS_ACCESS_VIOLATION例外を受け取る。.

新しい!!: シグナル (Unix)とセグメンテーション違反 · 続きを見る »

Bash

BashはUnixシェルかつであり、GNUプロジェクトにおけるBourne Shellのフリーソフトウェアによる代替としてによって作成された 。Bashは1989年に初めてリリースされ 、ほとんどのLinuxディストリビューションやアップルのmacOSにおけるデフォルトのログインシェルとして広く普及している。Windows 10におけるWindows Subsystem for Linuxでも利用可能である。 Bashはコマンドプロセッサであり、通常はアクションを発生させるコマンドをユーザーがタイプするテキストウィンドウで起動する。Bashはスクリプトと呼ばれるファイルからコマンドを読み込んで実行することも可能である。Bashはそれ以外の全てのUnixシェルと同様に、ファイル名のグロブ(ワイルドカードによるマッチング)、パイプ、ヒアドキュメント、、変数、そして条件テストやのための制御構造をサポートする。Bashのキーワードや構文などの言語の基本的要素は全てshからコピーされており、ヒストリなどsh以外の機能はcshやkshからコピーされている。BashはPOSIX準拠のシェルであるが、数多くの拡張がされている。 Bashという名前はBourne-again shellの頭字語であり、Bashの置換対象であるBourne Shellと、現代アメリカのキリスト教において精神的な再生を意味する "born again"(新生)に引っ掛けた駄洒落である。 バージョン1.03(1989年8月)以降のBashに存在するシェルショックと呼ばれるセキュリティホールが2014年9月に発見され、すぐにインターネットの至る所で広範囲なの原因となった。バグの特定後すぐに修正パッチが利用可能となったが、未だに全てのコンピュータが更新されているわけではない。.

新しい!!: シグナル (Unix)とBash · 続きを見る »

Bourne Shell

Bourne Shell(ボーンシェル)は、Unix Version 7 のUnixシェルである。多くのUnix系システムでは現在もデフォルトのシェルとして一般に使われていて、ほとんどのシステムで、/bin/shは、Bourne Shellであるか、もしくは、その互換プログラムへのシンボリックリンクかハードリンクとなっている。 AT&Tベル研究所のスティーブン・ボーンが開発し、それまでの Thompson shell を置き換えた。いずれもコマンド名は sh である。Version 7 Unix の一部として1977年に大学等に配布された。対話型のコマンドインタプリタとしても使われるが、スクリプト言語としての性格が強く、一般に構造化プログラムを作り出すと考えられている全ての機能を含んでいる。 ブライアン・カーニハンとロブ・パイクによる『UNIXプログラミング環境』の出版が Bourne Shell の人気を高めた。これはチュートリアル形式でプログラミング言語としてのシェルを紹介した最初の商業出版本である。.

新しい!!: シグナル (Unix)とBourne Shell · 続きを見る »

BSD

BSD(ビーエスディー)は、Berkeley Software Distribution の略語で、1977年から1995年までカリフォルニア大学バークレー校 (University of California, Berkeley, UCB) の Computer Systems Research Group (CSRG) が開発・配布したソフトウェア群、およびUNIXオペレーティングシステム (OS)。なお、今日「BSD」という名称は同OSを元に開発されたBSDの子孫の総称として使われることもあるが、この項では主に前述のUCBによるソフトウェア群およびOSについて述べる。 元となったコードベースと設計はAT&TのUNIXと共通であるため、歴史的にはBSDはUNIXの支流 "BSD UNIX" とみなされてきた。1980年代、ワークステーションクラスのシステムベンダーがプロプライエタリなUNIXとしてBSDを広く採用していた。例えば、DECのUltrix、サン・マイクロシステムズのSunOSなどである。これは、ライセンス条件の容易だったためと、当時の多くの技術系企業の創業者がBSDを熟知していたためである。 それらプロプライエタリ (proprietary:非公開) なBSD派生OSは、1990年代にはUNIX System V Release 4とOSF/1に取って代わられ(どちらもBSDのコードを取り入れており、他の現代のUnixシステムの基盤となった)、後期のBSDリリースはいくつかのオープンソース開発プロジェクトの基盤となった。例えば、FreeBSD、NetBSD、OpenBSD、DragonFly BSDなどが今も開発中である。さらにそれら(の全部あるいは一部)が最近のプロプライエタリなOSにも採用されている。例えば、WindowsのTCP/IPコード(IPv4のみ)やアップルのmacOSである。.

新しい!!: シグナル (Unix)とBSD · 続きを見る »

終了ステータス

ンピュータプログラミングにおけるプロセスの終了ステータス(英: )またはリターンコード(英: )とは、子プロセス(または呼び出された側)が具体的な手続きや委任されたタスクを実行完了した際、親プロセス(または呼び出した側)に渡す小さな数である。MS-DOSのCOMMAND.COMではERRORLEVELという。 プログラムを実行するとき、オペレーティングシステム (OS) はプロセスと呼ばれる、プログラムの「活動実体」を生成し、その中にそのプログラムのための情報を保持する。UNIXやLinuxなどのマルチタスクOSでは、新たなプロセスは動作可能プロセスとして生成される。別のプロセスを生成するプロセスを「親プロセス」と呼び、生成された側を「子プロセス」と呼ぶ。子プロセスと親プロセスは同時並行的に動作する。子プロセスが実行完了したとき、システムコールを呼び出すことで終了する。このシステムコールが終了ステータスのコードを親プロセスに渡す役割を果たし、親プロセスはシステムコールでその値を受け取ることができる。.

新しい!!: シグナル (Unix)と終了ステータス · 続きを見る »

Fork

fork(フォーク)とは、プロセスのコピーを生成するものである。UNIXおよびUnix系OSではシステムコールのひとつで、新たに作り出されたプロセスを子プロセス、fork()を呼び出したプロセスを親プロセスと呼び、fork()システムコールの戻り値によって親と子の処理を区別する。子プロセスではfork()の戻り値は0であり、親プロセスの戻り値は新たに生成された子プロセスのプロセス識別子、エラーが起きた場合は-1である。また、マルチスレッド環境でスレッドのコピーを作ることもforkと呼ぶことがある。 forkが呼び出されると、子プロセスのためのアドレス空間が新たに作成される。子プロセスのアドレス空間には親プロセスが持っていた全セグメントのコピーがあるが、コピーオンライト機能によって実際の物理メモリの確保は遅延される(すなわち、一時的に同じ物理メモリセグメント群を親子で共有する)。親プロセスと子プロセスは同じコードセグメントを持つが、独立して実行される。.

新しい!!: シグナル (Unix)とFork · 続きを見る »

Inotify

inotify (inode notify) とは、ファイルシステムへの変更を通知するようファイルシステムを拡張して、その変更をアプリケーションに報告するLinuxカーネルサブシステムである。inotifyに先行して存在し、類似の目標を持つは、inotifyに取って代わられている。 inotifyはJohn McCutchanが作成し、2005年8月29日にリリースされたLinuxカーネルのバージョン2.6.13で、inotifyはLinuxカーネルメインラインにマージされた。以降のバージョンのLinuxカーネルでは、inotifyはさらに改良されている。GNU Cライブラリ (glibc) では、inotifyに必要なライブラリインタフェースは2006年3月にリリースされたバージョン2.4で追加され、2006年9月にリリースされたバージョン2.5でinotifyを完全にサポートした。 inotifyの主な用途の1つとしては、Beagleなどのデスクトップ検索ユーティリティが挙げられる。inotifyの機能により、数分おきにファイルシステム変更をスキャンするといった非常に効率が悪い作業をせずに、変更されたファイルのが可能となる。 inotifyは、ディレクトリビューの自動更新、設定ファイルの再読み込み、ログの変更、バックアップ、同期、アップロードなどにも使える。.

新しい!!: シグナル (Unix)とInotify · 続きを見る »

Kill

kill(キル)は、UNIXやUnix系のオペレーティングシステムにおいて、システム上で動作しているプロセスに簡単なメッセージを送るコマンドである。.

新しい!!: シグナル (Unix)とKill · 続きを見る »

Killall

killall(キルオール)は UNIX 系 OS で利用できるコマンドラインユーティリティである。このコマンドには大変異なる2種類の実装がある。.

新しい!!: シグナル (Unix)とKillall · 続きを見る »

Native POSIX Thread Library

Native POSIX Thread Library(NPTL)とは、POSIXスレッドを使ったプログラムをLinuxカーネル上で効率的に動作可能とするソフトウェア機能である。 評価結果によると、IA-32上で2秒間で10万スレッドを起動できる。同じ事を NPTL を使わないで行うと、約15分かかった。.

新しい!!: シグナル (Unix)とNative POSIX Thread Library · 続きを見る »

Perl

Perl(パール)とは、ラリー・ウォールによって開発されたプログラミング言語である。実用性と多様性を重視しており、C言語やsed、awk、シェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、テキスト処理などのプログラムを書くのに広く用いられている。 言語処理系としてのperlはフリーソフトウェアである。Artistic LicenseおよびGPLのもとで配布されており、誰でもどちらかのライセンスを選択して利用することができる。UNIXやWindowsなど多くのプラットフォーム上で動作する。.

新しい!!: シグナル (Unix)とPerl · 続きを見る »

Pgrep

pgrep は、拡張正規表現パターンでプロセス名を検索し、デフォルトでは検索結果をプロセス識別子で示すコマンド。Solaris 7 で最初に導入されたコマンドであり、後に Linux および OpenBSD に再実装された。類似の機能を持つコマンドとして pidof と ps がある。.

新しい!!: シグナル (Unix)とPgrep · 続きを見る »

Pkill

pkill(ピーキル)は、当初Solaris 7オペレーティングシステム用に記述された、コマンドラインユーティリティである。その後、LinuxとOpenBSD用に再実装された。 killやkillallコマンドと同様に、pkillコマンドはシグナルを送信するために使用される。pkillコマンドでは、拡張正規表現と他のマッチング基準の利用が可能である。.

新しい!!: シグナル (Unix)とPkill · 続きを見る »

Setuid

setuid と setgid は、UNIXにおけるアクセス権を表すフラグの名称であり、ユーザーが実行ファイルを実行する際にその実行ファイルの所有者やグループの権限で実行できるようにする。それぞれ、set user ID と set group ID の略。一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする仕組みである。提供されるユーザー識別子やグループ識別子によって必ず特権レベルが高くなるわけではないが、少なくともそれら識別子は特定のものが指定されている。 setuid と setgid は一般ユーザーよりも高い特権レベルが必要とされるタスクの実行に必要である。例えば、そのユーザーのログインパスワードの変更などである。中には意外なタスクで特権レベルを上げる必要があることもある。例えば、ping コマンドはネットワークインタフェース上で制御パケットを送り、応答を待つ必要があり、特権が必要である。.

新しい!!: シグナル (Unix)とSetuid · 続きを見る »

SIGINT

SIGINT.

新しい!!: シグナル (Unix)とSIGINT · 続きを見る »

Strace

straceはLinuxのデバッグユーティリティであり、プログラムが使用するシステムコールおよび受け取るシグナルを監視するものである。他のUnixシステムにおける「truss」に類似している。これはカーネルのptraceという機能により実現されている。 Cygwinにおいても類似のユーティリティが提供されている。.

新しい!!: シグナル (Unix)とStrace · 続きを見る »

Systemd

systemdはシステム管理デーモン、ライブラリおよびユーティリティの一式であり、管理および設定における中心的プラットフォームとしてLinuxコンピュータオペレーティングシステム用に設計されている。著者によるとsystemdはオペレーティングシステムの「基本的な積木」であると評され、UNIX System VやBSDから継承された(Linuxスタートアッププロセス中のユーザー空間で最初に実行されるプロセスである)Linuxのinitシステムを置き換えることを第一の目標としている。systemdという名前はファイル名の最後尾にdという文字を付けることでデーモンを区別しやすくするというUNIXの慣習を受け継いでいる。またこの名称は言葉遊びの側面もあり、フランスで最近よく言われている「」という言葉に因んでいる。「システムD」とは、状況に迅速に適応し問題を即興で解決する個人の能力を意味する。 systemdはLinux用に設計され、Linux API専用にプログラミングされている。systemdはGNU Lesser General Public License (LGPL) version 2.1以降という条件でフリーなオープンソースソフトウェアとして公表されている。 systemdの設計はフリーソフトウェアコミュニティにおける重要な論争の元となった。これはsystemdのアーキテクチャはUNIX哲学に反しており最終的に相互依存でがんじがらめの塊を作ってしまうと批評家達を主張させるようになっているためである。しかしながら2015年現在、主要なLinuxディストリビューションのほとんどはsystemdをデフォルトのinitシステムとして採用している。.

新しい!!: シグナル (Unix)とSystemd · 続きを見る »

User Mode Linux

User Mode Linux(UML/user-mode-linux)は、Linux環境を仮想的に作りだすための仕組みである。Linuxカーネルをユーザーモードのプログラムとしてコンパイルして、実行させる。ホスト環境のLinuxカーネルと、ホスト環境のユーザーモードのプロセスとして動く Linux カーネル(UML本体)の連携により、Linuxゲスト環境を提供する。.

新しい!!: シグナル (Unix)とUser Mode Linux · 続きを見る »

Xディスプレイマネージャ

Xディスプレイマネージャ(X display manager)は、X Window System 上のプログラムの1つで、ローカルあるいはリモートのXサーバでセッションを開始させる機能を持つ。単にディスプレイマネージャとも呼ばれる。 XDMのログイン画面 ディスプレイマネージャは、ユーザに対してログイン画面を提示し、ユーザ名とパスワードを入力可能である。ユーザが正しく入力するとセッションが開始される。 ディスプレイマネージャがユーザが操作するコンピュータ上で動作する場合、ログイン画面を表示する前にXサーバを起動し、オプションでログアウトの際にもログイン画面を表示する。この場合、ディスプレイマネージャは X Window System において、テキスト端末での init、getty、login の役割を果たす。ディスプレイマネージャがリモートのコンピュータで動作する場合、telnet サーバのように機能して、ユーザ名とパスワードを要求し、リモートセッションを開始させる。 1988年10月、X11R3 でディスプレイマネージャが導入された。これは当時登場し始めていたX端末をサポートするためであった。多くのディスプレイマネージャがスタンドアロン型のXの動作するワークステーションでも、グラフィカルなログイン画面を提供するのに使われている。1989年12月、X11R4 では X11R3 での実装上の問題を解決すべく X Display Manager Control Protocol(XDMCP)が導入された。.

新しい!!: シグナル (Unix)とXディスプレイマネージャ · 続きを見る »

標準Cライブラリ

標準Cライブラリ(ひょうじゅんシーライブラリ)は、C言語の標準規格で定められた、型・マクロ・関数の集合からなるライブラリである。.

新しい!!: シグナル (Unix)と標準Cライブラリ · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »