A SHELLを開発


プログラミングプロジェクトONE
A SHELL途上
ウィリアム・ストーリングス
著作権を2011年
に補足
されているオペレーティングシステム、第7版
プレンティスホール2011
ISBN:013230998X
http://williamstallings.com/OS/OS7e.html
ザ・シェルまたはコマンドラインインタープリタは基本的にユーザーインタフェースである
オペレーティングシステム。myshell - -あなたの最初のプロジェクトは、単純なシェル書くことで
、次のプロパティがあります
:1.シェルは、次の内部コマンドをサポートしなければならない
私を。CD <ディレクトリ> -変更し、現在のデフォルト・ディレクトリ
<ディレクトリ>。<ディレクトリ>引数が存在しない場合は、報告
カレントディレクトリを。ディレクトリが適切に存在しない場合
エラーが報告されるべきです。また、このコマンドは、PWDを変更する必要がある
環境変数を。
II。CLR -クリア画面。
III。DIR <ディレクトリ> -ディレクトリ<ディレクトリ>のリスト内容。
IV。環境-リストのすべての環境文字列。
。Vエコー<コメント> -ディスプレイに続くディスプレイの<コメント>
新しい行(複数スペース/タブは単一のスペースに還元することができます)。
VI。ヘルプ-複数のフィルタを使用して、マニュアルを表示します。
VII。一時停止- 「を入力」が押されるまで、シェルの一時停止操作。
VIII。終了-シェルを終了します。
IX。シェル環境は、シェル= <パス名> / myshell含むべきである
<パス名> / myshellをシェル実行可能ファイルのフルパスであります
(ないディレクトリへのハードワイヤードパスバックが、そこから1
それが実行されました)。
2.他のすべてのコマンドライン入力は、プログラムの起動、と解釈される
ようプログラムをフォークとexecingシェルによって行われる必要があり
、独自の子プロセス。プログラムを用いて実行されるべき
項目を含む環境:親は= <パス名> / myshell
1.ix.に記載されているようにここで、<パス名> / myshellあります 上記。
-2-
3.シェルは、ファイルからのコマンドライン入力を取ることができなければなりません。これは、
シェルがコマンドライン引数で呼び出された場合、次のとおりです。
myshellバッチファイルは、
その後、バッチファイルのコマンドラインのセットが含まれていると想定されます
プロセスにシェル。ファイルの終わりに達した場合、シェルは終了する必要があります。
シェルは留学生作业代做、C编程语言作业调试
シェルがコマンドライン引数なしで呼び出された場合明らかに、それは
ディスプレイ上にプロンプトを介してユーザからの入力を要請します。
前記シェルは、STDINおよび/またはいずれか一方または両方に、I / Oリダイレクションをサポートしなければならない
STDOUT。つまり、コマンドライン
のProgramName arg1にarg2の<入力ファイル> OUTPUTFILE
引数arg1がarg2のとは、とプログラムのProgramNameを実行します
STDINファイルストリームは、入力ファイルに置き換えとstdoutファイルの
ストリームがOUTPUTFILEに置き換え。
標準出力のリダイレクトは、内部コマンドのために可能なはず
DIR、環境、エコー、&ヘルプ。
出力リダイレクションでは、リダイレクト文字がある場合>そして
、それが存在しない場合OUTPUTFILEが作成され、それがない場合は切り捨て。場合は
、リダイレクトトークンは、OUTPUTFILEが存在しない場合は作成されて>>いる
とそれがない場合に追加します。
5.シェルは、プログラムのバックグラウンド実行をサポートしている必要があります。
コマンドラインの末尾にアンパサンド(&)はシェルがあることを示し
-3-
起動した直後に、プロンプトのコマンドラインに返す必要があり
、そのプログラムを。
6.コマンドラインプロンプトは、現在のパス名含まれている必要があります
ディレクトリを。
注:あなたが想定することができるなど、すべてのコマンドライン引数(
リダイレクト記号、<、>&>>バックグラウンド実行シンボル、&
一つまたは-ホワイトスペースで他のコマンドライン引数から区切られる
(4.上記のコマンドラインを参照)以上のスペースおよび/またはタブ。
プロジェクトの要件
1.デザインを満たし、上記の基準とは、という単純なコマンドラインシェル
指定されたUNIXプラットフォーム上でそれを実装。
2.シェルを使用する方法を説明し、簡単なマニュアルを書きます。マニュアルでは、
それを使用するUNIXの初心者のための十分な詳細が含まれている必要があります。
たとえば、あなたは、I / Oリダイレクション、の概念を説明しなければならない
プログラム環境、およびバックグラウンドプログラムの実行を。マニュアルは
READMEという名前でなければなりませんし、できる簡単なテキスト文書でなければなりません
標準のテキストエディタによって読み取られています。
深さと必要な説明の種類の種類のたとえば、
あなたはCSHとtcshの(男性のためのオンラインマニュアルを見ていなければならない
のcsh、tcshのマニュアルを)。これらのシェルは明らかに非常に多くの機能持っている
あなたよりをので、あなたのマニュアルはそれほど大きなものにする必要はありません。
あなたは、建物の指示、含まれるファイルのリストまたはソース含むべきではない
コードを-私たちは、あなたが提出する他のファイルからそれを見つけることができます。これは、必要があり
-4-
オペレータのマニュアルではありませんデベロッパーズ・マニュアルなります。
3.ソースコードは、広範囲にコメントし、適切にされなければならない
、あなたのピアが理解しやすい維持することを可能にする構造
のコードを。適切にコメントやコードは、解釈する方がはるかに簡単ですレイアウト
そしてそれはあなたのマーキング人いることを確認するためにあなたの利益になる
プロジェクトが実行しなくても、あなたのコーディングを理解することができ
、精神体操を!
提出手順の4.詳細は、前にも供給される
期限。
5.提出のみソースコードファイル(複数可)を含める必要があり、ファイル(複数可)を含む、
メイクファイル(すべて小文字ください)とreadmeファイル(すべて小文字、
ください)。実行可能なプログラムが含まれるべきではありません。マーキング人
、あなたのプロジェクトが自動的にあなたのシェルプログラムを再構築されます
提供されたソースコード。提出されたコードがコンパイルされない場合、それはできません
マークされます!
6.メイクファイル(すべて小文字は、してください)バイナリファイルを生成する必要があります
myshell(すべて小文字してください)。サンプルメイクファイルは次のようになります
されているオペレーティングシステムプロジェクト1 - #ジョー・シチズン、s1234567
フレッドBloggsは:#CompLab1 / 01家庭教師
myshell:myshell.c utility.c myshell.h
のgcc -Wall myshell.c utility.c -o myshell
プログラムmyshellがありますその後で、ちょうどタイピングメイクによって生成された
コマンドラインプロンプト。
-5-
注:上記のMakefileの4行目はタブで始まらなければなりません。
上図の例では7は、提出されたディレクトリ内のファイルがう
こと:
メイク
myshell.c
utility.c
myshell.h
のreadme
服従
Aメイクファイルが必要です。あなたの投稿内のすべてのファイルがにコピーされます
同じディレクトリには、それゆえ、あなたのメイクファイル内の任意のパスが含まれていません。
メイクファイルは、プログラムを構築するすべての依存関係を含める必要があります。場合は
、ライブラリが含まれている、あなたのメイクファイルもライブラリを構築する必要があります。
任意のバイナリまたはオブジェクトコードファイルに手しないでください。必要とされるすべてがある
ソースコード、MakefileとREADMEファイル。コピーして、プロジェクトをテスト
だけで空のディレクトリにソースコードを、次に入力することにより、それをコンパイル
コマンドメイクを。
私たちは、テストディレクトリにコピーしますファイルは、そのシェルスクリプト使用されなければならない
任意の既存myshell、* .A、および/または* .oファイル、実行するメイク、削除
テストディレクトリにコピーしたテストファイルのセットを、その後、自分の殻を行使する
stdinとコマンドラインによるテストスクリプトの標準セットと
引数。このシーケンスが間違っている名前、間違った場合のために失敗した場合
名前、コンパイルに失敗し、ソースコードの間違ったバージョンの存在しない
ファイル等は、マーキングシーケンスも停止します。この場合、唯一
-6-
授与することができるマークはその時点で終了テスト、のためであろう
ソースコードとマニュアル。
必要書類は、
あなたのソースコードは、readmeファイルと同様に評価してマークされます
マニュアル。コメントは、間違いなくあなたのソースコードで必要とされます。ユーザー
マニュアルはの制限の範囲内(お好みの形式で提示することができます
シンプルなテキストエディタ)が表示可能であること。ここでも、マニュアルが含まれている必要があります
シェルを使用するUNIXの初心者のための十分な詳細を。たとえば、
I / Oリダイレクション、プログラム環境との概念を説明する必要があります
バックグラウンド実行を。マニュアルは、README(すべて小文字、名前を付ける必要があります
してください、NO拡張子.txt)。

プロ、とても信頼できるので。必要に応じて、追加 QQ 99515681 または マイクロチャネル: codehelpを

おすすめ

転載: www.cnblogs.com/memory4/p/12134612.html