ベアマシン・コンピューティング

ベアマシン・コンピューティング（英: Bare Machine Computing、BMC）は、ベアメタル (ベアマシン)に基づくプログラミングパラダイムである。 BMCパラダイムでは、アプリケーションはオペレーティングシステム（OS）または集中型カーネルのサポートなしで実行される。つまり、アプリケーションを実行する前に、中間ソフトウェアがベアマシンにロードされない。ベアマシンアプリケーションまたは単にBMCアプリケーションと呼ばれるアプリケーションは、永続ストレージやハードディスクを使用せず、代わりにUSBフラッシュドライブなどの取り外し可能な大容量記憶装置に保存される。 BMCプログラムは、1つのアドレス空間内で単一の実行可能ファイルとして実行される単一のアプリケーションまたはアプリケーションの小さなセット（アプリケーションスイート）で構成される。 BMCアプリケーションは、必要なハードウェアリソースに直接アクセスする。これらは、他のソフトウェアコンポーネントや外部ソフトウェアを使用せずに起動、ロード、および実行する、自己完結型、自己管理型、および自己制御型のソフトウェアである。 BMCアプリケーションは、その設計により固有のセキュリティを備える。 OS関連の脆弱性はなく、各アプリケーションには必要な（最小限の）機能しか含まれていない。アプリケーションはユーザーモードでのみ実行されるため、BMCシステムには特権モードはない。また、アプリケーションコードは静的にコンパイルされる。実行中にBMCプログラムフローを動的に変更する手段はない。
歴史.
コンピューティングの初期には、コンピュータアプリケーションはハードウェアと直接通信していました。さまざまなドメインを含むアプリケーションが大きくなるにつれて、OSが発明されました。それらは、アプリケーションにハードウェアの抽象化を提供するミドルウェアとして機能しました。 OSでは、そのサイズとオーバーヘッドOSを減らし、を含む性能向上させる試みにおいて得られた複雑で非常に成長しているマイクロカーネル、 Exokernel 、Tiny-OS 、OS-Kitをパラシオスと子猫、 IO_Lite、 ベアメタルをLinux、 IBM-Libraおよびその他の無駄のないカーネル。上記のアプローチに加えて、スマートフォンなどの組み込みシステムでは、OSの小さな専用部分と特定のアプリケーションセットがハードウェアと緊密に統合されています。ハードウェア上で直接実行される無数の産業用制御およびゲームアプリケーションもあります。これらのシステムのほとんどでは、ハードウェアは汎用アプリケーションを実行するために開かれていません。
ベアマシンコンピューティングは、タウソン大学のKarneによって発明されたアプリケーションオブジェクト（AO）の概念に端を発しています。 それは何年にもわたって分散オペレーティングシステム（DOSC） に進化し、最終的にはBMCパラダイムに進化しました。
従来のコンピューティングと比較.
多くの点で、BMCパラダイムは従来のコンピューティングとは異なります。 BMCアプリケーションの実行中に実行されている集中型カーネルまたはOSはありません。また、BMCパラダイムのベアマシンには、所有権がなく、貴重なリソースが格納されていません。また、汎用コンピューティングアプリケーションの実行に使用できます。このような特性は、組み込みシステムやシステムオンチップ（SOC）などの従来のコンピューティングシステムには見られません。さらに、BMCの概念は、シンプルさ、コードサイズの縮小、およびセキュリティを実現するための最小限のアプローチです。 
応用と研究.
BMCパラダイムは、Webサーバー、 分割サーバー、 VoIP、 SIPサーバー、電子メール、Webメール、テキストベースのブラウザー、セキュリティプロトコル、 ファイルシステム、 RAID 、 変換されたベアSQLite、 ネットワークカードインターフェイス（NICS）用ミドルウェア、およびデュアルNICを備えたBMCWebサーバーでのイーサネットボンディング の実装に使用されている。従来のWindowsまたはLinuxアプリケーションをBMCアプリケーションとして実行するように変換することに成功すると、BMCパラダイムの新しい使用法への道が開かれる。