0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ふつうのLinuxプログラミングをやってみる その2

Last updated at Posted at 2020-11-04

有名な本らしいので買ってみました
ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道

ふつうのLinuxプログラミングをやってみる その1
https://qiita.com/uturned0/items/b9ae846f2aff5865c074
ふつうのLinuxプログラミングをやってみる その2
https://qiita.com/uturned0/items/56beac990cdd6f1059ed
ふつうのLinuxプログラミングをやってみる その3
https://qiita.com/uturned0/items/675092da8aa89c4b1ff0
その4
https://qiita.com/uturned0/items/8f5765cfc0f0be8a1981
その5
https://qiita.com/uturned0/items/ab97deb489c994a836da
その7−3
https://qiita.com/uturned0/items/3fbf3ed6bb2a47325f59


chapter 2

unix -> System V -> Solaris
unix -> bsd -> FreeBSD, mac os x

linuxはゼロから作られた。が、仕様がsystem v/bsd に似ている

あくまでゼロから作ってるからlinuxはunixじゃないっていうアレか

現在はお互いに機能を取り入れている 互いを似たものにする標準規格が POSIX 

Linux OS と Linux Kernel は違うもの。linux = linux kernel

カーネルはたったひとつのプログラム。 vmlinuz がそのプログラムひとつ。

ls /boot/vmlinuz-3.10.0-xxx.el7.x86_64

Linus大王が見てる(た)のはkernelだけ。

ハードウェアと直接やり取りできるのはカーネルだけ。device driverは kernelだけ に入ってるから。

kernelの機能を使うものをシステムコールと呼ぶ。open/read/write etc

chapter 2.2

ライブラリ関数とシステムコールは違うものだが境界はあいまい。

ライブラリ関数 printf(3) は write() システムコールを使っている。
ライブラリ関数 strlen(3) はシステムコールを使っていない、単体で完結している

man 1 write コマンドのwrite
man 2 write システムコールのwrite

早速恐ろしいことが書いてありましたよ

注意
write() が成功して返ってきても、 データがディスクに記録されたことを保証するものではない 。 実際、データのためのスペースが確保されたことすら保証されないというバグっぽい実装もある。

実装はman必須感あるね

libc

標準C library 通称 libc がめっちゃ大事

$ ll /lib/libc.so.6
lrwxrwxrwx. 1 root root 12 2019-10-01 18:58:09 /lib/libc.so.6 -> libc-2.17.so

liunx では GNU libc 略して glibc ぐりぶしー より じーりぶしー ぽい

libc.so.2 とかも /libs にあるのは全部Cのライブラリ。これはLinuxじゃない人が管理してる
libc.so.6は数学的な関数が入ってる

chapter 2 おわり

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?