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

SONY NEWS NetBSD移植作業とNWS-3260展示 / KOF2023

Izumi Tsutsui
November 11, 2023

SONY NEWS NetBSD移植作業とNWS-3260展示 / KOF2023

関西オープンフォーラム KOF2023 の「BSDなひととき」のセミナー および オープンソースカンファレンス2023広島の NetBSDセミナーで発表した『SONY NEWS NetBSD移植作業とNWS-3260展示』のスライドです

Izumi Tsutsui

November 11, 2023
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. SONY NEWS (ニューズ)  Wikipedia より 「NEWS(ニューズ、頭字語: Network  Engineering WorkStation)とは、

     1980年代後半から1990年代前半にかけて  ソニーが開発・発売した  UNIXワークステーションシリーズ」 「デジタルオーディオで活躍していた  土井利忠を中心に社内ベンチャーの形で  開発され、1987年に最初のモデルが  発売された」 https://ja.wikipedia.org/wiki/NEWS_(%E3%82%BD%E3%83%8B%E3%83%BC)
  2. NWS-3260 •1991年 1月発売 •CPU: MIPS R3000 25MHz •RAM: 16MB〜 max

    48MB •価格: 175万円 CQ出版社 インターフェース 1991年2月号 292ページ / https://twitter.com/gussunoyoyo/status/1674286899282984960
  3. NEWS-OSと4.4BSD/news3400  WIDEプロジェクトによるBSD移植 すべて(?)のBSDのベースである カリフォルニア大バークレー校による 4.4BSDでは、NEWS3400もサポート 4.4BSDリリースノート記載のサポート機種: + HP 9000/300

    68000-based workstations + DECstation 3100 and 5000 MIPS-based workstations + Sparcstation I & II SPARC-based workstations + Sony News MIPS-based workstations + Omron Luna 68000-based workstations + Intel 386/486-based machines (ISA/AT or EISA bus only)
  4. NetBSD/newsmipsの歴史  NetBSD移植職人? • 過去に sun3/80 への移植をされ、 その後PowerPC Macへの移植もされた つばいさん

    による1997年6月の メーリングリストアナウンス: 「最近 SONY NEWS34xx で NetBSDを  動かして遊んでいます」 「まだまだいじっている途中ですが、  きりがないのでとりあえず公開します」
  5. NetBSD/newsmips黎明期  「OSを新たなマシンに移植する」ということ • つばいさんと同じ店でNWS-3470を購入 (電話+現金書留+着払で25,000円) • クロスビルド環境を作って各種テスト • 実は

    NetBSD初の Big Endian MIPS でした • port-mips-jp というメーリングリスト を作って関係者数人でワイワイと作業 • NetBSD本家へのマージもお手伝い • 1998年2月に NetBSD本家にマージ
  6. NetBSD/news 秘話①  “来たるべき移植機種” • 当初は「NetBSD/news」としてコミット • 「NetBSD/newsmipsじゃなかったの?」 と、えらい人(?)から問い合わせが…… •

    news→newsmips にリネームされる • その際のアナウンス: “Per discussion w/ Tsubai, I have just renamed NetBSD/news to NetBSD/newsmips. This is to facilitate an eventual NetBSD/news68k port :-)” https://mail-index.netbsd.org/port-mips/1998/03/04/0000.html
  7. その後のつばいさんとの会話  「NetBSD移植してみたい病」感染者 その1 1998年3月頃のやりとり: 私:「to facilitate an eventual NetBSD/news68k

    port     って表現に思わず笑ってしまいました。うーむ」 つばいさん:   「m68kだと結構簡単なので、    はじめて移植してみる人への課題にはよさそう    なんですよね。ドライバーの情報さえあれば。」 なお、NetBSD/luna68kについては「手下にやらせている」というお話でした
  8. NetBSD/news 秘話②  “資料はソースコードだけ” • 「NEWS関連の資料をもらえないか」と いろんなコネを使ってSONY関係者に相談 • 一時は前向きな返事をいただくも、結局 「事業部が解散しており判断が困難」と頓挫

    • 同時期に清水さんも同じ話をされていて、 「電通大はNEWS-OSのソースライセンスを  所持している」ということが判明 • 電通大所属であった清水さんは 提供された NEWS-OSソースコードを参照しつつ作業
  9. そんなこんなで 半年後① https://mail-index.netbsd.org/source-changes/1999/12/09/0011.html  “Initial import of news68k” Module Name:

    syssrc Committed By: tsutsui Date: Thu Dec 9 14:53:25 UTC 1999 Added Files: syssrc/sys/arch/news68k: Makefile syssrc/sys/arch/news68k/compile: .keep_me syssrc/sys/arch/news68k/conf: GENERIC INSTALL LIBERO Makefile.news68k files.news68k std.news68k syssrc/sys/arch/news68k/dev: clock_hb.c dmac_0266.h hb.c hbvar.h if_le.c md_root.c ncr5380sbc.c si.c zs.c syssrc/sys/arch/news68k/include: Makefile ansi.h aout_machdep.h asm.h autoconf.h bswap.h cdefs.h cpu.h db_machdep.h disklabel.h [略] Log Message: Initial import of news68k port.
  10. そんなこんなで 半年後②  “First cut of news5000 support” Module Name:

    syssrc Committed By: tsubai Date: Wed Dec 22 05:55:27 UTC 1999 Modified Files: syssrc/sys/arch/newsmips/conf: GENERIC files.newsmips syssrc/sys/arch/newsmips/dev: fb_sub.c zs.c syssrc/sys/arch/newsmips/include: Makefile adrsmap.h cpu.h intr.h syssrc/sys/arch/newsmips/newsmips: autoconf.c clock.c conf.c cpu_cons.c locore_machdep.S machdep.c machid.h mainbus.c Added Files: syssrc/sys/arch/newsmips/apbus: apbus.c apbus_subr.c apbusvar.h clock_ap.c if_sn.c if_sn_ap.c if_snreg.h if_snvar.h zs_ap.c syssrc/sys/arch/newsmips/conf: DEJIKO [略] Log Message: First cut of news5000 support. Mostly from SHIMIZU Ryo <[email protected]>. https://mail-index.netbsd.org/source-changes/1999/12/21/0069.html
  11. その後の清水さん活動  いろんな作業をされていました •NetBSD/dreamcast サウンドドライバ •i386 AMD Geodeチップセットサポート •NetBSD/evbarm Caviumサポート

    •NetBSD/evbarm Netwalkerサポート •NetBSD/sh3 SH4向け最適化関数 •TCP/IP ネットワークスタック関連修正 等々
  12. 清水さん初コミット  最初は名簿から Subject: CVS commit: src/distrib/notes/common From: "Ryo Shimizu"

    <[email protected]> Date: Mon, 20 Dec 2010 19:51:04 +0000 Module Name: src Committed By: ryo Date: Mon Dec 20 19:51:03 UTC 2010 Modified Files: src/distrib/notes/common: main Log Message: add myself https://mail-index.netbsd.org/source-changes/2010/12/20/msg016129.html
  13. 清水さんの貢献 ハイライト  aarch64 (ARMv8)サポート Module Name: src Committed By:

    ryo Date: Sun Apr 1 04:35:06 UTC 2018 Modified Files: src: build.sh [略] src/sys/arch/aarch64/aarch64: aarch64_machdep.c bus_space.c core_machdep.c cpu_machdep.c db_disasm.c db_interface.c db_machdep.c db_trace.c exec_machdep.c fpu.c genassym.cf idle_machdep.S locore.S pmap.c process_machdep. [略] Log Message: Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@) - sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@) https://mail-index.netbsd.org/source-changes/2018/04/01/msg093820.html
  14. 清水さんの貢献 ハイライト  aarch64 SMPサポート Module Name: src Committed By:

    ryo Date: Mon Jul 9 06:19:53 UTC 2018 Modified Files: src/sys/arch/aarch64/aarch64: cpu.c cpu_machdep.c db_machdep.c genassym.cf locore.S src/sys/arch/aarch64/include: cpu.h locore.h machdep.h Log Message: add MULTIPROCESSOR support https://mail-index.netbsd.org/source-changes/2018/07/09/msg096616.html
  15. 清水さんの貢献 ハイライト  aarch64 big.LITTLEサポート Module Name: src Committed By:

    ryo Date: Sun Aug 26 18:15:50 UTC 2018 Modified Files: src/sys/arch/aarch64/aarch64: aarch64_machdep.c cpu.c cpufunc.c genassym.cf locore.S src/sys/arch/aarch64/include: cpu.h cpufunc.h src/sys/arch/arm/broadcom: bcm283x_platform.c src/sys/arch/arm/fdt: cpu_fdt.c psci_fdt.c Log Message: add support multiple cpu clusters. * pass cpu index as an argument to secondary processors when hatching. * keep cpu cache confituration per cpu clusters. Hello big.LITTLE! https://mail-index.netbsd.org/source-changes/2018/08/26/msg097842.html
  16. 4級塩電解コンデンサ問題  X680x0 や LUNA 等のマシンで何回もありました •1990年前後に開発された 「4級塩電解液の電解コンデンサ」  の電解液漏れ・腐食問題 •小型高容量を謳っていたが、製造後数年で

     電解液封止ゴム劣化による液漏れが多発 •強アルカリ性電解液による基板腐食による  断線や短絡による故障が多数発生し、  部品メーカの間では黒歴史化したとか…
  17. なぜNetBSDを移植するのか?  「そこに山があるから」 • ハードウェア仕様やプロトコル仕様を見て、 それを理解して考えて設計して、 その設計に基づいて実際に作って・書いて、 それが眼の前で動くということを見ることで、 「自分の考えが正しいことが証明される」 ➔

    この楽しさは何ごとにも代え難いものがある • なので「いくらでもマシンが増えてしまう」 「いくらでもやるべきことが溜まっていく」 • だからこそ 「(このマシンの作業は)来年から本気出す」 になるんですよね!