他の組み込みOSとの比較
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/08 09:05 UTC 版)
「組み込みLinux」の記事における「他の組み込みOSとの比較」の解説
ミドルウェアが豊富POSIX互換であるためUNIX系のミドルウェアが使える TCPスタック、LANスタック、Wifiスタック、Bluetoothスタック、USBスタックなどの各種プロトコルスタックが揃っている 開発しやすいPC上である程度の開発が可能Linuxカーネルはアーキテクチャー毎に開発されているのではなく、デスクトップ、サーバー、組み込み、メインフレームに関わりなく、共通のソースベースで開発されており、アーキテクチャー相互のソースレベルでの互換性は高い GCC、GNU Binutilsを利用してクロスビルドツール(クロスコンパイラ、クロスリンカなど)を用意することもでき、ビルドまではPC上ですべての開発が可能 カーネルがモジュール化されているため、再起動なくモジュールの開発が可能(ローダブル・カーネル・モジュール) NFSが使えるため、ファイル転送が容易 tftpbootが使えるため、カーネル切り替えが容易 gdbserverが使えるため、リモートデバッグが容易に可能 distccを使った分散コンパイルが容易に可能 機能が豊富、設定も柔軟(反面、複雑ともいえる)カーネルのコンパイルオプション(.config)には汎用OS向けのものも含まれる(共通のソースベースを利用しているため) カーネルのコンパイルオプション(.config)には組み込み向けの設定も多いが、その多くが何らかの資源や機能とのトレードオフであるため、知識が必要になる。 カーネル全体の状態の取得・動的な調整が可能 (/sys/以下, /proc/sys/ 以下, sysctlなどでチューニング可能)ネットワークバッファ プロセス毎の状態の取得・動的な調整が可能 (/proc/プロセス番号/ 以下, rlimitなど)メモリ逼迫時のOOMキラーによりkillされるプロセスの優先順位の設定 動作中のカーネルから別カーネルへ再起動をかけず瞬時に切り替え可能 (コールドブート機能。kexec) オープンソースである自由に改良することができる(それぞれソフトウェアライセンスにより条件や義務が異なるが、少なくとも改変や再頒布に関してはロイヤルティー・フリーで自由に可能である) 世界中の企業・団体・個人・政府機関による持続的な開発が行われている脆弱性も調べられているため、セキュリティが高い サポート企業・団体が複数ある 機能の開発を依頼できる所が多い 開発講座が多い 採用前に工数を見積もれる LinuxカーネルなどはGPLでライセンスされているため、機器の販売など配布を伴う場合はソースコードの開示が必要となる(しかし配布を伴わないケース、例えば「自組織内で私的に流用するのみ」ならばソースコードを一切開示する必要はない)。ソースコードの提供によりOSSコミュニティにコードが還元され、ソフトウェアの機能向上につながり、結果として自社製品の機能強化につながる可能性もある。 採用事例が多く公開されている デバッグ/プロファイリングの仕組みが豊富カーネルのロック依存性動的チェック (lockdep (CONFIG_LOCKDEP_SUPPORT。標準で有効)) カーネルのデバッグログの個別動的有効無効切り替え (ddebug (dynamic debug。CONFIG_DYNAMIC_DEBUG)) カーネル用のデバッガ (KDB, KGDB, KGTP(パッチ)) カーネルプローブ(kprobe, jprobes, SystemTap) ユーザー空間プローブ (uprobes (パッチ)) カーネル内イベントトレーサ (ftrace event tracer, kprobe-based event tracer, GDB tracepoint support(パッチ), trace-cmd, KernelShark) システムコールトレーサ (strace) プロセストレーサ (ptrace, utrace) 共有ライブラリトレーサ (ltrace) ユーザランド用デバッガ (GDB) プロファイリング (gcov (カーネルではGCOV_KERNEL), OProfile, perf tools) ロック競合のチェック (lock_stat, perf lock) 各種ベンチマーク (perf bench, ffsbなど) ハードウェアによって生まれるレイテンシの検出 (Hardware Latency Detector (rtパッチ)) モニタリング (top, htop, iotop, slabtop, xrestop, latencytop, powertop, apachetopなど) 動的カーネル内メモリ管理バグチェッカ (Kmemcheck, Kmemleak) 動的メモリ管理・スレッドバグチェッカ (Valgrind (UserModeLinux+パッチを使うことでカーネルのチェックも可能)) 静的解析 (Clang Static Analyzer, Smatch, Coccinelle) ロギング (MRTG, Nagios, Xymon, Zabbix, Hinemos, Cacti, Muninなど) リモート管理 (OpenSSH, adb, screen) クラッシュダンプ取得
※この「他の組み込みOSとの比較」の解説は、「組み込みLinux」の解説の一部です。
「他の組み込みOSとの比較」を含む「組み込みLinux」の記事については、「組み込みLinux」の概要を参照ください。
- 他の組み込みOSとの比較のページへのリンク