SlideShare a Scribd company logo
NBUG 2017年12⽉例会
2017年のLUNA
& KARLについて
Nagoya *BSD Users' Group
Kenji Aoyama / ⻘⼭ 健治
Twitter: @ao_kenji
2
ハック編(1):CP/M on XP
•LUNAのXP(I/Oプロセッサ)はZ80上位互換
•勝手ファームウェアでCP/M動かしてみました
2017年のLUNA
3
ハック編(2):LUNA-88KのPSG
•配線がなかった出⼒信号を無理やり取り出し
•XPで動く音源ドライバをつついさんより借用
2017年のLUNA
4
出撃編(1):AsiaBSDCon 2017
•AsiaBSDConに召喚されました:-)
2017年のLUNA
5
出撃編(2):OSC 2017 Nagoya
•今回は⿊88K(無印)で出撃
•PSGデモしました
•持参ディスプレイ不調…
→えとみさんより
SoGディスプレイ借用
SoGディスプレイがすぐ出てくる
のがNBUGですねぇ
• LUNA(68k)にならって
そろそろVGA出⼒オプション
改造必要?
2017年のLUNA
6
コミット編:細々と続けております
•xp(4) man page
•ドライバはつついさんに作ってもらったのでせ
めてマニュアルだけでも…
•シリアル周りの softint 化
•NetBSD/luna68kの実装をほぼそのまま導入
•KARL対応(後述)とld.soバグ対応
•Miodさんいつもありがとうございます
2017年のLUNA
7
リリース編:なんとか間に合いました
•OpenBSD 6.1, Released April 11, 2017
•OpenBSD 6.2, Released October 9, 2017
•最近は tree locked からリリースまでが短縮
•5⽉1日、11⽉1日より早くなった
•CD-ROM作らなくなったから?
•Luna88kだとリリースバイナリ作成に2週間 :-<
2017年のLUNA
8
OpenBSD 6.2の新機能:KARL
•KARL: Kernel Address Randomized Link (KARL)
a new "link-kit" allows the .o files of the kernel to be
relinked in a random order, creating a unique kernel
for each boot.
•カーネルのメモリ配置を毎回変えてセキュリティを
高める
•ちなみに 6.0 以降は、libc も起動時に毎回ランダム
にリンクし直すようになっています
(luna88kでは起動が遅くなるのでコメントアウト運用:-)
Port maintainerから⾒た
9
KARL:ざっくりと解説(1)
•カーネルをmake installする時にオブジェクトファ
イルとMakefile等一式を
/usr/share/compile/${KERNEL}/ にコピー
# pwd
/usr/src/sys/arch/amd64/compile/GENERIC.MP
# make install
mkdir -p -m 700 /usr/share/compile
rm -rf /usr/share/compile/GENERIC.MP /usr/share/compile.tgz
mkdir /usr/share/compile/GENERIC.MP
tar -chf - Makefile makegap.sh ld.script *.o | tar -C /usr/share/compile/GENERIC.MP -xf -
cmp -s bsd /bsd || ln -f /bsd /obsd
umask 077 && cp bsd /nbsd && mv /nbsd /bsd && sha256 -h /var/db/kernel.SHA256 /bsd
#
10
KARL:ざっくりと解説(2)
•起動時、/etc/rc の最後で再度カーネルをリンク
•次回起動時はこのカーネルが使われる
:
# Re-link the kernel, placing the objects in a random order.
# Replace current with relinked kernel and inform root about it.
/usr/libexec/reorder_kernel &
:
cd $COMPILE_DIR/$KERNEL
make newbsd
make newinstall
echo "¥nKernel has been relinked and is active on next reboot.¥n"
/usr/libexec/reorder_kernel の最後
/etc/rc の最後
カーネルの .o ファイルがあるディレクトリで
make && make install する
… もう一度リンクすると何が変わるのか?
11
KARL:ざっくりと解説(3)
•新しいカーネルをリンクするときに、オブジェクト
ファイルをランダムな順番で配置する
SYSTEM_LD= @echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_HEAD} vers.o $${OBJS}'; ¥
umask 007; ¥
echo ${OBJS} param.o ioconf.o vers.o | tr " " "¥n" | ${SORTR} > lorder; ¥
${LD} ${LINKFLAGS} -o $@ ${SYSTEM_HEAD} `cat lorder`
(中略)
newbsd:
${MAKE_GAP}
${SYSTEM_LD_HEAD}
${SYSTEM_LD} swapgeneric.o
${SYSTEM_LD_TAIL}
mv -f newbsd bsd
カーネル Makefile 抜粋
“sort –R”でランダム
に並べ替え
12
KARL:ざっくりと解説(4)
http://gihyo.jp/admin/serial/01/bsd-yomoyama/0122
BSD界隈四方⼭話
第122回での検証
/bsdは次回起動時に使
われるカーネル
起動したカーネルは
/bsd.bootedとして保
存される
MD5ハッシュ値を⾒る
と、毎回違うカーネル
が使われていることが
分かる
13
まとめ & 来年に向けて
•今年もなんとか公式portとして生き延びました
•OSC名古屋まで5か⽉
•そろそろ仕込みを始めないと
•その前にネタどうしよう?
14
おまけ
•入手したのですがあまりいじれない…

More Related Content

More from Kenji Aoyama

Here come LUNA-88K emulators!
Here come LUNA-88K emulators!Here come LUNA-88K emulators!
Here come LUNA-88K emulators!
Kenji Aoyama
 
OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)
OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)
OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)
Kenji Aoyama
 
OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)
OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)
OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)
Kenji Aoyama
 
Play PSG music on LUNA-88K - Utilization of I/O prosessor
Play PSG music on LUNA-88K - Utilization of I/O prosessorPlay PSG music on LUNA-88K - Utilization of I/O prosessor
Play PSG music on LUNA-88K - Utilization of I/O prosessor
Kenji Aoyama
 
Play a music on LUNA-88K2
Play a music on LUNA-88K2Play a music on LUNA-88K2
Play a music on LUNA-88K2
Kenji Aoyama
 
Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10
Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10
Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10
Kenji Aoyama
 
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kA story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
Kenji Aoyama
 
Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)Kenji Aoyama
 
Does LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88k
Does LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88kDoes LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88k
Does LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88k
Kenji Aoyama
 
"yaft on LUNA" at NBUG Meeting 2014-11
"yaft on LUNA" at NBUG Meeting 2014-11"yaft on LUNA" at NBUG Meeting 2014-11
"yaft on LUNA" at NBUG Meeting 2014-11
Kenji Aoyama
 
Introduction of OpenBSD/luna88k at OSC 2014 Nagoya
Introduction of OpenBSD/luna88k at OSC 2014 NagoyaIntroduction of OpenBSD/luna88k at OSC 2014 Nagoya
Introduction of OpenBSD/luna88k at OSC 2014 Nagoya
Kenji Aoyama
 
OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12
Kenji Aoyama
 
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 NagoyaOpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
Kenji Aoyama
 
OpenBSD/luna88k news at NBUG meeting 2014-04
OpenBSD/luna88k news at NBUG meeting 2014-04OpenBSD/luna88k news at NBUG meeting 2014-04
OpenBSD/luna88k news at NBUG meeting 2014-04
Kenji Aoyama
 

More from Kenji Aoyama (15)

Here come LUNA-88K emulators!
Here come LUNA-88K emulators!Here come LUNA-88K emulators!
Here come LUNA-88K emulators!
 
OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)
OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)
OpenBSD/luna88k yearly progress report 2019 (from May 2018 to July 2019)
 
OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)
OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)
OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)
 
Play PSG music on LUNA-88K - Utilization of I/O prosessor
Play PSG music on LUNA-88K - Utilization of I/O prosessorPlay PSG music on LUNA-88K - Utilization of I/O prosessor
Play PSG music on LUNA-88K - Utilization of I/O prosessor
 
Play a music on LUNA-88K2
Play a music on LUNA-88K2Play a music on LUNA-88K2
Play a music on LUNA-88K2
 
Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10
Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10
Using FM-synth chip on LUNA-88K2, at NBUG meeting 2015-10
 
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kA story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
 
Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
 
Nbug201503
Nbug201503Nbug201503
Nbug201503
 
Does LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88k
Does LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88kDoes LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88k
Does LUNA-88K2 dream of PC Card? / Using PC Card on OpenBSD/luna88k
 
"yaft on LUNA" at NBUG Meeting 2014-11
"yaft on LUNA" at NBUG Meeting 2014-11"yaft on LUNA" at NBUG Meeting 2014-11
"yaft on LUNA" at NBUG Meeting 2014-11
 
Introduction of OpenBSD/luna88k at OSC 2014 Nagoya
Introduction of OpenBSD/luna88k at OSC 2014 NagoyaIntroduction of OpenBSD/luna88k at OSC 2014 Nagoya
Introduction of OpenBSD/luna88k at OSC 2014 Nagoya
 
OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12
 
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 NagoyaOpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
 
OpenBSD/luna88k news at NBUG meeting 2014-04
OpenBSD/luna88k news at NBUG meeting 2014-04OpenBSD/luna88k news at NBUG meeting 2014-04
OpenBSD/luna88k news at NBUG meeting 2014-04
 

OpenBSD/luna88k development & hack in 2017