Upgrade to Pro — share decks privately, control downloads, hide ads and more …

3つの概念で覚えるLinuxの世界

 3つの概念で覚えるLinuxの世界

Jun Nakajima

March 24, 2021
Tweet

More Decks by Jun Nakajima

Other Decks in Technology

Transcript

  1. 3つの概念で覚えるLinuxの世界

    〜ふつうのLinuxプログラミング 第2版〜

    2021/03/24
    おすすめの技術書 LT
    #itbookslt
    Jun Nakajima
    1

    View full-size slide

  2. なかじま(@jnuank_)

    ● C#→Bash→Python・Vue.js

    ● 技術書は紙本と電子版の両方派

    ● Linux歴2年9ヶ月くらい

    ● モブプロ/ペアプロ/DDD/TDD好き

    ○ エヴァンス本輪読会をやってます

    ● あだ名:KAIZEN BOZU

    ● 由来:カイゼン活動する坊主頭

    自己紹介

    2

    View full-size slide

  3. 自分のLinux知識

    あんまりわかってない

    3
    Linux何もわからん


    Linuxよくわからん…

    コマンド叩ける

    syslog見れる

    top、psなど見れる


    View full-size slide

  4. Linuxよくわからない


    View full-size slide

  5. ふつうのLinuxプログラミング 第2版


    View full-size slide

  6. この本をおすすめする理由

    Linuxを構成する三大概念を学べる

    コマンド自作しながら概念の理解を深める

    6

    View full-size slide

  7. この本の一番嬉しいポイント


    View full-size slide

  8. Linuxは3つの概念でできてる

    ● この本の嬉しいところは、Linuxを構成する要
    素を3つの概念で表していること

    ○ プロセス

    ○ ファイルシステム

    ○ ストリーム

    覚えることは(とりあえず)3つだけ

    8

    View full-size slide

  9. プロセス

    ● 実行されるプログラムの区別はプロセス
    ID(=PID)

    動作中のプログラム

    9
    ← catコマンド2回叩くと、

     89、90のPIDでプロセスが

     できている


    View full-size slide

  10. ファイルシステム

    ● ファイルという概念を成り立たせているシステ
    ム

    ● テキスト、バイナリ、ディレクトリ、シンボリック
    など、全てファイル

    全てをファイルとして扱う

    10

    View full-size slide

  11. ストリーム

    ● プロセスからプロセス。プロセスからファイル
    のデータの流れ

    バイトストリームのこと

    11
    ←PID50のlessプロセスは、

    /app/data2に繋がる0番のストリームに
    接続されている


    View full-size slide

  12. つくって、学ぶ


    View full-size slide

  13. 手を動かしコマンドを自作する

    ● 知識だけ学んだところで、それは知っている
    だけ。咄嗟に使ったり応用は難しい

    ● 土台となる三大概念の知識を実践する取っ
    掛かりとして、コマンド自作の演習が用意され
    ている

    システムコールを通じて、三大概念を理解する

    13

    View full-size slide

  14. 例:catコマンドより

    ● ファイルパスを引数に渡したら

    そのファイルに繋がるストリームを作成。その
    ストリームを指す数字(ファイルディスクリプタ)
    を返す

    14
    open(2)


    View full-size slide

  15. 実際にopen(2)の挙動を見る


    View full-size slide

  16. 学んだことをつなげる


    View full-size slide

  17. 応用:知ったことをつなげる

    ● 本書で説明された概念を覚え、手を動かして
    実験していると、自身のLinuxの経験と紐付け
    られてくる

    ● それは本書が、3つの抽象度の高い概念とそ
    れを裏付ける演習を用意するといった丁寧な
    構造となっているからです

    学んだ内容と自身の経験をつなげやすくなる

    17

    View full-size slide

  18. まとめ


    View full-size slide

  19. まとめ

    ● Linuxの構成概念から、それを主軸に演習を
    して理解を深められる丁寧な良書

    ● 現場でなんとなくLinux触っている人にこそ、
    オススメしたいです

    Linux触ったけどよくわからない人にこそ

    19

    View full-size slide

  20. Thank you!
    20

    View full-size slide