近年、AIを活用したサービスやIoTによる様々なものが繋がるコネクティッドサービスの増加により、エッジデバイスの開発ニーズも高まっています。そのエッジデバイスを制御するには、各デバイスの特性や実現したいサービスに応じた組み込みソフトウェアを開発する必要があります。
組み込みソフトウェアにおいてもOSを搭載したものも増えており、リアルタイムのデバイス管理制御や通信制御、データ制御など、サービス実現のために特化したOSSの組み込みの容易さなどからLinuxの需要も広がっています。
Linux上で動作するサービスアプリケーションを開発する場合には、Linuxが提供するコマンドやライブラリを活用する必要があります。Linuxマニュアルページプロジェクトが公開されており、通称manページと呼ばれることが多いです。
manページについて、以下のように説明されています。
Linux man-pagesプロジェクトは、 ユーザー空間プログラムで使用されるLinux カーネルとC ライブラリ インターフェイスを文書化します。
C ライブラリに関しては、主に GNU C ライブラリ ( glibc ) に焦点を当てていますが、既知の場合は、Linuxで使用できる他の C ライブラリのバリエーションの文書も含まれています。
参考:https://www.kernel.org/doc/man-pages/
manページにはマニュアルセクションという定義があります。
1:ユーザコマンド
2:システムコール
3:Cライブラリ関数
4:特殊ファイル(デバイスファイル)
5:ファイル形式とファイルシステム
6:ゲームプログラム
7:概要、他雑多な内容
8:管理コマンドと特権コマンド
参考:https://man7.org/linux/man-pages/index.html
例えば、Linux上で動作させるアプリケーションソフトウェアを開発する際には、3のライブラリ関数に記述されているAPIの仕様を確認して設計・コーディングし、実際に動作させる際には、1で提供されているユーザコマンドや8のコマンドを駆使して環境構築をしたりデバッグします。
また、ソケット通信など仕組みの概要を知りたい場合には、7のOverViewを確認することで仕組みのイメージがつかめるというような活用方法があります。
検索サイトで、Linux man コマンド名などで検索をかけるとすぐに対象コマンドのmanページを探すこともできますが、そのURLに付与されているマニュアルセクション番号を確認した上で参照すると、どういった内容なのかの理解が深まります。
Sky株式会社では、Linuxを活用した組み込みソフトウェアのエンジニアが多数在籍しています。
製品開発においてお困りのことがございましたら、ぜひお声がけください。