Emacsいじめの現場

37,284 views

Published on

Vim陣営としてEmacsを完膚なきまでに虐めます。
※発表者は別にEmacsがクソだとは微塵も思っていません

Published in: Technology
2 Comments
45 Likes
Statistics
Notes
No Downloads
Views
Total views
37,284
On SlideShare
0
From Embeds
0
Number of Embeds
2,775
Actions
Shares
0
Downloads
23
Comments
2
Likes
45
Embeds 0
No embeds

No notes for slide

Emacsいじめの現場

  1. 1. Emacs いじめの現場 えりっく @siritori
  2. 2. about 私 •  えりっく / @siritori •  上へ下へと好きなモノを触る •  好きなこと – しりとり – マッサージする – ときどきプログラミング
  3. 3. さんざん 勉強会で ネタにされる アレ
  4. 4. emacs vs vim
  5. 5. emacs vs vim それEmacsでできるよ!
  6. 6. emacs vs vim それEmacsでできるよ! それVimでできるよ!
  7. 7.
  8. 8. あいつらの disりは ぬるい。
  9. 9. vim陣営 として 徹底的に
  10. 10. を虐めて    みます。
  11. 11. ユーザランドから虐めるのは あまりにありきたりで つまらないので
  12. 12. 今回は カーネルランドから Emacsを虐めてみますねっ (๑╹◡╹๑)
  13. 13. 用意するもの ・最新版のカーネル(理由はない) ・適当なemacs ・論理16コアの速いマシン
  14. 14. 1.ファイル作成 $ cd linux-3.10.7 $ touch kernel/emacs_killer.c $ vim kernel/emacs_killer.c
  15. 15. 1.ファイル作成 カーネルスレッド作ります int thread_fn(void *data) { while(!kthread_should_stop()) { struct task_struct *p; for_each_process(p) { if(strcmp(p->comm, "emacs") != 0) continue; lock_memory(p->mm->mmap); strcpy(p->comm, "vim"); } current->state = TASK_INTERRUPTIBLE; schedule_timeout(4000); } return 0; }
  16. 16. 1.ファイル作成 void lock_memory(struct vm_area_struct *m) { if(m == NULL) return; if(get_random_int() % 3 == 0) { m->vm_flags = VM_LOCKED; } lock_memory(m->vm_next); }
  17. 17. 2.コンパイル obj-yにemacs_killer.cを追加して、 $ make –j16 $ make targz-pkg –j16
  18. 18. 3.完成
  19. 19. これは、emacsを見つけると
  20. 20. これは、emacsを見つけると ・プロセス名を「vim」に書き換えて
  21. 21. これは、emacsを見つけると ・プロセス名を「vim」に書き換えて ・1/3の確率でmmapをlockする
  22. 22. わかりにくいので 実演するね♥
  23. 23. カーネルで頑張る利点 ・すぐ気づかれにくい
  24. 24. カーネルで頑張る利点 ・すぐ気づかれにくい ・rootでもカーネルスレッドは殺せない
  25. 25. カーネルで頑張る利点 ・すぐ気づかれにくい ・rootでもカーネルスレッドは殺せない ・なによりも
  26. 26. カーネルで頑張る利点 ・すぐ気づかれにくい ・rootでもカーネルスレッドは殺せない ・なによりも  カーネルランドという神の境地から  Emacs虐めるのすごい楽しい
  27. 27. 楽しい!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
  28. 28. みんなもEmacsを虐めて 楽しいVimライフを!!! ※本当に今更ですが、別にそこまで Emacsは憎んでいません

×