ベストアンサー
たとえば、100MBの長さのファイルなどの大きなコンピュータプログラムを想像してみてください。
ここで、小さな修正、たとえば、100MBの数バイトを変更する修正を想像してみてください。
100 MBのプログラムファイルの代わりに発行することは、帯域幅の浪費です。ダウンロードに時間がかかり、不必要に多くのスペースを消費します。
代わりに、クライアントのコンピューターで元の100MBファイルを見つけることを唯一の目的とする小さなプログラムを発行することができます。修正を構成する数バイトを変更します。これはパッチになります。
もちろん、最近の「パッチ」という言葉は、形式に関係なく、ソフトウェアのマイナーな再リリースを表すためにかなり非公式に使用されています。再リリースには時間がかかります。上記のようにパッチの形式である場合もあれば、単なる置換ファイルのセットまたは新しいインストールパッケージである場合もあります。目的があれば、「パッチ」と呼ばれることもあります。パッケージの目的は、いくつかのバグを修正するか、その他の小さな変更を実装することだけです。
回答
最低レベルでは、コンピュータチップはトランジスタでできています。これらはシリコンの小さなパッチであり、小さなスイッチとして機能できるように意図的な不純物が含まれています。
トランジスタは、それらを接続するための小さなワイヤの層を追加することによって回路に組み込まれます。
トランジスタは、非常に単純な論理操作を実行できる「論理ゲート」に組み込まれています。
- AND-2つの入力信号が両方とも存在する場合は、出力信号を生成します。
- または-2つの入力信号のいずれかまたは両方が存在する場合、出力信号を生成します。
- XOR-入力信号の一方のみが存在し、他方が存在しない場合、出力を生成します。
- NOT-入力が1つしかない-入力に信号がない場合にのみ出力を生成します。
li>
これらの論理ゲートはそれぞれ2つのトランジスタです。
論理ゲートを組み立てて、単一の真/偽の値を保持し、それを記憶する「フリップフロップ」や、2つの2進数を加算して出力を生成できる「1ビット加算器」などを作成できます。および「キャリー」ビット。
オンeビット加算器を組み合わせて、2つの大きな数値を加算できる(または「2の補数演算」と呼ばれるトリックを使用して減算できる)回路のチャンクを作成できます。
「シフター」と呼ばれるものを作成することもできます。数値に2、4、8、16などを掛けます。
一連のフリップフロップを組み合わせて、数値全体を格納できる回路のチャンクと、これらのチャンクを構築できます。多数の数を保持できるRAMメモリのブロックを作成できます。
これらの加算器とシフターのブロックから、乗算と除算を行う回路を構築できます。これらから、次のような計算を行う回路を作成できます。 sinesとcosinesと平方根。また、一方を他方から減算し、結果が正、ゼロ、または負であるかどうかを確認することで、2つの数値を比較する回路を作成することもできます。
次に、制御ロジックがたくさんあります。数値をRAM内のある場所から別の場所に移動する、またはRAMから取得した2つの数値を加算して、RAM内の別の場所に書き戻すための回路の大きなチャンク。
最後のステップは、数値を使用することです。制御ロジックに何をすべきかを指示するためにRAMに格納されます…したがって、その番号はコンピュータプログラムの命令を表すコードです。したがって、「1」という数字は「ある場所から別の場所に数字を移動する」ことを意味し、「2」は「2つの数字を追加する」ことを意味し、「3」は「2つの数字を比較する」ことを意味します。各命令が実行された後、回路は次の命令をフェッチし、それも実行します。比較すると、そのロジックのブロックに、別の場所から次の命令の取得を開始するように指示できます。
これは非常に単純ですが、非常に使いやすいコンピュータですが、状況は非常に複雑になっています。
これらのますます複雑化する論理回路をすべて組み合わせると、10億個を超える小さなトランジスタを搭載したチップになる可能性があります!
これを「CPU」と呼びます。 」チップ。
次に、コンピュータ全体を構成する他のチップを入手します。特に、フリップフロップと同じように数値を格納する「RAMチップ」がありますが、よりスペース効率の高い方法を使用しています。 。これらのチップは、トランジスタの代わりにコンデンサを使用します。コンデンサを充電する(またはしない)ことにより、フリップフロップよりも少ないスペースに1ビットの情報を格納します。これらのRAMチップは、多かれ少なかれ、コンデンサと制御ロジックのVASTの海です。 1つのチップに数十億個あります。
次に、RAMのチャンクの内容を画面に送信して表示するなどの処理を行うチップもあります。 RAM内の数値は、画面上の1つのピクセルでの赤、緑、青の色の明るさを表す3つのセットにグループ化されます。何百万もの数字があなたが見る絵を説明するために使われます-そしてコンピュータはそのRAMメモリに数字を書き込むことによって各ピクセルでそれらの色を変えます。
結果として得られるマシンは、FARによって人間が作成した中で最も複雑なものです。携帯電話やラップトップは、1兆個のトランジスタとコンデンサに向かっている可能性があります。
62歳のソフトウェアエンジニアとして、これらすべてが私の生涯で可能になったのはかなり驚くべきことです。私がこれを始めたとき、コンピューターはまだ同じ方法で作られていましたが、トランジスターはチックタックミントのサイズでしたが、今では光の波長よりも小さくなっています!
しかし、驚くべきことにその複雑さのすべてが-私を完全に驚かせるのは、それがどれほど狂ったように信頼できるかということです。
あなたの車はおそらく10,000の部品でできており、そのうちのいくつかは1秒間に数千回のことをしています。数年後(おそらく数千時間の動作)、これらの部品の一部が故障し、交換する必要があります。
私のコンピューターは1兆個の部品でできており、そのほとんどが機能しています。 1秒間に数十億回。ハードウェアは10年間完全に完璧に動作し、数十万時間の操作に相当しますが、数千億の個別の操作がすべて完璧に行われました。
コンピューターは本当に素晴らしいものです。