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

emacs-18.59の会 / KOF2018-tokaidolug-LT

emacs-18.59の会 / KOF2018-tokaidolug-LT

関西オープンフォーラム2018 2日目 東海道らぐ 大阪湾ライトニングトーク大会 in KOF2018 で飛び入り発表させていただいた LTスライドです

Izumi Tsutsui

November 10, 2018
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. emacs-18.59 の会
    関西オープンソース 2018
    東海道らぐ LT
    Izumi Tsutsui
    [email protected]
    Twitter: @tsutsuii
    Mastodon: @[email protected]

    View Slide

  2. emacs 18.59
    1992年 10月
    リリース

    View Slide

  3. なぜ
    emacs 18.59
    なのか

    View Slide

  4. KOF2015のスライドを参照
    https://speakerdeck.com/tsutsui/kof2015-emacs-18-dot-59-and-mule-1-dot-1-on-netbsd-7-dot-0

    View Slide

  5. https://speakerdeck.com/tsutsui/kof2015-emacs-18-dot-59-and-mule-1-dot-1-on-netbsd-7-dot-0?slide=8

    View Slide

  6. gentoo パッケージの存在
    https://twitter.com/Chris_J_Baird/status/566596051042185216

    View Slide

  7. https://packages.gentoo.org/packages/app-editors/emacs

    View Slide

  8. gentooのパッケージを
    ベースに、NetBSDで
    64ビットを含む
    各アーキテクチャで
    動くように修正

    View Slide

  9. githubにあります
    https://github.com/tsutsui/emacs-18.59-netbsd

    View Slide

  10. ついでに
    ubuntu
    debian
    ArchLinux
    (含む64ビット)
    でも動くように修正
    Raspbian も最近対応

    View Slide

  11. ビルド方法はブログとかに
    書いてるので適当に
    「emacs 18.59」
    とかで検索
    http://ch.nicovideo.jp/tsutsui/blomaga/ar1554908

    View Slide

  12. emacs-18.59の会
    活動内容

    View Slide

  13. 今時の環境で
    emacs-18.59を
    ビルドする
    (使うとは言っていない)

    View Slide

  14. https://social.mikutter.hachune.net/@shibafu528/100113578982480505

    View Slide

  15. https://social.mikutter.hachune.net/@shibafu528/100113584123075075

    View Slide

  16. gentooで入れる
    のもありです

    View Slide

  17. github issue も待ってます
    https://github.com/tsutsui/emacs-18.59-netbsd/issues/1

    View Slide

  18. 古いバイナリの
    ハマりポイント

    View Slide

  19. 昔のバイナリはポインタの扱いが
     かなり適当
    ポインタにintぶち込んでたり
    上位バイトに別の値入れてたり
     64ビット対応も考えられてない
     emacs unexec 機構のハック
    ※LT発表時は undump と書いてましたが unexec (or dump) が正しい表記でした

    View Slide

  20.  起動時に大量のelispを読むと
    起動に時間がかかる
     ビルド時に素のemacsを作ったあと
    「elispを読み込んだ状態」で
    その時のメモリの内容を読み出して
    そのままバイナリとして書き戻す
    unexecとは

    View Slide

  21. これが
    最近の
    セキュリティ機構
    と相性が悪い

    View Slide

  22. https://social.mikutter.hachune.net/@shibafu528/100113462881160942

    View Slide

  23. https://social.mikutter.hachune.net/@shibafu528/100113580412611324

    View Slide

  24. https://ja.wikipedia.org/wiki/アドレス空間配置のランダム化
    アドレス空間配置のランダム化(英語: address space
    layout randomization, ASLR)とは、重要なデータ領域
    の位置(通常、プロセスのアドレス空間における実行
    ファイルの基底とライブラリ、ヒープ、およびスタック
    の位置が含まれる)を無作為に配置するコンピュータセ
    キュリティの技術である。

    View Slide

  25. PIE
    (Position Independent Executable)
    とかもハマりがち

    View Slide

  26. 昨晩の
    しばふ氏の
    会員活動

    View Slide

  27. https://social.mikutter.hachune.net/@shibafu528/101041789930206039

    View Slide

  28. https://social.mikutter.hachune.net/@shibafu528/101041961529897887

    View Slide

  29. https://social.mikutter.hachune.net/@shibafu528/101041971794509433

    View Slide

  30.  手段(emacs 18.59)のためには
    目的(ビルド・環境・使用)を
    選ばない
     とにかくビルドできたら満足
     動かなかったら直すorバグレポート
    emacs-18.59の会 まとめ

    View Slide

  31. おわり

    View Slide