トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2022-10-16の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!Linxuのしくみ

積読になってしまいそうなので,ざっと試しながら一通り読了.
Go,Python,Bashスクリプトを使って分かりやすい例をうまく作ってるなあ,と感心させられた.
内容は知っていたような,分かっていなかったような,っていうような感じ.
sarを使ってあれこれ調べるのは面白かった.
Linux上の何かを測定する時にひっぱり出すといい,かな.


::シグナルハンドラ

p.36あたり,シグナルハンドラの話でSIGKILLは挙動を変更できない,を試す.

 #!/usr/bin/python3
 import signal
 # try to ignore SIGKILL signal
 # 1st arg is target signal to assign handler
 # 2nd arg is signal handler
 signal.signal(signal.SIGKILL, signal.SIG_IGN)
 while True:
   pass

実行すると,

 Traceback (most recent call last):
   File "killignore.py", line 9, in <module>
     signal.signal(signal.SIGKILL, signal.SIG_IGN)
   File "/usr/lib/python3.8/signal.py", line 47, in signal
     handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
 OSError: [Errno 22] Invalid argument

なるほど.

::スケジューラ
p.55あたり.
 sysctl kernel.sched_latency_ns
で,レイテンシターゲットの設定がみえると書いてあるが,
手元の環境(Ubuntu 20.04.5, Linux 5.15.0-48-generic)では見えない.
で調べると,https://forum.endeavouros.com/t/sysctl-output-changed-from-kernel-5-10-to-5-13-why/17097 に解が.
 sudo cat /sys/kernel/debug/sched/latency_ns
として 24000000 が見えた.

::メモリ管理システム

p.81 図04-10 の 物理メモリ側は,仮想アドレス空間じゃなくて物理アドレス空間,かな


mmapの例,確保領域のサイズは開始位置がずれる,のか.実行した結果は,たとえば,
 7fb031a90000-7fb033e01000 rw-p 00000000 00:00 0
 ->
 7faff1a90000-7fb033e01000 rw-p 00000000 00:00 0
こんな感じで,計算すると
 (/ (- (- #x7fb031a90000 #x7fb033e01000) (- #x7faff1a90000 #x7fb033e01000)) 1024.0 1024.0) => 1024.0
たしかに1GiB増えてる

::デバイスアクセス

p.135あたりのloop device使うあたり,開放はしなくていいのかな??

 fallocate -l 1G loopdevice.img
 sudo losetup -f loopdevice.img
 losetup -l
 ...
 losetup -d /dev/loop0 # loop0だったとして
 losetup -l
 rm loopdevice.img