Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

emacs 18.59 1992年 10月 リリース

Slide 3

Slide 3 text

なぜ emacs 18.59 なのか

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

emacs-18.59の会 活動内容

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

gentooで入れる のもありです

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

おわり