Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
emacs-18.59の会 / KOF2018-tokaidolug-LT
Search
Izumi Tsutsui
November 10, 2018
Programming
1
950
emacs-18.59の会 / KOF2018-tokaidolug-LT
関西オープンフォーラム2018 2日目 東海道らぐ 大阪湾ライトニングトーク大会 in KOF2018 で飛び入り発表させていただいた LTスライドです
Izumi Tsutsui
November 10, 2018
Tweet
Share
More Decks by Izumi Tsutsui
See All by Izumi Tsutsui
NetBSDの解説と NetBSD/luna68kの歴史と ついでにPC-6001展示 / OSC2025Tokyo-spring
tsutsui
0
110
GitHub Actionsを使ってNetBSDマイナー機種用のビルドテストCIを書いてみた話 / OSC2025Osaka
tsutsui
0
91
PC-6001のPSG演奏デモを機会にNetBSDを真面目に説明してみる / OSC2024Ehime
tsutsui
0
330
PC-6001のPSG演奏デモをなるべくNetBSD環境を使って作った話 / KOF2024
tsutsui
1
450
OSC展示とLUNAとNetBSD / OSC2024Kyoto
tsutsui
1
580
digital VAX, NetBSD/vaxの歴史と VAXstation 3100/m30 展示 / OSC2024Osaka
tsutsui
0
1.2k
SONY NEWS NetBSD移植作業とNWS-3260展示 / KOF2023
tsutsui
0
1.5k
37年前の Sun 3/60 のために最新のNetBSDと最新のX.orgをメンテする話 / KOF2022
tsutsui
1
570
お歳暮で Sun3 が送られてきたので NetBSD/sun3 を展示デモしました / OSC2020Osaka
tsutsui
5
2.9k
Other Decks in Programming
See All in Programming
Benchmark
sysong
0
190
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
GraphRAGの仕組みまるわかり
tosuri13
6
350
Go Modules: From Basics to Beyond / Go Modulesの基本とその先へ
kuro_kurorrr
0
120
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
3
2k
Parallel::Pipesの紹介
skaji
2
910
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
310
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
210
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
380
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
300
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
2
1k
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
600
Featured
See All Featured
Building Applications with DynamoDB
mza
95
6.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Adopting Sorbet at Scale
ufuk
77
9.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Code Reviewing Like a Champion
maltzj
524
40k
Designing for humans not robots
tammielis
253
25k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Transcript
emacs-18.59 の会 関西オープンソース 2018 東海道らぐ LT Izumi Tsutsui
[email protected]
Twitter:
@tsutsuii Mastodon: @
[email protected]
emacs 18.59 1992年 10月 リリース
なぜ emacs 18.59 なのか
KOF2015のスライドを参照 https://speakerdeck.com/tsutsui/kof2015-emacs-18-dot-59-and-mule-1-dot-1-on-netbsd-7-dot-0
https://speakerdeck.com/tsutsui/kof2015-emacs-18-dot-59-and-mule-1-dot-1-on-netbsd-7-dot-0?slide=8
gentoo パッケージの存在 https://twitter.com/Chris_J_Baird/status/566596051042185216
https://packages.gentoo.org/packages/app-editors/emacs
gentooのパッケージを ベースに、NetBSDで 64ビットを含む 各アーキテクチャで 動くように修正
githubにあります https://github.com/tsutsui/emacs-18.59-netbsd
ついでに ubuntu debian ArchLinux (含む64ビット) でも動くように修正 Raspbian も最近対応
ビルド方法はブログとかに 書いてるので適当に 「emacs 18.59」 とかで検索 http://ch.nicovideo.jp/tsutsui/blomaga/ar1554908
emacs-18.59の会 活動内容
今時の環境で emacs-18.59を ビルドする (使うとは言っていない)
https://social.mikutter.hachune.net/@shibafu528/100113578982480505
https://social.mikutter.hachune.net/@shibafu528/100113584123075075
gentooで入れる のもありです
github issue も待ってます https://github.com/tsutsui/emacs-18.59-netbsd/issues/1
古いバイナリの ハマりポイント
昔のバイナリはポインタの扱いが かなり適当 ポインタにintぶち込んでたり 上位バイトに別の値入れてたり 64ビット対応も考えられてない emacs unexec 機構のハック
※LT発表時は undump と書いてましたが unexec (or dump) が正しい表記でした
起動時に大量のelispを読むと 起動に時間がかかる ビルド時に素のemacsを作ったあと 「elispを読み込んだ状態」で その時のメモリの内容を読み出して そのままバイナリとして書き戻す unexecとは
これが 最近の セキュリティ機構 と相性が悪い
https://social.mikutter.hachune.net/@shibafu528/100113462881160942
https://social.mikutter.hachune.net/@shibafu528/100113580412611324
https://ja.wikipedia.org/wiki/アドレス空間配置のランダム化 アドレス空間配置のランダム化(英語: address space layout randomization, ASLR)とは、重要なデータ領域 の位置(通常、プロセスのアドレス空間における実行 ファイルの基底とライブラリ、ヒープ、およびスタック の位置が含まれる)を無作為に配置するコンピュータセ
キュリティの技術である。
PIE (Position Independent Executable) とかもハマりがち
昨晩の しばふ氏の 会員活動
https://social.mikutter.hachune.net/@shibafu528/101041789930206039
https://social.mikutter.hachune.net/@shibafu528/101041961529897887
https://social.mikutter.hachune.net/@shibafu528/101041971794509433
手段(emacs 18.59)のためには 目的(ビルド・環境・使用)を 選ばない とにかくビルドできたら満足 動かなかったら直すorバグレポート emacs-18.59の会
まとめ
おわり