システムプログラミング:情報を収集する方法は?

システムプログラミング:情報を収集する方法は?

~によるとこの問題、システムプログラミングを学ぶ良い方法は、既存のツールを実装することです。私は書き換えることにしましlsps

私の質問は、そのような文書を入手するためにどうすればよいですか?

  • カーネル、ファイルシステムなどを照会するために必要なシステムコールAPIはどこにありますか?

  • 私はGNUツールのソースコードを見ることができると思いました。どこで見つけることができますか?

  • どこから始めるべきかについての良い文書化に関する推奨事項(オンラインで無料で提供されることを願っています)はありますか?

答え1

あなたはそれを使用することができますglibc マニュアル参照。完全初心者のためのものではありませんが、Cに精通している場合は、一部を読んで機能するプログラムを書くことができます。

以下では、GNUツールのソースコードを見つけることができます。GNUウェブサイト;これを取得する最も簡単な方法は、Linuxディストリビューションからソースコードパッケージを入手することです(たとえば、ディストリビューションがapt-get source coreutilsDebianパッケージユーティリティを使用している場合など)。から始めることをお勧めします忙しい箱GNUツールではなく、BusyBoxは組み込みLinuxシステム用のユーティリティセットです。 GNUユーティリティより小さくて簡単です。

実行して、どのシステムコールが行われているかをstrace ls確認できます。lsプログラムを作成するときにシステムコールを直接呼び出すのではなく、システムコールを作成するCライブラリの関数を呼び出すことに注意してください。ファイル操作と同じ場合、Cライブラリ関数はシステムコールopenと非常によく似ています。read

勉強には本(紙)が役に立つことが多いです。UNIX®環境の高度なプログラミングアプエ)は古典です。入手すると初版が既に期限切れになっていますので、第2版を入手してください。この本は参考書ですが、他の本が初心者に適している可能性があります。

答え2

存在するオペレーティングシステム、コマンドは情報を読み取って実装されますpsfreetopプロセスファイルシステム

   The proc file system is a pseudo-file system which is used as an inter-
   face to kernel data structures.  It is commonly mounted at /proc.  Most
   of  it  is  read-only,  but  some  files  allow  kernel variables to be
   changed.

まずman 5 proc、これらのユーティリティはすべてオープンソースなので、確認してみることもできることを忘れないでください。パスワード

関連情報