狠狠撸

狠狠撸Share a Scribd company logo
私とscreen
2014年5月17日(土)	

まほろば工房 伊波 源太
第30回CBUG Meeting
30th CBUG Meeting
GNU Screen
? http://www.gnu.org/software/screen/
? 便利。だけど辛い時もある。	

1. (例)すごく深いディレクトリで作業する	

2. 新しいバッファ開く	

3. また別のバッファ開く
2
% cd すごく深いディレクトリ
% cd すごく深いディレクトリ
辛い!
30th CBUG Meeting
今後の伊波の運命
1. screenを使い続ける	

2. cdコマンドを多投する	

3. 炎が発生する	

4. キーボードが打てなくなる	

5. 失職
3
30th CBUG Meeting
何が問題?
4
screen	

CWD: ~/ zsh	

CWD: ~/a/b/c
zsh	

CWD: ~/a/b/c
zsh	

CWD: ~/
(2)新バッファ開く→fork
子プロセス
buffer#1
buffer#2
buffer#3	

(new process)
(3)親のCWDを引き継ぐ	

(そこは~/a/b/cに	

しといて欲しかった)
(1) ここで作業中
(4)cd多投→ 炎→失職
30th CBUG Meeting
ソリューション
? gdbというプロセス間通信手法
5
30th CBUG Meeting
つまり?
6
screen	

CWD: ~/a/b/c zsh	

CWD: ~/a/b/c
zsh	

CWD: ~/a/b/c
zsh	

CWD: ~/a/b/c
gdbというプロセス間	

通信手法を用いることで	

CWDを通知
子プロセス
buffer#1
buffer#2
buffer#3	

(new process)
解決!
30th CBUG Meeting
デモ (従来環境について)
7
←(1)このディレクトリで作業中
(2)新バッファ開く
←(3)別ディレクトリに	

いる。辛い。
30th CBUG Meeting
デモ (プロセス間通信) 1/3
8
(1)gdbというプロセス間通信クライアントを起動し	

screenとの通信チャネルをオープソする
プロンプト出ると	

オープソ完了→
気にしない
30th CBUG Meeting
デモ (プロセス間通信) 2/3
9
(2)通信チャネルを介して、新CWDを	

メッセーヅパッツソグにより通知
←CWD通知メッセーヅACK→
通信チャネル閉塞メッセーヅ
30th CBUG Meeting
デモ (プロセス間通信) 3/3
10
新バッファ開く
←幸福実現
30th CBUG Meeting
デモ (スクリプト化)
11
本筋に関係ない	

辛気臭い部分
~/bin/cwd コマンド
通信メッセーヅ
プロセス間通信	

クライアント起動部
30th CBUG Meeting
デモ (使用例)
12
メッセーヅパッツソグを行う
←幸福実現
30th CBUG Meeting
まとめ
? gdbというプロセス間通信手法を日常的に多用するこ
とで、幸福を実現することができる	

? gdb最高!	

? gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb!
13
30th CBUG Meeting
懇親会でのご意見 (5/18追記)
? 「頭がおかしいです」の歪曲表現 (同意見多数)	

? ありがとうございます (伊波)	

? gdbというプロセス間通信技術を活用することで、
SDNコントローラを構成することも可能ではないか
(umeさん)	

? !! (伊波)
14
30th CBUG Meeting
今後の野望 (5/18追記)
? Insanity Software-De?ned Network (ISDN)を実現	

? kgdbというプロセス間通信手法を基盤技術とする	

? リモートからアタッチプロセス間通信を行うことに
より、経路注入等を行う	

? ISDNコントローラ以外の部分は、一切の追加開発
を要しない等、多数のメリットがある
15

More Related Content

私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

  • 2. 30th CBUG Meeting GNU Screen ? http://www.gnu.org/software/screen/ ? 便利。だけど辛い時もある。 1. (例)すごく深いディレクトリで作業する 2. 新しいバッファ開く 3. また別のバッファ開く 2 % cd すごく深いディレクトリ % cd すごく深いディレクトリ 辛い!
  • 3. 30th CBUG Meeting 今後の伊波の運命 1. screenを使い続ける 2. cdコマンドを多投する 3. 炎が発生する 4. キーボードが打てなくなる 5. 失職 3
  • 4. 30th CBUG Meeting 何が問題? 4 screen CWD: ~/ zsh CWD: ~/a/b/c zsh CWD: ~/a/b/c zsh CWD: ~/ (2)新バッファ開く→fork 子プロセス buffer#1 buffer#2 buffer#3 (new process) (3)親のCWDを引き継ぐ (そこは~/a/b/cに しといて欲しかった) (1) ここで作業中 (4)cd多投→ 炎→失職
  • 5. 30th CBUG Meeting ソリューション ? gdbというプロセス間通信手法 5
  • 6. 30th CBUG Meeting つまり? 6 screen CWD: ~/a/b/c zsh CWD: ~/a/b/c zsh CWD: ~/a/b/c zsh CWD: ~/a/b/c gdbというプロセス間 通信手法を用いることで CWDを通知 子プロセス buffer#1 buffer#2 buffer#3 (new process) 解決!
  • 7. 30th CBUG Meeting デモ (従来環境について) 7 ←(1)このディレクトリで作業中 (2)新バッファ開く ←(3)別ディレクトリに いる。辛い。
  • 8. 30th CBUG Meeting デモ (プロセス間通信) 1/3 8 (1)gdbというプロセス間通信クライアントを起動し screenとの通信チャネルをオープソする プロンプト出ると オープソ完了→ 気にしない
  • 9. 30th CBUG Meeting デモ (プロセス間通信) 2/3 9 (2)通信チャネルを介して、新CWDを メッセーヅパッツソグにより通知 ←CWD通知メッセーヅACK→ 通信チャネル閉塞メッセーヅ
  • 10. 30th CBUG Meeting デモ (プロセス間通信) 3/3 10 新バッファ開く ←幸福実現
  • 11. 30th CBUG Meeting デモ (スクリプト化) 11 本筋に関係ない 辛気臭い部分 ~/bin/cwd コマンド 通信メッセーヅ プロセス間通信 クライアント起動部
  • 12. 30th CBUG Meeting デモ (使用例) 12 メッセーヅパッツソグを行う ←幸福実現
  • 13. 30th CBUG Meeting まとめ ? gdbというプロセス間通信手法を日常的に多用するこ とで、幸福を実現することができる ? gdb最高! ? gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! 13
  • 14. 30th CBUG Meeting 懇親会でのご意見 (5/18追記) ? 「頭がおかしいです」の歪曲表現 (同意見多数) ? ありがとうございます (伊波) ? gdbというプロセス間通信技術を活用することで、 SDNコントローラを構成することも可能ではないか (umeさん) ? !! (伊波) 14
  • 15. 30th CBUG Meeting 今後の野望 (5/18追記) ? Insanity Software-De?ned Network (ISDN)を実現 ? kgdbというプロセス間通信手法を基盤技術とする ? リモートからアタッチプロセス間通信を行うことに より、経路注入等を行う ? ISDNコントローラ以外の部分は、一切の追加開発 を要しない等、多数のメリットがある 15