私はPythonを学んでいます。これまでは、基本的なPythonコーディングのみを行ってきました。1日前に、tree
コマンドのPython実装をチェックしました。突然、のPythonクローンを作成しようと思いましたuptime
。私はそれがどの言語で実装されているか、そしてそれを複製することに伴う複雑さは何であるかについての手がかりはありません。
しかし、そのソースコードは見つかりませんでした。Fedora 14を使用しています。kernel-develパッケージがインストールされています。実行しましたwhereis uptime
が、/usr/bin/uptime
vimを使用して開くと、生成されたファイルに奇妙なシンボルが表示されます。ソースコードをグーグルで検索しても、望ましい結果は得られませんでした。ソースコードはどこにありますか?
strace
です。アプリケーションが行うすべてのシステムコールが表示されます。実行strace uptime
すると、(ロード後に)/ proc / uptimeと/ proc / loadavgのオープンコールが表示されます。それはすべてが、それは時々 、リバースエンジニアリングにまともなスタートだ表示されませんが
file /usr/bin/uptime
。fileコマンドは、一連の半魔法のヒューリスティックを使用して、ファイルの内容(この場合はELF形式のバイナリ実行可能ファイル)を推測します。