JPH01233543A - 端末と信頼のおける計算ベースのシェル部分との間に信頼のおける経路を形成する方法 - Google Patents
端末と信頼のおける計算ベースのシェル部分との間に信頼のおける経路を形成する方法Info
- Publication number
- JPH01233543A JPH01233543A JP1017842A JP1784289A JPH01233543A JP H01233543 A JPH01233543 A JP H01233543A JP 1017842 A JP1017842 A JP 1017842A JP 1784289 A JP1784289 A JP 1784289A JP H01233543 A JPH01233543 A JP H01233543A
- Authority
- JP
- Japan
- Prior art keywords
- terminal
- user
- shell
- trusted
- processes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/009—Trust
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、一般的にデータ処理に関し、より具体的には
、データ処理システムの部分相互間に信頼性のある経路
を確立することに関する。
、データ処理システムの部分相互間に信頼性のある経路
を確立することに関する。
B、従来技術
システムに接続されたユーザ端末でユーザが情報をタイ
プすることによりデータ処理システムに情報を入力する
、財務アプリケーシヨン、国家安全保障アプリケーシヨ
ンなど、多くのデータ処理アプリケージeンは、機密性
の高い情報を含んでいる。従来技術は、無許可の人やプ
ログラムがユーザ端末からデータを読み出すのを防止す
る効果的な機構を提供していない。従来技術のデータ処
理システムでは、ユーザが通信しようと思っているプロ
グラムを偽装して、ユーザが自分の端末から入力する機
密情報を流用し複製しあるいは他の方法でその安全保護
を破ることのできる、トロイの木馬と呼ばれる無許可プ
ログラムにより、ユーザの端末とオペレーティング・シ
ステムのソフトウェアの間の通信経路が偽造されたり、
侵入されたりする恐れがある。
プすることによりデータ処理システムに情報を入力する
、財務アプリケーシヨン、国家安全保障アプリケーシヨ
ンなど、多くのデータ処理アプリケージeンは、機密性
の高い情報を含んでいる。従来技術は、無許可の人やプ
ログラムがユーザ端末からデータを読み出すのを防止す
る効果的な機構を提供していない。従来技術のデータ処
理システムでは、ユーザが通信しようと思っているプロ
グラムを偽装して、ユーザが自分の端末から入力する機
密情報を流用し複製しあるいは他の方法でその安全保護
を破ることのできる、トロイの木馬と呼ばれる無許可プ
ログラムにより、ユーザの端末とオペレーティング・シ
ステムのソフトウェアの間の通信経路が偽造されたり、
侵入されたりする恐れがある。
国家安全保障アプリケーシヨンに関して、米国政府が、
データ処理システムの安全性を評価するための標準を策
定した。その標準は、「信頼性のあるコンピュータ・シ
ステム評価基準(TrustedComputer S
ystem Evaluation Cr1teria
) J N米国防総省、1985年12月、DoD刊行
物5200.28−8TD (本明細書ではDoD標準
と呼ぶことにする)に発表されている。DoD標準では
、信頼性のあるコンピュータ・システムを一連の取扱い
に注意を要する機密扱いの情報を同時に処理するのに使
用できるのに充分なハードウェア及びソフトウェアの保
全性対策を用いたシステムであると定義している。信頼
性のある計算ベース(TCB)は、全体として安全保護
政策を実施する役割を担うハードウェア、ファームウェ
ア、ソフトウェアを含めたコンピュータ・システム内部
の保護機構の総体であると定義される。TCBは、全体
として製品やシステムに対する統一的な安全保護政策を
実施する二つまたは複数の構成要素から構成される。T
CBが安全保護政策を正し〈実施できるかどうかは、も
っばら、TCB内部の機構と、システム管理担当者によ
るユーザの人物証明など安全保護対策に関連するパラメ
ータの正確な入力とによって決まる。信頼性のある経路
は、DoD標準により、端末にいる人物が信頼性のある
計算ベースと直接通信できるようにする機構であると定
義される。信頼性のある経路の機構は、その人または信
頼性のある計算ベースによってのみ活動化でき、信頼で
きないソフトウェアが模倣することはできない。信頼性
のあるソフトウェアは、信頼性のある計算ベースのソフ
トウェア部分であると定義される。
データ処理システムの安全性を評価するための標準を策
定した。その標準は、「信頼性のあるコンピュータ・シ
ステム評価基準(TrustedComputer S
ystem Evaluation Cr1teria
) J N米国防総省、1985年12月、DoD刊行
物5200.28−8TD (本明細書ではDoD標準
と呼ぶことにする)に発表されている。DoD標準では
、信頼性のあるコンピュータ・システムを一連の取扱い
に注意を要する機密扱いの情報を同時に処理するのに使
用できるのに充分なハードウェア及びソフトウェアの保
全性対策を用いたシステムであると定義している。信頼
性のある計算ベース(TCB)は、全体として安全保護
政策を実施する役割を担うハードウェア、ファームウェ
ア、ソフトウェアを含めたコンピュータ・システム内部
の保護機構の総体であると定義される。TCBは、全体
として製品やシステムに対する統一的な安全保護政策を
実施する二つまたは複数の構成要素から構成される。T
CBが安全保護政策を正し〈実施できるかどうかは、も
っばら、TCB内部の機構と、システム管理担当者によ
るユーザの人物証明など安全保護対策に関連するパラメ
ータの正確な入力とによって決まる。信頼性のある経路
は、DoD標準により、端末にいる人物が信頼性のある
計算ベースと直接通信できるようにする機構であると定
義される。信頼性のある経路の機構は、その人または信
頼性のある計算ベースによってのみ活動化でき、信頼で
きないソフトウェアが模倣することはできない。信頼性
のあるソフトウェアは、信頼性のある計算ベースのソフ
トウェア部分であると定義される。
複数ユーザに対応するオペレーティング・システムでは
、ユーザ端末と信頼性のある計算ベースの間に信頼性の
ある経路を維持する問題は一層大きくなる。信頼性のあ
る経路を確立するためのを効な機構を提供していない従
来技術のマルチ・ユーザ・オペレーティング・システム
の例には、UNIX(UNIXは、AT&Tベル研究所
の商標)、XENIX (XENIXは、マイクロソフ
ト社の商標)、AIX(AIXは、IBM社の商標)な
どがある。UNIXは、広範囲のミニコンピユータ及び
マイクロコンピュータ用のオペレーティング・システム
としてAT&Tにより開発されライセンス供与されてい
る。UNIXオペレーティング・システムに関するより
詳しい情報については、rUNIX (TM)システム
、ユーザ・マニュアjし、システムV(UN I X
(TM) System、Users Manuals
System V) Jウェスタン0エレクトリック
社(Western Electric Compan
y) 51983年1月刊を参照されたい。UNIXオ
ペレーティング・システムの良い概説が、ブライアン。
、ユーザ端末と信頼性のある計算ベースの間に信頼性の
ある経路を維持する問題は一層大きくなる。信頼性のあ
る経路を確立するためのを効な機構を提供していない従
来技術のマルチ・ユーザ・オペレーティング・システム
の例には、UNIX(UNIXは、AT&Tベル研究所
の商標)、XENIX (XENIXは、マイクロソフ
ト社の商標)、AIX(AIXは、IBM社の商標)な
どがある。UNIXは、広範囲のミニコンピユータ及び
マイクロコンピュータ用のオペレーティング・システム
としてAT&Tにより開発されライセンス供与されてい
る。UNIXオペレーティング・システムに関するより
詳しい情報については、rUNIX (TM)システム
、ユーザ・マニュアjし、システムV(UN I X
(TM) System、Users Manuals
System V) Jウェスタン0エレクトリック
社(Western Electric Compan
y) 51983年1月刊を参照されたい。UNIXオ
ペレーティング・システムの良い概説が、ブライアン。
W、カーニハン(Brian V、Kernighan
)及びロブ・バイラ(Rob Pike)著rUNI
Xプログラミング環境(LINIX Programm
ing Environment) J 1プレンテイ
ス・ホール(Prentice−Hall )社、18
84年刊に出ている。UNIXオペレーティング・シス
テムの設計のより詳しい説明は、モーリス・J、バy
ハ(Maurice J、Bach)著rUNIXオペ
レーティング・システムの設計(Design of
theUNIX Operating Systegt
) J 、プレンティス・ホール(Prent 1ce
−Ha l 1 )社、1888年刊に出ている。
)及びロブ・バイラ(Rob Pike)著rUNI
Xプログラミング環境(LINIX Programm
ing Environment) J 1プレンテイ
ス・ホール(Prentice−Hall )社、18
84年刊に出ている。UNIXオペレーティング・シス
テムの設計のより詳しい説明は、モーリス・J、バy
ハ(Maurice J、Bach)著rUNIXオペ
レーティング・システムの設計(Design of
theUNIX Operating Systegt
) J 、プレンティス・ホール(Prent 1ce
−Ha l 1 )社、1888年刊に出ている。
AT&Tベル研究所は、UNIXオペレーティング・シ
ステムを使用するライセンスを多数の関係者に供与して
来たが、現在利用できるパージ習ンがいくつかある。A
T&Tからの最も新しいバージロンは、バージョン5.
2である。UNIXオペレーティング・システムのバー
クレイ・バージロンと呼ばれるもう一つのバージ1ンが
、カリフォルニア大学バーク14校で開発された。マイ
クロソフト社は、XENIXの商標で知られるバージロ
ンを有する。
ステムを使用するライセンスを多数の関係者に供与して
来たが、現在利用できるパージ習ンがいくつかある。A
T&Tからの最も新しいバージロンは、バージョン5.
2である。UNIXオペレーティング・システムのバー
クレイ・バージロンと呼ばれるもう一つのバージ1ンが
、カリフォルニア大学バーク14校で開発された。マイ
クロソフト社は、XENIXの商標で知られるバージロ
ンを有する。
IBM社は、IBM RT PC(RT及びRT
PCは、IBM社の商標)、(RISC(縮少命令セ
ット・コンピュータ)技術パーソナル・コンピュータ)
を1985年に発表して、AIXと呼ばれる新式のオペ
レーティング・システムをリリースした。これは、アプ
リケーション・インターフェース・レベルで、AT&T
のUNIXオペレーティング・システム、バージ1ン5
.2と互換性があり、UNIXオペレーティング・シス
テム、バージロン5.2に対する拡張を含んでいる。A
IXオペレーティング・システムのより詳しい説明につ
いては、rAIXオペレーティング・システム技術参考
資料(AIX Operating SystemTe
chnical Reference) J s第2版
、IBM社11986年9月刊を参照されたい。
PCは、IBM社の商標)、(RISC(縮少命令セ
ット・コンピュータ)技術パーソナル・コンピュータ)
を1985年に発表して、AIXと呼ばれる新式のオペ
レーティング・システムをリリースした。これは、アプ
リケーション・インターフェース・レベルで、AT&T
のUNIXオペレーティング・システム、バージ1ン5
.2と互換性があり、UNIXオペレーティング・シス
テム、バージロン5.2に対する拡張を含んでいる。A
IXオペレーティング・システムのより詳しい説明につ
いては、rAIXオペレーティング・システム技術参考
資料(AIX Operating SystemTe
chnical Reference) J s第2版
、IBM社11986年9月刊を参照されたい。
C0発明が解決しようとする問題点
本明細書に開示し、特許請求の範囲に記載する発明は、
とくに、UNIXlXENIX、AIXなどのマルチ・
ユーザ・オペレーティング・システム中に、無許可のプ
ログラムがユーザ端末からデータを読み取るのを防止す
るような信頼性のある経路を確立するための機構を提供
することに関するものである。従来技術のマルチ・ユー
ザ・オペレーティング・システムはどれも、無許可のプ
ログラムがユーザ端末からデータを読み取るのを防止す
る点で盲動な信頼性のある経路を確立するための機構を
提供していない。
とくに、UNIXlXENIX、AIXなどのマルチ・
ユーザ・オペレーティング・システム中に、無許可のプ
ログラムがユーザ端末からデータを読み取るのを防止す
るような信頼性のある経路を確立するための機構を提供
することに関するものである。従来技術のマルチ・ユー
ザ・オペレーティング・システムはどれも、無許可のプ
ログラムがユーザ端末からデータを読み取るのを防止す
る点で盲動な信頼性のある経路を確立するための機構を
提供していない。
したがって、本発明の目的は、データ処理システム中に
信頼性のある経路を確立するための機構を提供すること
にある。
信頼性のある経路を確立するための機構を提供すること
にある。
本発明のもう一つの目的は、マルチ・ユーザ・オペレー
ティング・システム用の信頼性のある経路を確立するた
めの機構を提供することにある。
ティング・システム用の信頼性のある経路を確立するた
めの機構を提供することにある。
本発明のなおもう一つの目的は、UNIX(TM)型オ
ペレーティング・システム用の信頼性のある経路機構を
提供することにある。
ペレーティング・システム用の信頼性のある経路機構を
提供することにある。
D0問題点を解決するための手段
本明細書で開示する、オペレーティング・システム用の
信頼性のある経路機構により、本発明の上記及びその他
の目的、特徴、利点が達成される。
信頼性のある経路機構により、本発明の上記及びその他
の目的、特徴、利点が達成される。
本発明の信頼性のある経路機構は、端末キーボードでユ
ーザがタイプ入力したデータが無許可プログラムによる
侵入から保護されることを保証する。
ーザがタイプ入力したデータが無許可プログラムによる
侵入から保護されることを保証する。
この機構を用いて、ユーザは、ユーザの端末と信頼性の
あるオペレーティング・システム・ソフトウェアの間に
、偽造不可能で侵入不能な通信経路を作成することがで
きる。ユーザは、端末キーボードで、機密保護アテンシ
ョン・キー(SAK)と呼ばれるキーを押すだけで、信
頼性のある経路を作成することができる。ユーザが、ユ
ーザのパスワードを盗もうとしてログイン・プログラム
を偽装したトロイの木馬プログラムとではなく、真のロ
グイン・プログラムと確実に通信するため、ユーザがシ
ステムにログインするときにこの操作を呼び出すことが
できる。ユーザは、信頼性のある経路を確立した後、パ
スワードなど自分の重要なデータを入力することができ
、侵入者のプログラムによって自分の六スワードが確か
に盗まれないようにすることができる。次いで、ユーザ
は、ログアウトした後、信頼性のある経路によって実際
に自分がシステムからログアウトされ、ユーザが開始し
たセッシジンを確かにトロイの木馬プログラムが続行で
きないようにすることができる。
あるオペレーティング・システム・ソフトウェアの間に
、偽造不可能で侵入不能な通信経路を作成することがで
きる。ユーザは、端末キーボードで、機密保護アテンシ
ョン・キー(SAK)と呼ばれるキーを押すだけで、信
頼性のある経路を作成することができる。ユーザが、ユ
ーザのパスワードを盗もうとしてログイン・プログラム
を偽装したトロイの木馬プログラムとではなく、真のロ
グイン・プログラムと確実に通信するため、ユーザがシ
ステムにログインするときにこの操作を呼び出すことが
できる。ユーザは、信頼性のある経路を確立した後、パ
スワードなど自分の重要なデータを入力することができ
、侵入者のプログラムによって自分の六スワードが確か
に盗まれないようにすることができる。次いで、ユーザ
は、ログアウトした後、信頼性のある経路によって実際
に自分がシステムからログアウトされ、ユーザが開始し
たセッシジンを確かにトロイの木馬プログラムが続行で
きないようにすることができる。
本発明は、少なくとも1つの端末が機密保護アテンショ
ン・キーを有するキーボードを含む、複数の端末が接続
されたメモリを内蔵しているデータ処理システムに含ま
れる。本発明は、UNIX型のオペレーティング・シス
テムにおいて、機密保護アテンション・キーに応答して
、端末と信頼性のある計算ベース中の信頼性のあるシェ
ル部分(オペレーティング・システムのもとでinit
プロセスの子プロセスになっている)との間に、信頼性
のある経路を作成する方法である。この方法は、キーボ
ードに接続されたキーボード・デバイス・ドライバにお
いて機密保護アテンシヨン・キーを検出して、キーボー
ド・デバイス・ドライバから機密保護アテンシヨン・キ
ー・シグナル6ジエネレータに、機密保護アテンション
・キーが検出されたという情報を出力することを含んで
いる。
ン・キーを有するキーボードを含む、複数の端末が接続
されたメモリを内蔵しているデータ処理システムに含ま
れる。本発明は、UNIX型のオペレーティング・シス
テムにおいて、機密保護アテンション・キーに応答して
、端末と信頼性のある計算ベース中の信頼性のあるシェ
ル部分(オペレーティング・システムのもとでinit
プロセスの子プロセスになっている)との間に、信頼性
のある経路を作成する方法である。この方法は、キーボ
ードに接続されたキーボード・デバイス・ドライバにお
いて機密保護アテンシヨン・キーを検出して、キーボー
ド・デバイス・ドライバから機密保護アテンシヨン・キ
ー・シグナル6ジエネレータに、機密保護アテンション
・キーが検出されたという情報を出力することを含んで
いる。
さらに、機密保護アテンション・キー・ジェネレータか
ら、端末プロセス・グループで動作中の全プロセスに、
端末プロセス・グループ中の全プロセスを終了させるS
I GSAKシグナルを出力することも含んでいる。
ら、端末プロセス・グループで動作中の全プロセスに、
端末プロセス・グループ中の全プロセスを終了させるS
I GSAKシグナルを出力することも含んでいる。
この方法は、さらに、端末とインターフェースするすべ
てのデバイス・ドライバに関連するアクセス許可テーブ
ルに5IGSAKシグナルを印加して、データ処理シス
テムにおけるinitプロセス以外の全プロセスに対し
てアクセス許可を拒否することも含んでいる。この方法
は、さらに、ファイル・アクセス・テーブルに5IGS
AKシグナルを印加して、端末とインターフェースする
デバイス・ドライバをデータ処理システムにおける1n
ftプロセス以外の全プロセスと関係付ける、すべての
アドレス指定情報を除去することも含んでいる。この方
法は、さらに、新しい子プロセスを起動するためにN
init、プロセスによるforkシステム・コールを
実行することを含んでいる。この方法は、端末とインタ
ーフェースするデバイス・ドライバに対するアクセス許
可を存し、端末とインターフェースするデバイス・ドラ
イバに対して、ファイル・アクセス・テーブルで定義さ
れたアドレス指定関係を有する信頼性のあるシェル・プ
ロセスを、新しい子プロセスにオ+ 、(−レイするた
めにexecシステム・コールを実行することも含んで
いる。それによって、端末と信頼性のあるシェル・プロ
セスとの間に信頼性のある経路が確立される。
てのデバイス・ドライバに関連するアクセス許可テーブ
ルに5IGSAKシグナルを印加して、データ処理シス
テムにおけるinitプロセス以外の全プロセスに対し
てアクセス許可を拒否することも含んでいる。この方法
は、さらに、ファイル・アクセス・テーブルに5IGS
AKシグナルを印加して、端末とインターフェースする
デバイス・ドライバをデータ処理システムにおける1n
ftプロセス以外の全プロセスと関係付ける、すべての
アドレス指定情報を除去することも含んでいる。この方
法は、さらに、新しい子プロセスを起動するためにN
init、プロセスによるforkシステム・コールを
実行することを含んでいる。この方法は、端末とインタ
ーフェースするデバイス・ドライバに対するアクセス許
可を存し、端末とインターフェースするデバイス・ドラ
イバに対して、ファイル・アクセス・テーブルで定義さ
れたアドレス指定関係を有する信頼性のあるシェル・プ
ロセスを、新しい子プロセスにオ+ 、(−レイするた
めにexecシステム・コールを実行することも含んで
いる。それによって、端末と信頼性のあるシェル・プロ
セスとの間に信頼性のある経路が確立される。
このようにして、ユーザの重要データを受は入れて処理
するための信頼性のある経路が確立され、その後、信頼
性のある経路を終了させ、次いで、ユーザはトロイの木
馬プログラムに自分のシステムの機密保護の裏をかかれ
る心配なしに先に進むことができる。
するための信頼性のある経路が確立され、その後、信頼
性のある経路を終了させ、次いで、ユーザはトロイの木
馬プログラムに自分のシステムの機密保護の裏をかかれ
る心配なしに先に進むことができる。
E、実施例
本発明の信頼性のある経路機構発明について全般的に説
明するため、第2図に、UNIX類似のマルチ・ユーザ
・オペレーティング・システムで動作するデータ処理装
置の概略図を示す。第2図の配置は、UNIX類似のオ
ペレーティング・システムで、同じデータ処理装置を共
有する複数のユーザが出会う典型的な状況を示す。第2
図は、ランダム・アクセス・メモリ2に接続されたマイ
クロプロセッサ1を含む、゛データ処理装置を示す。
明するため、第2図に、UNIX類似のマルチ・ユーザ
・オペレーティング・システムで動作するデータ処理装
置の概略図を示す。第2図の配置は、UNIX類似のオ
ペレーティング・システムで、同じデータ処理装置を共
有する複数のユーザが出会う典型的な状況を示す。第2
図は、ランダム・アクセス・メモリ2に接続されたマイ
クロプロセッサ1を含む、゛データ処理装置を示す。
ランダム・アクセス・メモリ2には、オペレーティング
・システム・ファイル及びメモリ中に選択的に読み込ま
れるユーザ・ファイルを維持するディスク記憶装置3も
接続されている。UNIX型オペレーティング・システ
ムの主要なファイルはメモリにロードされ、初期化動作
を行なって、システムを編成し、マルチ・ユーザ動作を
続行するのに必要なファイルをオープンするカーネル4
である。メモリには、端末A及び端末Bを含む複数の端
末も接続されている。メモリを初期化するに当って、カ
ーネルは、端末Aの表示装置D (A)とのインターフ
ェースを与える第1の表示デバイス・ドライバDD (
A)、及び表示デバイス・ドライバDD (A)に送ら
れる文字を緩衝記憶する対応する文字バッフyDB(A
)を用意する。同様に、カーネルは、端末Aのキーボー
ドK (A)に接続された(伝送制御手順ドライバとも
呼ばれる)キーボード・デバイス・ドライバKD (A
)を確立する。端末Aのキーボードから受は取った文字
を緩衝記憶するため、キーボード・デバイス・ドライバ
KD (A)に文字バッファKB (A)が接続されて
いる。同様に、カーネルは、端末Bの表示装置D (B
)及びキーボードK (B)用のサポート構造、すなわ
ち、表示デバイス・ドライバDD(B)、文字バッフy
DB (B) 、キーボード・デバイス・ドライバKD
(B)、文字バッフIKB (B)を確立する。
・システム・ファイル及びメモリ中に選択的に読み込ま
れるユーザ・ファイルを維持するディスク記憶装置3も
接続されている。UNIX型オペレーティング・システ
ムの主要なファイルはメモリにロードされ、初期化動作
を行なって、システムを編成し、マルチ・ユーザ動作を
続行するのに必要なファイルをオープンするカーネル4
である。メモリには、端末A及び端末Bを含む複数の端
末も接続されている。メモリを初期化するに当って、カ
ーネルは、端末Aの表示装置D (A)とのインターフ
ェースを与える第1の表示デバイス・ドライバDD (
A)、及び表示デバイス・ドライバDD (A)に送ら
れる文字を緩衝記憶する対応する文字バッフyDB(A
)を用意する。同様に、カーネルは、端末Aのキーボー
ドK (A)に接続された(伝送制御手順ドライバとも
呼ばれる)キーボード・デバイス・ドライバKD (A
)を確立する。端末Aのキーボードから受は取った文字
を緩衝記憶するため、キーボード・デバイス・ドライバ
KD (A)に文字バッファKB (A)が接続されて
いる。同様に、カーネルは、端末Bの表示装置D (B
)及びキーボードK (B)用のサポート構造、すなわ
ち、表示デバイス・ドライバDD(B)、文字バッフy
DB (B) 、キーボード・デバイス・ドライバKD
(B)、文字バッフIKB (B)を確立する。
UNIX類似環境で動作するオペレーティング・システ
ム・プログラム及びアプリケージ「ン・プログラムはプ
ロセスと呼ばれ、プログラム・テキスト部、データ部、
スタック及びユーザ・ブロックの3つの基本部分から構
成される。プロセスが端末などの入出力装置とインター
フェースするには、その端末にサービスする文字バッフ
ァと呼ばれるファイルが、呼出しプロセスのためにオー
プンされなければならない。すなわち、第2図のプロセ
スA1など、端末Aとインターフェースしようとするプ
ロセスは、表示デバイス・ドライバDD (A)用の文
字バッファDB(A)とインターフェースする第1のフ
ァイル、及びキーボード曝デバイス・ドライバKD (
A)用の文字バッファKB (A)とインターフェース
する第2のファイルの少なくとも2個のファイルをオー
プンしなければならない。プロセスとそのインターフェ
ースすべき対応する文字バッファの間の実際の通信は、
第2図に示すような、特定のプロセスを対応する文字バ
ッファと関連付けるファイル・アクセス・テーブル5を
介して実行される。
ム・プログラム及びアプリケージ「ン・プログラムはプ
ロセスと呼ばれ、プログラム・テキスト部、データ部、
スタック及びユーザ・ブロックの3つの基本部分から構
成される。プロセスが端末などの入出力装置とインター
フェースするには、その端末にサービスする文字バッフ
ァと呼ばれるファイルが、呼出しプロセスのためにオー
プンされなければならない。すなわち、第2図のプロセ
スA1など、端末Aとインターフェースしようとするプ
ロセスは、表示デバイス・ドライバDD (A)用の文
字バッファDB(A)とインターフェースする第1のフ
ァイル、及びキーボード曝デバイス・ドライバKD (
A)用の文字バッファKB (A)とインターフェース
する第2のファイルの少なくとも2個のファイルをオー
プンしなければならない。プロセスとそのインターフェ
ースすべき対応する文字バッファの間の実際の通信は、
第2図に示すような、特定のプロセスを対応する文字バ
ッファと関連付けるファイル・アクセス・テーブル5を
介して実行される。
第2図に示すように、端末Aは、関連する2個のプロセ
ス、プロセスA1及びプロセスA2を有し、これらを端
末Aプロセス・グループと総称する。同様に、端末Bも
、2個のプロセス、プロセスB1及びプロセスB2を育
し、それらを端末Bプロセス・グループと総称する。第
2図に示したファイル・アクセス書テーブルを見ると分
かるように、プロセスA1は、端末A用の表示装置文字
バッファ及びキーボード装置文字バッフ1に対する入出
カフアイルをオープンし、同様に、プロセスB1は、端
末B用の表示装置文字バッフ1及びキーボード装置文・
字バッフ1に対する入出カフアイルをオープンしている
。マルチ・ユーザーオペレーティング・システムでは、
もう一つの端末との通信を可能とするためにプロセスを
第1の端末プロセス・グループ・オープン・ファイルと
関連させることが稀ではない。端末Aの表示装置文字バ
ッファDB (A)及びキーボード装置文字バッフyK
B(A)に対するファイルをブロセ曵B1がオープンし
ている、第2図のファイル−アクセス・テーブルを参照
するとそれがわかる。このファイル・オープンにより、
端末Bのユーザが端末Aのユーザと通信することが可能
になる。
ス、プロセスA1及びプロセスA2を有し、これらを端
末Aプロセス・グループと総称する。同様に、端末Bも
、2個のプロセス、プロセスB1及びプロセスB2を育
し、それらを端末Bプロセス・グループと総称する。第
2図に示したファイル・アクセス書テーブルを見ると分
かるように、プロセスA1は、端末A用の表示装置文字
バッファ及びキーボード装置文字バッフ1に対する入出
カフアイルをオープンし、同様に、プロセスB1は、端
末B用の表示装置文字バッフ1及びキーボード装置文・
字バッフ1に対する入出カフアイルをオープンしている
。マルチ・ユーザーオペレーティング・システムでは、
もう一つの端末との通信を可能とするためにプロセスを
第1の端末プロセス・グループ・オープン・ファイルと
関連させることが稀ではない。端末Aの表示装置文字バ
ッファDB (A)及びキーボード装置文字バッフyK
B(A)に対するファイルをブロセ曵B1がオープンし
ている、第2図のファイル−アクセス・テーブルを参照
するとそれがわかる。このファイル・オープンにより、
端末Bのユーザが端末Aのユーザと通信することが可能
になる。
プロセスによる装置ドライバ(デバイス・ドライバ)へ
のアクセスを制御するため、アクセス許可テーブルで許
可されているプロセスだけが、特定の装置ドライバ及び
その文字バッファと通信することが許される。第2図を
見るとわかるように、表示装置ドライバDD(A)は、
2個のプロセス、すなわちA1とB1を許可されたプロ
セスであると指定する、アクセス許可テーブルAT (
A)を有する。同様に、キーボード装置ドライノ(KD
(A)は、プロセスA1及びB1がこのドライバ及びそ
の文字バッファKB (A)にアクセスするのを許可す
る、アクセス許可テーブルAT(A”)を存する。同様
に、装置ドライバDD (B)は、プロセスB1に対す
る許可だけを有するアクセス許可テーブルAT (B)
を有する。同様に、キーボード装置ドライバKD (B
)は、プロセスB1に対する許可だけを含むアクセス許
可テーブルAT (B)を有する。アクセス許可テーブ
ルの内容を修正できるのは、経路を確定するためのin
itプロセス6など特権プロセスだけである。ただし、
非機密保護モードでは、ユーザがアクセス許可テーブル
にアクセスして修正することも可能である。
のアクセスを制御するため、アクセス許可テーブルで許
可されているプロセスだけが、特定の装置ドライバ及び
その文字バッファと通信することが許される。第2図を
見るとわかるように、表示装置ドライバDD(A)は、
2個のプロセス、すなわちA1とB1を許可されたプロ
セスであると指定する、アクセス許可テーブルAT (
A)を有する。同様に、キーボード装置ドライノ(KD
(A)は、プロセスA1及びB1がこのドライバ及びそ
の文字バッファKB (A)にアクセスするのを許可す
る、アクセス許可テーブルAT(A”)を存する。同様
に、装置ドライバDD (B)は、プロセスB1に対す
る許可だけを有するアクセス許可テーブルAT (B)
を有する。同様に、キーボード装置ドライバKD (B
)は、プロセスB1に対する許可だけを含むアクセス許
可テーブルAT (B)を有する。アクセス許可テーブ
ルの内容を修正できるのは、経路を確定するためのin
itプロセス6など特権プロセスだけである。ただし、
非機密保護モードでは、ユーザがアクセス許可テーブル
にアクセスして修正することも可能である。
第2図に示したプロセス・テーブル7は、メモリ中に格
納されメモリ中に存在する各当該プロセスの状態の最新
の記録を、ユーザID1及びそのプロセスの実行を許可
されたユーザに対する端末指定と共に維持する。第2図
を見るとわかるように、4つのプロセスAl、A2、B
l、B2はすべて、走行可能状態にある。すなわち、オ
ペレーティング・システムによるタイム・スライス・マ
ルチ・プログラミング動作で、各プロセスはすぐにも走
行できる状態にあり、オペレーティング・システムによ
ってサービスを受けるように選択されたと゛き、走行状
態すなわち活動状態になる。
納されメモリ中に存在する各当該プロセスの状態の最新
の記録を、ユーザID1及びそのプロセスの実行を許可
されたユーザに対する端末指定と共に維持する。第2図
を見るとわかるように、4つのプロセスAl、A2、B
l、B2はすべて、走行可能状態にある。すなわち、オ
ペレーティング・システムによるタイム・スライス・マ
ルチ・プログラミング動作で、各プロセスはすぐにも走
行できる状態にあり、オペレーティング・システムによ
ってサービスを受けるように選択されたと゛き、走行状
態すなわち活動状態になる。
第2図に示したUNIX類似オペレーティング・システ
ムに伴う機密保護上の問題点は、端末Bにいるユーザが
、端末A用の文字バッファDB (A)及びKB (A
)をモニタできるファイルを自分の端末Bプロセス・グ
ループの1プロセスで容易にオープンさせることができ
るので、端末Aにいるユーザが、自分のキーボードK
(A)での自分の機密保護データ入力を、確かに端末B
にいるユーザによってその表示装置D (B)で盗み間
きされないようにすることができないことである。確か
に、前述のように、また第2図のファイル・アクセス・
テーブルに示すように、事実、こうしたことが起ってい
る。
ムに伴う機密保護上の問題点は、端末Bにいるユーザが
、端末A用の文字バッファDB (A)及びKB (A
)をモニタできるファイルを自分の端末Bプロセス・グ
ループの1プロセスで容易にオープンさせることができ
るので、端末Aにいるユーザが、自分のキーボードK
(A)での自分の機密保護データ入力を、確かに端末B
にいるユーザによってその表示装置D (B)で盗み間
きされないようにすることができないことである。確か
に、前述のように、また第2図のファイル・アクセス・
テーブルに示すように、事実、こうしたことが起ってい
る。
端末Aにいるユーザにとってのもう一つの機密保護上の
問題点は、端末Aプロセス・グループのユーザ自身のプ
ロセスの1つにトロイの木馬プログラムが取り付いてい
る可能性があることである。
問題点は、端末Aプロセス・グループのユーザ自身のプ
ロセスの1つにトロイの木馬プログラムが取り付いてい
る可能性があることである。
このようなトロイの木馬プログラムは、−見したところ
宵月な機能を有するように思われるが、端末Aプロセス
・グループ中の呼出し側プロセスまたはホスト・プロセ
スの合法的許可を不正に利用して端末Aの機密保護を損
なう、隠れた機能を含んでいるはずである。たとえば、
このようなトロイの木馬プログラムが取扱いに注意を要
するファイルの「ブラインド・コピー」をとって、トロ
イの木馬プログラムを作成した無許可ユーザが端末Aの
機密保護を侵害する可能性がある。
宵月な機能を有するように思われるが、端末Aプロセス
・グループ中の呼出し側プロセスまたはホスト・プロセ
スの合法的許可を不正に利用して端末Aの機密保護を損
なう、隠れた機能を含んでいるはずである。たとえば、
このようなトロイの木馬プログラムが取扱いに注意を要
するファイルの「ブラインド・コピー」をとって、トロ
イの木馬プログラムを作成した無許可ユーザが端末Aの
機密保護を侵害する可能性がある。
UNIX類似マルチ・ユーザ・オペレーティング・シス
テムにおけるこれらの機密保護上の問題点は、第1図に
その特徴及び機能を示した信頼性のある経路機構によっ
て解決される。第1図は、本発明による信頼性のある経
路を呼び出すための機密保護アテンシジン・キー機能を
さらに含んでいる、第2図のデータ処理装置の概略図で
ある。
テムにおけるこれらの機密保護上の問題点は、第1図に
その特徴及び機能を示した信頼性のある経路機構によっ
て解決される。第1図は、本発明による信頼性のある経
路を呼び出すための機密保護アテンシジン・キー機能を
さらに含んでいる、第2図のデータ処理装置の概略図で
ある。
第1図を見るとわかるように、端末AのキーボードK
(A)は、本発明による機密保護アテンション・キー(
SAK)を有する。キーボード装置ドライバKD (A
)は、機密−[1アテンシ日ン・キーによって表わされ
る一義的な文字の組合せを検出し、機密保護アテンショ
ン・キーを押したとき、機密保護アテンシジン・キー・
シグナル・ジェネレータ8にシグナルを出力するように
修正しである。キーボード装置ドライバKD (A)か
ら受は取った信号に応答して、機密保護アテンション・
キー・シグナル・ジェネレータによって機密保護アテン
シロン・キー・シグナル(SIGSAK)が発生する。
(A)は、本発明による機密保護アテンション・キー(
SAK)を有する。キーボード装置ドライバKD (A
)は、機密−[1アテンシ日ン・キーによって表わされ
る一義的な文字の組合せを検出し、機密保護アテンショ
ン・キーを押したとき、機密保護アテンシジン・キー・
シグナル・ジェネレータ8にシグナルを出力するように
修正しである。キーボード装置ドライバKD (A)か
ら受は取った信号に応答して、機密保護アテンション・
キー・シグナル・ジェネレータによって機密保護アテン
シロン・キー・シグナル(SIGSAK)が発生する。
機密保護アテンシせン・キー・シグナル・ジェネレータ
は、UNIX類似オペレーティング・システム用の修正
されたカーネルの一部である。
は、UNIX類似オペレーティング・システム用の修正
されたカーネルの一部である。
本発明によれば、メモリに記憶された各プロセスと関連
するユーザ・ブロックが、UNIX類似シグナルに対す
るシグナル応答のリストを含んでいる。これらのシグナ
ル応答の中には、機密保護アテンシVン・キー・シグナ
ル(SIGSAK)用に設けられた特別の応答が含まれ
ている。機密保護アテンシロン・キー・シグナル・ジェ
ネレータが特定のプロセス・グループまたは端末プロセ
ス・グループにS IGSAKシグナルを送ると、その
プロセスに関するユーザ・ブロック中に記憶されている
応答は、そのプロセスを終了させることを要求する。機
密保護アテンシHン・キー・シグナル・ジェネレータは
、キーボ゛−ド装置ドライバKD(A)から、キーボー
ドK (A)で機密保護アテンシ鱈ン・キーが押された
との指示を受は取ると、それに応答して、特定の端末プ
ロセス・グループ中の全プロセス、たとえば第1図で端
末Aプロセス・グループのプロセスA1とプロセスA2
に5IGSAKシグナルを送ることができる。端末Aで
機密保護アテンシ■ン・キーが押されたとき、この状況
に応答してステップ1が実行され、端末Aのプロセス・
グループの全プロセスが終了され、ステップ11によっ
て、プロセス・テーブル7で端末Aの全プロセスが終了
したことを示す対応する状態入力が行なわれる。
するユーザ・ブロックが、UNIX類似シグナルに対す
るシグナル応答のリストを含んでいる。これらのシグナ
ル応答の中には、機密保護アテンシVン・キー・シグナ
ル(SIGSAK)用に設けられた特別の応答が含まれ
ている。機密保護アテンシロン・キー・シグナル・ジェ
ネレータが特定のプロセス・グループまたは端末プロセ
ス・グループにS IGSAKシグナルを送ると、その
プロセスに関するユーザ・ブロック中に記憶されている
応答は、そのプロセスを終了させることを要求する。機
密保護アテンシHン・キー・シグナル・ジェネレータは
、キーボ゛−ド装置ドライバKD(A)から、キーボー
ドK (A)で機密保護アテンシ鱈ン・キーが押された
との指示を受は取ると、それに応答して、特定の端末プ
ロセス・グループ中の全プロセス、たとえば第1図で端
末Aプロセス・グループのプロセスA1とプロセスA2
に5IGSAKシグナルを送ることができる。端末Aで
機密保護アテンシ■ン・キーが押されたとき、この状況
に応答してステップ1が実行され、端末Aのプロセス・
グループの全プロセスが終了され、ステップ11によっ
て、プロセス・テーブル7で端末Aの全プロセスが終了
したことを示す対応する状態入力が行なわれる。
さらに、本発明によれば、機密保護アテンシロン・キー
・シグナル・ジェネレータが5IGSAKシグナルを出
力すると、ステップ2で、それがアクセス許可テーブル
A T −(A )及びAT(A”)に送られて、プロ
セスA1及びプロセスA2の許可を取り消し、その代り
に、装置ドライバDD(A)及びKD (A) 、なら
びにそれらの対応するバッファDB(A)及びKB(A
)に対するアクセスを許可された唯°−のプロセスがi
nitプロセス6であることを挿入する。
・シグナル・ジェネレータが5IGSAKシグナルを出
力すると、ステップ2で、それがアクセス許可テーブル
A T −(A )及びAT(A”)に送られて、プロ
セスA1及びプロセスA2の許可を取り消し、その代り
に、装置ドライバDD(A)及びKD (A) 、なら
びにそれらの対応するバッファDB(A)及びKB(A
)に対するアクセスを許可された唯°−のプロセスがi
nitプロセス6であることを挿入する。
さらに、本発明によれば、機密保護アテンシロン・キー
・シグナル・ジェネレータがS I GSAKシグナル
を出力すると、それもステップ3によってファイル・ア
クセス・テーブル5に送られ、端末Aの文字バッフyD
B(A)及びKB (A)とインターフェースする全フ
ァイルに対するファイル・アクセス・テーブルの記入項
目を変更する働きをする。すなわち、以前にプロセスB
1と端末Aの間のインターフェースを使用可能にしてい
た端末Bに対する項目が取り消されて、端末Bプロセス
・グループ中のどのプロセスも文字バッフIDB(A)
及びKB (A)を介して端末Aと通信できないように
なる。vhangup と呼ばれるコマンドが、この動
作を実行する。
・シグナル・ジェネレータがS I GSAKシグナル
を出力すると、それもステップ3によってファイル・ア
クセス・テーブル5に送られ、端末Aの文字バッフyD
B(A)及びKB (A)とインターフェースする全フ
ァイルに対するファイル・アクセス・テーブルの記入項
目を変更する働きをする。すなわち、以前にプロセスB
1と端末Aの間のインターフェースを使用可能にしてい
た端末Bに対する項目が取り消されて、端末Bプロセス
・グループ中のどのプロセスも文字バッフIDB(A)
及びKB (A)を介して端末Aと通信できないように
なる。vhangup と呼ばれるコマンドが、この動
作を実行する。
カーネル、及びシステム内の他の全プロセスの親プロセ
スに当たるinitプロセス1が、信頼性のあるプロセ
スとして維持される。すなわち、本発明によれば、ファ
イル・アクセス・テーブルの項目が修正されて、ini
t プロセスがファイル・アクセス・テーブルを介して
端末Aの文字バッフIDB(A)及びKB (A)とイ
ンターフェースできる唯一のプロセスになる。すなわち
、第1図に示した段階では、データ処理装置のメモリ中
のinitプロセスθ以外の他のプロセスは、端末Aと
インターフェースできない。
スに当たるinitプロセス1が、信頼性のあるプロセ
スとして維持される。すなわち、本発明によれば、ファ
イル・アクセス・テーブルの項目が修正されて、ini
t プロセスがファイル・アクセス・テーブルを介して
端末Aの文字バッフIDB(A)及びKB (A)とイ
ンターフェースできる唯一のプロセスになる。すなわち
、第1図に示した段階では、データ処理装置のメモリ中
のinitプロセスθ以外の他のプロセスは、端末Aと
インターフェースできない。
第8図は、信頼性のあるシェルへの信頼性のある経路の
確立を示す、第1図のデータ処理装置の概略図である。
確立を示す、第1図のデータ処理装置の概略図である。
本発明によれば、カーネルは、信頼性のあるシェル・プ
ロセスTSHを含んでいる。
ロセスTSHを含んでいる。
これは、ディスク記憶装置から読み込む場合、カーネル
の一部としてもよく、またカーネルのコマンドによって
読み込まれるディスク記憶装置上の単独の信頼性のある
ファイルでもよい。UNIX類似オペレーティング・シ
ステムでは、forkシステム・コールが、あるプロセ
スの相等しいコピー2部を新たに作成する。コピー1部
は親プロセス、もう一部は子プロセスと呼ばれる。オー
プン・ファイルを含めて、親プロセスのイメージの全部
が子に受は継がれる。forkプロセスは、それ自身の
データ及びスタックまたはユーザ・ブロック部分を有す
る。親プロセスと子プロセスが共存する資源は、親フロ
セスがfork システム・コールを行なったときにオ
ープンされていたファイルだけである。本発明によれば
、第3図のステップ4で、initプロセス6はfor
k システム・コールを実行して、initプロセスの
ほぼ等しいコピーである子プロセスを生成する。信頼性
のあるシェル・プロセス(TSH)のイメージを自分自
身にオーバーレイするのは、この子プロセスである。オ
ーバーレイ動作は、もう一つのUNIX類似システム・
コールであるexecシステム・コールによって行なわ
れる。execシステム・コールは、現在走行している
プロセスを新しいプログラムでオーバーレイして、その
入口点でプログラムの実行を開始スル。プロセスIDは
、exec システム・コールニよって変更されない。
の一部としてもよく、またカーネルのコマンドによって
読み込まれるディスク記憶装置上の単独の信頼性のある
ファイルでもよい。UNIX類似オペレーティング・シ
ステムでは、forkシステム・コールが、あるプロセ
スの相等しいコピー2部を新たに作成する。コピー1部
は親プロセス、もう一部は子プロセスと呼ばれる。オー
プン・ファイルを含めて、親プロセスのイメージの全部
が子に受は継がれる。forkプロセスは、それ自身の
データ及びスタックまたはユーザ・ブロック部分を有す
る。親プロセスと子プロセスが共存する資源は、親フロ
セスがfork システム・コールを行なったときにオ
ープンされていたファイルだけである。本発明によれば
、第3図のステップ4で、initプロセス6はfor
k システム・コールを実行して、initプロセスの
ほぼ等しいコピーである子プロセスを生成する。信頼性
のあるシェル・プロセス(TSH)のイメージを自分自
身にオーバーレイするのは、この子プロセスである。オ
ーバーレイ動作は、もう一つのUNIX類似システム・
コールであるexecシステム・コールによって行なわ
れる。execシステム・コールは、現在走行している
プロセスを新しいプログラムでオーバーレイして、その
入口点でプログラムの実行を開始スル。プロセスIDは
、exec システム・コールニよって変更されない。
このシステム・コールは、成功した場合にはリターンせ
ず、呼出し側プログラムのイメージは失われる。すなわ
ち、本発明によれば、子initプロセスが、呼出され
るプログラムとして、(カーネルによって(またはカー
ネルを用いて)ディスク記憶装置から読み込まれる)信
頼性のあるシェル・プロセス(TSH)9を用いて、e
XeCシステム・コールを行なう。信頼性のあるシェル
(TSH)9はinit 8の子プロセスなので、信頼
性のあるシェルTSHはアクセス許可テーブルAT (
A)及びAT (A ’ )で、デバイス・ドライバD
D(A)及びKD (A)に対するアクセスを許可され
る。端末Aのプロセス・グループに関連する他の全プロ
セスが終了して、メモリから除去されており、かつファ
イル・アクセス・テーブル5が修正されて、信頼性のあ
るシェル・プロセス(TSH)9以外の他のプロセスが
端末Aの文字バッファとインターフェースできないよう
になっているので、端末Aから信頼性のあるシェル・プ
ロセス(TSH)9への信頼性のある経路がこれで確立
された。
ず、呼出し側プログラムのイメージは失われる。すなわ
ち、本発明によれば、子initプロセスが、呼出され
るプログラムとして、(カーネルによって(またはカー
ネルを用いて)ディスク記憶装置から読み込まれる)信
頼性のあるシェル・プロセス(TSH)9を用いて、e
XeCシステム・コールを行なう。信頼性のあるシェル
(TSH)9はinit 8の子プロセスなので、信頼
性のあるシェルTSHはアクセス許可テーブルAT (
A)及びAT (A ’ )で、デバイス・ドライバD
D(A)及びKD (A)に対するアクセスを許可され
る。端末Aのプロセス・グループに関連する他の全プロ
セスが終了して、メモリから除去されており、かつファ
イル・アクセス・テーブル5が修正されて、信頼性のあ
るシェル・プロセス(TSH)9以外の他のプロセスが
端末Aの文字バッファとインターフェースできないよう
になっているので、端末Aから信頼性のあるシェル・プ
ロセス(TSH)9への信頼性のある経路がこれで確立
された。
信頼性のあるシェル・プロセス(TSH)は、完全に安
全な方法で端末Aから呼び出すことができる、様々なコ
マンド、機能、補助プログラムを、その内部に含むこと
ができる。その−例は、端末Aにいるユーザが自分のI
Dをログインし、無許可のユーザに盗聴される心配なし
に自分のパスワードを入力することができるという、機
密保護ログイン機能である。
全な方法で端末Aから呼び出すことができる、様々なコ
マンド、機能、補助プログラムを、その内部に含むこと
ができる。その−例は、端末Aにいるユーザが自分のI
Dをログインし、無許可のユーザに盗聴される心配なし
に自分のパスワードを入力することができるという、機
密保護ログイン機能である。
すなわち、このようにして、本発明の信頼性のある経路
機構は、進行中のデータ処理動作が、同じデータ処理装
置に接続された他の端末から悪影響を受けることなく、
ユーザ端末とデータ処理装置内部の信頼性のあるプロセ
スとの間で安全な通信を可能にする。
機構は、進行中のデータ処理動作が、同じデータ処理装
置に接続された他の端末から悪影響を受けることなく、
ユーザ端末とデータ処理装置内部の信頼性のあるプロセ
スとの間で安全な通信を可能にする。
本明細書に開示した本発明の特定の実施例は、AIXオ
ペレーティング・システムに適用されるものである。し
たがって、本明細書に開示し特許請求の範囲に記載した
本発明を理解する助けとなるように、AIXオペレーテ
ィング・システムの動作原理に関する若干の基礎知識を
示す。AIXオペレーティング・システムに関するより
詳しい情報は、上記に引用したIBMの刊行物rAIX
オペレーティング・システム技術参考資料」を参照され
たい。
ペレーティング・システムに適用されるものである。し
たがって、本明細書に開示し特許請求の範囲に記載した
本発明を理解する助けとなるように、AIXオペレーテ
ィング・システムの動作原理に関する若干の基礎知識を
示す。AIXオペレーティング・システムに関するより
詳しい情報は、上記に引用したIBMの刊行物rAIX
オペレーティング・システム技術参考資料」を参照され
たい。
AIX、オペレーティング・システムに関する基AIX
オペレーティング・システム及びその他のUNIX類似
オペレーティング・システムでは、一連の専門用語を使
用しているので、それらの用語の一部について下記の定
義を示す。
オペレーティング・システム及びその他のUNIX類似
オペレーティング・システムでは、一連の専門用語を使
用しているので、それらの用語の一部について下記の定
義を示す。
プロセス:コマンドを入力し、シェル・プログラムを走
行させ、あるいは他のプロセスによって起動されること
によって開始する、システム内部の活動など、所望の結
果をもたらす一連の活動。
行させ、あるいは他のプロセスによって起動されること
によって開始する、システム内部の活動など、所望の結
果をもたらす一連の活動。
パスワード:ユーザIDと一緒に入力したとき、オペレ
ータがシステムにサイン・オンできるようにする文字ス
トリング。
ータがシステムにサイン・オンできるようにする文字ス
トリング。
オペレーティング・システム:プログラムの走行を制御
するソフトウェア。さらに、オペレーティング・システ
ムは、資源割振り、スケジューリング、入出力制御、デ
ータ管理などのサービスも提供できる。
するソフトウェア。さらに、オペレーティング・システ
ムは、資源割振り、スケジューリング、入出力制御、デ
ータ管理などのサービスも提供できる。
カーネル:UNIX型オペレーティング・システムで、
カーネルはシステム・コール番インターフェースを実現
する。
カーネルはシステム・コール番インターフェースを実現
する。
init:カーネルは、初期化の基本プロセスを完了す
ると、tnitプロセスと呼ばれるシステム中の他の全
プロセスの先祖であるプロセスを起動させる。init
プロセスは、システムが走行している状態、通常は、保
守モードまたはマルチ・ユーザ・モードを制御するプロ
グラムである。
ると、tnitプロセスと呼ばれるシステム中の他の全
プロセスの先祖であるプロセスを起動させる。init
プロセスは、システムが走行している状態、通常は、保
守モードまたはマルチ・ユーザ・モードを制御するプロ
グラムである。
getty : initプロセスは、システムに対す
る各ポートごとに、getty コマンドを実行する。
る各ポートごとに、getty コマンドを実行する。
その主要機能は、指定したポートの特性を設定すること
である。
である。
login : loginプログラムは、ユーザをシ
ステムにログオンし、ユーザのパスワードの妥当性を検
査し、適当なログ項目を作成し、処理環境をセットアツ
プし、パスワード・ファイル中で指定されるコマンド・
インタープリタ、通常はシェル(SH)プログラムを走
行させる。
ステムにログオンし、ユーザのパスワードの妥当性を検
査し、適当なログ項目を作成し、処理環境をセットアツ
プし、パスワード・ファイル中で指定されるコマンド・
インタープリタ、通常はシェル(SH)プログラムを走
行させる。
シェル(SH)ニジエル・コマンドは、システム・コマ
ンド・インタープリタ、かつプログラミング言語である
。これは、キーボードで入力されたコマンドを読み取っ
て、その実行の手配をする通常のユーザ・プログラムで
ある。
ンド・インタープリタ、かつプログラミング言語である
。これは、キーボードで入力されたコマンドを読み取っ
て、その実行の手配をする通常のユーザ・プログラムで
ある。
fork : fork システム・コールは、呼出シ
側フロセス(親プロセス)の正確なコピーである、子プ
ロセスと呼ばれる新しいプロセスを作成する。作成すれ
た子プロセスは、親プロセスの属性の大部分を受は継ぐ
。
側フロセス(親プロセス)の正確なコピーである、子プ
ロセスと呼ばれる新しいプロセスを作成する。作成すれ
た子プロセスは、親プロセスの属性の大部分を受は継ぐ
。
exec : execシステム・コールは、呼出し側
プロセス中で、新しいプログラムを実行する。exec
は新しいプログラムを作成するのではなく、現在のプロ
グラムに新プロセス・イメージと呼ばれる新しいプログ
ラムをオーバーレイする。新プロセス・イメージ・ファ
イルは、実行可能な2進フアイル、シェル手順を含む実
行可能なテキスト・ファイル、または実行可能2進フア
イルとシェル手順のどちらを走行させるかを指定するフ
ァイルでよい。
プロセス中で、新しいプログラムを実行する。exec
は新しいプログラムを作成するのではなく、現在のプロ
グラムに新プロセス・イメージと呼ばれる新しいプログ
ラムをオーバーレイする。新プロセス・イメージ・ファ
イルは、実行可能な2進フアイル、シェル手順を含む実
行可能なテキスト・ファイル、または実行可能2進フア
イルとシェル手順のどちらを走行させるかを指定するフ
ァイルでよい。
シグナル:シグナルは1.活動プロセスへの通信を行な
い、現プロセス環境が保管され新しいプロセス環境が生
成されるという1組の事象を起こさせる。シグナルは、
プロセスの正常な実行に割り込む事象であり、シグナル
が発生したときに呼び出すことのできるシグナル処理サ
ブルーチンを指定できる。
い、現プロセス環境が保管され新しいプロセス環境が生
成されるという1組の事象を起こさせる。シグナルは、
プロセスの正常な実行に割り込む事象であり、シグナル
が発生したときに呼び出すことのできるシグナル処理サ
ブルーチンを指定できる。
RT PCシステム・ソフトウェアは、仮想資源マネ
ージャ(VRM) 、仮想計算機インターフェース(V
MI)、AIXオペレーティング・システムの各層で構
成されている。仮想資源マネージャは、プロセッサのハ
ードウェア機能とメモリ管理を拡張して、仮想計算機環
境でオペレーティング・システム用のハードウェア装置
に高水準のサポートを行なう。仮想計算機インターフェ
ースは、オペレーティング・システムと仮想資源マネー
ジャの間のプロトコル境界である。仮想資源マネージャ
によって定義される仮想計算機は、高水準ではあるもの
が実計算機型のインターフェースを有する。
ージャ(VRM) 、仮想計算機インターフェース(V
MI)、AIXオペレーティング・システムの各層で構
成されている。仮想資源マネージャは、プロセッサのハ
ードウェア機能とメモリ管理を拡張して、仮想計算機環
境でオペレーティング・システム用のハードウェア装置
に高水準のサポートを行なう。仮想計算機インターフェ
ースは、オペレーティング・システムと仮想資源マネー
ジャの間のプロトコル境界である。仮想資源マネージャ
によって定義される仮想計算機は、高水準ではあるもの
が実計算機型のインターフェースを有する。
仮想資源マネージャは、本質的に実計算機と同じ特性を
有する仮想計算機環境をもたらす。仮想計算機は、問題
(非特権)状態で走行し、実計算機の監視(特権)特性
を直接には反映しない。これらの機能は、仮想資源マネ
ージャによって処理される。
有する仮想計算機環境をもたらす。仮想計算機は、問題
(非特権)状態で走行し、実計算機の監視(特権)特性
を直接には反映しない。これらの機能は、仮想資源マネ
ージャによって処理される。
仮想計算機は、ユーザ(非特権)状態とオペレーティン
グ・システム(特権)状態の、2種の記憶保護状態を宵
する。オペレーティング・システム状態とAIXカーネ
ル状態は、同意語である。仮想計算機が(ユーザ状態ま
たはオペレーティング・システム状態で)命令を実行し
ているとき、処理装置は実際には問題状態にある。仮想
資源マネージャだけが(AIXオペレーティング・シス
テムによって仮想資源マネージャ中に導入されたコード
も含めて)、実監視杖愈で実行できる。
グ・システム(特権)状態の、2種の記憶保護状態を宵
する。オペレーティング・システム状態とAIXカーネ
ル状態は、同意語である。仮想計算機が(ユーザ状態ま
たはオペレーティング・システム状態で)命令を実行し
ているとき、処理装置は実際には問題状態にある。仮想
資源マネージャだけが(AIXオペレーティング・シス
テムによって仮想資源マネージャ中に導入されたコード
も含めて)、実監視杖愈で実行できる。
ユーザ状態のとき、仮想計算機は、任意の問題状態命令
を出すことができる。仮想計算機が使用できる命令の一
つは、SVC(スーパーバイザ呼出し)命令である。S
vC命令は、どのスーパーバイザ機能を望むのかを示す
1 B +: −/ )のフィールドを含む。このフィ
ールドの最高位ビットは、その呼出しが仮想資源マネー
ジャに対して行なわれた(ビットを設定する)のか、そ
れとも仮想計算機スーパーバイザであるAIXオペレー
ティング・システムに対して行なわれた(ビットをクリ
アする)のかを決定する。仮想資源マネージャは、仮想
計算機ユーザ状態で仮想資源マネージャに対して行なわ
れる呼出しを受は入れない。仮想計算機中で走行してい
るアプリケーションから仮想計算機スーパーバイザにS
vC型システム・コールを出すことにより、仮想計算機
ユーザ状態からオペレーティング・システム状態への移
行が行なわれる。
を出すことができる。仮想計算機が使用できる命令の一
つは、SVC(スーパーバイザ呼出し)命令である。S
vC命令は、どのスーパーバイザ機能を望むのかを示す
1 B +: −/ )のフィールドを含む。このフィ
ールドの最高位ビットは、その呼出しが仮想資源マネー
ジャに対して行なわれた(ビットを設定する)のか、そ
れとも仮想計算機スーパーバイザであるAIXオペレー
ティング・システムに対して行なわれた(ビットをクリ
アする)のかを決定する。仮想資源マネージャは、仮想
計算機ユーザ状態で仮想資源マネージャに対して行なわ
れる呼出しを受は入れない。仮想計算機中で走行してい
るアプリケーションから仮想計算機スーパーバイザにS
vC型システム・コールを出すことにより、仮想計算機
ユーザ状態からオペレーティング・システム状態への移
行が行なわれる。
仮想計算機は、ユーザ状態プロセスからSVCが送られ
るか、あるいは仮想資源マネージャから仮想割込みが送
られると、オペレーティング・システム状態に入る。オ
ペレーティング・システム状態のとき、仮想計算機はユ
ーザ状態で使用可能なすべての命令を使用できる。さら
に、オペレーティング・システム状態の仮想計算機は、
仮想資源マネージャにSVCを出すことができる。
るか、あるいは仮想資源マネージャから仮想割込みが送
られると、オペレーティング・システム状態に入る。オ
ペレーティング・システム状態のとき、仮想計算機はユ
ーザ状態で使用可能なすべての命令を使用できる。さら
に、オペレーティング・システム状態の仮想計算機は、
仮想資源マネージャにSVCを出すことができる。
各仮想計算機は記憶位置0から始まる別々の仮想記憶空
間を有するので、これらの記憶位置は、すべての仮想計
算機で有効である。仮想計算機と仮想資源マネージャの
間の通信用に、0xcOと0x2dcの間の仮想計算機
記憶位置が予約されている。これらの記憶位置は、メモ
リ・マツプされたタイマ値、SvC及び割込み用のプロ
グラム状況ブロック(PSB)及びその他の種々雑多な
値に使用される。
間を有するので、これらの記憶位置は、すべての仮想計
算機で有効である。仮想計算機と仮想資源マネージャの
間の通信用に、0xcOと0x2dcの間の仮想計算機
記憶位置が予約されている。これらの記憶位置は、メモ
リ・マツプされたタイマ値、SvC及び割込み用のプロ
グラム状況ブロック(PSB)及びその他の種々雑多な
値に使用される。
プログラム・チエツク、マシン通信、SvCの各優先側
込みレベルごとに別々のPSBがある。
込みレベルごとに別々のPSBがある。
PSBは、割込み点、割込み制御フィールド、割込み状
況フィールド、サブレベルの定義、及びその割込みに特
有な状況とデータの4ワード用の命令アドレス・レジス
タ(IAR)を含んでいる。
況フィールド、サブレベルの定義、及びその割込みに特
有な状況とデータの4ワード用の命令アドレス・レジス
タ(IAR)を含んでいる。
仮想資源マネージャ(VRM)は、仮想計算機で走行す
るオペレーティング・システムに対して、仮想記憶のペ
ージング・サポートを行なう。AIXは、VRMによっ
て行なわれる仮想記憶サポートを活用するように設計さ
れている。VRM仮想記憶サポートは、ハードウェア・
メモリ管理機能をAIXが利用できるようにし、それを
ページング手順の細部(ページ置換アルゴリズム、ペー
ジング入出力管理など)から解放する。
るオペレーティング・システムに対して、仮想記憶のペ
ージング・サポートを行なう。AIXは、VRMによっ
て行なわれる仮想記憶サポートを活用するように設計さ
れている。VRM仮想記憶サポートは、ハードウェア・
メモリ管理機能をAIXが利用できるようにし、それを
ページング手順の細部(ページ置換アルゴリズム、ペー
ジング入出力管理など)から解放する。
仮想記憶装置へのインターフェースは、1組のSVC,
プログラム・チエツク割込み(アドレス指定例外及び記
憶保護例外)、及びマシン通信割込み(ページ不在発生
及びクリア)から構成される。仮想計算機に提示される
メモリの基本モデルは、セグメントによる。
プログラム・チエツク割込み(アドレス指定例外及び記
憶保護例外)、及びマシン通信割込み(ページ不在発生
及びクリア)から構成される。仮想計算機に提示される
メモリの基本モデルは、セグメントによる。
セグメントを作成し、複写し、破壊し、セグメント特性
を操作する(サイズ及び記憶保護状況を変更することや
、セグメン)IDをハードウェア・メモリ管理セグメン
ト・レジスタにロードすることなどがその例である)た
めに、SvCが設けられている。また、AIXに仮想資
源マネージャ・ページ置換アルゴリズムに影響を及ぼす
能力を与えるために、SVCインターフェースも設けら
れている。このインターフェースを使って、AIXは、
1次記憶域からいくつかのページを除去し、1次記憶域
にいくつかのページを配置(pin) シ、あるいは以
前に配置されていたページを解除(unpin )する
ように、仮想資源マネージャに指令する。
を操作する(サイズ及び記憶保護状況を変更することや
、セグメン)IDをハードウェア・メモリ管理セグメン
ト・レジスタにロードすることなどがその例である)た
めに、SvCが設けられている。また、AIXに仮想資
源マネージャ・ページ置換アルゴリズムに影響を及ぼす
能力を与えるために、SVCインターフェースも設けら
れている。このインターフェースを使って、AIXは、
1次記憶域からいくつかのページを除去し、1次記憶域
にいくつかのページを配置(pin) シ、あるいは以
前に配置されていたページを解除(unpin )する
ように、仮想資源マネージャに指令する。
AIXオペレーティング・システムは、UNIXシステ
ムV (TM)の拡張である。その拡張機能の中には、
仮想記憶装置を利用する機能がある。
ムV (TM)の拡張である。その拡張機能の中には、
仮想記憶装置を利用する機能がある。
AIXは、仮想計算機内で仮想資源マネージャで走行す
る。カーネルは、AIXの仮想計算機オペレーティング
・システムの核心部であり、したがって、その常駐して
いる仮想計算機を構成する様々な装置及び資源のマネー
ジャである。要するに、これはあらゆる仮想計算機活動
及び仮想計算機資源の集中制御点である。
る。カーネルは、AIXの仮想計算機オペレーティング
・システムの核心部であり、したがって、その常駐して
いる仮想計算機を構成する様々な装置及び資源のマネー
ジャである。要するに、これはあらゆる仮想計算機活動
及び仮想計算機資源の集中制御点である。
AIXの内部は、仮想計算機中で走行でき、拡張プロセ
ス環境をもたらし、有用で安定なファイル・システムを
もたらすことができるように修正し拡張されている。シ
ステム・コール及びサブルーチン・インターフェースは
、UNIX互換システム用の多くのプログラム及びユー
ティリティがAIXで走行できるようにする。
ス環境をもたらし、有用で安定なファイル・システムを
もたらすことができるように修正し拡張されている。シ
ステム・コール及びサブルーチン・インターフェースは
、UNIX互換システム用の多くのプログラム及びユー
ティリティがAIXで走行できるようにする。
カーネルの実行する主な機能は、次の通りである。
ファイル・システム管理ニ
ーファイル:オープン、クローズ、読取う、書込み、所
有者変更、統計ゲット/変更、シーク。
有者変更、統計ゲット/変更、シーク。
−ファイル・システム:マウント、マウント解除、統計
ゲット。
ゲット。
−ディレクトリ:作業用ディレクトリ変更、ルート・デ
ィレクトリ変更、ディレクトリ作成、ファイルへのリン
ク、ファイルのリンク解除。
ィレクトリ変更、ディレクトリ作成、ファイルへのリン
ク、ファイルのリンク解除。
−安全保護:アクセス許可。
プロセス管理ニ
ー起動及び終了:プロセスのフォーク、このプロセスの
終了、別のプロセスのキル、プロセスeグループのキル 一プロセス・グループ設定 一情報的:アカウンティングのエネーブル/ディスエー
ブル、id (プロセス、親、グループ)ゲット、時間
ゲット 一優先順位提案 一子プロセスの終了待機 一メモリ中のデータやテキストやスタックをロック 一シグナル:シグナルの、エネーブル/ディスエーブル
、シグナルをユーザ・ルーチンまで経路指定、シグナル
待機 一セマフォア:セマフォア作成、セマフオアfdのゲッ
ト、セマフオア動作実行、セマフオア削除 メモリ管理ニ ー専用メモリ:拡大、縮小 一共用メモリ二作成、追加、削除 時間管理ニ ー時間設定 一時間ゲット プログラム管理ニ ー新しいプログラムの実行 一メモリ中のプログラムをロック 資源管理ニ ーユーザIDとグループIDの設定とゲット、−ユーザ
限界の設定とゲット カーネルを走行させる前に、まず、カーネルを仮想計算
機のセグメントO中にロードしなければならない。ブー
トストラップ・プログラムが、ルート・ファイル・シス
テムでカーネルを探し出し、それをメモリに読み込み、
最後にそれに制御権を渡す役割を果す。
終了、別のプロセスのキル、プロセスeグループのキル 一プロセス・グループ設定 一情報的:アカウンティングのエネーブル/ディスエー
ブル、id (プロセス、親、グループ)ゲット、時間
ゲット 一優先順位提案 一子プロセスの終了待機 一メモリ中のデータやテキストやスタックをロック 一シグナル:シグナルの、エネーブル/ディスエーブル
、シグナルをユーザ・ルーチンまで経路指定、シグナル
待機 一セマフォア:セマフォア作成、セマフオアfdのゲッ
ト、セマフオア動作実行、セマフオア削除 メモリ管理ニ ー専用メモリ:拡大、縮小 一共用メモリ二作成、追加、削除 時間管理ニ ー時間設定 一時間ゲット プログラム管理ニ ー新しいプログラムの実行 一メモリ中のプログラムをロック 資源管理ニ ーユーザIDとグループIDの設定とゲット、−ユーザ
限界の設定とゲット カーネルを走行させる前に、まず、カーネルを仮想計算
機のセグメントO中にロードしなければならない。ブー
トストラップ・プログラムが、ルート・ファイル・シス
テムでカーネルを探し出し、それをメモリに読み込み、
最後にそれに制御権を渡す役割を果す。
ブートストラップ・プログラムは、ルート・ファイル・
システムを捜索してファイル/unixを見つけ、その
テキスト及びデータ・セグメントをメモリに読み込み、
セグメントを拡張する。ブートストラップ・プログラム
は、道をゆずりカーネルをアドレス0から始まるように
移動させ、次いで、カーネルにそのスタート入口点で制
御を渡し、それによってブート・プロセスを完了する。
システムを捜索してファイル/unixを見つけ、その
テキスト及びデータ・セグメントをメモリに読み込み、
セグメントを拡張する。ブートストラップ・プログラム
は、道をゆずりカーネルをアドレス0から始まるように
移動させ、次いで、カーネルにそのスタート入口点で制
御を渡し、それによってブート・プロセスを完了する。
オペレーティング−システムにおける「プロセス」とは
、走行中のプログラムの現状態である。
、走行中のプログラムの現状態である。
それには、メモリ・イメージ(メモリ中にあるその部分
の論理的レイアウト)、プログラム・テキスト、プログ
ラム・データ、使用される変数、−汎用レジスタ値、使
用するオープン・ファイルの状態、及び現ディレクトリ
が含まれる。あるプロセスで走行するプログラムは、オ
ペレーティング・システム・プログラムでもユーザープ
ログラムでもよい。カーネルが実行すべきサービスを要
求するには、プロセスが活動状態でなければならない。
の論理的レイアウト)、プログラム・テキスト、プログ
ラム・データ、使用される変数、−汎用レジスタ値、使
用するオープン・ファイルの状態、及び現ディレクトリ
が含まれる。あるプロセスで走行するプログラムは、オ
ペレーティング・システム・プログラムでもユーザープ
ログラムでもよい。カーネルが実行すべきサービスを要
求するには、プロセスが活動状態でなければならない。
プロセスは、必要に応じて、メモリにページ・インされ
、メモリからページ・アウトされる。現在走行していな
いプロセスは、メモリからディスクにページ・アウトさ
れる資格がある。
、メモリからページ・アウトされる。現在走行していな
いプロセスは、メモリからディスクにページ・アウトさ
れる資格がある。
同じプロセスが、「ユーザ」モードにも、「カーネル」
モードにもなり得る。通常、実行中のユーザ・プログラ
ムをユーザ・プロセスと呼び、「ユーザ・モード」にあ
ると見なす。あるプロセスがシステムによって実行され
る機能を必要とする場合、システムをサブルーチンとし
て呼び出す。ユーザ・モードのプロセスは、システム・
コールを使って、システム資源にアクセスする。これは
、カーネル・コールと呼ばれることもある。ユーザ・プ
ロセスがシステム・コールを出すと、環境はユーザ・モ
ードからカーネル・モードに切り替わる。システムは、
同じプロセスを走行している。違いは、ユーザ・プロセ
スで走行しているコードが、この場合にはカーネル・コ
ードであることである。今、プロセスは、「カーネル・
モード」にある。カーネル・モードにあるプロセスは、
システムの完全な制御権をもつ。カーネルは、要求され
たサービスを完了すると、通常、そのプロセスのユーザ
・モードに制御を戻す。ユーザ・モードにあるプロセス
は、いつでも、優先使用(preempted )可能
である。一方、カーネル・モードにあるプロセスは、通
常、優先使用不可能である。通常、カーネル・モードに
あるプロセスは、処理装置の制御権を自発的に放棄する
まで走行する。
モードにもなり得る。通常、実行中のユーザ・プログラ
ムをユーザ・プロセスと呼び、「ユーザ・モード」にあ
ると見なす。あるプロセスがシステムによって実行され
る機能を必要とする場合、システムをサブルーチンとし
て呼び出す。ユーザ・モードのプロセスは、システム・
コールを使って、システム資源にアクセスする。これは
、カーネル・コールと呼ばれることもある。ユーザ・プ
ロセスがシステム・コールを出すと、環境はユーザ・モ
ードからカーネル・モードに切り替わる。システムは、
同じプロセスを走行している。違いは、ユーザ・プロセ
スで走行しているコードが、この場合にはカーネル・コ
ードであることである。今、プロセスは、「カーネル・
モード」にある。カーネル・モードにあるプロセスは、
システムの完全な制御権をもつ。カーネルは、要求され
たサービスを完了すると、通常、そのプロセスのユーザ
・モードに制御を戻す。ユーザ・モードにあるプロセス
は、いつでも、優先使用(preempted )可能
である。一方、カーネル・モードにあるプロセスは、通
常、優先使用不可能である。通常、カーネル・モードに
あるプロセスは、処理装置の制御権を自発的に放棄する
まで走行する。
ユーザ・モードからカーネル・モードへの切替えを促が
すことができる機構がいくつかある。切替えを起こす1
つのメカニズムは、システム・タイマである。システム
・タイマは、周期的に毎秒一定の間隔で処理装置に割り
込む。割込みとは、処理装置を特別なソフトウェア・ル
ーチンへ切り換える信号である。システム・タイマ用サ
ービス・ルーチンの間、カーネルは、プロセスの優先順
位を検査して、プロセスの変更があるかどうか調べる。
すことができる機構がいくつかある。切替えを起こす1
つのメカニズムは、システム・タイマである。システム
・タイマは、周期的に毎秒一定の間隔で処理装置に割り
込む。割込みとは、処理装置を特別なソフトウェア・ル
ーチンへ切り換える信号である。システム・タイマ用サ
ービス・ルーチンの間、カーネルは、プロセスの優先順
位を検査して、プロセスの変更があるかどうか調べる。
システム・スケジューラは、基本タイム・スライシング
を実行して、多数のユーザの間で処理装置を共用できる
ようにする。
を実行して、多数のユーザの間で処理装置を共用できる
ようにする。
入出力要求にサービスすることも、切替えをひき起こす
。割込みルーティンは、入出力動作の終了を通知する。
。割込みルーティンは、入出力動作の終了を通知する。
割込みルーティンは、デバイス待ち行列にある次の入出
力動作を開始させ、サービスを待っているすべてのプロ
セスに走行準備完了とマークし、必要に応じて、カーネ
ル・モードからユーザ・モードに戻るとき、プロセス・
スイッチをトリガするフラグを設定する。
力動作を開始させ、サービスを待っているすべてのプロ
セスに走行準備完了とマークし、必要に応じて、カーネ
ル・モードからユーザ・モードに戻るとき、プロセス・
スイッチをトリガするフラグを設定する。
仮想資源マネージャ(VRM)によって、オペレーティ
ング・システムにメモリ管理権が与えられる。VRMは
、オペレーティング・システムにページ付は仮想記憶域
を与える。ページ不在は、オペレーティング・システム
に割り込み、他のタスクに切り換えることができるよう
にする。仮想記憶機能は、割込みを適切に使用して、主
としてオペレーティング・システムからvRMへめSV
Cによって制御される。
ング・システムにメモリ管理権が与えられる。VRMは
、オペレーティング・システムにページ付は仮想記憶域
を与える。ページ不在は、オペレーティング・システム
に割り込み、他のタスクに切り換えることができるよう
にする。仮想記憶機能は、割込みを適切に使用して、主
としてオペレーティング・システムからvRMへめSV
Cによって制御される。
プロセスがユーザ・モードまたはカーネル・モードで走
行中のとき、プロセスの一部分をアドレスすることがで
きる。32ビツトの仮想アドレス空間が16個のセグメ
ントに分割される。各セグメントは、長さが2”28バ
イトである。セグメント・レジスタは、仮想計算機をセ
グメント化仮想記憶域に対してアクセス可能にする。仮
想記憶ハードウェアは同時に最大16個のセグメントへ
のアクセスを可能にする。RT PCインプリメンテ
ーシeンでは、ユーザ・モードのプロセスが、同時に1
4個のセグメントへのアクセスに制限されている。カー
ネル・モードのプロセスは、仮想計算機がアクセス可能
なすべてのセグメントに同時にアクセスすることを許さ
れている。セグメント・レジスタは、セグメント・アド
レスをセグメント・レジスタに選択的にロードし、各セ
グメント・レジスタでページ保護ビットを設定すること
によって、記憶セグメントを保護するためのいくつかの
機構を備えている。記憶保護設定は、どちらの計算機状
態でも、読取り保護または書込み保護あるいはその両方
を呼び出すための機構をもたらす。
行中のとき、プロセスの一部分をアドレスすることがで
きる。32ビツトの仮想アドレス空間が16個のセグメ
ントに分割される。各セグメントは、長さが2”28バ
イトである。セグメント・レジスタは、仮想計算機をセ
グメント化仮想記憶域に対してアクセス可能にする。仮
想記憶ハードウェアは同時に最大16個のセグメントへ
のアクセスを可能にする。RT PCインプリメンテ
ーシeンでは、ユーザ・モードのプロセスが、同時に1
4個のセグメントへのアクセスに制限されている。カー
ネル・モードのプロセスは、仮想計算機がアクセス可能
なすべてのセグメントに同時にアクセスすることを許さ
れている。セグメント・レジスタは、セグメント・アド
レスをセグメント・レジスタに選択的にロードし、各セ
グメント・レジスタでページ保護ビットを設定すること
によって、記憶セグメントを保護するためのいくつかの
機構を備えている。記憶保護設定は、どちらの計算機状
態でも、読取り保護または書込み保護あるいはその両方
を呼び出すための機構をもたらす。
各セグメント・レジスタは、論理的RT PCプログ
ラム・セグメントの一部または全部をマツプする。すべ
てのアドレスは、全部で32ビツトの仮想アドレスであ
り、セグメント番号が左端の4ビツトを占める。セグメ
ント・レジスタは、プロセス・イメージの一部であり、
したがって、各プロセスのディスパッチ時に切り替えら
れる。カーネルは、セグメント・レジスタ0によって、
マツプされる。このレジスタは、カーネル・プログラム
のテキスト、データ、及びすべての入出力バッファを含
む。このマツピングは、固定されている。
ラム・セグメントの一部または全部をマツプする。すべ
てのアドレスは、全部で32ビツトの仮想アドレスであ
り、セグメント番号が左端の4ビツトを占める。セグメ
ント・レジスタは、プロセス・イメージの一部であり、
したがって、各プロセスのディスパッチ時に切り替えら
れる。カーネルは、セグメント・レジスタ0によって、
マツプされる。このレジスタは、カーネル・プログラム
のテキスト、データ、及びすべての入出力バッファを含
む。このマツピングは、固定されている。
ユーザ・プログラム・テキスト・セグメントはセグメン
ト・レジスタ1によってアクセスされ、ユーザ・プログ
ラム・データ・セグメントはセグメント・レジスタ2に
よってアドレスされる。ユーザ・プロセス・スタック及
びユーザ構造(ユーザ・ブロック)は、セグメント・レ
ジスタ3によってアトレスサれる。ユーザ・プロセス・
スタブ°りは、高位のセグメント・アドレスから最低位
セグメント・アドレスへと(下方へ)成長して行く。セ
グメント・レジスタ4ないし13は、ユーザ・プログラ
ムにおける共用データの操作用に使われる。
ト・レジスタ1によってアクセスされ、ユーザ・プログ
ラム・データ・セグメントはセグメント・レジスタ2に
よってアドレスされる。ユーザ・プロセス・スタック及
びユーザ構造(ユーザ・ブロック)は、セグメント・レ
ジスタ3によってアトレスサれる。ユーザ・プロセス・
スタブ°りは、高位のセグメント・アドレスから最低位
セグメント・アドレスへと(下方へ)成長して行く。セ
グメント・レジスタ4ないし13は、ユーザ・プログラ
ムにおける共用データの操作用に使われる。
RT PCは、共用セグメント・システム・コールに
よってこれらのレジスタを操作するためのプログラム・
インターフェースをもたらす。
よってこれらのレジスタを操作するためのプログラム・
インターフェースをもたらす。
VRMは直接メモリ・アクセス(DMA)用にセグメン
ト・レジスタ14を予約し、ノくス入出力用にセグメン
ト・レジスタ15を予約する。このレジスタを使って、
入出力通信チャネル(IOCC)、浮動小数点アダプタ
(FPA)、メモリ・マツプ式アダプタがアドレスされ
る。
ト・レジスタ14を予約し、ノくス入出力用にセグメン
ト・レジスタ15を予約する。このレジスタを使って、
入出力通信チャネル(IOCC)、浮動小数点アダプタ
(FPA)、メモリ・マツプ式アダプタがアドレスされ
る。
ユーザ・モードにあるプロセスは、走行中に下記の論理
区域にアクセスする。これらの区域を使って、そのプロ
セスが使用する情報が記憶される。
区域にアクセスする。これらの区域を使って、そのプロ
セスが使用する情報が記憶される。
テキスト・セグメント:このセグメントは、セグメント
・レジスタ1によってマツプされ、ユーザ・モードにあ
るプロセスによりアドレス可能である。「テキスト」セ
グメントは、プロセスの仮想アドレス空間の低位アドレ
スを占める。通常、このセグメントは、実行されるユー
ザ・プログラム・コードを含んでいる。このセグメント
中の情報は、eXecシステム・コールを実行したロー
ド・モジュールに由来する。(execシステムeコー
ルについては、後段で簡単に論じる。)実行中、このセ
グメントは読取り専用であり、そのひとつのコピーが、
同じコードを実行する全プロセスに共用される。
・レジスタ1によってマツプされ、ユーザ・モードにあ
るプロセスによりアドレス可能である。「テキスト」セ
グメントは、プロセスの仮想アドレス空間の低位アドレ
スを占める。通常、このセグメントは、実行されるユー
ザ・プログラム・コードを含んでいる。このセグメント
中の情報は、eXecシステム・コールを実行したロー
ド・モジュールに由来する。(execシステムeコー
ルについては、後段で簡単に論じる。)実行中、このセ
グメントは読取り専用であり、そのひとつのコピーが、
同じコードを実行する全プロセスに共用される。
データ・セグメント:このセグメントは、セグメント・
レジスタによってマツプされ、ユーザ・モードのプロセ
スによりアドレス可能である。ユーザ・プロセスの「デ
ータ」セグメントは、そのテキスト・セグメントより上
の論理境界で始まる。
レジスタによってマツプされ、ユーザ・モードのプロセ
スによりアドレス可能である。ユーザ・プロセスの「デ
ータ」セグメントは、そのテキスト・セグメントより上
の論理境界で始まる。
プロセスは、このセグメントに対して読取りアクセス及
び書込みアクセスできる。このセグメント “は他のプ
ロセスに共用されず、そのサイズは拡張できる。このセ
グメントは、アレイなどのデータ変数用に使用される初
期化部分を含む。
び書込みアクセスできる。このセグメント “は他のプ
ロセスに共用されず、そのサイズは拡張できる。このセ
グメントは、アレイなどのデータ変数用に使用される初
期化部分を含む。
スタック・セグメント:このセグメントは、セグメント
・レジスタ3によってマツプされ、ユーザ・モードにあ
るプロセスにより部分的にアドレス可能である。このセ
グメントは、ユーザ・プロセス舎スタック及びユーザ構
造(ru、blockJ )を含む。ユーザ構造は、ユ
ーザ・モードにあるプロセスによりアドレス可能でない
。ユーザ・プロセスのこのセグメントは、プロセスの仮
想アドレス空間の高位アドレスから始まり、必要に応じ
て、データ・セグメントに向かって自動的にサイズが増
大する。このセグメントは、プログラム用の実行時スタ
ックを含んでおり、それにユーザ・プログラムが書き込
むことができる。プロセスは、このセグメントの最上部
を使って、入出力情報をカーネルに渡す。
・レジスタ3によってマツプされ、ユーザ・モードにあ
るプロセスにより部分的にアドレス可能である。このセ
グメントは、ユーザ・プロセス舎スタック及びユーザ構
造(ru、blockJ )を含む。ユーザ構造は、ユ
ーザ・モードにあるプロセスによりアドレス可能でない
。ユーザ・プロセスのこのセグメントは、プロセスの仮
想アドレス空間の高位アドレスから始まり、必要に応じ
て、データ・セグメントに向かって自動的にサイズが増
大する。このセグメントは、プログラム用の実行時スタ
ックを含んでおり、それにユーザ・プログラムが書き込
むことができる。プロセスは、このセグメントの最上部
を使って、入出力情報をカーネルに渡す。
各プロセスが使用するテキスト・セグメント、データ・
セグメント、スタック・セグメントに加えて、プロセス
は、その他のプロセスからアクセス可能なセグメントを
作成しまたは自身に付加することができる。共用セグメ
ントを使用するために1組のシステム・コールが使用で
きる。共用セグメントが生成または付加されると、その
共用セグメントは、要求側プロセスのアドレス空間の一
部となる。
セグメント、スタック・セグメントに加えて、プロセス
は、その他のプロセスからアクセス可能なセグメントを
作成しまたは自身に付加することができる。共用セグメ
ントを使用するために1組のシステム・コールが使用で
きる。共用セグメントが生成または付加されると、その
共用セグメントは、要求側プロセスのアドレス空間の一
部となる。
共用セグメントは、読取り専用モードでも読み書きモー
ドでも使用できる。2つ以上のプロセスが同じ共用セグ
メントにアクセスする場合、暗黙の直列化サポートはな
いことに留意されたい。あるプロセスが共用セグメント
の特定の区域から読み取る場合、共用区域に対するそれ
らのアクセスの調整は、その2つ以上のプロセスが担当
する。
ドでも使用できる。2つ以上のプロセスが同じ共用セグ
メントにアクセスする場合、暗黙の直列化サポートはな
いことに留意されたい。あるプロセスが共用セグメント
の特定の区域から読み取る場合、共用区域に対するそれ
らのアクセスの調整は、その2つ以上のプロセスが担当
する。
セグメントの共用以外に、プロセスが、マウントされた
ファイルφシステム中の通常のファイルの上に共用セグ
メントのアドレス範囲を論理的に重ね合わすことができ
るようにする、システム・コールが使用可能である。次
いで、そのセグメントにアクセスす葛ことにより、その
ファイルへのアクセスが可能となる。セグメントをその
他のプロセスと共用することもでき、1つのプロセスだ
けで使用することもできる。セグメントごとにファイル
にマツプするモードが3つある。それは、読み書きモー
ド、読取り専用モード、書込み時複写(copy−on
−wr ite )モードである。
ファイルφシステム中の通常のファイルの上に共用セグ
メントのアドレス範囲を論理的に重ね合わすことができ
るようにする、システム・コールが使用可能である。次
いで、そのセグメントにアクセスす葛ことにより、その
ファイルへのアクセスが可能となる。セグメントをその
他のプロセスと共用することもでき、1つのプロセスだ
けで使用することもできる。セグメントごとにファイル
にマツプするモードが3つある。それは、読み書きモー
ド、読取り専用モード、書込み時複写(copy−on
−wr ite )モードである。
ファイル・マツプ式読み書きモードは、セグメントに対
するロード及び記憶を、対応するファイルへの読取り及
び書込みのように振舞わせる。プロセスがファイルの論
理的路りを越えたセグメントの部分を読み取る場合、プ
ロセスはゼロを読み取ることになる。プロセスがファイ
ルの終りを越えたセグメントの部分に書き込む場合、フ
ァイルが拡張される。
するロード及び記憶を、対応するファイルへの読取り及
び書込みのように振舞わせる。プロセスがファイルの論
理的路りを越えたセグメントの部分を読み取る場合、プ
ロセスはゼロを読み取ることになる。プロセスがファイ
ルの終りを越えたセグメントの部分に書き込む場合、フ
ァイルが拡張される。
ファイル・マツプ式読取専用モードは、ファイルを読み
取りだけさせる。セグメントに記憶することによってフ
ァイルに書き込もうと試みると、プロセスにエラーが知
らされる。読み書きモードと同じように、ファイルの終
りを越えたセグメントの部分にアクセスしたプロセスは
、ゼロを読取る。
取りだけさせる。セグメントに記憶することによってフ
ァイルに書き込もうと試みると、プロセスにエラーが知
らされる。読み書きモードと同じように、ファイルの終
りを越えたセグメントの部分にアクセスしたプロセスは
、ゼロを読取る。
ファイル・マツプ式書込み時複写モードは、書込みが一
時的なことを除けば、セグメントに対するロード及び記
憶を、対応するファイルの読取り及び書込みのように振
舞わせる。すなわち、書込み時複写セグメントに記憶す
ると、セグメントは修正されるが、対応するファイルは
修正されない。
時的なことを除けば、セグメントに対するロード及び記
憶を、対応するファイルの読取り及び書込みのように振
舞わせる。すなわち、書込み時複写セグメントに記憶す
ると、セグメントは修正されるが、対応するファイルは
修正されない。
fsyncシステム・コールは、セグメントの変更され
た部分を対応するファイルに書き込み、それにより、マ
ツプ済みファイルをセグメントの正確なコピーにする。
た部分を対応するファイルに書き込み、それにより、マ
ツプ済みファイルをセグメントの正確なコピーにする。
このシステム・コールが出ない場合、ファイルは変更さ
れず、その変更が必要でないとプロセスが判定する場合
、プロセスがファイルに対して行なった変更を取り消す
ことを可能にする。
れず、その変更が必要でないとプロセスが判定する場合
、プロセスがファイルに対して行なった変更を取り消す
ことを可能にする。
次のような区域が、カーネル・モードのプロセスによっ
てアドレス可能である。特に言及する場合を除き、これ
らの区域はレジスタ0によってマツプされる。プロセス
に直接関連するデータは、そのプロセスとともにメモリ
からページ・アウトされる。これらの区域は、プロセス
が活動状態のときカーネルが必要とするプロセスに関す
るあらゆるデータを含む。その4つの区域は、次の通り
である。
てアドレス可能である。特に言及する場合を除き、これ
らの区域はレジスタ0によってマツプされる。プロセス
に直接関連するデータは、そのプロセスとともにメモリ
からページ・アウトされる。これらの区域は、プロセス
が活動状態のときカーネルが必要とするプロセスに関す
るあらゆるデータを含む。その4つの区域は、次の通り
である。
テキスト:これは、実行されるカーネル・プログラム・
コードを含んでおり、ユーザ・プロセスには読み取り専
用である。
コードを含んでおり、ユーザ・プロセスには読み取り専
用である。
グローバル・データ:このデータは、カーネル・モード
中にどのプロセスでもアドレスできる。これは、オープ
ン・ファイル・テーブルやプロセス・テーブルなどのテ
ーブル、及びカーネルが維持しているバッファ・ポイン
タなどの他のデータを含む。
中にどのプロセスでもアドレスできる。これは、オープ
ン・ファイル・テーブルやプロセス・テーブルなどのテ
ーブル、及びカーネルが維持しているバッファ・ポイン
タなどの他のデータを含む。
プロセス別データ:これは、「ユーザ構造」、「ユーザ
区域」、ru、areaJ、「ユーザ・ブロック」、r
u、blockJとも呼ばれ、ユーザ・プロセス・スタ
ックの一部である。この区域は、プロセスニよってペー
ジ付けされ、カーネル・モードでプロセスまたは入出力
によってオープンされたファイルの現ディレクトリなど
のプロセス情報を含む。
区域」、ru、areaJ、「ユーザ・ブロック」、r
u、blockJとも呼ばれ、ユーザ・プロセス・スタ
ックの一部である。この区域は、プロセスニよってペー
ジ付けされ、カーネル・モードでプロセスまたは入出力
によってオープンされたファイルの現ディレクトリなど
のプロセス情報を含む。
この情報は、スタック・セグメントの最上部を占める。
スタック:この区域は、ユーザ・プロセスによってペー
ジ付けされる。カーネルは各プロセスごとに1つのスタ
ックを維持する。スタックは、コール鎖やユーザ・プロ
セスのためカーネルが使用するローカル変数などのプロ
セス情報を保管する。
ジ付けされる。カーネルは各プロセスごとに1つのスタ
ックを維持する。スタックは、コール鎖やユーザ・プロ
セスのためカーネルが使用するローカル変数などのプロ
セス情報を保管する。
カーネルが実行する大部分のプロセス管理は、テーブル
の探索及び修正である。カーネルは、多数のプロセスの
走行を調整するためのいくつかのテーブルを維持する。
の探索及び修正である。カーネルは、多数のプロセスの
走行を調整するためのいくつかのテーブルを維持する。
第4図は、プロセスを管理するためにカーネルが維持す
るテーブルを示す。
るテーブルを示す。
「プロセス・テーブル」は、各プロセスごとに生成され
る項目を含む。このテーブルは、プロセスが走行中でな
い場合に必要な項目を含む。このテーブルは、カーネル
がプロセスに対する事象を管理できるように、常にメモ
リ中にある。各テーブル項目はプロセスの状態を詳述す
る。状態情報には、プロセスのセグメントID1プロセ
スの識別番号、プロセスを走行させるユーザのIDが含
まれる。各プロセスごとに、テーブル項目が1個ずつあ
る。したがって、作成できるプロセスの数は、/etc
/璽aster ファイルで特別設定パラメータpro
csとして指定される、テーブルのサイズによって決ま
る。プロセスが作成されると、プロセス・テーブル中に
項目が生じ、プロセスが終了すると、プロセス・テーブ
ル中の項目が空になる。
る項目を含む。このテーブルは、プロセスが走行中でな
い場合に必要な項目を含む。このテーブルは、カーネル
がプロセスに対する事象を管理できるように、常にメモ
リ中にある。各テーブル項目はプロセスの状態を詳述す
る。状態情報には、プロセスのセグメントID1プロセ
スの識別番号、プロセスを走行させるユーザのIDが含
まれる。各プロセスごとに、テーブル項目が1個ずつあ
る。したがって、作成できるプロセスの数は、/etc
/璽aster ファイルで特別設定パラメータpro
csとして指定される、テーブルのサイズによって決ま
る。プロセスが作成されると、プロセス・テーブル中に
項目が生じ、プロセスが終了すると、プロセス・テーブ
ル中の項目が空になる。
「スーパーユーザ」の権限を存するプロセス用に1個の
テーブル項目が予約されている。プロセスは、その有効
ユーザIDがOの場合、「スーパーユーザ」と認識され
、これに特別の特権が与えられる。
テーブル項目が予約されている。プロセスは、その有効
ユーザIDがOの場合、「スーパーユーザ」と認識され
、これに特別の特権が与えられる。
各プロセスは、それ自体がプロセスの可変セグメントの
コピーを有するが、テキスト・セグメントは共用できる
。プログラム・テキストが共用されるため、メモリがよ
り有効に利用できる。テキスト・セグメントがプロセス
に共用される場合、システムは「テキスト・テーブル」
を維持する。
コピーを有するが、テキスト・セグメントは共用できる
。プログラム・テキストが共用されるため、メモリがよ
り有効に利用できる。テキスト・セグメントがプロセス
に共用される場合、システムは「テキスト・テーブル」
を維持する。
このテーブルを使って、あるテキスト・セグメントを共
用している各プロセスごとに共用テキスト・セグメント
を記録する(たとえば、フォーク後に、親プロセスと子
プロセスはテキストを共用できる)。このテーブルの構
造は、ファイル・システム中の/usr / 1ncl
ude/sys /1ext、hに出ている。テキスト
・テーブル項目は、テキスト・セグメントのセグメン)
ID1及びこの項目を共用するプロセスの数を含む。番
号が0に減少すると、その項目がセグメントと一緒に解
放される。共用テキスト・セグメントを実行する第1の
プロセスが、テキスト・テーブル項目を割り振り、セグ
メントを生成させる。既に割振り済みのテキスト・セグ
メントを実行する第2のプロセスは、テキスト・テーブ
ル中の番号をi分させる。
用している各プロセスごとに共用テキスト・セグメント
を記録する(たとえば、フォーク後に、親プロセスと子
プロセスはテキストを共用できる)。このテーブルの構
造は、ファイル・システム中の/usr / 1ncl
ude/sys /1ext、hに出ている。テキスト
・テーブル項目は、テキスト・セグメントのセグメン)
ID1及びこの項目を共用するプロセスの数を含む。番
号が0に減少すると、その項目がセグメントと一緒に解
放される。共用テキスト・セグメントを実行する第1の
プロセスが、テキスト・テーブル項目を割り振り、セグ
メントを生成させる。既に割振り済みのテキスト・セグ
メントを実行する第2のプロセスは、テキスト・テーブ
ル中の番号をi分させる。
「ユーザ構造」 (プロセス別データ域またはユーザ・
ブロックとも呼ばれる)は、プロセスの実行中にアクセ
ス可能でなければならない情報を含む。
ブロックとも呼ばれる)は、プロセスの実行中にアクセ
ス可能でなければならない情報を含む。
各活動プロセスごとに1個のユーザ構造が割り振られる
。ユーザ構造は、カーネル・ルーチンに直接アクセスで
きる。このブロックは、ファイル・アクセス特権を決定
するためのユーザ識別番号及びグループ識別番号、プロ
セスによってオープンされたファイル用のシステム・フ
ァイル・テーブルを指すポインタ、iノード・テーブル
項目を指すポインタ、様々な信号に対する応答のリスト
などの情報を含んでいる。ユーザ構造は、ユーザ・スタ
ック・セグメントの一部である。
。ユーザ構造は、カーネル・ルーチンに直接アクセスで
きる。このブロックは、ファイル・アクセス特権を決定
するためのユーザ識別番号及びグループ識別番号、プロ
セスによってオープンされたファイル用のシステム・フ
ァイル・テーブルを指すポインタ、iノード・テーブル
項目を指すポインタ、様々な信号に対する応答のリスト
などの情報を含んでいる。ユーザ構造は、ユーザ・スタ
ック・セグメントの一部である。
「ユーザ・データ・セグメント」は、ユーザ・データを
含む。その情報は、初期化されたデータ変数から構成さ
れる。このセグメントを指すポインタは、プロセス・テ
ーブル項目中にある。ユーザφテキスト・セグメントは
、プログラム・コードを含む。このセグメントを指すポ
インタはプロセス・テーブル中にあり、共用される場合
は、テキスト・テーブル中にある。
含む。その情報は、初期化されたデータ変数から構成さ
れる。このセグメントを指すポインタは、プロセス・テ
ーブル項目中にある。ユーザφテキスト・セグメントは
、プログラム・コードを含む。このセグメントを指すポ
インタはプロセス・テーブル中にあり、共用される場合
は、テキスト・テーブル中にある。
作成及び実行:/unix ファイルが見つかると、セ
グメントOにロードされて、実行される。まず、このフ
ァイルは、自由リスト・ブロック、入出力バッフトフー
ル、文字バッファ・プール、使用可能なiノードのリス
トなどのディスク・データ構造を初期化する。初期化が
完了した後、カーネルは、第5図に示すように、「スケ
ジューラjとも呼ばれる第1のプロセス(プロセスO)
の作成を開始する。スケジューラは、他のプロセスのよ
うに(後述する) fork システム・コールによっ
て作成されず、プロセスのすべての部分は含まない。こ
れは、カーネルが使用すべきデータ構造だけを含むユニ
ークなプロセスである。プロセス0は、プロセス・テー
ブル中の最初の項目であり、プロセッサがカーネル・モ
ードのときだけ活動状態になる。
グメントOにロードされて、実行される。まず、このフ
ァイルは、自由リスト・ブロック、入出力バッフトフー
ル、文字バッファ・プール、使用可能なiノードのリス
トなどのディスク・データ構造を初期化する。初期化が
完了した後、カーネルは、第5図に示すように、「スケ
ジューラjとも呼ばれる第1のプロセス(プロセスO)
の作成を開始する。スケジューラは、他のプロセスのよ
うに(後述する) fork システム・コールによっ
て作成されず、プロセスのすべての部分は含まない。こ
れは、カーネルが使用すべきデータ構造だけを含むユニ
ークなプロセスである。プロセス0は、プロセス・テー
ブル中の最初の項目であり、プロセッサがカーネル・モ
ードのときだけ活動状態になる。
プロセス0は、それ自体を複写することにより、もう一
つのプロセス(プロセス1)を生成する。
つのプロセス(プロセス1)を生成する。
プロセスエは、rfnitJプロセスとも呼ばれる。
プロセス1のサイズを拡大するために、システムはbr
k システム・コールの等価コールを出す。
k システム・コールの等価コールを出す。
次に、eXeeシステム・コールを実行する命令を含む
プログラムが、新たに作成されたプロセス1のテキスト
・セグメント中に複写される。
プログラムが、新たに作成されたプロセス1のテキスト
・セグメント中に複写される。
プロセスOは、完成したプロセス・イメージではない。
カーネルはこのプロセスを使って、その他のシステム−
プロセスの動作をスケジュールし制御する。プロセス1
は、第1の完成したプロセス・イメージであり、後続の
すべてのプロセスの先祖プロセスである。どちらのプロ
セスも走行していない。スケジューラが、走行の準備の
できた第1のプロセスを指名する。走行準備ができてい
るプロセスは一つだけであり、したがって、プロセス1
が走行する。プロセス1は、直ちにexecシステム・
コールを実行して、それ自体に/etc/init フ
ァイルからのコードをオーバーレイする。
プロセスの動作をスケジュールし制御する。プロセス1
は、第1の完成したプロセス・イメージであり、後続の
すべてのプロセスの先祖プロセスである。どちらのプロ
セスも走行していない。スケジューラが、走行の準備の
できた第1のプロセスを指名する。走行準備ができてい
るプロセスは一つだけであり、したがって、プロセス1
が走行する。プロセス1は、直ちにexecシステム・
コールを実行して、それ自体に/etc/init フ
ァイルからのコードをオーバーレイする。
上記のように、他のすべてのプロセスはこのinitプ
ロセスの子孫である。通常、initプロセスがシェル
・スクリプト/etc/re を実行する。
ロセスの子孫である。通常、initプロセスがシェル
・スクリプト/etc/re を実行する。
rrcシェルJスクリプトは、保全性検査を行ない、必
要な終結処置を行ない、通常のファイル・システムをマ
ウントシ、標準ボートを使用可能にする役割を負う。/
etc/reがうまく走行した後、initプロセスは
、/etc/port ファイルで指定された各使用可
能ポートごとに、forkシステム・コールを使ってg
ettyを生成する。initプロセスは、getty
に対するexec システム・コールを行なって、適当
な端末速度及びモードを決定する。
要な終結処置を行ない、通常のファイル・システムをマ
ウントシ、標準ボートを使用可能にする役割を負う。/
etc/reがうまく走行した後、initプロセスは
、/etc/port ファイルで指定された各使用可
能ポートごとに、forkシステム・コールを使ってg
ettyを生成する。initプロセスは、getty
に対するexec システム・コールを行なって、適当
な端末速度及びモードを決定する。
gettyプログラムは、loginに対するexec
システム・コールを行なってパスワードを検証し、ユ
ーザID(■ID)、グループI D (GID) 、
現ディレクトリなどを設定する。loginは、log
in後に走行すべき最初のプログラムとして、シェルま
たは/ etc / passvd ファイル中で指定
されるプログラムを実行する。シェルは、fnff;に
よって作成された同じプロセス中で走行する。シェルは
、forkシステム・コールを実行して、各コマンドご
とに新しいプロセスを作成させ゛る。システムの走行中
、init プロセスは、そのいずれかの子プロセスの
終了を待ちながら休止している。ユーザがログ・アウト
すると、initはforkによって新しいロガーを作
成する。
システム・コールを行なってパスワードを検証し、ユ
ーザID(■ID)、グループI D (GID) 、
現ディレクトリなどを設定する。loginは、log
in後に走行すべき最初のプログラムとして、シェルま
たは/ etc / passvd ファイル中で指定
されるプログラムを実行する。シェルは、fnff;に
よって作成された同じプロセス中で走行する。シェルは
、forkシステム・コールを実行して、各コマンドご
とに新しいプロセスを作成させ゛る。システムの走行中
、init プロセスは、そのいずれかの子プロセスの
終了を待ちながら休止している。ユーザがログ・アウト
すると、initはforkによって新しいロガーを作
成する。
[7”ロセス及び子プロセス:プロセスは様々の理由か
ら、それ自体のコピーを作成する。そうしたとき、もと
のプロセスは「親プロセス」と呼ばれ、新しく作成され
たプロセスは「子プロセス」と呼ばれる。もとのプロセ
スである親プロセスと、作成されたプロセスである子プ
ロセスの主な違いは、両者のプロセス識別番号、親プロ
セス識別番号、及び時間計測情報が異なることである。
ら、それ自体のコピーを作成する。そうしたとき、もと
のプロセスは「親プロセス」と呼ばれ、新しく作成され
たプロセスは「子プロセス」と呼ばれる。もとのプロセ
スである親プロセスと、作成されたプロセスである子プ
ロセスの主な違いは、両者のプロセス識別番号、親プロ
セス識別番号、及び時間計測情報が異なることである。
fork システム・コールは、システム・プロセスの
合計数を増加させる。プロセスは、fork システム
・コールを使ってそれ自体のコピーを作成する。for
k システム・コールは、新しいプロセスである子プロ
セスを作成させる。上記に挙げた違いの他に、それぞれ
forkシステム・コールから異なる値を受は取る。(
子プロセスは値0を受は取り、親プロセスは子プロセス
のIDを受は取る。)両プロセスはオープン・ファイル
を共用し、各プロセスは、受は取った値によって自身が
親プロセスがそれとも子プロセスか判定することができ
る。親プロセスは、子プロセスの終了を待つことも待た
ないこともある。
合計数を増加させる。プロセスは、fork システム
・コールを使ってそれ自体のコピーを作成する。for
k システム・コールは、新しいプロセスである子プロ
セスを作成させる。上記に挙げた違いの他に、それぞれ
forkシステム・コールから異なる値を受は取る。(
子プロセスは値0を受は取り、親プロセスは子プロセス
のIDを受は取る。)両プロセスはオープン・ファイル
を共用し、各プロセスは、受は取った値によって自身が
親プロセスがそれとも子プロセスか判定することができ
る。親プロセスは、子プロセスの終了を待つことも待た
ないこともある。
exec システム・コールは、プロセスにそれが含む
情報に新しい情報をオーバーレイさせる。
情報に新しい情報をオーバーレイさせる。
exec システム・コール中に、プロセスハ、現テキ
スト・セグメント及び現データ・セグメントを新テキス
ト・セグメント及び新データ・セグメントと交換する。
スト・セグメント及び現データ・セグメントを新テキス
ト・セグメント及び新データ・セグメントと交換する。
システム・プロセスの合計数は変化せず、execを出
したプロセスだけが影響を受ける。execシステム・
コールの後、プロセス識別番号は同じであり、オープン
・ファイルは(実行時にクローズされているファイルを
除き)オープンしたままになる。
したプロセスだけが影響を受ける。execシステム・
コールの後、プロセス識別番号は同じであり、オープン
・ファイルは(実行時にクローズされているファイルを
除き)オープンしたままになる。
exit システム・コールは、exitを出したプロ
セスを終了させる。そのプロセスによるファイル・アク
セスはすべてクローズされ、待機中の親プロセスに通知
される。ゾンビ・プロセスは、その項目がプロセス・テ
ーブル中に残っている終了したプロセスである。親プロ
セスは、プロセス・テーブルから項目をクリアする役割
を担う。その親プロセスが終了した子プロセスの場合、
1n5tが親プロセスとなり、項目をクリアする。アカ
ウンティングが使用可能な場合・、exitはアカウン
ティング・レコードを書き込む。
セスを終了させる。そのプロセスによるファイル・アク
セスはすべてクローズされ、待機中の親プロセスに通知
される。ゾンビ・プロセスは、その項目がプロセス・テ
ーブル中に残っている終了したプロセスである。親プロ
セスは、プロセス・テーブルから項目をクリアする役割
を担う。その親プロセスが終了した子プロセスの場合、
1n5tが親プロセスとなり、項目をクリアする。アカ
ウンティングが使用可能な場合・、exitはアカウン
ティング・レコードを書き込む。
wait システム・コー、ルは、子プロセスが脱出す
るか、子プロセスが(その親プロセスによってトレース
される)トレース・モードで停止するか、あるいは呼出
し側プロセスがシグナルを受は取るまで、呼出し側プロ
セスを中断させる。wait システム・コールは終了
状況、すなわちexitから渡された1バイト(ハイ)
及びシステムの1バイト(ロー)を親プロセスに渡す。
るか、子プロセスが(その親プロセスによってトレース
される)トレース・モードで停止するか、あるいは呼出
し側プロセスがシグナルを受は取るまで、呼出し側プロ
セスを中断させる。wait システム・コールは終了
状況、すなわちexitから渡された1バイト(ハイ)
及びシステムの1バイト(ロー)を親プロセスに渡す。
このシステム・コールはまた、プロセス・テーブルから
ゾンビ・プロセスを除去する。
ゾンビ・プロセスを除去する。
第6図に示す次のようなシナリオは、親プロセスと子プ
ロセスの関係、及びそれらを同期させるためのシステム
・コールを示したものである。親プロセスが子プロセス
よりも前に終了できることに留意されたい。この場合は
、initプロセスが親プロセスの役割を果す。
ロセスの関係、及びそれらを同期させるためのシステム
・コールを示したものである。親プロセスが子プロセス
よりも前に終了できることに留意されたい。この場合は
、initプロセスが親プロセスの役割を果す。
親プロセスは、forkシステム・コールヲ実行して、
新しいプロセスを作成する。新しいプロセスは、eXe
Cシステム・コールを実行して、新しいIDをもつ子プ
ロセスを作成する。これは、「シェル」がプログラムを
実行するときに使用する手順に類似している。wait
システム・コールは親プロセスに子プロセスが処理を
終えるのを待たせる。対話式に走行するとき、シェル・
プロセスはforkシステム・コールを実行し、子プロ
セス(新プロセス中で走行するシェル)は、必要なプロ
グラムに対するexecシステム・コールを実行し、親
プロセス(シェル)は、waitシステム・コールを実
行して子プロセスが走行し終えるのを待つ。子プロセス
がexitシステム・コールヲ実行すると、親プロセス
は子プロセス用のプロセス・テーブル項目を移動させ、
次のコマンドを求めるプロンプトを出す。背景で′走行
中のとき、シェル・プロセスは子プロセスのプロセスI
Dを印刷スるだけで、子プロセスが終了するのを待たな
い。両者が対話式に走行する場合の親プロセスと子プロ
セスの関係については、第6図を参照されたい。
新しいプロセスを作成する。新しいプロセスは、eXe
Cシステム・コールを実行して、新しいIDをもつ子プ
ロセスを作成する。これは、「シェル」がプログラムを
実行するときに使用する手順に類似している。wait
システム・コールは親プロセスに子プロセスが処理を
終えるのを待たせる。対話式に走行するとき、シェル・
プロセスはforkシステム・コールを実行し、子プロ
セス(新プロセス中で走行するシェル)は、必要なプロ
グラムに対するexecシステム・コールを実行し、親
プロセス(シェル)は、waitシステム・コールを実
行して子プロセスが走行し終えるのを待つ。子プロセス
がexitシステム・コールヲ実行すると、親プロセス
は子プロセス用のプロセス・テーブル項目を移動させ、
次のコマンドを求めるプロンプトを出す。背景で′走行
中のとき、シェル・プロセスは子プロセスのプロセスI
Dを印刷スるだけで、子プロセスが終了するのを待たな
い。両者が対話式に走行する場合の親プロセスと子プロ
セスの関係については、第6図を参照されたい。
プロセスの状態:第7図に示すように、プロセスは、多
くの状態のうちの1つの状態をとり得る。
くの状態のうちの1つの状態をとり得る。
プロセスは、走行準備完了、走行中、(事象を待つて)
休止中、停止または、終了の状態をとり得る。
休止中、停止または、終了の状態をとり得る。
スケジューラは、競合プロセスがどの順序で実行される
かを決定する。第7図に、プロセス状態、及びそれらの
状態を変更する事象を示す。
かを決定する。第7図に、プロセス状態、及びそれらの
状態を変更する事象を示す。
ある時点で、1つのユーザ・プロセスだけが活動状態ま
たは走行状態である。他のすべてのユーザ・プロセスは
走行を中断される。たとえば、その子プロセスのいずれ
かが終了するのを待っているプロセスは、それ自体のプ
ロセス・テーブル項目のアドレスであるある事象を待つ
。プロセスが終了すると、その親プロセスのプロセス−
テーブル項目で表わされる事象を知らせる。その事象が
発生すると、そのプロセスは覚醒する。プロセスが覚醒
すると、プロセスは走行の準備ができており、すなわち
そのプロセスはディスパッチされる資格がある。通常、
プロセスは、休止しない限り、完了するまで走行する。
たは走行状態である。他のすべてのユーザ・プロセスは
走行を中断される。たとえば、その子プロセスのいずれ
かが終了するのを待っているプロセスは、それ自体のプ
ロセス・テーブル項目のアドレスであるある事象を待つ
。プロセスが終了すると、その親プロセスのプロセス−
テーブル項目で表わされる事象を知らせる。その事象が
発生すると、そのプロセスは覚醒する。プロセスが覚醒
すると、プロセスは走行の準備ができており、すなわち
そのプロセスはディスパッチされる資格がある。通常、
プロセスは、休止しない限り、完了するまで走行する。
プロセスが休止する理由としては、入力または出力が終
了するのを待つ、タイム・スライス、事象の発生を待つ
、あるいは他のプロセスからのシグナルなどがある。各
タイマ割込み時に、タイマ割込みルーチンがプロセス待
ち行列を調べ、プロセス切替えを起こすことができる。
了するのを待つ、タイム・スライス、事象の発生を待つ
、あるいは他のプロセスからのシグナルなどがある。各
タイマ割込み時に、タイマ割込みルーチンがプロセス待
ち行列を調べ、プロセス切替えを起こすことができる。
プロセスは、休止中にメモリからページφアウトされる
ことがある。プロセス切替えルーチンはページ・アウト
されたプロセスを再始動させない。この切替えルーチン
は、プロセスを再始動させる前に、カーネルとそのプロ
セス用ユーザ・データがアドレス可能かどうか検査する
。
ことがある。プロセス切替えルーチンはページ・アウト
されたプロセスを再始動させない。この切替えルーチン
は、プロセスを再始動させる前に、カーネルとそのプロ
セス用ユーザ・データがアドレス可能かどうか検査する
。
処理装置の制御権を放棄するプロセスは、通常、いくつ
かの入出力が実行されるのを待っている。
かの入出力が実行されるのを待っている。
その場合、プロセスは通常、カーネル・データ構造のア
ドレスとなっていて、覚醒優先順位を指定するchan
を指定する5leepコールを出す。通常、同じcha
nを指定するvakeupコールが出されるまで、プロ
セスは休止したままでいる。覚醒優先順位がシグナルを
処理するのに充分な低さの場合、プロセスは覚醒し、休
止前と同じモードで再始動される。′多数のプロセスが
、メモリ割振りなど、同じ事象が発生するのを待つこと
がある。
ドレスとなっていて、覚醒優先順位を指定するchan
を指定する5leepコールを出す。通常、同じcha
nを指定するvakeupコールが出されるまで、プロ
セスは休止したままでいる。覚醒優先順位がシグナルを
処理するのに充分な低さの場合、プロセスは覚醒し、休
止前と同じモードで再始動される。′多数のプロセスが
、メモリ割振りなど、同じ事象が発生するのを待つこと
がある。
このことがありうるので、プロセスが休止から戻るとき
、プロセスはまず、事象または資源が同じchan を
待っている別のプロセスによって捕捉されていないかど
うか検査しなければならない。資源が使用可能でない場
合、プロセスは、別の5leep コールを出す0 シグナル:シグナルは、活動プロセスとの通信を行なっ
て、現プロセス環境が保管され新しいプロセス環境が生
成されるという1組の事象を引き起こす。プロセスは、
シグナルに応答するため、シグナル処理機能を指定する
ことができる。これらのシグナルは、すべて同じ優先順
位を有し、重要な機能はシグナル干渉から自身を保護す
ることができる。
、プロセスはまず、事象または資源が同じchan を
待っている別のプロセスによって捕捉されていないかど
うか検査しなければならない。資源が使用可能でない場
合、プロセスは、別の5leep コールを出す0 シグナル:シグナルは、活動プロセスとの通信を行なっ
て、現プロセス環境が保管され新しいプロセス環境が生
成されるという1組の事象を引き起こす。プロセスは、
シグナルに応答するため、シグナル処理機能を指定する
ことができる。これらのシグナルは、すべて同じ優先順
位を有し、重要な機能はシグナル干渉から自身を保護す
ることができる。
シグナルとは、プロセスの通常の実行を中断する事象で
ある。割込みに関する5IGINTなど1組のシグナル
がAIXシステムによって定義されている。すべてのシ
グナルは、同じ優先順位を有する。
ある。割込みに関する5IGINTなど1組のシグナル
がAIXシステムによって定義されている。すべてのシ
グナルは、同じ優先順位を有する。
プロセスは、シグナルの発生する時に呼び出されるシグ
ナル処理サブルーチンを指定することができる。プロセ
スはまた、シグナルをブロックまたは無視することを指
定し、あるいはシグナルの発生時にシステムが省略時動
作をとることを指定することもできる。
ナル処理サブルーチンを指定することができる。プロセ
スはまた、シグナルをブロックまたは無視することを指
定し、あるいはシグナルの発生時にシステムが省略時動
作をとることを指定することもできる。
グローバル・シグナル・マスクは、現在プロセスへの転
送からブロックされている1組のシグナルを定義する。
送からブロックされている1組のシグナルを定義する。
プロセス用のシグナル・マスクは、その親プロセスのシ
グナル・マスクから初期設定される。これは、sigb
lock またはsigsetmaskシステム・コー
ルで変更することができる。シグナル処理プログラムの
実行中、それを呼び出させるシグナルはブロックされて
いるが、他のシグナルは発生できる。シグナル処理プロ
グラムが終わると、そのシグナルは再びブロック解除さ
れる。
グナル・マスクから初期設定される。これは、sigb
lock またはsigsetmaskシステム・コー
ルで変更することができる。シグナル処理プログラムの
実行中、それを呼び出させるシグナルはブロックされて
いるが、他のシグナルは発生できる。シグナル処理プロ
グラムが終わると、そのシグナルは再びブロック解除さ
れる。
通常、シグナル処理プログラムは、プロセスの現スタッ
ク上で実行される。これをシグナルごとに変更してシグ
ナル処理プログラムが特別なシグナル・スタック上で実
行されるようにすることができる。
ク上で実行される。これをシグナルごとに変更してシグ
ナル処理プログラムが特別なシグナル・スタック上で実
行されるようにすることができる。
シグナルがプロセスに送られると、このシグナルはその
プロセス用に保留されている1組のシグナルに加えられ
る。そのシグナルが現在ブロックされていない場合、そ
のシグナルはプロセスに渡される。シグナルが渡される
と、下記の動作が行なわれる。
プロセス用に保留されている1組のシグナルに加えられ
る。そのシグナルが現在ブロックされていない場合、そ
のシグナルはプロセスに渡される。シグナルが渡される
と、下記の動作が行なわれる。
16 プロセス実行コンテキストの現状態が保管される
。
。
2、プロセスのシグナル処理プログラムの継続中、ある
いはs igb 1ockまたはsigsetmask
システム・コールが行なわれるまで有効な新しいシグナ
ル・マスクが計算される。新しいマスクは、現シグナル
・マスクと転送されるシグナル・マスクと呼び出される
処理プログラムに関連するシグナル・マスクとを論理的
ORすることによって形成される。
いはs igb 1ockまたはsigsetmask
システム・コールが行なわれるまで有効な新しいシグナ
ル・マスクが計算される。新しいマスクは、現シグナル
・マスクと転送されるシグナル・マスクと呼び出される
処理プログラムに関連するシグナル・マスクとを論理的
ORすることによって形成される。
3、シグナル処理プログラムがシグナル・スタック上で
実行される場合は、現スタックがシグナル・スタックに
変更される。
実行される場合は、現スタックがシグナル・スタックに
変更される。
4、シグナル処理プログラムが呼び出される。
処理プログラムに渡されるパラメータは、下記の記述で
定義される。
定義される。
シグナル処理プログラムを、次のように宣言することが
できる。
できる。
処理プログラム名(sfg、 code、 5cp)f
nt sig、 code ; 5truc sigcontext :scp;st
gパラメータは、シグナル番号である。
nt sig、 code ; 5truc sigcontext :scp;st
gパラメータは、シグナル番号である。
codeパラメータは他のUNIX互換システムとの互
換性のためにだけ設けられており、その値が常にゼロで
ある。Sepパラメータは、あとでプロセスの以前の実
行コンテキストを復元するのに使用するs igcon
text構造を指す。
換性のためにだけ設けられており、その値が常にゼロで
ある。Sepパラメータは、あとでプロセスの以前の実
行コンテキストを復元するのに使用するs igcon
text構造を指す。
5、シグナル処理ルーチンが正常にリターンすると、以
前のコンテキストが復元され、プロセスがその中断した
点から再開する。処理プログラムは、IOngJIII
Pサブルーチンを呼び出すことにより、プロセスを異な
るコンテキストで再開させることができる。
前のコンテキストが復元され、プロセスがその中断した
点から再開する。処理プログラムは、IOngJIII
Pサブルーチンを呼び出すことにより、プロセスを異な
るコンテキストで再開させることができる。
fork システム−コールの後、子プロセスは、その
親プロセスから、すべてのシグナル、シグナル・マスク
、シグナル・スタックを引き継ぐ。
親プロセスから、すべてのシグナル、シグナル・マスク
、シグナル・スタックを引き継ぐ。
exec システム・コールが、捕捉されたすべてのシ
グナルを省略時動作にリセットする。省略時動作をひき
起こすシグナルはそれを続行する。無視されたシグナル
は、引き続き無視され、シグナル・マスクは同じままで
あり、シグナル・スタック状態がリセットされる。
グナルを省略時動作にリセットする。省略時動作をひき
起こすシグナルはそれを続行する。無視されたシグナル
は、引き続き無視され、シグナル・マスクは同じままで
あり、シグナル・スタック状態がリセットされる。
1ongjmpサブルーチンが呼び出されると、プロセ
スは、それ自体が現在シグナル・スタック上にある場合
はそこを離れ、シグナル・マスクを対応するsetjm
p コールが行なわれたときの状態に復元する。オペレ
ーティング・システムは、次の5つのシグナルeクラス
をもつ。
スは、それ自体が現在シグナル・スタック上にある場合
はそこを離れ、シグナル・マスクを対応するsetjm
p コールが行なわれたときの状態に復元する。オペレ
ーティング・システムは、次の5つのシグナルeクラス
をもつ。
1、ハードウェア・シグナルは、演算例外、違法命令例
外、メモリ保護違反などの状態の結果として発生する。
外、メモリ保護違反などの状態の結果として発生する。
2、ソフトウェア拳シグナルは、一般に、ユーザによっ
て開始される割込みである。終了、クイツト、キルは、
プロセスに対するユーザまたはプログラムによって開始
される様々なレベルのシグナルを表わすシグナル・タイ
プである。さらに、タイマ満了は、ソフトウェア駆動「
アラーム」シグナルで合図できる。
て開始される割込みである。終了、クイツト、キルは、
プロセスに対するユーザまたはプログラムによって開始
される様々なレベルのシグナルを表わすシグナル・タイ
プである。さらに、タイマ満了は、ソフトウェア駆動「
アラーム」シグナルで合図できる。
3、プロセスは、ある種の記述子または非ブロツク動作
の終了に基づいて発生した事象の通知を受は取ることが
できる。プロセスはまた、破局状態シグナルを要求する
こともできる。
の終了に基づいて発生した事象の通知を受は取ることが
できる。プロセスはまた、破局状態シグナルを要求する
こともできる。
4、プロセスは、停止させ、再始動させ、子プロセスに
おける状態変化の通知を受は取ることができる。
おける状態変化の通知を受は取ることができる。
5、プロセスは、処理ユニット時限またはファイル・サ
イズ限界に達したとき、しきい値警告を受は取ることが
できる。
イズ限界に達したとき、しきい値警告を受は取ることが
できる。
カーネルはまた、カーネル・プロセス間゛通信で、非送
信請求(unsolicited)割込みシグナル・シ
ステムの機能を強化するための追加及び修正も含んでい
る。
信請求(unsolicited)割込みシグナル・シ
ステムの機能を強化するための追加及び修正も含んでい
る。
AIXオペレーティング・システムにおける本マルチ・
ユーザ嗜オペレーティング・システムとして、UNIX
(TM)(UNIXは、AT&Tベル研究所の商標)は
、無許可プログラムがユーザ端末からデータを読み取る
のを防止できる機構を必要とする。信頼性のある経路機
構が、ユーザが端末キーボードでタイプしたデータが無
許可プログラムによる侵入から保護されることを保証す
る。信頼性のある経路機構により、ユーザは、ユーザの
端末と「信頼性のある」オペレーティング・システム・
ソフトウェアの間に偽造不可能かつ侵入不可能な経路を
作成することができる。ユーザは、システムにログイン
する前に端末キーボード上で機密保護アテンション・キ
ー(SAK)と呼ばれるキーを押すだけで、信頼性のあ
る経路を作成して、パスワードを盗むことを目的とする
、ログイン偽装プログラムでなく、真のログイン・プロ
グラムと通信していると確信することができる。
ユーザ嗜オペレーティング・システムとして、UNIX
(TM)(UNIXは、AT&Tベル研究所の商標)は
、無許可プログラムがユーザ端末からデータを読み取る
のを防止できる機構を必要とする。信頼性のある経路機
構が、ユーザが端末キーボードでタイプしたデータが無
許可プログラムによる侵入から保護されることを保証す
る。信頼性のある経路機構により、ユーザは、ユーザの
端末と「信頼性のある」オペレーティング・システム・
ソフトウェアの間に偽造不可能かつ侵入不可能な経路を
作成することができる。ユーザは、システムにログイン
する前に端末キーボード上で機密保護アテンション・キ
ー(SAK)と呼ばれるキーを押すだけで、信頼性のあ
る経路を作成して、パスワードを盗むことを目的とする
、ログイン偽装プログラムでなく、真のログイン・プロ
グラムと通信していると確信することができる。
ユーザは、ログインしてパスワードなど自分の重要なデ
ータを入力した後、それが侵入者のプログラムによって
盗まれていないと確信することができる。ユーザは、ロ
グアウトした後、信頼性のある経路が実際にシステムか
ら自分をログアウトしたと確信することができる。
ータを入力した後、それが侵入者のプログラムによって
盗まれていないと確信することができる。ユーザは、ロ
グアウトした後、信頼性のある経路が実際にシステムか
ら自分をログアウトしたと確信することができる。
信頼性のある経路機構の設計は、U’N I Xまたは
UNIX類似(XENIXlAIXその他)のどのオペ
レーティング・システムにも適用される。
UNIX類似(XENIXlAIXその他)のどのオペ
レーティング・システムにも適用される。
信頼性のある経路機構を実現するため、XENIX及び
AIXオペレーティング・システムに以下の変更を加え
る。
AIXオペレーティング・システムに以下の変更を加え
る。
1、機能保護アテンション・キー(SAK) と認識さ
れる1個またτま複数のASCIIキーから構成される
新しいキー・シーケンスを定義する。システム設計者は
、自分の好みのSAKを選ぶことができる。複数のAS
CII文字から構成されるまれなASCIIシーケンス
をSAK用に選ぶことが望ましい。
れる1個またτま複数のASCIIキーから構成される
新しいキー・シーケンスを定義する。システム設計者は
、自分の好みのSAKを選ぶことができる。複数のAS
CII文字から構成されるまれなASCIIシーケンス
をSAK用に選ぶことが望ましい。
2.8IGSAKと呼ばれる新しいタイプのUNIXシ
グナルを追加する。このシグナルは、特権プログラムの
みが、処理する(無視または捕捉する)ことができる。
グナルを追加する。このシグナルは、特権プログラムの
みが、処理する(無視または捕捉する)ことができる。
5IGSAKシグナルが非特権ユーザ・プログラムに送
られた場合、このシグナルは非特権ユーザ・プログラム
を終了させる。
られた場合、このシグナルは非特権ユーザ・プログラム
を終了させる。
3、UNIXシステムでは、0(ルート)の有効ユーザ
ID(UID)を有するプログラムが、特権プログラム
(スーパーユーザ特権を有するプログラムとも呼ばれる
)である。スーパーユーザ特権をサポートしないある種
のUNIXシステムは、たとえば特権をプログラムと関
連付ける他の機構を提供する。機密保mXENIXは、
プログラムに特権を割り当てる非スーパーユーザ汎用特
権機構(GPM)を提供する。
ID(UID)を有するプログラムが、特権プログラム
(スーパーユーザ特権を有するプログラムとも呼ばれる
)である。スーパーユーザ特権をサポートしないある種
のUNIXシステムは、たとえば特権をプログラムと関
連付ける他の機構を提供する。機密保mXENIXは、
プログラムに特権を割り当てる非スーパーユーザ汎用特
権機構(GPM)を提供する。
4、伝送制御手順ドライバを修正して、ユーザのハード
ウェア割込み端末からSAKを検出し、5IGSAKシ
グナルを制御端末プロセス・グループ内の全プロセスに
送るようにする。
ウェア割込み端末からSAKを検出し、5IGSAKシ
グナルを制御端末プロセス・グループ内の全プロセスに
送るようにする。
5、UNIXプログラムinitを修正して、(i)S
IGSAKシグナルによるその子プロセスの終了を検
出し、(ii)ユーザの端末を信頼性のある経路の間、
無許可アクセスから保護し、(市)信頼性のある経路を
作成した後、ユーザ端末に対する信頼性のあるプロセス
を走行させ、(IV)ユーザ端末に対する信頼性のある
経路の存在を示すように/etc/utmp ファイル
中のユーザ端末項目を更新し、(V)信頼性のある経路
の終了を検出し、ユーザのログイン環境を作成するよう
にする。
IGSAKシグナルによるその子プロセスの終了を検
出し、(ii)ユーザの端末を信頼性のある経路の間、
無許可アクセスから保護し、(市)信頼性のある経路を
作成した後、ユーザ端末に対する信頼性のあるプロセス
を走行させ、(IV)ユーザ端末に対する信頼性のある
経路の存在を示すように/etc/utmp ファイル
中のユーザ端末項目を更新し、(V)信頼性のある経路
の終了を検出し、ユーザのログイン環境を作成するよう
にする。
6 、 / etc / utmp ファイルの構造を
修正して、ユーザ端末に対する端末特性(termio
)パラメータを含むようにする。また、utmp構造の
ut type フィールド用にTSH−PROCES
Sと呼ばれる新しいフラグを付は加える。このフラグは
、ユーザ端末とオペレーティング嘩システム・ソフトウ
ェアの間に信頼性のある経路が作成されたこと、及び端
末に対する走行ユーザ・プロセスが信頼性のあるシェル
であることを示す。
修正して、ユーザ端末に対する端末特性(termio
)パラメータを含むようにする。また、utmp構造の
ut type フィールド用にTSH−PROCES
Sと呼ばれる新しいフラグを付は加える。このフラグは
、ユーザ端末とオペレーティング嘩システム・ソフトウ
ェアの間に信頼性のある経路が作成されたこと、及び端
末に対する走行ユーザ・プロセスが信頼性のあるシェル
であることを示す。
信頼性のあるシェルとは、ユーザがパスワードを変更す
るためのpassvdコマンドなど、1組の安全保護に
重要なコマンドを実行できるようにする、限定コマンド
解釈プログラムである。
るためのpassvdコマンドなど、1組の安全保護に
重要なコマンドを実行できるようにする、限定コマンド
解釈プログラムである。
7、UNIXプログラムのlogin及びgettyを
修正して、/etc/utmp ファイルに端末に対す
る端末特性パラメータを保管するようにする。
修正して、/etc/utmp ファイルに端末に対す
る端末特性パラメータを保管するようにする。
スJC1檄
ユーザは、自分の非同期端末キーボードで機密保護アテ
ンシロン・キー(SAK)を押すことにより、いつでも
信頼性のある経路を作成することができる。SAKは、
直接(raw)または処理済(cooked )端末入
出力モードで動作する。ユーザは、ログイン時にSAK
キーを押して、login偽装プログラムでなく真のl
ogin プログラムと自分が通信していることを確認
することができる。
ンシロン・キー(SAK)を押すことにより、いつでも
信頼性のある経路を作成することができる。SAKは、
直接(raw)または処理済(cooked )端末入
出力モードで動作する。ユーザは、ログイン時にSAK
キーを押して、login偽装プログラムでなく真のl
ogin プログラムと自分が通信していることを確認
することができる。
あるいは、ログイン後にSAKキーを押して、パスワー
ド変更などの機密保護動作を実行することができる。あ
るいは、ログアウトしてからSAKを押して、自分が実
際にシステムからログアウトしたことを確認することが
できる。下記のものが、信頼性のある経路機構の層化設
計をもたらす。
ド変更などの機密保護動作を実行することができる。あ
るいは、ログアウトしてからSAKを押して、自分が実
際にシステムからログアウトしたことを確認することが
できる。下記のものが、信頼性のある経路機構の層化設
計をもたらす。
SAKキーの検出
ユーザがSAKキーを押すと、端末ドライバはキー(A
SCII文字)を受は取り、これを伝送制御手順ドライ
バに渡す。伝送制御手順ドライバは、キーを受は取ると
、次のような動作を実行する。
SCII文字)を受は取り、これを伝送制御手順ドライ
バに渡す。伝送制御手順ドライバは、キーを受は取ると
、次のような動作を実行する。
1.8AKキーとして複数のキーを選んだ場合、SAK
用のすべてのキーをタイプするか、キー・シーケンスが
切れるか、SAKタイムアウトと呼ばれる所与のタイム
アウトが発生するまで、伝送制御手順ドライバはもとの
キーを保持する。タイプしたキー・シーケンスがSAK
でない場合、伝送制御手順ドライバは、通常行なうよう
に、そのキーをアプリケーションに渡す。
用のすべてのキーをタイプするか、キー・シーケンスが
切れるか、SAKタイムアウトと呼ばれる所与のタイム
アウトが発生するまで、伝送制御手順ドライバはもとの
キーを保持する。タイプしたキー・シーケンスがSAK
でない場合、伝送制御手順ドライバは、通常行なうよう
に、そのキーをアプリケーションに渡す。
2、電送制御手順ドライバは、SAKキーを検出すると
、5IGSAKシグナルを制御端末プロセスφグループ
内のすべてのプロセスに送る。S IGSAKシグナル
を受は取ったが、それを無視または捕捉できない(ユー
ザの最上位プロセス、通常はシェルを含めて)どのプロ
セスも終了する。
、5IGSAKシグナルを制御端末プロセスφグループ
内のすべてのプロセスに送る。S IGSAKシグナル
を受は取ったが、それを無視または捕捉できない(ユー
ザの最上位プロセス、通常はシェルを含めて)どのプロ
セスも終了する。
S IGSAKシグナルの検出
伝送制御手順ドライバからの5IGSAKシグナルによ
って、initプロセスの子プロセスになっているプロ
セスが終了すると、initは、子プロセスのexit
状況と共に、5IGCLD(子プロセスの死)を受は取
る。次いでinitは、その子プロセスのexit状況
を読み取ることにより、5IGSAKシグナルの発生を
検出する。initプロセスは、1つのプロセスIDを
有する。initの子フロセス(すなわち、1つの親プ
ロセスIDを有するプロセス)を最上位プロセスと呼ぶ
ことにする。
って、initプロセスの子プロセスになっているプロ
セスが終了すると、initは、子プロセスのexit
状況と共に、5IGCLD(子プロセスの死)を受は取
る。次いでinitは、その子プロセスのexit状況
を読み取ることにより、5IGSAKシグナルの発生を
検出する。initプロセスは、1つのプロセスIDを
有する。initの子フロセス(すなわち、1つの親プ
ロセスIDを有するプロセス)を最上位プロセスと呼ぶ
ことにする。
信頼性のある経路の作h
initは、子プロセスのexit状況から5IGSA
Kシグナルを検出すると、ユーザの端末と「信頼性のあ
る」オペレーティング・システム・ソフトウェアの間に
信頼性のある経路を作成し、SAKキーを押す前の端末
上での走行プロセスの状態に応じて、端末で信頼性のあ
るプログラムを走行させる。次に、信頼性のある経路を
作成し、信頼性のあるプロセスを実行するためにini
tが行なう動作について検討する。
Kシグナルを検出すると、ユーザの端末と「信頼性のあ
る」オペレーティング・システム・ソフトウェアの間に
信頼性のある経路を作成し、SAKキーを押す前の端末
上での走行プロセスの状態に応じて、端末で信頼性のあ
るプログラムを走行させる。次に、信頼性のある経路を
作成し、信頼性のあるプロセスを実行するためにini
tが行なう動作について検討する。
ログイン前
ユーザがログイン前にSAKキーを押した場合、使用可
能端末に対する最上位プロセスはgettyまたはlo
ginのいずれかであり、やはりこの端末プロセス・グ
ループ中に入っている。/etc/utmp ファイル
中の各レコードごとのut typeフィールドは、そ
の端末に対する走行プロセスのタイプを示す。gett
y及びloginに対するut typeフィールドは
、それぞれ/etc/utmp ファイル中のINIT
PROCESS及びLOG IN PROCES
Sである。ユーザがSAKキーを押すと、伝送制御手順
ドライバが制御端末プロセス・グループ内の全プロセス
にS IGSAKシグナルを送る。その結果、gett
yやloginプロセスを含めて、その端末で走行して
いる全プロセスが終了する。
能端末に対する最上位プロセスはgettyまたはlo
ginのいずれかであり、やはりこの端末プロセス・グ
ループ中に入っている。/etc/utmp ファイル
中の各レコードごとのut typeフィールドは、そ
の端末に対する走行プロセスのタイプを示す。gett
y及びloginに対するut typeフィールドは
、それぞれ/etc/utmp ファイル中のINIT
PROCESS及びLOG IN PROCES
Sである。ユーザがSAKキーを押すと、伝送制御手順
ドライバが制御端末プロセス・グループ内の全プロセス
にS IGSAKシグナルを送る。その結果、gett
yやloginプロセスを含めて、その端末で走行して
いる全プロセスが終了する。
initは、子プロセスのexit状況を読み取ること
により、子プロセスがS IGSAKシグナルによって
終了したことを検出する。次いで、initは、/ e
tc / utmp ファイル中の端末項目に対するu
t type フィールドを読み取ることにより、走行
プロセスのタイプを見つける。この場合、ut−typ
eは、gettYが走行中ならINIT PROCE
SSであり、あるいはloginが走行中ならLOGI
N PROCESSである。次いで、initは、新
しい子プロセスを作成(fork)する。
により、子プロセスがS IGSAKシグナルによって
終了したことを検出する。次いで、initは、/ e
tc / utmp ファイル中の端末項目に対するu
t type フィールドを読み取ることにより、走行
プロセスのタイプを見つける。この場合、ut−typ
eは、gettYが走行中ならINIT PROCE
SSであり、あるいはloginが走行中ならLOGI
N PROCESSである。次いで、initは、新
しい子プロセスを作成(fork)する。
この子プロセス中で、tnitは、端末のアクセス・モ
ードを−rv−−−− (所有者のみ読取り可能かつ書
込み可能)に変更し、所有者ID及びグループIDをル
ート(UID=O1GID=O)に変更し、端末をオー
プンし、vhangupシステム・コールを使って全プ
ロセスに対してその端末に関する読み書きアクセスを取
り消す。こうすると、端末がプログラムによる以前のア
クセスからクリアされる。
ードを−rv−−−− (所有者のみ読取り可能かつ書
込み可能)に変更し、所有者ID及びグループIDをル
ート(UID=O1GID=O)に変更し、端末をオー
プンし、vhangupシステム・コールを使って全プ
ロセスに対してその端末に関する読み書きアクセスを取
り消す。こうすると、端末がプログラムによる以前のア
クセスからクリアされる。
これによって、ユーザの端末に対す名信顆性のある経路
が作成され、無許可プログラムによる読取り及び書込み
から端末が保護される。
が作成され、無許可プログラムによる読取り及び書込み
から端末が保護される。
アクセス・モード及び所有権のゆえに、今やスーパーユ
ーザ(ルート)だけが端末をオープンできる。スーパー
ユーザ・プログラムであるinitが端末を再オープン
し、ユーザに新しいログインを促すgettyプロセス
(信頼性のあるプロセス)を実行する。
ーザ(ルート)だけが端末をオープンできる。スーパー
ユーザ・プログラムであるinitが端末を再オープン
し、ユーザに新しいログインを促すgettyプロセス
(信頼性のあるプロセス)を実行する。
ログイン後
ユーザがログイン後にSAKキーを押した場合、最上位
プロセスは、ユーザ・プロセスである。これも端末のプ
ロセス・グループ中に入っている。
プロセスは、ユーザ・プロセスである。これも端末のプ
ロセス・グループ中に入っている。
ユーザ・プロセスに対するut typeフィールド、
/etc/ut+++p ファイル中のUSERPRO
CRSSまたはTSHPROCESSのいずれかである
。ユーザがSAKキーを押すと、伝送制御手順ドライバ
が制御端末プロセス・グループ内の全プロセスに5IG
SAKシグナルを送る。その結果、最上位のユーザ・プ
ロセスを含めて、その端末で走行しているすべてのプロ
セスが終了する。
/etc/ut+++p ファイル中のUSERPRO
CRSSまたはTSHPROCESSのいずれかである
。ユーザがSAKキーを押すと、伝送制御手順ドライバ
が制御端末プロセス・グループ内の全プロセスに5IG
SAKシグナルを送る。その結果、最上位のユーザ・プ
ロセスを含めて、その端末で走行しているすべてのプロ
セスが終了する。
initは、その子(ユーザ)プロセスのexit状況
を読み取ることにより、子プロセスが5IGSAKシグ
ナルによって終了したことを検出する。
を読み取ることにより、子プロセスが5IGSAKシグ
ナルによって終了したことを検出する。
次いで、initは、/ etc / utmp ファ
イル中の端末項目に対するut type フィールド
を読み取ることにより、その走行プロセスのタイプを見
つける。この場合、ut typeは、信頼性のある経
路が作成されていなかった場合はUSERPROCES
Sであり、あるいは信頼性のある経路がすでに作成され
ている場合にはTSHPROCESSである。次いで、
initは新しい子プロセスを生成(fork)する。
イル中の端末項目に対するut type フィールド
を読み取ることにより、その走行プロセスのタイプを見
つける。この場合、ut typeは、信頼性のある経
路が作成されていなかった場合はUSERPROCES
Sであり、あるいは信頼性のある経路がすでに作成され
ている場合にはTSHPROCESSである。次いで、
initは新しい子プロセスを生成(fork)する。
子プロセス中で、fnltは、端末のアクセス・モード
を−rw−−−− (所有者のみ読取り可能かつ書込み
可能)に変更し、所有者■D及びグループIDをルート
(UID=O1GID=0)に変更し、端末をオープン
し、vhangupシステム・コールを使って全プロセ
スに対してその端末の読み書きアクセスを取り消す。こ
うすると、端末がプログラムによる以前のアクセスから
クリアされる。これによって1.ユーザ端末に対する信
頼性のある経路が作成され、端末が無許可プログラムに
よる読取り及び書込みから保護される。
を−rw−−−− (所有者のみ読取り可能かつ書込み
可能)に変更し、所有者■D及びグループIDをルート
(UID=O1GID=0)に変更し、端末をオープン
し、vhangupシステム・コールを使って全プロセ
スに対してその端末の読み書きアクセスを取り消す。こ
うすると、端末がプログラムによる以前のアクセスから
クリアされる。これによって1.ユーザ端末に対する信
頼性のある経路が作成され、端末が無許可プログラムに
よる読取り及び書込みから保護される。
アクセス・モード及び所存権のゆえに、今や特権プログ
ラムだけが端末をオープンできる。特権プログラムであ
るinitが、端末を再オープンし、/etc/utm
p ファイル中のその端末項目に対するut type
フィールドをTSHPROCESSに変更し、端末の
端末特性パラメータを/etc/utmpファイルで定
義されているその端末項目に対する端末特性値に設定し
、それから信頼性のあるシェルを実行する。
ラムだけが端末をオープンできる。特権プログラムであ
るinitが、端末を再オープンし、/etc/utm
p ファイル中のその端末項目に対するut type
フィールドをTSHPROCESSに変更し、端末の
端末特性パラメータを/etc/utmpファイルで定
義されているその端末項目に対する端末特性値に設定し
、それから信頼性のあるシェルを実行する。
信頼性のあるシェルにいる間にユーザが再度SAKを押
した場合、ユーザがログインされ、信頼性のある経路を
作成しなかったときと同じ1組の動作が実行される。す
なわち、現信頼性のあるシェルが終了し、新しい信頼性
のある経路が作成され、その端末に対して再度信頼性の
あるシェルが実行される。
した場合、ユーザがログインされ、信頼性のある経路を
作成しなかったときと同じ1組の動作が実行される。す
なわち、現信頼性のあるシェルが終了し、新しい信頼性
のある経路が作成され、その端末に対して再度信頼性の
あるシェルが実行される。
ユーザが信頼性のあるシェルから出ると、initは対
応する/etc/utmp項目を読み取ることにより、
それが信頼性のあるシェルであったことを検出する。次
いで、initは、/etc/ut畦ファイル中畦端ア
イル中対するut type フィールドをUSERP
ROCESSに変更し、端末特性パラメータを含めてユ
ーザに対するlogin環境を作成し、ユーザのlog
inプログラム(通常は、login シェル)を走行
させる。
応する/etc/utmp項目を読み取ることにより、
それが信頼性のあるシェルであったことを検出する。次
いで、initは、/etc/ut畦ファイル中畦端ア
イル中対するut type フィールドをUSERP
ROCESSに変更し、端末特性パラメータを含めてユ
ーザに対するlogin環境を作成し、ユーザのlog
inプログラム(通常は、login シェル)を走行
させる。
ログアウト後
ユーザがログアウト後にSAKキーを押した場合、上記
のようなログイン前と同じ効果が得られる。
のようなログイン前と同じ効果が得られる。
ここで、第8図を参照すると、SAKキーを押したとき
を示す状態図が示されている。状態S1は、ログイン前
にシステムが真のlogin プログラムと対話してい
るときである。状態S2は、ログイン成功後であるが、
信頼性のある経路中にはない。状態S3は、ログイン成
功後であり、信頼性のある経路中に、すなわち信頼性の
あるシェルTSH中にある。第8図かられかるように、
ユーザが自分の端末をオンにすると、状態S1に入る。
を示す状態図が示されている。状態S1は、ログイン前
にシステムが真のlogin プログラムと対話してい
るときである。状態S2は、ログイン成功後であるが、
信頼性のある経路中にはない。状態S3は、ログイン成
功後であり、信頼性のある経路中に、すなわち信頼性の
あるシェルTSH中にある。第8図かられかるように、
ユーザが自分の端末をオンにすると、状態S1に入る。
この時に、ユーザが機密保護アテンション・キーSAK
を押すか、あるいはログインが不成功であった場合は、
状態S1に留まり続ける。あるいは、ユーザがログイン
に成功した場合は、状態S1から状態S2に移る。状態
S2にあるユーザは、選択したキーの組合せを押すこと
により、ログイン・シェルから出て、状態S1に戻るこ
とができる。
を押すか、あるいはログインが不成功であった場合は、
状態S1に留まり続ける。あるいは、ユーザがログイン
に成功した場合は、状態S1から状態S2に移る。状態
S2にあるユーザは、選択したキーの組合せを押すこと
により、ログイン・シェルから出て、状態S1に戻るこ
とができる。
あるいは、状態S2にあるユーザは、通常の信頼性のな
い作業を行なって、シェルSH内で作業しながら、状態
S2中に留まり続けることができる。
い作業を行なって、シェルSH内で作業しながら、状態
S2中に留まり続けることができる。
あるいは、ユーザが信頼性のある経路を使って、自分の
端末と信頼性のある計算ベースの間のトランザクシタン
に従事しようと望む場合、状態S2にあるときに機密保
護アテンシロン・キー(SAK)を押す。そうすると、
ユーザは状態S3に入る。ユーザは選択したキーの組合
せを押すことにより、状態S3を離れ、信頼性のあるシ
ェルTSHから出て、状態$2にある信頼性のないシェ
ルSHに戻ることができる。あるいは、状態S3にある
ユーザは、機密保護アテンシロン・キーを押すことがで
き、また信頼性のあるシェルのコマンドを走行すること
ができる。どちらによっても、ユーザは状態S3の信頼
性のあるシェルに留まり続ける。ユーザが状態S3の信
頼性のあるシェル内で実行すべきタスクを完了すると、
ユーザは、信頼性のあるシェルから出て、状態S2に戻
る。
端末と信頼性のある計算ベースの間のトランザクシタン
に従事しようと望む場合、状態S2にあるときに機密保
護アテンシロン・キー(SAK)を押す。そうすると、
ユーザは状態S3に入る。ユーザは選択したキーの組合
せを押すことにより、状態S3を離れ、信頼性のあるシ
ェルTSHから出て、状態$2にある信頼性のないシェ
ルSHに戻ることができる。あるいは、状態S3にある
ユーザは、機密保護アテンシロン・キーを押すことがで
き、また信頼性のあるシェルのコマンドを走行すること
ができる。どちらによっても、ユーザは状態S3の信頼
性のあるシェルに留まり続ける。ユーザが状態S3の信
頼性のあるシェル内で実行すべきタスクを完了すると、
ユーザは、信頼性のあるシェルから出て、状態S2に戻
る。
第9図ないし第15図は、ユーザの端末と信頼性のある
計算ベースの間にどのようにして信頼性のある経路が確
立されるか、どのように信頼性のある経路を使い、完了
させて、ユーザが自分の信頼性のある経路から出て通常
の信頼性のない動作に戻るかを記載している。第9図は
、tnitプロセスを示す。第10図は、第9図に続く
もので、initがfork を呼び出して子プロセス
を作成させ、次いで、gettyプロセスを子プロセス
に実行させて初期ログイン・プロンプトを印刷させ端末
特性を決定させるところを示す。第1!図は、第10図
に続くもので、ユーザが自分のユーザ名をgetty
にタイプしたとき、gettyがlogin プロセス
を実行するところを示す。loginプロセスはパスワ
ードの入力を促し、ユーザが入力したパスワードを確認
する。ログインに失敗するとloginプロセスにとど
まり、又ログインに成功すると第12図に移る。第12
図は、第11図に続くもので、ログイン成功後に、SH
など、そのユーザに対して指定されたログイン・シェル
をログイ゛ン・プロセスが実行するところを示す。第1
3図は、第12図に続くもので、ユーザが機密保護アテ
ンション・キー(SAK)を押したとき、伝送制御手順
ドライバが制御端末プロセス・グループ中の全プロセス
にS I GSAKシグナルを送るところを示す。これ
に応答して、ログイン・シェルSHは死に、init
プロセスが新たな子プロセスをフォークして、それが信
頼性のあるシェル・プロセスTSHを実行する。第14
図は、第13図に続くもので、信頼性のあるシェルTS
H内でパスワード・プロセスを走行させる場合には、T
SHが子プロセスをフォークし、それがパスワードを実
行するところを示す。パスワード・プロセスが終わって
いる時、信頼性のあるシェルTSHは、なお走行中であ
る。第15図は、第14図に続くもので、信頼性のある
シェルTSHがexit機能を実行し、それによって、
ユーザ端末と信頼性のある計算ベースの間に確立された
信頼性のある経路を終了させるところを示す。
計算ベースの間にどのようにして信頼性のある経路が確
立されるか、どのように信頼性のある経路を使い、完了
させて、ユーザが自分の信頼性のある経路から出て通常
の信頼性のない動作に戻るかを記載している。第9図は
、tnitプロセスを示す。第10図は、第9図に続く
もので、initがfork を呼び出して子プロセス
を作成させ、次いで、gettyプロセスを子プロセス
に実行させて初期ログイン・プロンプトを印刷させ端末
特性を決定させるところを示す。第1!図は、第10図
に続くもので、ユーザが自分のユーザ名をgetty
にタイプしたとき、gettyがlogin プロセス
を実行するところを示す。loginプロセスはパスワ
ードの入力を促し、ユーザが入力したパスワードを確認
する。ログインに失敗するとloginプロセスにとど
まり、又ログインに成功すると第12図に移る。第12
図は、第11図に続くもので、ログイン成功後に、SH
など、そのユーザに対して指定されたログイン・シェル
をログイ゛ン・プロセスが実行するところを示す。第1
3図は、第12図に続くもので、ユーザが機密保護アテ
ンション・キー(SAK)を押したとき、伝送制御手順
ドライバが制御端末プロセス・グループ中の全プロセス
にS I GSAKシグナルを送るところを示す。これ
に応答して、ログイン・シェルSHは死に、init
プロセスが新たな子プロセスをフォークして、それが信
頼性のあるシェル・プロセスTSHを実行する。第14
図は、第13図に続くもので、信頼性のあるシェルTS
H内でパスワード・プロセスを走行させる場合には、T
SHが子プロセスをフォークし、それがパスワードを実
行するところを示す。パスワード・プロセスが終わって
いる時、信頼性のあるシェルTSHは、なお走行中であ
る。第15図は、第14図に続くもので、信頼性のある
シェルTSHがexit機能を実行し、それによって、
ユーザ端末と信頼性のある計算ベースの間に確立された
信頼性のある経路を終了させるところを示す。
第16図及び第17図は、シェルSHが複数のアプリケ
−シロン・プロセスを用いて多重処理または多重プログ
ラミング動作を行なうという、本発明のアプリケ−シロ
ンの別の状態を示す。第16図は、複数のプロセスがシ
ェルSHのもとで多重プログラミングまたは多重処理の
動作中に実行されるという、第12図に示したものと別
の状態を示す。第17図は、第16図に続(もので、機
密保護アテンション・キーを押して5rGSAKシグナ
ルを出したとき、シェルSHが複数のオペレーティング
・プロセスと共に終了し、initプロセスが信頼性の
あるプロセスTSHを作成し、それによって、上記のよ
うに信頼性のある経路を確立するという、第13図に示
したものと別の状況である。
−シロン・プロセスを用いて多重処理または多重プログ
ラミング動作を行なうという、本発明のアプリケ−シロ
ンの別の状態を示す。第16図は、複数のプロセスがシ
ェルSHのもとで多重プログラミングまたは多重処理の
動作中に実行されるという、第12図に示したものと別
の状態を示す。第17図は、第16図に続(もので、機
密保護アテンション・キーを押して5rGSAKシグナ
ルを出したとき、シェルSHが複数のオペレーティング
・プロセスと共に終了し、initプロセスが信頼性の
あるプロセスTSHを作成し、それによって、上記のよ
うに信頼性のある経路を確立するという、第13図に示
したものと別の状況である。
第18図、第19図、第20図は、多重処理モードまた
は多重プログラミング・モードで動作していて、その中
にトロイの木馬プログラムを含んでいたシェルSHが、
どのようにしてユーザによって信頼性のある経路に変換
されて、ユーザが自分の端末と信頼性のある計算ベース
の間で安全な通信を行なうことができるようになるかを
概略図で示す。第18図は、スプレッドシート・プロセ
ス及びトロイの木馬プログラムが付随するデータベース
(DB)プロセスの2つのプロセスをシェルSHが走行
させているシステムの処理状態の概略図である。第19
図は、ユーザが自分の機密保護アテンシロン・キー(S
AK) を押り、て、シェルSHとその対応するスプレ
ッドシート・プログラム・プロセス、データベース・マ
ネージャ・プロセスを破壊させ、最も重要なことにトロ
イの木馬プログラムを破壊させることによって、どのよ
うにして自分の端末と信頼性のある計算ベースの間に信
頼性のある経路を確立できるかを示す。第19図は、1
nltプロセスが信頼性のあるシェルTSHプロセスを
作成するところを示す。第20図は、信頼性のあるシェ
ルTSHプロセスがその信頼性のある経路上でユーザが
希望するタスクを遂行した後、信頼性のあるシェルTS
Hが自然終了または脱出されて、1nftにシェルSH
を再作成させる所を示す。
は多重プログラミング・モードで動作していて、その中
にトロイの木馬プログラムを含んでいたシェルSHが、
どのようにしてユーザによって信頼性のある経路に変換
されて、ユーザが自分の端末と信頼性のある計算ベース
の間で安全な通信を行なうことができるようになるかを
概略図で示す。第18図は、スプレッドシート・プロセ
ス及びトロイの木馬プログラムが付随するデータベース
(DB)プロセスの2つのプロセスをシェルSHが走行
させているシステムの処理状態の概略図である。第19
図は、ユーザが自分の機密保護アテンシロン・キー(S
AK) を押り、て、シェルSHとその対応するスプレ
ッドシート・プログラム・プロセス、データベース・マ
ネージャ・プロセスを破壊させ、最も重要なことにトロ
イの木馬プログラムを破壊させることによって、どのよ
うにして自分の端末と信頼性のある計算ベースの間に信
頼性のある経路を確立できるかを示す。第19図は、1
nltプロセスが信頼性のあるシェルTSHプロセスを
作成するところを示す。第20図は、信頼性のあるシェ
ルTSHプロセスがその信頼性のある経路上でユーザが
希望するタスクを遂行した後、信頼性のあるシェルTS
Hが自然終了または脱出されて、1nftにシェルSH
を再作成させる所を示す。
信頼性のある経路を確実に確立するには、コンピュータ
・システム・ユニットが物理的に安全でなければならな
い。無許可の人がキャビネットを開けてその内部のハー
ド・ディスクにアクセスすることができないように、シ
ステム・ユニットは充分な物理的安全保護を有していな
ければならない。さらに、ユーザが勝手にオペレーティ
ング・システムをロードできないように、システム・ユ
ニットを構成しなければならない。本発明によると、ロ
ードを許されるオペレーティング・システムは、安全な
UNIX類似オペレーティング・システムだけである。
・システム・ユニットが物理的に安全でなければならな
い。無許可の人がキャビネットを開けてその内部のハー
ド・ディスクにアクセスすることができないように、シ
ステム・ユニットは充分な物理的安全保護を有していな
ければならない。さらに、ユーザが勝手にオペレーティ
ング・システムをロードできないように、システム・ユ
ニットを構成しなければならない。本発明によると、ロ
ードを許されるオペレーティング・システムは、安全な
UNIX類似オペレーティング・システムだけである。
安全でないUNIX類似オペレーティング・システムを
ロードさせないようにする1つの方法は、ユーザがシス
テ゛ム・ユニットに挿入しであるフロッピー・ディスケ
ットからオペレーティング・システムをブートするのを
防止することである。これは、システム・ユニット内部
のコネクタを変更して、省略時駆動機構をフロッピー・
ディスク駆動機構ではなく、安全なUNIX類似オペレ
ーティング・システムがその中に常駐しているハード・
ディスクにすることにより、簡単に実現できる。さらに
、システム・ユニットの電源がオンになった時点から実
行されるソフトウェア・モジュールは、すべて信頼性の
あるソフトウェア・モジュールでなければならない。読
取専用メモリは、信頼性のあるソフトウェア・モジュー
ルでなければならず、信頼性のある計算ベースの一部と
みなされなければならない。安全なUNIX類似オペレ
ーティング・システムをロードする際に実行されるすべ
てのコードは、信頼性のある計算ベースの一部であると
仮定される。こうした手続きを取った場合、ユーザは、
自分のオペレーティング・システムをブート・アップす
るとき、安全な状態から出発していると想定することが
できる。
ロードさせないようにする1つの方法は、ユーザがシス
テ゛ム・ユニットに挿入しであるフロッピー・ディスケ
ットからオペレーティング・システムをブートするのを
防止することである。これは、システム・ユニット内部
のコネクタを変更して、省略時駆動機構をフロッピー・
ディスク駆動機構ではなく、安全なUNIX類似オペレ
ーティング・システムがその中に常駐しているハード・
ディスクにすることにより、簡単に実現できる。さらに
、システム・ユニットの電源がオンになった時点から実
行されるソフトウェア・モジュールは、すべて信頼性の
あるソフトウェア・モジュールでなければならない。読
取専用メモリは、信頼性のあるソフトウェア・モジュー
ルでなければならず、信頼性のある計算ベースの一部と
みなされなければならない。安全なUNIX類似オペレ
ーティング・システムをロードする際に実行されるすべ
てのコードは、信頼性のある計算ベースの一部であると
仮定される。こうした手続きを取った場合、ユーザは、
自分のオペレーティング・システムをブート・アップす
るとき、安全な状態から出発していると想定することが
できる。
第1表は、本発明による、initプロセスの擬似コー
ド表現を示す。第1表の擬似コードは、機密保護アテン
シジン・キーに関連するinitプロセスの諸態様を示
す。第21図は、第1表の擬似コードの流れ図である。
ド表現を示す。第1表の擬似コードは、機密保護アテン
シジン・キーに関連するinitプロセスの諸態様を示
す。第21図は、第1表の擬似コードの流れ図である。
initは、あるプロセスが終了するまで待つループで
ある。そのプロセスがどのように終了したか、及びどの
プロセスが終了したかに応じて、initは、別の処置
をとる。
ある。そのプロセスがどのように終了したか、及びどの
プロセスが終了したかに応じて、initは、別の処置
をとる。
第1表の最初のステートメントは、あるプロセスが終了
するのを待つことである。実際には、4つのケースがあ
る。つまり、プロセスは、5IGSAKまた°は正常な
exitによって、終了できる。
するのを待つことである。実際には、4つのケースがあ
る。つまり、プロセスは、5IGSAKまた°は正常な
exitによって、終了できる。
S IGSAKによる終了の場合には、プロセスはge
tty フロセスかloginプロセスのいずれかであ
り、あるいは、既にログインしてユーザ・プロセスを走
行させているユーザ・プロセスのこともある。正常なe
xitの場合には、信頼性のあるシェルまたは何ら°か
の他のプロセスであり得る。何が終了したのかに応じて
initは4種の処置の1つをとることができる。正常
なexitによってプロセスが終了し、それが信頼性の
あるシェルでなかった場合には、1nftが行なうこと
は、gettyの新しいインスタンスを作成することだ
けである。これは、ユーザが既にログアウトしていたケ
ースである。ユーザは、現にシェルを走行させていて、
ログアウトし、そのシェルは終了する。シェルが終了す
ると、initは第1表の最初のステートメントでその
ことを検出し、それが正常なexitであり、信頼性の
あるシェルでなかったと判定すると、initは、ge
ttyの新しいインスタンスを作成して新たなログイン
・プロンプトを表示させる。
tty フロセスかloginプロセスのいずれかであ
り、あるいは、既にログインしてユーザ・プロセスを走
行させているユーザ・プロセスのこともある。正常なe
xitの場合には、信頼性のあるシェルまたは何ら°か
の他のプロセスであり得る。何が終了したのかに応じて
initは4種の処置の1つをとることができる。正常
なexitによってプロセスが終了し、それが信頼性の
あるシェルでなかった場合には、1nftが行なうこと
は、gettyの新しいインスタンスを作成することだ
けである。これは、ユーザが既にログアウトしていたケ
ースである。ユーザは、現にシェルを走行させていて、
ログアウトし、そのシェルは終了する。シェルが終了す
ると、initは第1表の最初のステートメントでその
ことを検出し、それが正常なexitであり、信頼性の
あるシェルでなかったと判定すると、initは、ge
ttyの新しいインスタンスを作成して新たなログイン
・プロンプトを表示させる。
これは、正常なログアウトのケースである。ユーザがロ
グインの前に機密保護アテンション・キーを押していた
場合、ユーザは、既にログイン・プロンプトを得ている
ものの、それを信用しておらず、したがって機密保護ア
テンション・キーを押そうとする。このケースでは、i
nitは、プロセスが機密保護アテンション・キーによ
って終了したことを検出し、次いで、それがどういう種
類のプロセスであったかをチエツクする。それは、ge
ttyまたはloginのいずれかであった。そうした
ケースで、initが行なうことは、新たな試行プロセ
スをトレードすることである。initは、他のプロセ
スが有するユーザ端末に対するアクセス権を盲動に断つ
動作を実行する。initは、ユーザの端末に対するア
クセス・モードを所有者のみが読取り可能かつ書込み可
能に変更し、端末の所存権をルートに変更し、 vha
ngupで端末に対するアクセスを取り消すことによっ
て、それを実行する。次いで、initは、execシ
ステム・コールを行なって、gettyプログラムの別
のコピーをオーバーレイする。ユーザがログアウトされ
るときに機密保護アテンション・キーを押すと、ini
tは、それを検出して、安全性のために環境の終結処置
を行ない、次いで、新しいgettyのインスタンスを
作成する。
グインの前に機密保護アテンション・キーを押していた
場合、ユーザは、既にログイン・プロンプトを得ている
ものの、それを信用しておらず、したがって機密保護ア
テンション・キーを押そうとする。このケースでは、i
nitは、プロセスが機密保護アテンション・キーによ
って終了したことを検出し、次いで、それがどういう種
類のプロセスであったかをチエツクする。それは、ge
ttyまたはloginのいずれかであった。そうした
ケースで、initが行なうことは、新たな試行プロセ
スをトレードすることである。initは、他のプロセ
スが有するユーザ端末に対するアクセス権を盲動に断つ
動作を実行する。initは、ユーザの端末に対するア
クセス・モードを所有者のみが読取り可能かつ書込み可
能に変更し、端末の所存権をルートに変更し、 vha
ngupで端末に対するアクセスを取り消すことによっ
て、それを実行する。次いで、initは、execシ
ステム・コールを行なって、gettyプログラムの別
のコピーをオーバーレイする。ユーザがログアウトされ
るときに機密保護アテンション・キーを押すと、ini
tは、それを検出して、安全性のために環境の終結処置
を行ない、次いで、新しいgettyのインスタンスを
作成する。
次のケースは、ユーザが既にログインしていて、機密保
護アテンション・キーを押す場゛合である。
護アテンション・キーを押す場゛合である。
このケースでは、ユーザは、通常のプロセスで走行中で
あるか、または既に信頼性のあるシェルを存するかのい
ずれかである。どちらのケースでも、initは、環境
の終結処置を行ない、ユーザに信頼性のあるシェルを与
える。initは、新しい子プロセスに対するfork
システム・コールを行ない、子プロセスはユーザ婚末
上でアクセス・モードを変更して、他の誰もその端末に
アクセスできないようにし、所有者IDを変更し、vh
angup コマンドを使ってアクセスを取り消し、次
いで、in itは、子プロセスが今信頼性のあるシェ
ルを走行中であることを/etc/utmpファイル中
に記録シ、次に、eXec システム・コールを実行し
て信頼性のあるシェルをオーバーレイする。このように
して、信頼性のある経路が確立される。
あるか、または既に信頼性のあるシェルを存するかのい
ずれかである。どちらのケースでも、initは、環境
の終結処置を行ない、ユーザに信頼性のあるシェルを与
える。initは、新しい子プロセスに対するfork
システム・コールを行ない、子プロセスはユーザ婚末
上でアクセス・モードを変更して、他の誰もその端末に
アクセスできないようにし、所有者IDを変更し、vh
angup コマンドを使ってアクセスを取り消し、次
いで、in itは、子プロセスが今信頼性のあるシェ
ルを走行中であることを/etc/utmpファイル中
に記録シ、次に、eXec システム・コールを実行し
て信頼性のあるシェルをオーバーレイする。このように
して、信頼性のある経路が確立される。
信頼性のあるシェルが終了する方法が、次のケースであ
る。ユーザが今信頼性のあるシェルを走行中であり、そ
れを用いて実行し、たとえばコントロール−Dなどの終
了キーを押すと仮定する。こうしたことが起こると、1
nftは、第1表のループの最上部で、プロセスが終了
したが、このとき、ユーザがコントロール−Dを押した
ので、その終了は正常のexitによるものであること
を検出する。initは、終了させたのが誰かを調べて
、それが信頼性のあるシェルであったことを知る。した
がって、ユーザをログアウトするのでなく、1nftは
、新しい信頼性のないシェルを作成しようとする。そこ
で、initはlogin環境を再び作成し、子プロセ
スが今信頼性のないシェルを実行中であることを本質的
に想起させるレコードを、/etc/ut■ρファイル
に記録し、次いで、fork システム・コールヲ実行
し、続いてexecシステム・コールを行なって、信頼
性のないシェルをオーバーレイする。したがって、4つ
の状況が存在する。
る。ユーザが今信頼性のあるシェルを走行中であり、そ
れを用いて実行し、たとえばコントロール−Dなどの終
了キーを押すと仮定する。こうしたことが起こると、1
nftは、第1表のループの最上部で、プロセスが終了
したが、このとき、ユーザがコントロール−Dを押した
ので、その終了は正常のexitによるものであること
を検出する。initは、終了させたのが誰かを調べて
、それが信頼性のあるシェルであったことを知る。した
がって、ユーザをログアウトするのでなく、1nftは
、新しい信頼性のないシェルを作成しようとする。そこ
で、initはlogin環境を再び作成し、子プロセ
スが今信頼性のないシェルを実行中であることを本質的
に想起させるレコードを、/etc/ut■ρファイル
に記録し、次いで、fork システム・コールヲ実行
し、続いてexecシステム・コールを行なって、信頼
性のないシェルをオーバーレイする。したがって、4つ
の状況が存在する。
initは、プロセスが終了するのを待って、4つの状
況のどれが実際に起こったかを判定し、これら4つの状
況に応じた動作を行なう。
況のどれが実際に起こったかを判定し、これら4つの状
況に応じた動作を行なう。
ここで、第1表に関して上記に記載したような、本発明
によるinitプロセスの動作に焦点を合わせて、第8
図ないし第20図を再検討する。第8図は、プロセスが
とり得る3つの状態のうちの1つを示す状態図である。
によるinitプロセスの動作に焦点を合わせて、第8
図ないし第20図を再検討する。第8図は、プロセスが
とり得る3つの状態のうちの1つを示す状態図である。
状態1は、ログイン前にユーザが真のloginプログ
ラムと対話しているときである。状態2は、ユーザがロ
グインに成功した直後に機密保護アテンション・キーを
使用する前に入る状態であり、最後に、状態3は、ユー
ザが機密保護アテンション・キーを押した後、実際に信
頼性のあるシェル中にあるときである。ユーザが、状態
S1から出発し、真のloginに対話しているものと
する。ユーザにできることは、ログインに成功するかそ
れとも機密保護アテンション・キーを押すか2つのうち
の1つである。機密保護アテンション・キーを押す場合
は、直ちに状態1、言い換えれば、ログイン前の状態に
戻る。
ラムと対話しているときである。状態2は、ユーザがロ
グインに成功した直後に機密保護アテンション・キーを
使用する前に入る状態であり、最後に、状態3は、ユー
ザが機密保護アテンション・キーを押した後、実際に信
頼性のあるシェル中にあるときである。ユーザが、状態
S1から出発し、真のloginに対話しているものと
する。ユーザにできることは、ログインに成功するかそ
れとも機密保護アテンション・キーを押すか2つのうち
の1つである。機密保護アテンション・キーを押す場合
は、直ちに状態1、言い換えれば、ログイン前の状態に
戻る。
ただし、ユーザの名前及び正確なパスワードを指定した
場合は、ログインに成功して、状態2に移り、すなわち
、今通常のシェル(信頼性のないシェル)を有し、通常
の環境にある。状態S2からは、自分の通常の信頼性の
ない作業を何でもやることができ、自分の通常の作業を
している間は、状態S2に留まり続ける。しかし、信頼
性のあるシェルに入りたい場合は、機密保護アテンショ
ン・キーを押す。機密保護アテンション・キーを押すと
、状態S2から、信頼性のあるシェルである状態S3に
移る。ここからは、たとえ機密保護アテンション・キー
を繰り返し押しても、状態S3に留まる。
場合は、ログインに成功して、状態2に移り、すなわち
、今通常のシェル(信頼性のないシェル)を有し、通常
の環境にある。状態S2からは、自分の通常の信頼性の
ない作業を何でもやることができ、自分の通常の作業を
している間は、状態S2に留まり続ける。しかし、信頼
性のあるシェルに入りたい場合は、機密保護アテンショ
ン・キーを押す。機密保護アテンション・キーを押すと
、状態S2から、信頼性のあるシェルである状態S3に
移る。ここからは、たとえ機密保護アテンション・キー
を繰り返し押しても、状態S3に留まる。
言い換えれば、−たび信頼性のあるシェルに入ると、機
密保護アテンション・キーを繰り返し押しても状態S3
に留まる。以前の状態に戻るには、コントロール−Dを
押すか、または通常の脱出を行なう。したがって信頼性
のあるシェルにいてコントロール−Dを用いて通常の脱
出を行なう場合、通常の信頼性のないシェルに戻り、そ
こからコントロール−Dを押すと、最初の状態、すなわ
ちログアウト状態に戻る。
密保護アテンション・キーを繰り返し押しても状態S3
に留まる。以前の状態に戻るには、コントロール−Dを
押すか、または通常の脱出を行なう。したがって信頼性
のあるシェルにいてコントロール−Dを用いて通常の脱
出を行なう場合、通常の信頼性のないシェルに戻り、そ
こからコントロール−Dを押すと、最初の状態、すなわ
ちログアウト状態に戻る。
第9図に移って、作成され破壊される、プロセスのシー
ケンスを示す。最初に、システムを立ち上げるとき、1
個のプロセスinitが存在し、initがシステムの
全プロセスの最上位の親プロセスである。第9図は初期
状態を示し、第10図は、initが最初のプロセスを
生成する時に何が起こるかを示す。このケースでは、そ
れはgettyであり、gettyは画面上に初期ログ
イン・プロンプトを表示するプロセスである。これは、
計算機とログインの名前を示す。このプロセスは、主と
して、端末に耳を傾け、端末がどんな伝送速度で動作し
、ログインしようとするユーザの名前を読み取るかを決
定する責任を負う。
ケンスを示す。最初に、システムを立ち上げるとき、1
個のプロセスinitが存在し、initがシステムの
全プロセスの最上位の親プロセスである。第9図は初期
状態を示し、第10図は、initが最初のプロセスを
生成する時に何が起こるかを示す。このケースでは、そ
れはgettyであり、gettyは画面上に初期ログ
イン・プロンプトを表示するプロセスである。これは、
計算機とログインの名前を示す。このプロセスは、主と
して、端末に耳を傾け、端末がどんな伝送速度で動作し
、ログインしようとするユーザの名前を読み取るかを決
定する責任を負う。
次いで、第11図は、gettyがユーザ名の読取りに
成功し、端末の正確な速度を検出し、次いでexecを
呼び出して、システムがログイン・プログラムを実行す
ることを要求することによりそれ自体をオーバーレイし
た後で、何が起こるかを示す。言い換えれば、gett
yは、ユーザにパスワードの入力を促し、このパスワー
ドを比較するか、あるいはパスワードを暗号化してから
暗号化したパスワードを/etc/passwdと呼ば
れるシステム・ファイルの1フアイル上にあるパスワー
ドの暗号化リストと比較する。一致した場合、ログイン
は成功であり、第12図に移る。不成功の場合、ログイ
ンは繰り返しユーザ名とパスワードの入力を促す。
成功し、端末の正確な速度を検出し、次いでexecを
呼び出して、システムがログイン・プログラムを実行す
ることを要求することによりそれ自体をオーバーレイし
た後で、何が起こるかを示す。言い換えれば、gett
yは、ユーザにパスワードの入力を促し、このパスワー
ドを比較するか、あるいはパスワードを暗号化してから
暗号化したパスワードを/etc/passwdと呼ば
れるシステム・ファイルの1フアイル上にあるパスワー
ドの暗号化リストと比較する。一致した場合、ログイン
は成功であり、第12図に移る。不成功の場合、ログイ
ンは繰り返しユーザ名とパスワードの入力を促す。
第12図に移って、ログインが成功の場合、ログイン・
プログラムは、eXecを使って、これにシェル名をつ
けることにより、それ自体をシェルとオーバーレイする
。この時点で、今や親プロセスin itがあり、その
直接の子孫がシェルまたはUNIX用のコマンド解釈プ
ログラムを走行中である。この状態で、ユーザは自分の
通常の作業を実行することができ、これは第8図の状態
S2に対応する。ユーザが信頼性のあるシェル中に入ろ
うと判断したものと仮定する。
プログラムは、eXecを使って、これにシェル名をつ
けることにより、それ自体をシェルとオーバーレイする
。この時点で、今や親プロセスin itがあり、その
直接の子孫がシェルまたはUNIX用のコマンド解釈プ
ログラムを走行中である。この状態で、ユーザは自分の
通常の作業を実行することができ、これは第8図の状態
S2に対応する。ユーザが信頼性のあるシェル中に入ろ
うと判断したものと仮定する。
第13図は、3つの段階を示す。第1のステップは、シ
ェルを伴うin itを示し、次いで、ユーザが機密保
護アテンション・キーを押した場合に最初に起こること
は、シェルが終了することである。シェルが終了すると
、init自体が残り、initはシェルの終了を検出
し、その代りに信頼性のあるシェルを作成する。このと
き、状態S3にあり、信頼性のあるシェル中でユーザが
自分の作業をすることができる。それによって、信頼性
のある経路が確立される。
ェルを伴うin itを示し、次いで、ユーザが機密保
護アテンション・キーを押した場合に最初に起こること
は、シェルが終了することである。シェルが終了すると
、init自体が残り、initはシェルの終了を検出
し、その代りに信頼性のあるシェルを作成する。このと
き、状態S3にあり、信頼性のあるシェル中でユーザが
自分の作業をすることができる。それによって、信頼性
のある経路が確立される。
どのようにして信頼性のある経路が確立されるかの詳細
は、擬似コードに入っている。第13図は、シェルrs
HJを伴うinitを示す。ユーザが機密保護アテンシ
ョン・キーを押した場合、シェルが終了する。第1表の
擬似コードを見るとわかるように、init はプロセ
スが終了するのを待っており、プロセスはS I GS
AKシグナルによって終了し、この場合、プロセスはユ
ーザ・プロセスまたはシェルであった。こうして、信頼
性のある経路を確立するためにinitが行なうステッ
プは、第13図で第2ステツプと第3ステツプの間に示
した、新しい子プロセスをフォークすることであり、シ
ステムはinitから子プロセスを伴うinitへと移
る。ユーザ端末のアクセス・モードを所有者のみ読取り
可能かつ書込み可能に変更し、その端末の所存者ID及
びグループIDをルートに変更し% vhangupコ
マンドで端末に対するアクセスを呼び出すことによって
、信頼性のある経路が確立される。これらのステップで
信頼性のある経路が確立される。次いで、initは、
子プロセスが信頼性のあるシェルを走行中であることを
/etc/utmpファイルに記録し、第13図の最終
ステップである信頼性のあるシェルのexecを実行す
る。
は、擬似コードに入っている。第13図は、シェルrs
HJを伴うinitを示す。ユーザが機密保護アテンシ
ョン・キーを押した場合、シェルが終了する。第1表の
擬似コードを見るとわかるように、init はプロセ
スが終了するのを待っており、プロセスはS I GS
AKシグナルによって終了し、この場合、プロセスはユ
ーザ・プロセスまたはシェルであった。こうして、信頼
性のある経路を確立するためにinitが行なうステッ
プは、第13図で第2ステツプと第3ステツプの間に示
した、新しい子プロセスをフォークすることであり、シ
ステムはinitから子プロセスを伴うinitへと移
る。ユーザ端末のアクセス・モードを所有者のみ読取り
可能かつ書込み可能に変更し、その端末の所存者ID及
びグループIDをルートに変更し% vhangupコ
マンドで端末に対するアクセスを呼び出すことによって
、信頼性のある経路が確立される。これらのステップで
信頼性のある経路が確立される。次いで、initは、
子プロセスが信頼性のあるシェルを走行中であることを
/etc/utmpファイルに記録し、第13図の最終
ステップである信頼性のあるシェルのexecを実行す
る。
を
第13図から、ユーザが信頼性のあるシェルからいくつ
かのコマンドを実行しようとしていると仮定する。たと
えば、ユーザが自分のパスワードを変更したい場合、パ
スワード・コマンドをタイプすると、直接の子孫として
信頼性のあるシェル、その下の子孫としてパスワード・
コマンドを伴っているinitをもつという、第14図
に示した最初の遷移が生じることになる。次いで、この
パスワード・コマンドが終了すると、ちょうどin i
tと信頼性のあるシェルだけがある状況に戻る。第14
図には、信頼性のあるシェルを走行させ、コマンドを出
し、このコマンドを実行させ、次いで信頼性のあるシェ
ルに戻るところを示す。
かのコマンドを実行しようとしていると仮定する。たと
えば、ユーザが自分のパスワードを変更したい場合、パ
スワード・コマンドをタイプすると、直接の子孫として
信頼性のあるシェル、その下の子孫としてパスワード・
コマンドを伴っているinitをもつという、第14図
に示した最初の遷移が生じることになる。次いで、この
パスワード・コマンドが終了すると、ちょうどin i
tと信頼性のあるシェルだけがある状況に戻る。第14
図には、信頼性のあるシェルを走行させ、コマンドを出
し、このコマンドを実行させ、次いで信頼性のあるシェ
ルに戻るところを示す。
第15図に進むに当たって、ユーザが信頼性のあるシェ
ルを用いて仕事を片づけ、通常のシェルに戻ろうとする
ものと仮定する。この図は、第8図の元の状態図で状態
S3から状態S2に移るときに何が起こるかを示してい
る。ユーザが信頼性のあるシェルに対するコントロール
−Dを押した場合、信頼性のあるシェルが終了し、次い
で、initが信頼性のあるシェルを再び作成する。第
1表の擬似コードを参照すると、再びループの最上部か
ら出発して、fnljはプロセスが終了するのを待ち、
プロセスが終了したのを検出すると、どのような状況下
で終了したのかを調べる。ユーザは信頼性のあるシェル
から通常の脱出を行なったので、initは、通常脱出
によってプロセスが終了したとのステートメントに達す
る。次いで、1nftは、どういう種類のプロセスが終
了したのかを調べる。この場合は、信頼性のあるシェル
であった。したがって、initは3つのステップを実
行する。1nftが最初に行なうことは、ログイン環境
を再生成することである。すなわち、その特定のユーザ
IDを有するプロセスが、ユーザが最初にログインした
ときの通りに環境を再び初期設定するということである
。initは、/etc/utmpファイル中に、子プ
ロセスが今は信頼性のあるシェルと対立するものとして
の信頼性のないシェルを走行させていると記録し、次い
で、fork−execシステム・コール・シーケンス
を実行シて、信頼性のないシェルをオーバーレイする。
ルを用いて仕事を片づけ、通常のシェルに戻ろうとする
ものと仮定する。この図は、第8図の元の状態図で状態
S3から状態S2に移るときに何が起こるかを示してい
る。ユーザが信頼性のあるシェルに対するコントロール
−Dを押した場合、信頼性のあるシェルが終了し、次い
で、initが信頼性のあるシェルを再び作成する。第
1表の擬似コードを参照すると、再びループの最上部か
ら出発して、fnljはプロセスが終了するのを待ち、
プロセスが終了したのを検出すると、どのような状況下
で終了したのかを調べる。ユーザは信頼性のあるシェル
から通常の脱出を行なったので、initは、通常脱出
によってプロセスが終了したとのステートメントに達す
る。次いで、1nftは、どういう種類のプロセスが終
了したのかを調べる。この場合は、信頼性のあるシェル
であった。したがって、initは3つのステップを実
行する。1nftが最初に行なうことは、ログイン環境
を再生成することである。すなわち、その特定のユーザ
IDを有するプロセスが、ユーザが最初にログインした
ときの通りに環境を再び初期設定するということである
。initは、/etc/utmpファイル中に、子プ
ロセスが今は信頼性のあるシェルと対立するものとして
の信頼性のないシェルを走行させていると記録し、次い
で、fork−execシステム・コール・シーケンス
を実行シて、信頼性のないシェルをオーバーレイする。
そうすると、第15図の第3のステップに至ることにな
る。
る。
第16図は、その下に数個のプロセスを走行させている
シェルrsHJの一例を示す。たとえば、ユーザがログ
インし終わった後、ユーザが信頼性のあるシェルを有し
ていようと通常のシェルを有していようと、コマンドを
実行する際に、それは、そのシェルの直接の子孫である
プ゛ロセスを作成する。最初の図はスプレッドシートを
走行中のシェルrsHJを示し、次いでこのスプレッド
シートが他のオペレーティング・システム・コマンドを
走行させるため゛、さらに次のサブシェルを作成する。
シェルrsHJの一例を示す。たとえば、ユーザがログ
インし終わった後、ユーザが信頼性のあるシェルを有し
ていようと通常のシェルを有していようと、コマンドを
実行する際に、それは、そのシェルの直接の子孫である
プ゛ロセスを作成する。最初の図はスプレッドシートを
走行中のシェルrsHJを示し、次いでこのスプレッド
シートが他のオペレーティング・システム・コマンドを
走行させるため゛、さらに次のサブシェルを作成する。
第16図の第2の図は、シェルSHと、その特定シェル
から実行されている任意の数のプロセスを表わすプロセ
スのツリーとを伴うinitである。
から実行されている任意の数のプロセスを表わすプロセ
スのツリーとを伴うinitである。
第17図は、ユーザが機密保護アテンシ1ン・キーを押
したが、シェルSH以外のものもある場合、どんなこと
が起こるのかを示す。言い換えれば、ユーザが通常の信
頼性のないシェルで作業していて、たとえば様々なアプ
リケ−シロン・プログラムなど、プログラムの全体を走
行させている最中であると仮定する。この図は、シェル
SHが終了するだけでなく、シェルSHの下で走行して
いるすべてのプロセス、すなわち全アプリケ−シロン・
プログラムも終了することを示している。
したが、シェルSH以外のものもある場合、どんなこと
が起こるのかを示す。言い換えれば、ユーザが通常の信
頼性のないシェルで作業していて、たとえば様々なアプ
リケ−シロン・プログラムなど、プログラムの全体を走
行させている最中であると仮定する。この図は、シェル
SHが終了するだけでなく、シェルSHの下で走行して
いるすべてのプロセス、すなわち全アプリケ−シロン・
プログラムも終了することを示している。
第18図は、走行するプロセスのタイプの特定の例であ
る、プロセスの集合と端末の間の関係を示す。第18図
は、スプレッドシート及びデータベースを伴うシェルS
Hを示し、データベースがトロイの木馬を含んでいるあ
るプログラムを走行させたと仮定する。これらはすべて
、ある特定の端末に接続され、対話している。これらす
べてのプロセスで、ユーザが機密保護アテンション・キ
ーを押すと、シェル、スプレッドシート、データベース
、及びトロイの木馬が直ちに終了し、その代りに信頼性
のあるシェルTSHが端末に接続される。
る、プロセスの集合と端末の間の関係を示す。第18図
は、スプレッドシート及びデータベースを伴うシェルS
Hを示し、データベースがトロイの木馬を含んでいるあ
るプログラムを走行させたと仮定する。これらはすべて
、ある特定の端末に接続され、対話している。これらす
べてのプロセスで、ユーザが機密保護アテンション・キ
ーを押すと、シェル、スプレッドシート、データベース
、及びトロイの木馬が直ちに終了し、その代りに信頼性
のあるシェルTSHが端末に接続される。
信頼性のあるシェルを使ってユーザが仕事を片付け、第
20図の制御りを押すと、tnitは、信頼性のあるシ
ェルを削除し、その代りに通常の信頼性のないシェルS
Hが端末に接続される。
20図の制御りを押すと、tnitは、信頼性のあるシ
ェルを削除し、その代りに通常の信頼性のないシェルS
Hが端末に接続される。
第 1 表
In1t:
プロセスが終了するのを待つ;
1fSIGSAKによってプロセスが終了したthen
ifプロセスがgetty またはlogin であっ
たthen 新たな子プロセスをフォークする; 子フロセスが端末のアクセス・モードを所存者のみ読取
り可能かつ書込み可能に変更する; 子プロセスが端末の所有者ID及びグループIDをルー
トに変更し; vhangupで端末に対するアクセ
スを無効化する; 子プロセスがgettyプログラムを実行する; else ifプロセスがユーザ・プロセスまたはTS
Hであったthen 新しい子プロセスをフォークする; 子フロセスが端末のアクセス・モードを所を者のみ読取
り可能かつ書込み可能に変更する; 子プロセスが端末の所有者ID及びグループIDをルー
トに変更し; vhangupで端末に対するアクセ
スを無効化する; /etc/utmp ファイル中に、子プロセスがTS
Hを走行中であると記録する; 信頼性のあるシェル(T S H)を実行する; end 1f else if通常の脱出によってプロセスが終了した
then ifプロセスがTSHであったthenlogin環境
を再生成する; /etc/utmp ファイル中に、子プロセスが信頼
性のないシェル上で走行中であることを記録する; 信頼性のないシェルをフォーク/実行する else gettyの新しいインスタンスをフォーク/実行する
。
たthen 新たな子プロセスをフォークする; 子フロセスが端末のアクセス・モードを所存者のみ読取
り可能かつ書込み可能に変更する; 子プロセスが端末の所有者ID及びグループIDをルー
トに変更し; vhangupで端末に対するアクセ
スを無効化する; 子プロセスがgettyプログラムを実行する; else ifプロセスがユーザ・プロセスまたはTS
Hであったthen 新しい子プロセスをフォークする; 子フロセスが端末のアクセス・モードを所を者のみ読取
り可能かつ書込み可能に変更する; 子プロセスが端末の所有者ID及びグループIDをルー
トに変更し; vhangupで端末に対するアクセ
スを無効化する; /etc/utmp ファイル中に、子プロセスがTS
Hを走行中であると記録する; 信頼性のあるシェル(T S H)を実行する; end 1f else if通常の脱出によってプロセスが終了した
then ifプロセスがTSHであったthenlogin環境
を再生成する; /etc/utmp ファイル中に、子プロセスが信頼
性のないシェル上で走行中であることを記録する; 信頼性のないシェルをフォーク/実行する else gettyの新しいインスタンスをフォーク/実行する
。
end 1f
end 1oop
F0発明の効果
本明細書に開示した、オペレーティング・システム用の
信頼性のある経路機構は、無許可プログラムがユーザ端
末からデータを読み取るのを防止することができる信頼
性のある経路機構をもたらす。機構は、ユーザが端末の
キーボードでタイプしたデータが無許可プログラムによ
る侵入から防護されることを保証する。この信頼性のあ
る経路機構により、ユーザは、ユーザ端末と信頼性のあ
るオペレーティング・システム・ソフトウェアの間に偽
造不可能かつ侵入不可能な通信経路を形成することがで
きる。
信頼性のある経路機構は、無許可プログラムがユーザ端
末からデータを読み取るのを防止することができる信頼
性のある経路機構をもたらす。機構は、ユーザが端末の
キーボードでタイプしたデータが無許可プログラムによ
る侵入から防護されることを保証する。この信頼性のあ
る経路機構により、ユーザは、ユーザ端末と信頼性のあ
るオペレーティング・システム・ソフトウェアの間に偽
造不可能かつ侵入不可能な通信経路を形成することがで
きる。
第1図は、本発明に従って、信頼性のある経路を呼び出
すための機密保護アテンシ1ン・キー機能を中に含む、
UNIX類似のオペレーティング・システムで動作する
データ処理装置の概略図である。 第2図は、UNIX類似のマルチ・ユーザ・オペレーテ
ィング・システムで動作するデータ処理装置の概略図で
ある。 第3図は、信頼性のある経路の確立を示す、第2図のデ
ータ処理装置の概略図である。 第4図は、プロセスを管理するためにカーネルによって
維持されるテーブルを示す図である。 第5図は、システムを初期設定するとき、カーネルがど
のようにプロセスを構築するかを示す図である。 第6図は、親プロセスと子プロセスの関係を示す図であ
る。 第7図は、プロセスが、どのようにしていくつかの状態
のうちの1つの状態をとり得るかを示す図である。 第8図は、機密保護アテンシ1ン・キー(SAK)を押
したときの状態図である。 第9図は、initプロセスを示す図であゐ。 第10図は、第9図に続くもので、initがfork
を呼び出して子プロセスを生成し、次いで、子プロセス
に初期ログイン・プロンプトを印刷して端末特性を決定
するgettyプロセスを実行させるところを示す図で
ある。 第11図は、第10図に続くもので、ユーザが自分のユ
ーザ名前をgettyにタイプしたとき、gettyが
ログイン・プロセスを実行するところを示す。 第12図は、第11図に続くもので、ログインに成功し
た後に、ログイン・プロセスが、たとえばSHなど、こ
のユーザに指定されたログイン・シェルを実行するとこ
ろを示す。 第13図は、第12図に続くもので、ユーザが機密保護
アテンシヨン・キー(SAK)を押すと、伝送制御手順
ドライバが制御端末プロセス・グループ中の全プロセス
に5IGSAKシグナルを送るところを示す。これに応
答して、ログイン・シェルSHは死滅し、initプロ
セスが新しい子プロセスをフォークして、これが信頼性
のあるシェル・プロセス(TSH)を実行する。 第14図は、第13図に続くもので、信頼性のあるシェ
ルTSH内でパスワード・プログラムを実行させる場合
に、TSHが子プロセスをフォークし、この子プロセス
がパスワードを実行するところを示す。パスワード・プ
ロセスが終わったとき、信頼性のあるシェルTSHは、
なお実行中である。 第15図は、第14図に続くもので、信頼性のあるシェ
ルがexit機能を実行し、それにより、ユーザ端末と
信頼性のある計算ベースの間に確立されていた信頼性の
ある経路を終了させるところを示す。 第16図は、複数のプロセスがシェルSHの下で、多重
プログラミングまたは多重処理動作で実行されている、
第12図に示したものと別の状態を示す。 第17図は、第16図に続くもので、機密保護アテンシ
1ン・キーを押して、5IGSAKシグナルを出すと、
上記のように、複数のオペレーティング・プロセスを有
するシェルSHが終了し、initプロセスが信頼性の
あるプロセスTSHを作成し、それによって、信頼性の
ある経路を確立するという、第13図に示したものとは
別の状況を示す。 第18図は、シェルSHが、スプレッドシート・プロセ
スと、トロイの木馬プログラムが付加されているデータ
ベース(DB)プロセスの2つのプロセスを実行してい
るシステムにおける処理状態の概略図である。 第19図は、自分の機密保護アテンシeン・キー(SA
K)を押して、シェルSHとその対応するスプレッドシ
ート・プログラム・プロセス及びデータベース・マネー
ジャ・プロセスを破壊させ、最も重要なことには、トロ
イの木馬プログラムを破壊させることにより、ユーザが
、どのように自分の端末と信頼性のある計算ベースの間
に信頼性のある経路を確立することができるかを示す図
である。第19図は、Enltnl上スが信頼性のある
シェルTSHプロセスを作成するところを示す。 第20図は、ユーザが希望するタスクを信頼性のあるシ
ェルTSHプロセスがその信頼性のある経路上で遂行し
た後、信頼性のあるシェルTSHが自然終了または脱出
され、それによってfnitにシェルSHを再び作成さ
せるところを示す図である。 第21図は、本発明によるinitプロセスの流れ図で
ある。 出願人 インターナシロナル・ビジネス・マシーンズ
ーコーポレーシロン 代理人 弁理士 頓 宮 孝 −(外1名) システム プロセス プロセス 10せ
ス第6@ プロセス終了 (LOGINシェ―し八tとl (TSHシエし屋
1ね )第8図 第12E SAK打健 第13図 第142 第15図 TSHt EXIT 第19図 第20図
すための機密保護アテンシ1ン・キー機能を中に含む、
UNIX類似のオペレーティング・システムで動作する
データ処理装置の概略図である。 第2図は、UNIX類似のマルチ・ユーザ・オペレーテ
ィング・システムで動作するデータ処理装置の概略図で
ある。 第3図は、信頼性のある経路の確立を示す、第2図のデ
ータ処理装置の概略図である。 第4図は、プロセスを管理するためにカーネルによって
維持されるテーブルを示す図である。 第5図は、システムを初期設定するとき、カーネルがど
のようにプロセスを構築するかを示す図である。 第6図は、親プロセスと子プロセスの関係を示す図であ
る。 第7図は、プロセスが、どのようにしていくつかの状態
のうちの1つの状態をとり得るかを示す図である。 第8図は、機密保護アテンシ1ン・キー(SAK)を押
したときの状態図である。 第9図は、initプロセスを示す図であゐ。 第10図は、第9図に続くもので、initがfork
を呼び出して子プロセスを生成し、次いで、子プロセス
に初期ログイン・プロンプトを印刷して端末特性を決定
するgettyプロセスを実行させるところを示す図で
ある。 第11図は、第10図に続くもので、ユーザが自分のユ
ーザ名前をgettyにタイプしたとき、gettyが
ログイン・プロセスを実行するところを示す。 第12図は、第11図に続くもので、ログインに成功し
た後に、ログイン・プロセスが、たとえばSHなど、こ
のユーザに指定されたログイン・シェルを実行するとこ
ろを示す。 第13図は、第12図に続くもので、ユーザが機密保護
アテンシヨン・キー(SAK)を押すと、伝送制御手順
ドライバが制御端末プロセス・グループ中の全プロセス
に5IGSAKシグナルを送るところを示す。これに応
答して、ログイン・シェルSHは死滅し、initプロ
セスが新しい子プロセスをフォークして、これが信頼性
のあるシェル・プロセス(TSH)を実行する。 第14図は、第13図に続くもので、信頼性のあるシェ
ルTSH内でパスワード・プログラムを実行させる場合
に、TSHが子プロセスをフォークし、この子プロセス
がパスワードを実行するところを示す。パスワード・プ
ロセスが終わったとき、信頼性のあるシェルTSHは、
なお実行中である。 第15図は、第14図に続くもので、信頼性のあるシェ
ルがexit機能を実行し、それにより、ユーザ端末と
信頼性のある計算ベースの間に確立されていた信頼性の
ある経路を終了させるところを示す。 第16図は、複数のプロセスがシェルSHの下で、多重
プログラミングまたは多重処理動作で実行されている、
第12図に示したものと別の状態を示す。 第17図は、第16図に続くもので、機密保護アテンシ
1ン・キーを押して、5IGSAKシグナルを出すと、
上記のように、複数のオペレーティング・プロセスを有
するシェルSHが終了し、initプロセスが信頼性の
あるプロセスTSHを作成し、それによって、信頼性の
ある経路を確立するという、第13図に示したものとは
別の状況を示す。 第18図は、シェルSHが、スプレッドシート・プロセ
スと、トロイの木馬プログラムが付加されているデータ
ベース(DB)プロセスの2つのプロセスを実行してい
るシステムにおける処理状態の概略図である。 第19図は、自分の機密保護アテンシeン・キー(SA
K)を押して、シェルSHとその対応するスプレッドシ
ート・プログラム・プロセス及びデータベース・マネー
ジャ・プロセスを破壊させ、最も重要なことには、トロ
イの木馬プログラムを破壊させることにより、ユーザが
、どのように自分の端末と信頼性のある計算ベースの間
に信頼性のある経路を確立することができるかを示す図
である。第19図は、Enltnl上スが信頼性のある
シェルTSHプロセスを作成するところを示す。 第20図は、ユーザが希望するタスクを信頼性のあるシ
ェルTSHプロセスがその信頼性のある経路上で遂行し
た後、信頼性のあるシェルTSHが自然終了または脱出
され、それによってfnitにシェルSHを再び作成さ
せるところを示す図である。 第21図は、本発明によるinitプロセスの流れ図で
ある。 出願人 インターナシロナル・ビジネス・マシーンズ
ーコーポレーシロン 代理人 弁理士 頓 宮 孝 −(外1名) システム プロセス プロセス 10せ
ス第6@ プロセス終了 (LOGINシェ―し八tとl (TSHシエし屋
1ね )第8図 第12E SAK打健 第13図 第142 第15図 TSHt EXIT 第19図 第20図
Claims (2)
- (1)UNIX型のオペレーティング・システムにおい
て、initプロセスを走行させるデータ処理装置に接
続された端末と上記データ処理装置中の信頼のおける計
算ベースのシェル部分との間に、要求に応じて、信頼の
おける経路を形成する方法であって、 上記initプロセスの制御の下に走行している既存の
プロセスの終了をテストし、 上記要求により上記既存のプロセスが終了した時、上記
initプロセスによりforkシステム・コールを実
行して新しい子プロセスを生成し、端末のアクセス・モ
ードを、所有者のみに読取り可能且つ書込み可能に変更
し、 端末の所有者識別情報をルートに変更し、 端末に対するアクセスを取消し、 上記子プロセスが信頼のおけるシェルを走行させている
ことを記録し、 上記新しい子プロセス上に上記信頼のおけるシェルをオ
ーバーレイするためにexecシステム・コールを実行
するステップを含む、 端末とデータ処理装置との間に信頼のおける経路を形成
する方法。 - (2)複数の端末が接続され、少なくとも1つの端末が
機密保護アテンション・キーを有するキーボードを含み
、UNIX型のオペレーティング・システムが稼働して
いるデータ処理システムにおいて、上記機密保護アテン
ション・キーに応答して、上記端末と上記オペレーティ
ング・システムの下のinitプロセスの子プロセスで
ある信頼のおける計算ベースのシェル部分との間に信頼
のおける経路を形成する方法であって、 上記キーボードに接続されたキーボード・デバイス・ド
ライバにおいて上記機密保護アテンション・キーを検出
し、 上記キーボード・デバイス・ドライバから機密保護アテ
ンション・キー・シグナル・ジェネレータに、上記機密
保護アテンション・キーが検出されたという情報を出力
し、 上記機密保護アテンション・キー・シグナル・ジェネレ
ータから、上記端末のプロセス・グループ中で動作して
いる全てのプロセスにSIGSAKシグナルを出力して
、上記プロセスの全部を終了させ、 上記initプロセス以外の上記データ処理システム中
の全部のプロセスに対してアクセス許可を拒否するよう
に、上記端末とインターフェースする全てのデバイス・
ドライバに関連するアクセス許可テーブルに上記SIG
SAK信号を印加し、上記initプロセス以外の上記
データ処理システム中の全部のプロセスに関して、上記
端末とインターフェースする上記デバイス・ドライバに
関する全部のアドレシング情報を除去するように、ファ
イル・アクセス・テーブルに上記SIGSAK信号を印
加し、 上記initプロセスによりforkシステム・コール
を実行して新しい子プロセスを生成し、 execシステム・コールを実行して、上記新しい子プ
ロセス上に、信頼のおけるシェル・プロセスであって上
記端末とインターフェースする上記デバイス・ドライバ
に対してアクセス許可を有し且つ上記デバイス・ドライ
バに対する上記ファイル・アクセス・テーブル中に定義
されたアドレシング関係を有するものをオーバレイする
ステップを含む、 端末とデータ処理装置との間に信頼のおける経路を形成
する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/149,446 US4918653A (en) | 1988-01-28 | 1988-01-28 | Trusted path mechanism for an operating system |
| US149446 | 1988-01-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01233543A true JPH01233543A (ja) | 1989-09-19 |
Family
ID=22530315
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1017842A Pending JPH01233543A (ja) | 1988-01-28 | 1989-01-30 | 端末と信頼のおける計算ベースのシェル部分との間に信頼のおける経路を形成する方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4918653A (ja) |
| EP (1) | EP0325776B1 (ja) |
| JP (1) | JPH01233543A (ja) |
| DE (1) | DE3851049T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006330835A (ja) * | 2005-05-23 | 2006-12-07 | Kyocera Corp | デバイス制御装置、デバイス制御方法およびプログラム |
Families Citing this family (104)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4984272A (en) * | 1988-11-30 | 1991-01-08 | At&T Bell Laboratories | Secure file handling in a computer operating system |
| CA2025142A1 (en) * | 1989-09-28 | 1991-03-29 | John W. White | Portable and dynamic distributed applications architecture |
| US6507909B1 (en) | 1990-02-13 | 2003-01-14 | Compaq Information Technologies Group, L.P. | Method for executing trusted-path commands |
| US5204961A (en) * | 1990-06-25 | 1993-04-20 | Digital Equipment Corporation | Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols |
| US5625821A (en) * | 1991-08-12 | 1997-04-29 | International Business Machines Corporation | Asynchronous or synchronous operation of event signaller by event management services in a computer system |
| US5237684A (en) * | 1991-08-12 | 1993-08-17 | International Business Machines Corporation | Customized and versatile event monitor within event management services of a computer system |
| US5355484A (en) * | 1991-08-12 | 1994-10-11 | International Business Machines Corporation | Dynamically established event monitors in event management services of a computer system |
| US5305454A (en) * | 1991-08-12 | 1994-04-19 | International Business Machines Corporation | Notification of event handlers in broadcast or propagation mode by event management services in a computer system |
| US6836548B1 (en) * | 1991-10-29 | 2004-12-28 | The Commonwealth Of Australia | Communications security and trusted path method and means |
| US5317695A (en) * | 1992-04-03 | 1994-05-31 | International Business Machines Corporation | Method and system for permitting communication between a data processing system and input pointing devices of multiple types |
| US5276735A (en) * | 1992-04-17 | 1994-01-04 | Secure Computing Corporation | Data enclave and trusted path system |
| US5596718A (en) * | 1992-07-10 | 1997-01-21 | Secure Computing Corporation | Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor |
| US5361359A (en) * | 1992-08-31 | 1994-11-01 | Trusted Information Systems, Inc. | System and method for controlling the use of a computer |
| US5434850A (en) | 1993-06-17 | 1995-07-18 | Skydata Corporation | Frame relay protocol-based multiplex switching scheme for satellite |
| US6771617B1 (en) * | 1993-06-17 | 2004-08-03 | Gilat Satellite Networks, Ltd. | Frame relay protocol-based multiplex switching scheme for satellite mesh network |
| US5572711A (en) * | 1993-09-28 | 1996-11-05 | Bull Hn Information Systems Inc. | Mechanism for linking together the files of emulated and host system for access by emulated system users |
| US5566326A (en) * | 1993-09-28 | 1996-10-15 | Bull Hn Information Systems Inc. | Copy file mechanism for transferring files between a host system and an emulated file system |
| US5675771A (en) * | 1993-09-28 | 1997-10-07 | Bull Hn Information Systems Inc. | Mechanism for enabling emulation system users to directly invoke a number of host system facilities for executing host procedures either synchronously or asynchronously in a secure manner through automatically created shell mechanisms |
| US5664098A (en) * | 1993-09-28 | 1997-09-02 | Bull Hn Information Systems Inc. | Dual decor capability for a host system which runs emulated application programs to enable direct access to host facilities for executing emulated system operations |
| US5544322A (en) * | 1994-05-09 | 1996-08-06 | International Business Machines Corporation | System and method for policy-based inter-realm authentication within a distributed processing system |
| US6473793B1 (en) * | 1994-06-08 | 2002-10-29 | Hughes Electronics Corporation | Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users |
| US6701370B1 (en) * | 1994-06-08 | 2004-03-02 | Hughes Electronics Corporation | Network system with TCP/IP protocol spoofing |
| AU706160B2 (en) | 1994-06-08 | 1999-06-10 | Hughes Electronics Corporation | Apparatus and method for hybrid network access |
| US5652795A (en) * | 1994-11-14 | 1997-07-29 | Hughes Electronics | Method and apparatus for an adapter card providing conditional access in a communication system |
| JPH08272567A (ja) * | 1995-03-14 | 1996-10-18 | Ncr Internatl Inc | Unixシステムにおけるスクリーンイメージの印刷方法 |
| US6006328A (en) * | 1995-07-14 | 1999-12-21 | Christopher N. Drake | Computer software authentication, protection, and security system |
| AU725098B2 (en) * | 1995-07-14 | 2000-10-05 | Christopher Nathan Drake | Computer software authentication, protection, and security system |
| US5734820A (en) * | 1996-03-11 | 1998-03-31 | Sterling Commerce, Inc. | Security apparatus and method for a data communications system |
| US5841869A (en) * | 1996-08-23 | 1998-11-24 | Cheyenne Property Trust | Method and apparatus for trusted processing |
| US6088779A (en) * | 1996-12-30 | 2000-07-11 | Fujitsu Limited | System and method for execution management of computer programs |
| US5978912A (en) * | 1997-03-20 | 1999-11-02 | Phoenix Technologies Limited | Network enhanced BIOS enabling remote management of a computer without a functioning operating system |
| US6119212A (en) * | 1997-04-23 | 2000-09-12 | Advanced Micro Devices, Inc. | Root size decrease on a UNIX based computer system |
| US5991860A (en) * | 1997-04-23 | 1999-11-23 | Advanced Micro Devices, Inc. | Root file system size increase on a unix based computer system |
| US5968170A (en) * | 1997-04-23 | 1999-10-19 | Advanced Micro Devices, Inc. | Primary swap size increase on a UNIX based computer system |
| US5964874A (en) * | 1997-04-23 | 1999-10-12 | Advanced Micro Devices, Inc. | Swap size decrease on a UNIX based computer system |
| US6141771A (en) * | 1998-02-06 | 2000-10-31 | International Business Machines Corporation | Method and system for providing a trusted machine state |
| US6219770B1 (en) * | 1998-03-23 | 2001-04-17 | Compaq Computer Corporation | Method and apparatus for managing copy on write operations in a virtual memory |
| US6289344B1 (en) | 1998-05-11 | 2001-09-11 | International Business Machines Corporation | Context-sensitive authorization in an RDBMS |
| US6289463B1 (en) | 1998-12-29 | 2001-09-11 | Ncr Corporation | Establishing communications between a computer system using a Unix operating platform and a computer system using a Windows NT operation platform |
| US7644439B2 (en) * | 1999-05-03 | 2010-01-05 | Cisco Technology, Inc. | Timing attacks against user logon and network I/O |
| US7451484B1 (en) * | 1999-05-27 | 2008-11-11 | International Business Machines Corporation | Method for enabling a program written in untrusted code to interact with a security subsystem of a hosting operating system |
| EP1076279A1 (en) * | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computer platforms and their methods of operation |
| GB9922665D0 (en) | 1999-09-25 | 1999-11-24 | Hewlett Packard Co | A method of enforcing trusted functionality in a full function platform |
| FR2804234B1 (fr) * | 2000-01-24 | 2003-05-09 | Gemplus Card Int | Procede de protection contre le vol de la valeur d'authentification pour cartes a puce(s) multi-applications, cartes a puce(s) mettant en oeuvre le procede et terminaux susceptibles de recevoir lesdites cartes |
| US6895502B1 (en) | 2000-06-08 | 2005-05-17 | Curriculum Corporation | Method and system for securely displaying and confirming request to perform operation on host computer |
| US6907524B1 (en) | 2000-10-13 | 2005-06-14 | Phoenix Technologies Ltd. | Extensible firmware interface virus scan |
| US7073173B1 (en) * | 2000-12-04 | 2006-07-04 | Microsoft Corporation | Code and thread differential addressing via multiplex page maps |
| WO2002086684A2 (en) * | 2001-04-24 | 2002-10-31 | Hewlett-Packard Company | An information security system |
| US7260820B1 (en) | 2001-04-26 | 2007-08-21 | Vm Ware, Inc. | Undefeatable transformation for virtual machine I/O operations |
| US7428636B1 (en) * | 2001-04-26 | 2008-09-23 | Vmware, Inc. | Selective encryption system and method for I/O operations |
| US7089561B2 (en) * | 2001-06-01 | 2006-08-08 | Microsoft Corporation | Methods and systems for creating and communicating with computer processes |
| KR100439171B1 (ko) * | 2001-11-21 | 2004-07-05 | 한국전자통신연구원 | 접근제어 처리 기법을 이용한 클라이언트와 시스템간의신뢰경로 보장 방법 |
| US7085933B2 (en) * | 2002-06-11 | 2006-08-01 | Lenvo (Singapore) Pte, Ltd. | Computer system apparatus and method for improved assurance of authentication |
| GB2390249B (en) | 2002-06-28 | 2005-12-14 | Sony Uk Ltd | Embedded data in an information signal |
| US7219234B1 (en) | 2002-07-24 | 2007-05-15 | Unisys Corporation | System and method for managing access rights and privileges in a data processing system |
| AU2003256228A1 (en) * | 2002-07-31 | 2004-02-25 | Secure Tx Pte Ltd | System and method for secure data entry |
| GB2392262A (en) * | 2002-08-23 | 2004-02-25 | Hewlett Packard Co | A method of controlling the processing of data |
| US7266658B2 (en) * | 2002-09-12 | 2007-09-04 | International Business Machines Corporation | System, method, and computer program product for prohibiting unauthorized access to protected memory regions |
| US7380246B2 (en) * | 2003-12-15 | 2008-05-27 | Lenovo (Singapore) Pte. Ltd. | Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented with byte-range locking |
| US20050131960A1 (en) * | 2003-12-15 | 2005-06-16 | Reed Benjamin C. | Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented at file-open time |
| US7783891B2 (en) * | 2004-02-25 | 2010-08-24 | Microsoft Corporation | System and method facilitating secure credential management |
| US8719591B1 (en) | 2004-05-14 | 2014-05-06 | Radix Holdings, Llc | Secure data entry |
| US8219807B1 (en) | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
| US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
| US20060137000A1 (en) * | 2004-12-20 | 2006-06-22 | Isaacson Scott A | Method binding network administrators as the root user on linux |
| US7490072B1 (en) | 2005-02-16 | 2009-02-10 | Novell, Inc. | Providing access controls |
| EP2194476B1 (en) | 2005-03-22 | 2014-12-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for creating a record of a software-verification attestation |
| US8352935B2 (en) | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
| US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
| US7996659B2 (en) * | 2005-06-06 | 2011-08-09 | Atmel Corporation | Microprocessor instruction that allows system routine calls and returns from all contexts |
| US20070011744A1 (en) * | 2005-07-11 | 2007-01-11 | Cox Communications | Methods and systems for providing security from malicious software |
| US9087218B1 (en) | 2005-08-11 | 2015-07-21 | Aaron T. Emigh | Trusted path |
| US7996682B2 (en) * | 2005-10-17 | 2011-08-09 | Microsoft Corporation | Secure prompting |
| US8676973B2 (en) * | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
| US7730480B2 (en) | 2006-08-22 | 2010-06-01 | Novell, Inc. | System and method for creating a pattern installation by cloning software installed another computer |
| US8316218B2 (en) * | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
| US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
| US8312458B2 (en) * | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
| US8171476B2 (en) * | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
| US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
| US8250396B2 (en) | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
| US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
| US8225120B2 (en) * | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
| US8127080B2 (en) * | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
| US8640141B2 (en) * | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
| US8516484B2 (en) * | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
| US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
| US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
| US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
| US8880853B2 (en) * | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
| US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
| US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
| US7865705B2 (en) * | 2008-02-01 | 2011-01-04 | International Business Machines Corporation | Branch target address cache including address type tag bit |
| US9166797B2 (en) * | 2008-10-24 | 2015-10-20 | Microsoft Technology Licensing, Llc | Secured compartment for transactions |
| US8082315B2 (en) | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
| US8886919B2 (en) * | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
| US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
| US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
| WO2011119137A1 (en) | 2010-03-22 | 2011-09-29 | Lrdc Systems, Llc | A method of identifying and protecting the integrity of a set of source data |
| CN102663274B (zh) * | 2012-02-07 | 2015-12-02 | 北京奇虎科技有限公司 | 一种检测远程入侵计算机行为的方法及系统 |
| WO2013159289A1 (en) * | 2012-04-25 | 2013-10-31 | Hewlett-Packard Development Company | Switching of operating systems |
| KR101732889B1 (ko) * | 2013-11-04 | 2017-05-08 | 한국전자통신연구원 | 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법 |
| US10362136B2 (en) * | 2014-08-20 | 2019-07-23 | Visa International Service Association | Device profile data usage for state management in mobile device authentication |
| CN106934303B (zh) * | 2015-12-29 | 2020-10-30 | 大唐高鸿信安(浙江)信息科技有限公司 | 基于可信芯片的可信操作系统创建可信进程的系统及方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4227253A (en) * | 1977-12-05 | 1980-10-07 | International Business Machines Corporation | Cryptographic communication security for multiple domain networks |
| US4310720A (en) * | 1978-03-31 | 1982-01-12 | Pitney Bowes Inc. | Computer accessing system |
| US4218738A (en) * | 1978-05-05 | 1980-08-19 | International Business Machines Corporation | Method for authenticating the identity of a user of an information system |
| US4430728A (en) * | 1981-12-29 | 1984-02-07 | Marathon Oil Company | Computer terminal security system |
| US4531023A (en) * | 1982-08-13 | 1985-07-23 | Hlf Corporation | Computer security system for a time shared computer accessed over telephone lines |
| US4652990A (en) * | 1983-10-27 | 1987-03-24 | Remote Systems, Inc. | Protected software access control apparatus and method |
| US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
| US4694396A (en) * | 1985-05-06 | 1987-09-15 | Computer X, Inc. | Method of inter-process communication in a distributed data processing system |
| US4754395A (en) * | 1985-05-06 | 1988-06-28 | Computer X, Inc. | Network interface module with minimized data paths |
| US4742447A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
-
1988
- 1988-01-28 US US07/149,446 patent/US4918653A/en not_active Expired - Fee Related
- 1988-12-22 DE DE3851049T patent/DE3851049T2/de not_active Expired - Fee Related
- 1988-12-22 EP EP88121478A patent/EP0325776B1/en not_active Expired - Lifetime
-
1989
- 1989-01-30 JP JP1017842A patent/JPH01233543A/ja active Pending
Non-Patent Citations (1)
| Title |
|---|
| ON THE DESIGN AND THE IMPLEMENTATION OF SECURE XENINS=1986 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006330835A (ja) * | 2005-05-23 | 2006-12-07 | Kyocera Corp | デバイス制御装置、デバイス制御方法およびプログラム |
| US8117451B2 (en) | 2005-05-23 | 2012-02-14 | Kyocera Corporation | Device controller, method for controlling a device, and program therefor |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0325776A2 (en) | 1989-08-02 |
| DE3851049D1 (de) | 1994-09-15 |
| US4918653A (en) | 1990-04-17 |
| EP0325776A3 (en) | 1992-01-22 |
| EP0325776B1 (en) | 1994-08-10 |
| DE3851049T2 (de) | 1995-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0325776B1 (en) | A trusted path mechanism for an operating system | |
| EP0326700B1 (en) | A trusted path mechanism for virtual terminal environments | |
| US5504814A (en) | Efficient security kernel for the 80960 extended architecture | |
| EP0443423B1 (en) | Method and apparatus for executing trusted-path commands | |
| US7665143B2 (en) | Creating secure process objects | |
| US5765153A (en) | Information handling system, method, and article of manufacture including object system authorization and registration | |
| US5347578A (en) | Computer system security | |
| RU2313126C2 (ru) | Система и способ для защиты от недоверенного кода режима управления с системой с помощью переадресации прерывания режима управления системой и создания контейнера виртуальной машины | |
| US5469556A (en) | Resource access security system for controlling access to resources of a data processing system | |
| EP0549104B1 (en) | Program attribute control in a computer system | |
| US7788669B2 (en) | System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory | |
| US7330970B1 (en) | Methods and systems for protecting information in paging operating systems | |
| US20110239306A1 (en) | Data leak protection application | |
| JPS61195443A (ja) | データ処理システム内のシステムフアイルを保護する方法及びデータ処理システム | |
| CN102521531B (zh) | 基于硬件虚拟化的密码保护系统 | |
| Van Eyck et al. | Mr-tee: Practical trusted execution of mixed-criticality code | |
| CN1307502C (zh) | 对安全性敏感指令监控执行的方法与装置 | |
| Paans et al. | Surreptitious security violation in the MVS operating system | |
| Choudhury | Operating Systems: Principles and Design | |
| Jaeger | Security Kernels | |
| Meade | Trusted Information Systems, Inc. Trusted XENIX version 3.0 | |
| Liao et al. | A Feather-Weight Application Isolation Model: (Work-in-Progress) | |
| den Boef | Microcomputer Software can Threaten Mainframe Computer Security | |
| Tangney | History of Protection in Computer Systems | |
| Indoria | Trusted Operating System Appro |