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

2048作ってみた

 2048作ってみた

akatsukinewgrad

March 05, 2021
Tweet

More Decks by akatsukinewgrad

Other Decks in Programming

Transcript

  1. 1/5 ⾃⼰紹介 • 名前:柴原 • 職種: 20新卒サーバエンジニア • 趣味:アイマス,コーヒー •

    年齢:25歳(調査平均約34歳) • ブーム:お酒を飲みながら 友⼈とアイマスライブBD観戦
  2. 2/5 2 4 4 8 2 16 32 2 2

    16 2048って? • 4×4のマス • 数字のタイル • 同じ数字同⼠が重なると ⾜し算される
  3. 2/5 2 4 4 8 2 16 32 2 2

    16 2048って? • 4×4のマス • 数字のタイル • 同じ数字同⼠が重なると ⾜し算される
  4. 2 4 4 8 2 16 32 4 16 2/5

    2048って? • 4×4のマス • 数字のタイル • 同じ数字同⼠が重なると ⾜し算される 2+ 2 = 4
  5. 2/5 2 4 4 8 2 16 32 4 2048

    2048って? • 4×4のマス • 数字のタイル • 同じ数字同⼠が重なると ⾜し算される • ⾜し算を繰り返し 2048を作る
  6. 8/18 BPFとは • BPF = Berkeley Packet Filter • UNIXでパケットキャプチャ・フィルタリング

    を効率的にするために開発されたソフトウェア • Linux kernelにも移植されてます
  7. 9/18 BPFプ ログラム バイト コード bpf(2) 検証器 (Verifier) BPF sockets

    tracepoints kprobes uprobes BPF map ユーザ プログラム read(2) bpfの全体像 ユーザ空間 カーネル空間
  8. 9/18 BPFプ ログラム バイト コード bpf(2) 検証器 (Verifier) BPF sockets

    tracepoints kprobes uprobes BPF map ユーザ プログラム read(2) bpfの全体像 コンパイル ユーザ空間 カーネル空間
  9. 9/18 BPFプ ログラム バイト コード bpf(2) 検証器 (Verifier) BPF sockets

    tracepoints kprobes uprobes BPF map ユーザ プログラム read(2) bpfの全体像 bpfシステムコール を利⽤してカーネル にロード ユーザ空間 カーネル空間
  10. 9/18 BPFプ ログラム バイト コード bpf(2) 検証器 (Verifier) BPF sockets

    tracepoints kprobes uprobes BPF map ユーザ プログラム read(2) bpfの全体像 ・無限ループがないこと ・未初期化のレジスタを利⽤しないこと など安全性を検証している 検証器でプログラム の安全性を確認して ロード完了 ユーザ空間 カーネル空間
  11. 9/18 BPFプ ログラム バイト コード bpf(2) 検証器 (Verifier) BPF sockets

    tracepoints kprobes uprobes BPF map ユーザ プログラム read(2) bpfの全体像 BPFプログラムとやりとりが必要な場合, BPFマップを作成し,BPFマップにアク セ スしてデータを読み書きして保存 ユーザ空間 カーネル空間
  12. 9/18 BPFプ ログラム バイト コード bpf(2) 検証器 (Verifier) BPF sockets

    tracepoints kprobes uprobes BPF map ユーザ プログラム read(2) bpfの全体像 必要な場合はユーザ空間で取得 ユーザ空間 カーネル空間
  13. 検証器 (Verifier) BPF sockets tracepoints kprobes uprobes BPF map 9/18

    BPFプ ログラム バイト コード bpf(2) ユーザ プログラム read(2) bpfの全体像 BPFプログラムをこれらのイベン トソースを使ってアタッチする ユーザ空間 カーネル空間
  14. 検証器 (Verifier) BPF sockets tracepoints kprobes uprobes BPF map 9/18

    BPFプ ログラム バイト コード bpf(2) ユーザ プログラム read(2) bpfの全体像 イベントが発⽣すると,BPFプログ ラムが呼び出され,処理を実⾏する ユーザ空間 カーネル空間