著者
権藤 克彦 明石 修 伊知地 宏 岩崎 英哉 河野 健二 豊田 正史 上田 和紀
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.26, no.4, pp.4_17-4_29, 2009-10-27 (Released:2009-12-27)

「ソフトウェア開発で得られる経験や知見を成果とする論文(=ソフトウェア論文)を書くことは難しい」とよく言われますが,「なぜ難しいのか」の分析はこれまで十分にはなされていません.本論文では本誌のソフトウェア論文特集を編集した経験から,「ソフトウェア論文を書くことがなぜ難しい(と感じる)のか」の分析を試みます.問題は「著者の作文の問題」だけではなく,ソフトウェア自体,ソフトウェア工学,査読者,社会状況にも要因があることを示します.要因が多岐に渡るので結論を短く言うことが難しいです.あえて言えば「著者の作文技術にも問題はあるが,(著者の責任ではない)本質的な難しさも別にあるので,著者が自らハードルを上げてしまうことは避けるべき」「ソフトウェア論文の追試としての価値を査読者は評価すべき」です.また作文技術の問題を解決する一助として,ソフトウェア論文の執筆チェックリストを最後に示します.
著者
吉村剛 河野健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2014-OS-130, no.10, pp.1-12, 2014-07-21

Linux カーネルにおいてバグ対策は不可欠である.しかし,コードの大規模化に伴い,バグ対策のために必要となるシステム全体の深い知識や誤りやすいパターンを把握することは難しい.特に誤りやすいパターンを把握するためには過去に大量に蓄積されたバグ報告やパッチの変更履歴を把握しなければならない.本研究は linux のパッチ 37 万件に対してパッチの説明文を自然言語処理し,トップダウンクラスタリングを用いることで全体の中でより高い頻度で発生した話題を抽出し,パッチ集合を 66 クラスタに分割してバグの実態調査に利用する.調査の有用性を示すため,割り込みに関するクラスタを調査してバグパターンを定義し,コード解析による検査を linux 3.15 において行って 2 件のバグを発見した.
著者
瀬貫 真菜 石黒 健太 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-155, no.5, pp.1-9, 2022-05-19

マルチテナント型のクラウド環境において,ハイパーバイザは仮想マシンの隔離と安全性を保証しているものの,ハイパーバイザにも多くの脆弱性が報告されており,特にデバイスエミュレータはその温床となっている.デバイスエミュレータはその複雑さから修正パッチの開発が容易ではなく,脆弱性の発見からパッチの適用までに長い時間を要することが多い.本論文では,デバイスエミュレータを対象に一時的に脆弱性を防ぐ手法を提案する.デバイスエミュレータの脆弱性を突く攻撃では,通常の I/O 処理では行われることのない I/O 要求を行うことが多い.そこで,脆弱性を突く不正攻撃に特有の I/O 要求を拒否する I/O フィルタの仕組みを導入する.I/O フィルタでは,特定の脆弱性を突くための特徴的な I/O 要求が記述でき,その記述に合致する I/O 要求を拒絶する.このフィルタはデバイスの内部構造を理解することなく記述可能であるため,修正パッチの作成より容易であることが期待できる.実際に CVE-2015-3456 (VENOM),CVE-2016-7909 など 4 個の脆弱性を防ぐフィルタの記述が可能であり,通常時の仮想マシンの動作を阻害することはなく,実行時オーバーヘッドも最大 8% 程度であることを示す.
著者
窪田 貴文 吉村 剛 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2016-OS-136, no.11, pp.1-10, 2016-02-22

ログは実行エラー時のシステムの挙動を理解するのに有効な情報源である.これはログの出力にはデバッグに必要な情報が含まれていたり,また実行パスの推定にも有効だからである.しかしながら,近年のマルチスレッド環境に対応したシステムソフトウェアでは単純なログのみではシステムの挙動を理解するのは難しい.なぜなら,マルチスレッド環境では複数スレッドで共有されるデータによりデータフローがスレッドをまたぎ,スレッド間で依存関係が発生するからである.さらに,このような複雑なデータフローを追跡するログを手動で挿入するのは,ソフトウェアの専門的な知識と開発コストが必要な作業である.そこで,本研究ではスレッド間の依存関係を追跡するログの自動挿入を行なうツールを提案する.提案手法では,型情報を考慮したデータフロー解析を行なうことでスレッドをまたいで依存関係が発生するデータフローのペアを特定し,そのデータフローを追跡するログの自動挿入を行なう.本研究では提案手法を Linux I/O に適用し,実際に Btrfs におけるバグのデバッグにおいて有用性が示している.また,提案手法におけるオーバヘッドはデータベースアプリケーションにおいて約 2%であった.
著者
大須賀 敦俊 縣 直道 窪田 貴文 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2017-OS-140, no.3, pp.1-7, 2017-05-09

仮想化を用いたクラウド環境では,ひとつの仮想マシン (VM) でひとつのアプリケーションを動作させる形態が一般的になっている.この特徴を活用し,クラウド環境に特化した OS の設計 ・ 開発が行われている.これらのクラウド特化型 OS は,ハイパーバイザと重複した機能をゲスト OS から取り除いた,軽量かつ省メモリな実装となっている.これらの OS は新規の設計となっているため,1) 既存 OS と同等の機能を利用できるとは限らないという機能性,および 2) 既存 OS とは別個に保守が必要になるという保守性の面において不十分である.本論文では,既存の OS に対する改変を最小限に留めつつ,クラウド特化型 OS と同等の性能を実現する方法として,既存アプリケーションを既存のカーネル内で実行できるようにするフレームワークを提案する.この方法では,プロセスによるオーバーヘッドを削減することで,クラウド特化型 OS に近い軽量化を行うことができる.同時に,1) 実装において既存 OS の機能をそのまま利用できること,2) 既存 OS コミュニティによりコア機能が保守されることを期待できる.Linux を対象にフレームワークの実現を行った.本フレームワークの有用性を示すため,LevelDB というキーバリューストアをカーネル内で実行したところ,プロセスとして実行した場合と比較して,スループットが最大 1.46 倍となった.
著者
畑 輝史 オブラン ピエールルイ 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2020-OS-150, no.7, pp.1-8, 2020-07-23

オンラインゲームにおけるスケーラビリティ向上のため,ゲームのコア・ロジックをクライアンサイドに移譲するようになっている.クライアントサイドのコア・ロジックは原理的に覗き見・改竄が可能であり,いわゆるチート行為の防止・検出が困難となっている.本論文ではチート耐性とスケーラビリティを同時に達成するアーキテクチャを提案する.チート耐性を高めるために Trusted Execution Environment (TEE) を使用し,スケーラビリティのためにピア・ツー・ピア型を採用する.コア・ロジックを TEE 内で実行することで,悪意のあるクライアントからセンシティブなデータおよびコードを保護し,覗き見や改竄を防止する.TEE として Intel SGX を利用し,ZDoom という実際のファーストパーソン・シューティング型のゲームに適用したところ,原理的にチート耐性が向上しているにもかかわらず,チート耐性の低いアーキテクチャと同等のスケーラビリティを達成できることを示す.
著者
縣 直道 大須賀 敦俊 窪田 貴文 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2017-OS-141, no.9, pp.1-6, 2017-07-19

仮想化を利用したクラウド環境では,ひとつの仮想マシン上でひとつのアプリケーションのみを動作させる構成が一般的になっている.このようなクラウド環境の構成に特化した OS が提案 ・ 開発されている.これらの OS では,アプリケーション間の保護をハイパーバイザに任せることで機能を削減し,軽量化 ・ 省メモリ化を実現している.さらに,ベアメタルハイパーバイザ上で動作させることで,OS をアプリケーションに特化させることも可能である.一方で,プロセスの機能を提供しないため,マルチプロセスで動作するアプリケーションに対応することができない.また,ホスト OS の機能を利用することでマルチプロセスに対応した仮想化環境特化 OS の場合,ホスト OS が提供していない機能を実装することができない.本論文では,単一アドレス空間内で複数のプロセスを擬似的に実行させる手法を提案する.これによって,ホスト OS の存在を前提にせずマルチプロセスに対応することができ,既存のクラウド環境特化 OS と同様の軽量化を可能にする.
著者
山木田 和哉 山田 浩史 河野 健二
雑誌
研究報告 システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2011, no.4, pp.1-11, 2011-07-20

可用性の高いサービスを実現するために,オペレーティングシステム (OS) には高い信頼性が求められる.しかし,現在の OS 内部には多くのバグが含まれており,カーネルクラッシュの原因となっている.古くからカーネルクラッシュに対し広く用いられているリカバリ手法として,OS の再起動が挙げられる.OS 再起動はシンプルかつ強力なリカバリ手法であり,カーネルクラッシュの原因を特定せずとも,システムを復旧することができる.しかし,OS の再起動には時間を要するという問題点も存在する.これは,OS 再起動がハードウェアやカーネルの初期化など,多くの煩雑な手順を踏まなければならないためである.そこで本研究では,システム起動フェーズの再現性に着目した OS の再起動高速化手法 Phase-based Reboot を提案する.Phase-based Reboot では,OS 起動時の動作を実行フェーズ毎に分割して,システムの状態を保存する.そして,OS 再起動時に,過去の OS 起動時と同じ動作をする場合は,過去の実行フェーズを再利用することで,迅速に再起動と同等の効果を得る.また,Phase-based Reboot を Xen 3.4.1 上で稼働する Linux 2.6.18 内に実装し,評価実験を行った.実験では,既存の OS 再起動に要する時間を約 34% から 94% 削減できることを確認した.Although operating systems (OSes) are crucial to achieving high availability of computer systems, modern OSes are far from bug-free. Rebooting the OS is simple, powerful, and sometimes the only remedy for kernel failures. Once we accept reboot-based recovery as a fact of life, we should try to ensure that the downtime caused by reboots is as short as possible. Unfortunately, OS reboots involve significant downtime, which is unacceptable in commercial services. This paper presents "phase-based" reboots that shorten the downtime caused by reboot-based recovery. The key idea is to divide a boot sequence into phases. The phase-based reboot reuses a system state in the previous boot if the next boot reproduces the same state. A prototype of the phase-based reboot was implemented on Xen 3.4.1 running para-virtualized Linux 2.6.18. Experiments with the prototype show that it successfully recovered from kernel transient failures inserted by a fault injector, and its downtime was 34.3 to 93.6% shorter than that of the normal reboot-based recovery.
著者
窪田 貴文 河野 健二
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.39, no.3, pp.3_17-3_32, 2022-07-22 (Released:2022-09-22)

C++はコンパイラ,ウェブブラウザエンジンなど様々なシステムソフトウェアを開発するプログラミング言語として用いられている.しかし,近年システムソフトウェアが大規模化にするにつれて C++プロジェクトのビルド時間が長くなってきていることが問題となっている.そこで本稿では C++プロジェクトのビルドを高速化する手段として有効である3つの手段 (Unity Builds, Zapcc, そして C++ Modules) について解説をする.まず,実際に大規模な C++プロジェクトにおけるビルド時間の現状について紹介し,そのビルド時間のブレイクダウンを示すことで C++のビルドにおいてどの処理がボトルネックになっているか明らかにする.そして各手法のアプローチ・実装について紹介し,適用後にどの程度改善されるかを示す.また,各手法の課題についても議論する.
著者
野澤 真伸 今村 智史 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2022-OS-155, no.7, pp.1-8, 2022-05-19

異種プログラミング言語を併用することで,それぞれの長所を活かしてアプリを実装する場合がある.その際,異種プログラミング言語間でデータ構造を共有する処理が必要となる.データ共有を行うためには,データ構造を特定のプログラミング言語やマシンアーキテクチャに依存しない中立なフォーマットを経由してやりとりすることが一般的である.中立なフォーマットへの/からの変換をシリアライズ/デシリアライズといい,特に不揮発性メモリのような高速ストレージを媒介してデータ共有を行う場合,そのオーバーヘッドは無視できない.本論文では異言語間でのデータ共有高速化の手法を提案する.異言語間でのデータ共有を行う場合,あらかじめデータ共有を行う言語やアーキテクチャが特定できる場合も多く,そのような状況に特化した方式を示す.例えば,数値計算の前処理を Julia で行い,その後の計算処理を Python で行う場合などがある.このような状況では,1) 汎用性の高い中立なフォーマットを用いる必要がないため,シリアライズ/デシリアライズが簡略化できることに加え,2) ランダムアクセスが高速であるという永続メモリの特性を活かしたシリアライズ/デシリアライズ処理が可能となる.提案手法を Python と Julia 間のデータ共有に用い,Python と Julia に実装された従来のシリアライズ/デシリアライズ処理と比較したところ,Python から Julia にデータを送信する場合は,配列のシリアライズとデシリアライズがそれぞれ 1.57 倍と 3.03×106 倍,辞書のシリアライズとデシリアライズが最大でそれぞれ 2.38 倍と 1.23 倍の高速化が可能であることがことが確認できた.また Julia から Python にデータを送信する場合は,配列のシリアライズとデシリアライズはそれぞれ 3.26 倍と 4.06×105 倍,辞書のシリアライズとデシリアライズは最大でそれぞれ 1.78 倍と 14.4 倍の高速化が可能であることが確認できた.
著者
落合 淳 嶋村 誠 河野 健二
雑誌
研究報告システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2009-OS-112, no.8, pp.1-8, 2009-07-29

現在,ユーザの個人情報を不正に収集するスパイウェアを検出する手法としてTaint Analysis が注目されている.Taint Analysis では,パスワードなどのデータに taint と呼ばれる情報を付加し,taint 情報を持つデータが操作されたときに伝播規則に基づいて taint 情報を伝播する.そして,taint 情報を含むデータが外部に流出した場合にスパイウェアとして検出する.既存のスパイウェアは Taint Analysis を回避していない.そのため,Taint Analysis はスパイウェアが回避手法を用いた場合を考慮していない.本論文では,Taint Analysis の回避手法への耐性を向上させるため,既存の Taint Analysis に対する回避手法を示し,taint 情報の伝播規則の問題点を指摘する.回避手法を検証するため,一般的な伝播規則を用いた Taint Analysis を実装し実験を行った.実験の結果,回避コードを組み込むことで,Taint Analysis による検出ができなくなることを確認した.これにより,taint 情報の伝播規則を改良する必要があることを示した.
著者
嶋村 誠 河野 健二
雑誌
情報処理学会論文誌コンピューティングシステム(ACS) (ISSN:18827829)
巻号頁・発行日
vol.2, no.4, pp.48-63, 2009-12-17

遠隔から攻撃コードをネットワークを介して挿入するリモートコードインジェクション攻撃はセキュリティ上の大きな問題の 1 つである.これに対し,攻撃コードを検知・解析するシステムとして,ネットワーク・コードエミュレータが提案されている.ネットワーク・コードエミュレータでは攻撃コードの疑似実行を行うことにより,攻撃コードを精度良く検知したり,攻撃コードの振舞いを詳細に解析したりできる.また,攻撃コードを実行して解析を行うため,暗号化や難読化を施された攻撃コードにも耐性がある.本論文では,被害プロセスのメモリ上のデータを攻撃コードの一部として利用するメモリスキャン攻撃を用いると既存のネットワーク・コードエミュレータによる解析を妨害できることを示し,メモリスキャン攻撃も解析できるネットワーク・コードエミュレータである Yataglass+ を提案する.実際に Yataglass+ のプロトタイプを作成し,実際の攻撃コードにメモリスキャン攻撃を適用し実験を行った結果,Yataglass+ は正しくメモリスキャン攻撃を適用した攻撃コードを解析できた.
著者
品川 高廣 河野 健二 益田 隆司 Takahiro Shinagawa Kenji Kono Takashi Masuda 東京農工大学工学部情報コミュニケーション工学科 電気通信大学情報工学科:科学技術振興事業団さきがけ21 電気通信大学情報工学科 Department of Computer Information and Communication Sciences Faculty of Engineering Tokyo University of Agriculture & Technology Department of Computer Science University of Electro-Communications:PRESTO Japan Science and Technology Corporation Department of Computer Science University of Electro-Communications
出版者
日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.21, no.2, pp.107-113, 2004-03-25
参考文献数
11
被引用文献数
1

本論文では,UNIXシステムにおけるsetuidプログラムのバグを利用したroot権限の不正取得に対処するために,setuidプログラム中のroot権限で動作するコードを最小化する手法について述べる.この手法では,我々が提案している細粒度保護ドメインを利用することでsetuidプログラム中の最小限必要なコードのみをroot権限で動作させ,root権限が不要なコードに含まれるバグによるroot権限の不正取得を防止することができる.
著者
青田 直大 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2018-OS-142, no.3, pp.1-7, 2018-02-20

ファイルシステムにおけるテール ・ レイテンシ (tail latency) は,サービス品質を保証する上での障壁となることが知られている.現在のファイルシステムにおける最適化は,アクセス性能を平均的に向上させることを主目的としているため,アクセス状況によってはすべての最適化が無効となり,テール ・ レイテンシが増大する傾向にある.テール ・ レイテンシが増大する状況は,メタデータの管理手法,最適化の手法,アクセスパターンによって異なってくる.本研究では,btrfs,ext4,XFS,F2FS という 4 つのファイルシステムを対象に,テール ・ レイテンシが増大する要因を定量的に分析した結果を示す.
著者
菊地 隆文 名取 廣 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2020-OS-150, no.15, pp.1-8, 2020-07-23

現代の情報サービスは,分散システムが基盤となっている.分散システムにおいて,大規模な障害が発生すると,サービスの停止につながる.したがって,分散システムの信頼性を向上させることは重要な課題である.分散システムにおける障害の発生要因の 1 つに,パケット処理のテイル・レイテンシがある.例えば,ハートビートの遅延は,リソースモニタリングの遅延や障害の誤検知を引き起こす.このようなパケットの遅延は,ソフトウェアが要因となり発生することが報告されている.高速なパケット処理を可能とする技術として,DPDK や XDP が挙げられるが,他の割込みによる遅延や既存のシステムへの統合などの課題が残る.本論文では,オペレーティングシステム内において,パケット処理のテイル・レイテンシを削減するシステムを提案する.ハードウェア割込みハンドラ内に,安全にユーザーコードをロードし,パケット処理を可能とすることで,テイル・レイテンシを引き起こす要因を回避する.本システムの有効性を示すため,I/O 負荷がある状態において,パケットのエコープログラムを用いてラウンドトリップタイムを測定した.その結果,DPDK や XDP といった既存の技術と比較して,パケット処理のテイル・レイテンシを削減できることを確認した.
著者
堀江光 浅原理人 山田浩史 河野健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2014-OS-128, no.11, pp.1-10, 2014-02-27

近年,複数のデータセンタ間を跨いで提供されるクラウド環境が登場している.これは各データセンタで稼働する計算資源を集約することで,クラウド環境の特徴である伸縮性や可用性の向上を図っている.スケーラビリティの観点から,このような多数のサーバを用いた環境での利用に適したストレージのひとつとして分散型キーバリューストアがあるが,データセンタ間を結ぶ狭帯域・高遅延なネットワークにより性能が著しく低下する問題がある.この問題を解決するために,本研究では Local-first Data Rebuilding (LDR), Multi-Layered Distributed Hash Table (ML-DHT) という 2 つの手法を用いてキーバリューストアを構築する方法を提案する.LDR は保存データに冗長性を与えた上で分割することで,ストレージ使用量の増加を抑えつつデータセンタ間通信の量を軽減する.ML-DHT はデータセンタ間通信を最小限に抑えたルーティングにより,通信遅延を抑えたデータ探索を実現する.実験により提案手法が,代表的な DHT である Chord を用いた手法を用いた場合と比較し,データ探索のための通信遅延を約 74%軽減し,ストレージ使用量とデータセンタ間通信量のバランスを柔軟に設定できることを示した.