計算屋さんの日常

2017/09/26


Linux Kernel Study
2017/09/23
Sakura Internet, Umeda, Osaka

上記に参加してきた。公聴しながら記述したので、誤字が多い。
_____________________________________________________




0. Linux kernel 勉強会の経緯

主催者が leyer が低いところに興味があった。
他の勉強会、に出たところ 3 人集まった。
がちの linux kernel 開発者はいない

1. Linux Kernel 最初の一歩

@satomicchy

** kernle.org と linux.org

kernel.og: Linux kernel organisation
- 本家

Linux online inc が管理
- user forum
- distribution
- linux man
   コマンド一覧があるこれは便利そう

** what is linux の翻訳比較
 - 英語と日本語の対比がある
 - kernel はパスタらしい
 - Linux kerne document project は, 止まっている ?
   2.6 系で止まっている

2. Liux Kernel source code を読む 

 xoxyuxu (中居さん)

 - RTOS Linux 外は機能ごとに追加料金が課される。
   - ipv4, ipv6 など

 - 仮想ファイル: デバイスファイルを介して通信
 - LTS 
 - LTSI kernel 工業用の linux kernel 5 年? のメンテ期間

 - kernel source code
   valnila kernel (unstable)

   ・linux のつりーを取ってくれば基本的には OK
   ・ほかカーネルメンテなーのソースを取ってくる
   ・MAINTAINERS いかのディレクトリに管理者のリスト

- ビルド環境
 ・とりあえずビルドしないと読むのが辛い
 ・debian 系がおすすめ
 ・kernel configuration で必要でないcpu arch は落とす。ソースを読むのが楽になる
 ・obj が生成されていない kernel は読まない
 ・corss compiler を使う x86_64 で arm の obj
   - カナディアンクロス というクロスコンパイルの方法がある

- Eclipse でコンパリる 
  ・ 今タイル時に -I を指定しないとだめ
  ・ make V=1 で参照を確認すこと

- Elixr
  ・ web base で解析してあるのを公開してくれている
  ・ freeElectrons  さん

-source
  ・doumenration, arch, block(block derice), certs, crypto(暗号処理), drivers(深い), firmware(空), fs
  ・sinclude, int, ipc (sysv, shared mem, semaf)  , kernel, lib, mm, sample
  ・scripts (make file, python, shell), securiy, sounrd, tools(group, cpupower, perf, gpio), usr, virt(kvm)
  ・mmake help に static analyser や gtags のオプションが記述されている
  ・firmware は dist がぶち込む商用のデバイスドライバなどが入いる
 
- stract
  - fallocate(2)
    SYSCALL_DEFINE で grep するとみつかる
  - maro の嵐を読むと マクロ名を変換して syscall 名を作る
  - strace で追っかけるアセンブラのコードがある
  - Linux 関連メモ 宇治電子や

- libc
  - vDSO virtual dynamic shared object
  - gettimeofday() が呼べなくて苦労した
  - kprob のほうがよい ?
  - Linux カーネル 2.6 network stack に関してはかみ

2. 資料なし 

  吉田さん

  - mac 上の docker の中で linux kernel をビルドしてみた
  - apline linux
  - gist に docker ファイルあり 
  - qemu でブートできなっかった
  - make menuconfig の general setup の initramfs/initrd を有効にした。
  - block device の loop back device オプションを有効した
  - static link した c プログラムを動かした
  - mac のカーネルは moby とう distro

3. Linux kernel の勉強ってなんだ

  矢吹さん

  - Linux Kernel の TCP アルゴリズムを触った  
  - TCP アルゴリズムを入れ替えられる mod を変える
  - 組み込みは Debian 由来のツールが多い

  ・ Linux マシンを持とう
  ・非力な環境で限界になった時、の挙動を学ぶ
    - 極限の状態は、低レイヤーがコントロールする
    - 極限状態から、どうやってとめるか
    - 小さい環境ならば、予測と実績が立てやすい
      一台のマシンならばどうにかない。

  ・ 死んだ情報と生きた情報
    - boot 方式が変わる
      UEFI と systemd
    - dbus Linux の共通通信方式になる傾向
      freedesktop org を読まないとだめ
    - 理論と実践の療法をやらないとだめ

  ・ 書籍紹介
    - code reading 毎日コミュニケーションず
    - Linux のブートプロセスをみる ASCII
   
  ・下準備
    - GNU global
    - milkcode, gonzui
    - ctag
    - git grep

  ・ ソースコードを読む
    - export gpl
    - ひら method
    - 興味があるところをひたすら読む
    - 学んだことは、試してみたほうがよい

  ・ソースコードを動かす
    - printk()
    - gdb

  ・debian kernl package
    - blob: firmware 商用の driver など

  ・読むためのツール
    - cscope

   ・kernel
    - condif : kernel の設定
    - systemmap : address
    - initrd : boot 時に私用

   ・debootstrap
    - snapshot.org で保管している
    - license の精査

   ・debug
    - qemu-kvm に gdb と連携する機能がある
    - 昔は、KGDB で別マシンとシリアル通信をした
  
   ・ Qemu + gdb
    - man qemu-system で -s オプションと -gdb オプションを確認

   ・ TCP/IP
    - reno
    - congestion algorithm

3. 簡単な Linux Kernel 開発
  村瀬さん
  
  会議が定義で以降

  ・仮想環境で linux の開発
   - elkdat
   - cross cmopile: Op-TEE 

  ・ubuntu 16.4
    - userkan ubuntu
    - kernel test
    - multi core

  ・cons
    - vagrant/qemu/kvm/libvirt
    - ubuntu と debian でちょっと違う

  OP-TEE
    proc
     - ARMv7, ARMv8 use trust zone
     - eazy gdb
     - P-TEE
     - 非常に低いレイヤーの認証系のレイヤー を扱う trust zone
   cons
     - useland busy boox
     - ARM only

   - ccache を入れるともっと早い
   - ran-only
   - gdb symbol 読み. 設定ファイルを $HOME したに億
    
・Kernel ソースの構造紹介   

  - usr 以下に 起動用のツールが入っている
  - sample 以下はテストケース

5. LT NAND flash
  - usb メモリは放置しておくとデータがきえる
  - bit flip
   read write で 0-1 1-0 が変化 ECCで治す  

  - ware leveling
   特定の箇所に書き込みが集中すると劣化が早くなるので、まんべんなく使うようにする。
   エラー率が多くなってきたら、他の場所に書くなど

  - SLC, MLC/TLC device
    MLC はデータ書き込んだ隣のデータが消される
    実際、linux の MLC ドライバは何か問題があると ML に流れていれた
    SLC は高い, MLC を MLC っぽく使う機能がある。ただし、容量を多く使用できない

宿題
  - 環境構築 ビルド

2017/09/15

iptables

本日、iptables の設定がめんどい時、ufw を使うことを学びました。

http://gihyo.jp/admin/serial/01/ubuntu-recipe/0076

2017/09/14

学会に参加中

某私立大学にお邪魔しています。すごい。今、スタバが学内にあるんだ。
私のいた学校は、まずい飯が出てくる食堂しかなかった。そして、その食堂すら途中で、なくなった。

講演が再開されるまで、プライベートな作業をする。

2017/09/10

今日知ったジョーク

第二次世界大戦を経験したイギリス空軍の元パイロットが、ある講演会に呼ばれました。
講演会は、学校で開かれ戦争を知らない若い世代の人たちのものでした。

パイロット「そのとき、私のしろに2機 F**ker が着いてきた。」

 学校で、F** word は教育上よくないので、すかさず教師がフォローします。

教師「みなさん、Fokker というのは、ドイツの飛行機メーカーです。」

しかし、パイロットは、

パイロット「いや、マサチューセッツから来た F**ker だ。 」

2017/09/09

uq mobile data 通信プラン 500 K に変えてみた。

今までお世話になっていた wireless gate さんの wimax から、UQ mobile の data 通信に乗り換えました。最大通信速度 max 220 MiB から 500 KiB は辛いです。金額的には 3980 円から 1980 円 になりました。

速度計測用のページではほぼカタログスペック通り 500 KiB 出るのですが、apt-get とかアプリだと 60 KiB ぐらいしか出ません。Axel でダウンロードしてもかわらず。

速度は、ちょっとつらいかな。

ちなみに you tube の 144p ならばカクつかなく見ることができます。240p 以上は、止まりながらです。

でも、wimax が繋がらなかった場所でも使えるので、まあいいかと思っています。
梅田のグランドフロントなどでは、外でも入らない場所が結構ありました。

しばらくはこのプランで行きます。

2017/01/02

Trump さんが大統領になって。

政治的には、どうなのでしょうか?
個人的には、円安になってくれたおかげで、給料 1 ヶ月分以上ボーナス以下ほど稼げ、ありがたやです。

確かにこんな状況が続けば、「秒速で稼ぐ」や「働いたら負け」になるよね。

2016/10/03

keysign

caff 使ってメール送っても返事来ないなと思ったら、E-mail の設定していなかった。
postfix の設定はこちら。

https://help.ubuntu.com/community/GmailPostfixFetchmail

2016/09/06

Adjective in English

知らんかった

https://twitter.com/MattAndersonBBC/status/772002757222002688


2016/08/28

Fortran は永遠に不滅です。

愛を見た

http://www.p.phys.nagoya-u.ac.jp/~tomo/Fortran/Fortran_Questionnaire_summary.pdf

2016/08/13

POSIX って

同じ POSIX 認定を受けている OS なのにシグナルが同一で無いのはやめてほしい。
Solaris よお前のことだ。 Solaris 非対応に割りきろうかな?

2016/07/25

OS のインストール時には LVM を選ぼう

インストール後に、理論ボリュームを作成しようとしたけれど、マウント中はできないのか。

 yosuke@ultra20:~/Private/xen/debian-sid-x86_64$ sudo vgcreate vg_host /dev/sda1 /dev/sda2 /dev/sda5
  Can't open /dev/sda1 exclusively.  Mounted filesystem?
  Unable to add physical volume '/dev/sda1' to volume group 'vg_host'.



一回レスキューで入って操作するか? そもそもレスキューで lvm2  使えるのかな?

これが原因で、xen を利用できない。Xen の OS イメージを作成するとき、書き込み先の volume group を指定する必要がある。現在 vg を全く作っていなかったため、このような問題に遭遇した。どうやって解決すれば良いのだ?

2016/07/14

DVD を鬼のように焼く

今度のオープンソースイベントで配布する、インストールメディアをかれこれ 8 枚ほど焼いている。

32歳 になって売れないミュージシャンみたいなことしてます。

2016/07/02

unix が何故素晴らしいか

本日 Unix が何故素晴らしいかようやく理解した気がする。exec(), execve () が使えることなんだろうと思う。その点を考えると OpenFOAM などは、よくわかっている人が作っている。

2016/06/19

今読んだことをありのまま話すぜ。

あまりにも、ひどい記事を見つけたので紹介する。
付加年金に関してしらべていたとき、見つけた記事。

http://allabout.co.jp/gm/gc/407874/

要約すると、年金を多くもらうには
1) 長い期間払え
2) 多く払え
3) 長く生きろ

と、紹介している専門家がいる。
FPの人が書いた日経の記事とか見ると、前納とか、口座振替、付加年金とか保険料の割引の情報とか、多くもらう制度のことを書いてあるのだけれど。

2016/05/15

仮想化 KVM

仮想化関連も学んでおいたほうがいいかなと思って、初めて見た。

手始めに KVM をつかって host OS を debian 8.0, guest OS netbsd 7.0 をつかってみたよ
  #!/bin/sh
  
  DISK_PATH=/home/yosuke/Data/kvm/netbsd
 
  virt-install    --virt-type kvm \
                  --name netbsd-7.0-amd \
                  --vcpus=1 \
                  --os-type=netbsd \
                  --memory 512 \
                  --cdrom /home/yosuke/Downloads/NetBSD-7.0-amd64.iso \
                  --disk path=$DISK_PATH/netbsd-7.0-amd.img,size=8 \
                 --os-variant generic                      

--os-variant に netbsd 7.0 はまだないようなので注意してね。(はまった)


でここからが問題。もう一台のマシンの方でも、環境を作ってろうとしたら、intel-VT がないマシンだった。KVM が使えない。そのため、Xen を入れることにしたよ。今苦戦中。

2016/05/08

インドのカレー屋

近所のショッピングモールの中にあったインドカレー屋が、なくなっていた。
 つい最近出来たばっかりなのに。いっぺん試してみればよかった。

インドの方 (見た目だけで判断してます) が経営されていたようで、結構本格的なお店だった。

人通りも多くて、モールの入り口からすぐのところだったけど、隣にココイチがあった。

カレー屋としては最悪の立地だろう。

2016/05/03

竹林の道

昨日、京都観光してきました。京都まで30分とか関東出身のわたしにとっては夢みたいです。竹林の道と龍安寺、ほか商店街をぶらぶらしていました。

本日、母親から「やすみなにしてる?」ってメールが来たので、竹林の道に行ってきたと返信すると、「たけのこには早くない?」と帰ってきました。

そっちかー。さすが我が母親。

2016/04/25

技術系のフォーラムでとんでもない質問を見た。

よく利用している linux の技術フォーラムにこんな質問があった。

"How should I maintain a professional relationship with female coworkers?"
 「女性の同僚と仕事上ではどのような関係を保っていけばよいのでしょうか?」

技術系のフォーラムで聞いてはたして答えが出るのだろうか?

かふぇで衝撃的な光景を見た。

ドトールに平日行ったら、若い女性がキャッキャしている隣で、おっさんたちが将棋してた。

たのしそうでなによりです。

2016/04/11

中学校

中学三年生のとき、英検3級を受けた。

土曜日に学校で受けたのだけど、前日の金曜日に風邪で欠席してしまい。かなり無理をして受けたのを覚えている。

今思えば、あの中学のあの学年は異常な程に優秀なひとが多かったと思う。

まとめページ

      

リンク

貧乏人のPCライフ         
常に未完成な自分のHomepage。自分のPCとか自作コードとかを公開してます。

The Wizard of Science
友達のブログ文化人類学とか難しい話をしております。あとホームページから自作ゲームも配布。