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

ベアマシン・コンピューティング（英: 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パラダイムの新しい使用法への道が開かれる。 ベアメタル ^ “The OS Kit Project”. School of Computing, University of Utah (2002年6月). 2020年12月21日閲覧。 ^ J. Lange et al, “Palacios and Kitten: New high performance operating systems for scalable virtualized and native supercomputing,” 24th IEEEInternational Paral-lel and Distributed Processing Symposium (IPDPS), 2010, pp. 1-12 ^ Pai, V. S.; Druschel, P.; Zwaenepoel, W. (February 2000). “IO-Lite: A Unified I/O Buffering and Caching System”. ACM Transactions on Computer Systems 18 (1): 37–66. doi:10.1145/332799.332895. http://infoscience.epfl.ch/record/55510/files/p37-pai.pdf.  ^ Karne, R. K. (December 1995). Object-Oriented Computer Architectures for New Generation of Applications, Computer Architecture News. 23. pp. 8–19. doi:10.1145/218328.218332.  ^ Karne, R.K, Venkatasamy, K (Karthick Jaganathan), Ahmed, T. Dispersed Operating System Computing (DOSC), Onward Track, OOPSLA 2005, San Diego, CA, October 2005. ^ Soumya, S.; Guerin, R.; Hosanagar, K. (September 2011). “Functionality-Rich vs. Minimalist Platforms: A Two-Sided Market Analysis”. ACM Computer Communication Review 41 (5): 36–43. doi:10.1145/2043165.2043171.  ^ He, L., Karne, R. K., Wijesinha, A.L., and Emdadi, A. Design and Performance of a Bare PC Web Server, International Journal of Computers and Their Applications (IJCA), June 2008. ^ B. Rawal, R. K. Karne, and A. L. Wijesinha. Splitting HTTP Requests on Two Servers, The Third International Conference on Communication Systems and Networks: COMSNETS 2011, January 2011, Bangalore, India. ^ B. Rawal, R. K. Karne, and A. L. Wijesinha. “Mini Web server clusters for HTTP request splitting,” IEEE International Conference on High-Performance Computing and Communications (HPCC), pp. 94-100. ^ G. H. Khaksari, A. L. Wijesinha, R. K. Karne, L. He, and S. Girumala, “”A peer-to-peer bare PC VoIP application,” 4th IEEE Consumer Communications and Networking Conference (CCNC), 2007, pp. 803-807. ^ A. Alexander, R. Yasinovskyy, A. Wijesinha, and R. Karne, "SIP Server Implementation and Performance on a Bare PC," International Journal in Advances on Telecommunications, vol. 4, no. 1 and 2, 2011. ^ Ford,G.H., Karne, R.K., Wijesinha, A.L., and Appiah-Kubi, P. The Design and Implementation of a Bare PC Email Server,33rd Annual IEEE International Computer Software and Applications Conference (COMPSAC 2009), Seattle, Washington, July 2009, p480-485. ^ P. Appiah-kubi, R. K. Karne, and A. L. Wijesinha. The Design and Performance of a Bare PC Webmail Server, The 12th IEEE International Conference on High-Performance Computing and Communications, AHPCC 2010, Sept 1-3, 2010, Melbourne, Australia, p521-526. ^ a b S.Almautairi, R. K. Karne and A.L. Wijesinha, A Bare PC Text Based Browser, 2019 Workshop On Computing, Networking and Communications (CNC), Honolulu, Hawaii, February 2019 ^ N. Kazemi, A. L. Wijesinha, and R. Karne. Design and Implementation of IPsec on a Bare PC, 2nd International Conference on Computer Science and its Applications (CSA), 2009. ^ A. Emdadi, R. K. Karne, and A. L. Wijesinha. Implementing the TLS Protocol on a Bare PC, ICCRD2010, The 2nd International Conference on Computer Research and Development, Kaula Lumpur, Malaysia, May 2010. ^ W. V. Thompson, H. Alabsi, R. K. Karne, S. Linag, A.L. Wijesinha, R. Almajed, and H. Chang, A Mass Storage System for Bare PC Applications Using USBs, International Journal on Advances in Internet Technology, vol 9, no 3 and 4, year 2016. p63-74. ^ W. Thompson, R. Karne, A. Wijesinha, H. Alabsi, and H. Chang, Implementing a USB File System for Bare PC Applications, ICIW 2016: The Eleventh International Conference on Internet and Web Applications and Services, p58-63. ^ S.Liang, R. K. Karne, and A.L.Wijesinha., A Lean USB File System For Bare Machine Applications, The Proceedings of the 21st International Conference on Software Engineering and Data Engineering, ISCA, June 2012, pp.191-196. ^ H. Z. Alabsi, W. V. Thompson, R. K. Karne, A. L. Wijesinha, R. Almajed, F. Almansour, A Bare Machine RAID File System for USBs, SEDE 2017: 26th International Conference on Software Engineering and Data Engineering, pp 113-118. ^ W. Thompson, R. K. Karne and A.L. Wijesinha, Interoperable SQLite for a Bare PC, 13th International Conference Beyond Database Architectures and Structures (BDAS'17), 2017, p177-188. ^ U. Okafor, R. K. Karne, A. L. Wijesinha and B. Rawal Transforming SQLITE to Run on a Bare PC, In Proceedings of the 7th International Conference on Software Paradigm Trends, pages 311-314, Rome, Italy, July 2012. ^ F. Almansour, R. K. Karne, A.L. Wijesinha, H. Alabsi and R. Almajed, Middleware for NICs in Bare PC Applications, 26th International Conference on Computer Communications and Networks (Poster Paper), ICCCN2017, Vancouver, Canada, 2017. ^ F.Almansour, R K. Karne, A. L. Wijesinha, B. S. Rawal “Ethernet Bonding on a Bare PC Web Server with Dual NICs”, The 33rd ACM Symposium On Applied Computing SAC 2018, April 2018, Pau, France. ^ Peter, A.; Karne, R.; Wijesinha, A.; Appiah-Kubi, P. (4–7 April 2013). Transforming a Bare PC Application to Run on an ARM Device. IEEE SoutheastCon. Jacksonville, Florida.