1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HelloWorld本 第7章

Posted at

組み込みOSと汎用OS

組み込みOSには、主に最適化されたLinuxが利用される。
汎用OSはカーネルと必須アプリケーションから構成され、Windows・macOS・Ubuntu等が存在する。
汎用OSでは任意のアプリケーションが実行され、システムコールAPI・仮想メモリ・スケジューリング等が必要である。

UNIX

UNIXはベル研究所で開発された汎用OSであり、BSDとSystemVに分派した。
UNIXのシステムコールAPIはPOSIXで定義される。
正統なUNIXでは無いがPOSIXに準拠したOSはUNIXライクと呼び、ソースコードの移植性を持つ。

GNU/Linuxディストリビューション

LinuxとGNUアプリケーションを組み合わせた汎用OSをGNU/Linuxディストリビューションと呼ぶ。
POSIXについて、Linuxは機能を提供し、glibcはAPIを実装する為、GNU/LinuxディストリビューションはUNIXライクである。

ビルドコマンド

# プリプロセッサ(cpp)
$ gcc -E hello.c > hello.i

# コンパイラ(cc1)
$ gcc -S hello.i -o hello.s

# アセンブラ(as)
$ gcc -c hello.s -o hello.o

# リンカ(ld)
$ gcc hello.o -o hello

# ビルドコマンドの確認
$ gcc -v hello.c -o hello

その他

ソースコードの開発者を知ると、効率的に検索できる場合がある。
#includeの時、ダブルクォーテーションを使用するとカレントディレクトリから、山括弧を使用するとインクルードパスから検索する。
libc.aは静的ライブラリ、libc.soは共有ライブラリであり、readelfやobjdumpで解析できる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?