SlideShare a Scribd company logo
1 of 20
Download to read offline
OSC 2018 Nagoya
OpenBSD/luna88kのご紹介
LUNA-88K この1年
Nagoya *BSD Users' Group
Kenji Aoyama / ⻘⼭ 健治
Twitter: @ao_kenji
2
毎年のおさらい…LUNAとは?
• LUNAシリーズ
– オムロン株式会社が1980年代後半〜90年代
初めに販売していたワークステーション
• LUNA, LUNA-II
– CPU:モトローラ68030/68040(m68k)
– NetBSD/luna68kが動きます
• LUNA-88K, LUNA-88K2
– CPU:モトローラ88100(m88k)
– OpenBSD/luna88kが動きます
⾒かけたら保護を!
3
LUNA-88K{,2}:こんなマシンです
前面の
液晶パネル
個々のCPU動作
状況が分かる
LEDマルチプロセッサ
対応
比較的
コンパクトな筐体
(ご家庭でもOK)
CPU動作状況が
分かる電源ボタン
Cバススロット
(88K2のみ)
4
要介護状態継続中
• またまた1台電源ユニット交換しました
– 筒井さんいつもありがとうございます
5
OpenBSDとは?
• OpenBSD プロジェクトでは、フリーでマルチ
プラットホーム対応の 4.4BSD ベースの UNIX
系 OS を提供しています。
• プロジェクトで特に⼒を⼊れているのは、 移植
性、標準化、正当性、積極的なセキュリティと
暗号機能の統合です。
• 半年に⼀度、定期的にリリースがあります。
• 最新リリース: OpenBSD 6.3 (2018年4月)
• マスコットはフグ(ハリセンボン?)のPuffy。
http://www.openbsd.org/
6
OpenBSD/luna88kとは?
• OpenBSDのLUNA-88K{,2}への移植
• OpenBSD/mvme88kのコア部分+
NetBSD/luna68kのデバイス部分
• 歴史
– 2002年1月 移植開始
– 2004年4月 公式treeにcommit
– 2007年8月〜2011年8月
電源ユニット故障により4年間進展なし
– 2011年8月 電源ユニットを移植→復活
– 2013年6月 OSC名古屋で初展示
7
コミット編:細々と続けております
• シリアル周りのsoftint化
– NetBSD/luna68kの実装をほぼそのまま導⼊
– Xのマウスの動きがよくなったような?
• KARL対応(後述)とld.soバグ対応
– Miodさんいつもありがとうございます
• MPカーネルのMI_MPLOCK移⾏
• gcc3固有エラー対応 (gcc3はm88kだけ)
OpenBSD/luna88k この1年を振り返って…
8
リリース編:無事完了!!
• OpenBSD 6.2
– Released October 9, 2017
• OpenBSD 6.3
– Released April 15, 2018
• 最近は tree locked からリリースまでの
期間が短くなりました
– CD-ROM作らなくなったから?
OpenBSD/luna88k この1年を振り返って…
9
リリース編:遅マシンはつらいよ
• リリースバイナリ作成に2週間弱かかります…
6.3の時はバイナリ作成
中にリリースアナウンス
が先に出てしまいました
…
OpenBSD/luna88k この1年を振り返って…
10
ちなみに…
• ANNOUNCEMENTファイルより
---- THANKSTHANKSTHANKSTHANKS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ports tree and package building by PierrePorts tree and package building by PierrePorts tree and package building by PierrePorts tree and package building by Pierre----Emmanuel Andre, LandryEmmanuel Andre, LandryEmmanuel Andre, LandryEmmanuel Andre, Landry BreuilBreuilBreuilBreuil,,,,
VisaVisaVisaVisa HankalaHankalaHankalaHankala, Stuart Henderson, Peter, Stuart Henderson, Peter, Stuart Henderson, Peter, Stuart Henderson, Peter HesslerHesslerHesslerHessler, Paul, Paul, Paul, Paul IroftiIroftiIroftiIrofti, and, and, and, and
ChristianChristianChristianChristian WeisgerberWeisgerberWeisgerberWeisgerber.... Base and X system builds by Kenji AoyamaBase and X system builds by Kenji AoyamaBase and X system builds by Kenji AoyamaBase and X system builds by Kenji Aoyama,,,,
Theo deTheo deTheo deTheo de RaadtRaadtRaadtRaadt, and Visa, and Visa, and Visa, and Visa HankalaHankalaHankalaHankala....
OpenBSDはリリースバイナリをクロスビルドしない主義なので、
世界中で他にリリースバイナリ作れる人がいない…
https://ftp.openbsd.org/pub/OpenBSD/6.3/ANNOUNCEMENT
11
最近のOpenBSDの新機能:KARL
• KARL: Kernel Address Randomized Link
– 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.
(OpenBSD 6.2から導⼊)
• カーネルのメモリ配置を毎回変えてセキュリ
ティを高める
• ちなみに 6.0 以降は、libc も起動時に毎回ラン
ダムにリンクし直すようになっています
(起動が遅くなるので自分のluna88kでは
/etc/rc.conf.local でlibrary_aslr=NO 設定:-)
Port maintainerから⾒た
12
KARL:ざっくりと解説(1)
• カーネルをmake installする時にオブジェクト
ファイルとMakefile等⼀式を
/usr/share/relink/${KERNEL}/ にコピー
sayshell# pwd
/usr/src/sys/arch/amd64/compile/GENERIC.MP
sayshell# make install
mkdir -p -m 700 /usr/share/relink/kernel
rm -rf /usr/share/relink/kernel/GENERIC.MP /usr/share/relink/kernel.tgz
mkdir /usr/share/relink/kernel/GENERIC.MP
tar -chf - Makefile makegap.sh ld.script *.o | tar -C (→)
/usr/share/relink/kernel/GENERIC.MP -xf -
[[ ! -f /bsd ]] || cmp -s bsd /bsd || ln -f /bsd /obsd
umask 077 && cp bsd /nbsd && mv /nbsd /bsd && (→)
sha256 -h /var/db/kernel.SHA256 /bsd
sayshell#
13
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 $KERNEL_DIR/$KERNEL
make newbsd
make newinstall
echo "¥nKernel has been relinked and is active on next reboot.¥n"
cat $SHA256
/usr/libexec/reorder_kernel の最後
/etc/rc の最後
カーネルの .o ファイルがあるディレクトリで
make && make install する
… もう⼀度リンクすると何が変わるのか?
14
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”でランダム
に並べ替え
15
KARL:ざっくりと解説(4)
実際どうなってる?
起動したカーネルは
/bsd.bootedとして保
存される
その後、/bsdが再リン
クされ、次回起動時に
使われるカーネルにな
る
MD5ハッシュ値を⾒る
と、毎回違うカーネル
が使われていることが
分かる
sayshell# md5 /bsd*
MD5 (/bsd) = a528c28a82914aa221165884611c7576
MD5 (/bsd.booted) = e9aaf15cd6e300ce67678a60b8933d8e
MD5 (/bsd.rd) = 291d792b900547fcbf30d2b841e85f93
sayshell#
sayshell# md5 /bsd*
MD5 (/bsd) = 8cc8216d09260b1d2922993fcc1e31dc
MD5 (/bsd.booted) = a528c28a82914aa221165884611c7576
MD5 (/bsd.rd) = 291d792b900547fcbf30d2b841e85f93
sayshell#
sayshell# md5 /bsd*
MD5 (/bsd) = 69cd8b711f384b63c219d96b894d0693
MD5 (/bsd.booted) = 8cc8216d09260b1d2922993fcc1e31dc
MD5 (/bsd.rd) = 291d792b900547fcbf30d2b841e85f93
sayshell#
再起動1回目
再起動2回目
再起動3回目
16
今回の展示について
• PC-98用のPCMCIA増設アダプタを装着
• PCカード無線LANでインターネット接続
• フレームバッファ版mltermで256色表示
• sayakaちゃん(PHP版)でTwitter表示
vala版実⾏に必要なラ
イブラリがm88kでは
作成途中でエラーとな
り時間切れ orz
17
まとめ(1)
• 君は生き延びることができるか?
– 今年もなんとか公式portとして生き延びまし
た。
– コンパイラサポートの切れ目が縁の切れ目に
なりそうな予感
– Miodさんのm88k gcc4に期待!?
• これであと10年は戦える
– と言ってから5年過ぎました:-)
18
まとめ(2) 何が面白いのか?
• メーカが想定していないことを実現する
– 別のOSを動作させる
– 非純正ハードを接続して動かす
– 元の設計を超えた動作をさせる
– そのために試⾏錯誤しながらソフトを書く
– これが、もどかしい時もあるけれど楽しい
• 最後は「愛」と「執着心」:-)
19
謝辞
• 荒尾さん・蛯原さん・江富さん
– LUNA-88Kを送付いただきました
• 筒井さん
– 何回もの電源修理 & LUNA用デバイスドライ
バ & いつもアドバイスありがとうございます
• Twitterで「いいね」くださる方
– 励みになります
• 家族
– 怪しげな趣味に対する理解に感謝!
20
あとはNBUGブースで…
Nagoya *BSD Users' Group
Kenji Aoyama / ⻘⼭ 健治
Twitter: @ao_kenji
お待ちしてま〜す︕

More Related Content

What's hot

2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
Atsushi Tadokoro
 

What's hot (20)

"Archaeology and RPG" hack: LUNA's development progress, at NBUG meeting 2017-02
"Archaeology and RPG" hack: LUNA's development progress, at NBUG meeting 2017-02"Archaeology and RPG" hack: LUNA's development progress, at NBUG meeting 2017-02
"Archaeology and RPG" hack: LUNA's development progress, at NBUG meeting 2017-02
 
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
 
Play a music on LUNA-88K2
Play a music on LUNA-88K2Play a music on LUNA-88K2
Play a music on LUNA-88K2
 
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
 
The Overall Architecture of ROMA
The Overall Architecture of ROMAThe Overall Architecture of ROMA
The Overall Architecture of ROMA
 
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシンOpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
boot2docker upgrade
boot2docker upgradeboot2docker upgrade
boot2docker upgrade
 
Traffic Management with Istio ( with Demo )
Traffic Management with Istio ( with Demo )Traffic Management with Istio ( with Demo )
Traffic Management with Istio ( with Demo )
 
Droonga - 分散Groongaで快適レプリケーション生活
Droonga - 分散Groongaで快適レプリケーション生活Droonga - 分散Groongaで快適レプリケーション生活
Droonga - 分散Groongaで快適レプリケーション生活
 
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
 
WWDC.NEXT 2016: Digital Crown
WWDC.NEXT 2016: Digital CrownWWDC.NEXT 2016: Digital Crown
WWDC.NEXT 2016: Digital Crown
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
 
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
 
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
 
Nbug201503
Nbug201503Nbug201503
Nbug201503
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
 

Similar to OpenBSD/luna88k yearly progress report (from May 2017 to May 2018)

Similar to OpenBSD/luna88k yearly progress report (from May 2017 to May 2018) (20)

Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 
Pulsar Handson 20180226
Pulsar Handson 20180226Pulsar Handson 20180226
Pulsar Handson 20180226
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
 
Altanative macro
Altanative macroAltanative macro
Altanative macro
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
Wardenで学ぶコンテナの基礎
Wardenで学ぶコンテナの基礎Wardenで学ぶコンテナの基礎
Wardenで学ぶコンテナの基礎
 
ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)
 
20230424_Node-RED-MCU_vol1_kitazaki_v1.pdf
20230424_Node-RED-MCU_vol1_kitazaki_v1.pdf20230424_Node-RED-MCU_vol1_kitazaki_v1.pdf
20230424_Node-RED-MCU_vol1_kitazaki_v1.pdf
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 
20230504_M5_Japan_Tour_2023_Spring_kitazaki_v1.pdf
20230504_M5_Japan_Tour_2023_Spring_kitazaki_v1.pdf20230504_M5_Japan_Tour_2023_Spring_kitazaki_v1.pdf
20230504_M5_Japan_Tour_2023_Spring_kitazaki_v1.pdf
 
20221018_IoTLT_vol92_kitazaki_v1.pdf
20221018_IoTLT_vol92_kitazaki_v1.pdf20221018_IoTLT_vol92_kitazaki_v1.pdf
20221018_IoTLT_vol92_kitazaki_v1.pdf
 
カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
 
Traffic Management with Istio
Traffic Management with IstioTraffic Management with Istio
Traffic Management with Istio
 
20230423_Javascript_Festival_2023_kitazaki_v1.pdf
20230423_Javascript_Festival_2023_kitazaki_v1.pdf20230423_Javascript_Festival_2023_kitazaki_v1.pdf
20230423_Javascript_Festival_2023_kitazaki_v1.pdf
 

More from Kenji Aoyama (6)

OpenBSD/luna88k development & hack in 2017
OpenBSD/luna88k development & hack in 2017OpenBSD/luna88k development & hack in 2017
OpenBSD/luna88k development & hack in 2017
 
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
 
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
 
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 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 yearly progress report (from May 2017 to May 2018)