思科、华为路由器的 shell 是如何工作的?
在很多网关设备上,我们通过 ssh 或者 telnet 连接到设备上进行调试,不同厂家不同设备都会定制有不同的 shell 命令,比如华为的 WAP shell,一开始进入设备使用的是 WAP 的 shell,然而这个 shell 都是定制的,如果想要使用更多的命令则需要进入到 linux 之下才能使用 linux的命令,然而在 linux 下面也是不能使用 WAP 的命令。很想知道像这种特别定制的 shell 是如何工作的,怎么才能知道哪些命令实际上都是如何跟 linux 底层工作的。谢谢!
これらのメーカーは新しいインターフェースを提供していると考えることもできますし、また、これらのメーカーはミドルウェアを提供していると考えることもできます。
簡単に言うと、操作できるレベルは実際には Linux ではなく、Web ページのグラフィカル インターフェイスなどの操作層です。メーカーが怠け者であるか、高効率を十分に追求している場合、このグラフィカル インターフェイスはしばらく搭載されず、代わりにコマンド ライン インターフェイスが提供されることになります。
グラフィカル インターフェイスをクリックすると、Web ページ上のミドルウェア スクリプトが実際に実行され、IP やルーティングなどの Linux システムのコンテンツが変更されます。
グラフィカル インターフェイスがない場合は、コマンド ライン インターフェイスで cmd -A -B -C を実行します。このコマンド ライン インターフェイスは実際にはミドルウェアを呼び出します。
たとえば、ディスプレイ インターフェイス e0/0 は、実際に ifconfig ethtool eth0; を実行し、データを統合して出力します。
私の前の会社も同様のことをしていました。ご覧ください: vyatta。
Cisco IOS: https://learningnetwork.cisco.com/thread/47297
Huawei VRP が見つかりませんでした - - 実際、インターネット上には Huawei VRP に関する情報はあまりありません。
Linux システムによってユーザーに提供される最も重要なシステム プログラムは、シェル コマンド言語インタープリターです。それはありません
これはカーネル部分に属しますが、ユーザーモードではコアの外で実行されます。その基本的な機能は説明と
です。ユーザーが入力した各種コマンドを実行して、ユーザーとLinuxコア間のインターフェースを実現します。システムが最初に起動された後、カーネル
各エンドユーザーがシェルインタープリターを実行するためのプロセスを作成します。その実行プロセスは基本的に
次の手順に従います: (1) ユーザーがキーボードから入力したコマンドラインを読み取ります。 (2) コマンド
でコマンドを解析するの名前はファイル名として使用され、その他のパラメータはシステムコール execve() の内部処理に必要な
に変換されます。フォーム。 (3) 端末プロセスは fork() を呼び出して子プロセスを作成します。 (4) ターミナルプロセス自体はシステム
を使用しますシステムは wait4() を呼び出して、子プロセスが完了するのを待ちます (バックグラウンド コマンドの場合は待ちません)。唐子津
はプロセスの実行中に execve() を呼び出し、子プロセスはファイル名 (つまりコマンド名) に基づいてディレクトリで
を検索します。ファイル(コマンドインタープリタプログラムで構成されたファイル)を閉じてメモリに転送し、このプログラムを実行します(
このコマンドについて説明してください)。 (5) コマンドの末尾にアンパサンド(バックグラウンドコマンド記号)がある場合、ターミナル処理
システムコール wait4() を待つ必要はありません。すぐにプロンプトが送信され、ユーザーは次のコマンドを入力できるようになります。⑴
。コマンドの末尾にアンパサンドがない場合、端末プロセスは子プロセスが完了するまで待機する必要があります (つまり、コマンド
が実行されます)。) のプロセスは処理完了後に終了し、親プロセス(端末プロセス)に報告します。このとき、末端プロセスは
として起動します。、必要な判断やその他の作業を行った後、端末プロセスはユーザーに新しいコマンドを入力させるプロンプトを送信し、
を再起動します。上記のプロセスを繰り返します。
http://www.cnblogs.com/wuyuegb2312/p/3399566.html