SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
NetBSD移植の昔話
Mar 24, 2018
Masaru OKI @masaru0714
16bit~32bitパソコンの時代 (1990年代前半)
● いろんなメーカーからいろんなパソコンが出ていた。
● アーキテクチャが製品ごとにバラバラ!
○ CPUが違う (68000, 80386, … 仮想記憶もなかったり貧弱だったり .)
○ メモリも違う (基本オンボード、増設 RAMは製品ごとに独自規格 )
○ 周辺回路も違う (PCIでもISAでもない独自バスが製品ごと、メモリマップも )
○ コネクタも違う (キーボードはキー数、プロトコルもそれぞれ違う )
○ サウンド機能は豪華だったり貧弱だったり (ビジネス用の製品ではビープ音のみ、など )
○ USBはない、マウスは機種によっては標準添付だがオプションの製品も
○ ハードウェア仕様は書籍で入手、データシートそのものの入手は難しいことも
● LANはないわけではないが高価(10BaseT 8ポートHUBが数万円していた)
● インターネット(Web)も黎明期
● ハードウェアは基本的にメーカー純正品か互換品を選択するしかない
● OSも基本的にはメーカー提供のもの(主流はx86用のMS-DOS)
参考: こんな機種がありました
シャープ X68000
最初のモデルは1988年発売
CPU: 68000 (後に68030)
MEM: 1MB (初代)
添付OS: Human68k
価格: 369,000円(初代)
富士通 FM-TOWNS
最初のモデルは1989年発売
CPU: 80386 (後にPentium)
MEM: 2MB (初代)
添付OS: TownsOS
価格: 338,000円 (初代)
NEC PC-9801
最初のモデルは1982年発売
CPU: 8086 (後に486DX)
MEM: 128KB (初代)
添付OS(?): N-BASIC(86)
価格: 298,000円(初代)
当時のX68000開発環境
● OSはHuman68kという、MS-DOS/m68kみたいなかんじのもの(シングルタスク)
● メーカーがスクリーンエディタとアセンブラとリンカを製品に標準添付していた
● メーカーがCコンパイラを販売していた
● 当時すでにあったgcc (バージョン1.36とか)を移植した個人がいた
● 高速な互換リンカを作り上げた個人がいた
● 高速な互換アセンブラを作り上げた個人がいた
● MicroEMACSやviクローンを移植した個人がいた
● UNIX互換コマンド(lsとか)やUNIX風シェルを開発した個人がいた
● 他のGNUソフトウェアを移植する人もいた(awk, sedなど)
● UNIXのlibc風のライブラリを作り上げる人たちもいた
● TeXを移植する人もいた
UNIXへの憧れ
当時仕事でSunのワークステーション(BSD系のSunOSが動いていた)を使っていたこともあり、本物のUNIXへの
大きなあこがれがあった。が、UNIXは商品であり、ソースコードを合法的に入手し動かすことは個人には不可能
だった。
1991年に386BSD version 0.0が公開されたときの興奮を今でもかすかに覚えている。デュアルブートや他OS
との住み分けなど微塵も考えられていなかった当時の386BSDインストーラを可搬メディア(FD)から起動すると、
ハードディスクの一部を問答無用でスワップとして使用し、入っていたMS-DOS環境が破壊されるという笑えない
事故もあった。
なお、Linuxも最初のバージョンが作られたのは1991年だった。
386BSDからNetBSDへ
386BSDは大いに歓迎され、たくさんのユーザからバグ報告や修正の提案などがなされ、386BSD 0.1がリリー
スされたものの、修正が反映されたリリースがなかなか出ないため、有志がpatchkitをリリースしていた。
1993年4月、NetBSDが初めて公開された。386BSDと各種パッチなどをベースにしたバージョン0.8である。
カーネルソースの中にはi386の他amiga, hp300といったディレクトリが存在していて、最初の公開時点ですでに
マルチアーキテクチャ対応を目指していることがうかがえる。
なお、類似プロジェクトのFreeBSDの最初のリリースは1993年12月である。
X68030
● 1988年に6800010MHzを搭載し発売されたX68000。
● 途中CPUクロックを16MHzにアップする他は一切変更ないまま5年が経過。
● 1993年、ついに32bit CPUを搭載した新機種X68030が発売に。
● 68030はSunのワークステーションでも採用されていたCPU。
● UNIXが動く!! と思ったら、CPUは組み込み向けの68EC030。
● 仮想記憶が実装されていないvariantだった。
しかし
● 68EC030はソケットに実装されていた。
● 68030を買ってくれば交換可能! 希望がつながった!
NetBSD移植する!
● 完全に趣味
● 業務とは全く関係なくやった
● 要求も期限もないので、できなかったら諦めるくらいの気概で
● まったく先が見えないので、一緒にやろうとか手伝ってと言って乗り気になる人はいなかった
● 山登りに例えるとこう
GOAL
大
???
NetBSD移植の流れ
1. ハードウェアの入手
2. ソースコードの入手
3. 開発環境の整備
4. 移植元アーキテクチャの選定
5. コンフィグ整理とビルドの確認
6. ブートローダーの開発と起動テスト
7. メモリマップの調整
8. デバイスドライバ(シリアルコンソール)の開発
9. 起動するまで動かす
10. SCSIドライバなどの開発
11. ブートメディア構築
12. init diedとの戦い
1.ハードウェアの入手
● X68030本体 (68030b16MHz, 4MBメモリ)
○ 秋葉原のツクモパソコン本店で購入。 1993年5月。
● 68030
● 68881
○ 秋葉原のラジオデパートに、当時秋葉原エレクトリックパーツという店があり、そこで売られていたものを入手。
同じく1993年5月。
デバッグ用のハードウェア(ICE等)は使わなかった
2.ソースコードの入手
● NIFTY-ServerのFUNIXからテキストエンコードされたtarballをダウンロード
● ひとまずカーネルソースだけ
● 14,400bps(電話回線のモデム経由)
● 数時間(だったかすらはっきり覚えていない、それ以上かも)かかる
3.開発環境の構築
● 標準OSであるHuman68k上で、NetBSDをビルドできるようにする
● いわゆるクロスビルド環境だが、当時は手軽に構築する手段がなかった
● BSD makeをHuman68kに移植
○ 既存のツールやライブラリのおかげで、ほぼビルドするだけ
○ GNU makeではビルドできない。最初は添付シェルスクリプトで作る
● a.out(当時はELFではなかった)を出力するgccをビルド
● gasやGNU Linkerも用意(ldはbinutilsに入っていた)
4.移植元アーキテクチャの選定
● 同じm68kファミリーを使っているアーキテクチャを選ぶ
● hp300 or amiga
○ hp300はHP9000/300シリーズワークステーション
○ amigaはコモドール社のパソコン Amiga
● Amigaを選択
● cp -R sys/amiga sys/x68k (当時x68kと書いてたかは覚えていない。x68030かも?)
5.コンフィグ調整とビルドの確認
● まずカーネルのビルドの方法を調べるところから。(Makefileがなかった)
● config(8)を使ってMakefileを生成することが分かる。ツールは移植した。
● AmigaとX68030では当然メモリマップが異なる。デバイスも異なる。
● まず最初は、作られるカーネルのコンフィグから使えないデバイスを外す。
● そしてカーネルのビルドが通るかを確認する。
● 当時は68030 16MHzでカーネルビルドにたしか数時間。
6.ブートローダーの開発と起動テスト
● X68030のBIOS ROMには、Human68kで使われているFAT16のファイルを読み書きするサービスが提
供されていたので、まずはそれを使ってFAT16上にあるa.out形式のNetBSDカーネルをメモリに読み込
み、セクション情報通りのアドレスに置いて、実行番地にジャンプするプログラムを開発。
● 実際には、実行番地がどこなのかを探すところから。_startってどこよ? → locore.s
● カーネルの実行エントリ(_start)直後に、I/Oを叩いて内蔵LEDを光らせるコードを入れて、ブートさせてみ
て、LEDが光るかを確認。printfデバッグより原始的なLチカデバッグ。
7.メモリマップの調整
● 68030は、コールドスタート時、仮想記憶はオフになっている。
● システムレジスタのあるビットを1にすることで、仮想記憶が有効になる。
● 仮想記憶が有効になってもプログラムカウンタはそのままの値。
● つまり、仮想記憶を有効にする場合、ページテーブルを事前に組んでおいて、仮想記憶を有効にした後そ
のままプログラムが動けるように配置する。
○ もっとも簡単なのは仮想アドレス =物理アドレスとする。
● その他、ビデオメモリの位置やデバイスのアドレス空間など調整する
● AmigaとX68030とではメモリマップが異なるので、いろいろ書き換える。
8.デバイスドライバ(シリアルコンソール)の開発
● 少なくともコンソールが必要。シリアルドライバを作った。
○ チップはZ8530 SCC。既存ドライバがなかったので見様見真似で書いた。
● NetBSDカーネル起動直後は割り込みを使わないので、割り込みは後回し。
● 起動直後に出るバナーが表示されるまで相当の時間を要した。
○ シリアルドライバがおかしいのではなく前出のメモリマップ周りのバグ。
● ここでTLBとページテーブルと、機種非依存メモリ管理のpmapをかなり読んだ。
9.起動するまで動かす
● NetBSDカーネルの起動バナーが初めて表示されたのはいつか記憶にない。
● rootファイルシステムがないので当然カーネルの吐くメッセージを見るだけ。
● no root filesystemだかそんなメッセージを出して止まるまで。
● 起動しない頃には、カーネルのソースコード内に「シリアルに1文字出力」を埋め込んでどこまで動いたか
を観測していた。いわゆるprintfデバッグの簡易版。
10.SCSIドライバなどの開発
● X68030の標準ストレージインタフェースはSCSI
● 富士通製SCSIコントローラを内蔵していた
● ドライバはないので作成した
● 友人がつてでデータシートを入手してくれて非常に助かった
● いきなりおかしなデータを書いて壊されるとつらいので、最初はread only。
● 並行してビデオコンソールドライバとキーボードドライバも作成した
● 当時、デバイスのmajor, minorは手で採番していたので、採番した
11. ブートメディア構築
● 当時はramdiskからブートする仕組みがなかった(と思う)
● 可搬ストレージ(MO)にブートメディアを構築することにする。
● amiga用に配布されているファイルシステムイメージを入手、MOに書き込む。
● NetBSDカーネルのコンフィグでMOをrootとするよう書いてビルド。
● 起動。
● 失敗。superblockがおかしいなどと言われる。修正、テストの繰り返し。
12. init diedとの戦い
● rootをようやくmountできた
● その直後に動くのが/sbin/init
● だがこいつがすぐ死ぬ。カーネルはinit diedと言ったっきりだんまり。
● 仮想記憶周りの問題か、ファイルシステム周りの問題か。
● 覚えていないが、どうにか死ななくできた。しかしその先が動かない
● なぜかと思ったらそういえばタイマー割り込み作ってないからコンテキストスイッチしないことに今さら気づ
く。作り込む。
シングルユーザーブート!
● (たしか)1993年9月、NetBSD/X68030が初めてシングルユーザーブートに成功。
● ここまで独りで作業。ネットには参考情報がなく、書籍とソースだけが頼りだった。
○ 4.3BSDの本、一般的UNIX内部構造の本、 X68000ハードウェア解説の本
● 移植したものを動かすまで、動いているNetBSDを見たことがなかった。
● SCSIドライバを書き込み可能にして、NetBSD上でカーネルをセルフビルドして、a.outのアラインメントが
想定と違っていて調整したりなど。
● 動き出してからは、他のデバイスを開発する人やX11を動かす人などたくさんの皆様の協力が得られた。
● 1996年5月、NetBSD/x68kはオフィシャルのリポジトリにマージされた。
昔は移植って大変だったけど
現在
● クロスビルド環境はシェルスクリプト一発で作れる(NetBSDの場合)
● 共通レイヤー(MI)と機種依存部分(MD)が分離されていて読み書きしやすい
● ramdiskからブートできるのでテストしやすい
● インターネットに情報がたくさん落ちている、参考ソースも落ちている
知らないところから始めても、スムーズに移植を進められる周辺環境が整っている!
しかし最近の開発ボードではメーカー提供のLinuxがあらかじめ用意されていることが多い
まとめ
昔のパソコンはそれぞれ独自のハードウェアだった
OSの移植に関する情報がなかったので調べるのも作業も大変だった
OS移植をすることで内部構造や動作を把握することができた
現在は情報、環境ともに整っていて、移植するなら作業が捗る!
だが、個人が移植する必要性も薄れてきた

Weitere ähnliche Inhalte

Ähnlich wie NetBSD移植の昔話

パソコン選び(抜粋)
パソコン選び(抜粋)パソコン選び(抜粋)
パソコン選び(抜粋)Eiji Matsumoto
 
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)Microsoft Azure Japan
 
レトロエクスプレス5講演
レトロエクスプレス5講演レトロエクスプレス5講演
レトロエクスプレス5講演Mari Yamaguchi
 
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)shimadah
 
Dpdk環境の話
Dpdk環境の話Dpdk環境の話
Dpdk環境の話Masaru Oki
 
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門Takeshi HASEGAWA
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねてsuno88
 
コンビニマルチコピー機の活用
コンビニマルチコピー機の活用コンビニマルチコピー機の活用
コンビニマルチコピー機の活用H2412003
 
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたMovidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたNISHIMOTO Keisuke
 
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!NISHIMOTO Keisuke
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介Yuma Ohgami
 
あるブートローダの話
あるブートローダの話あるブートローダの話
あるブートローダの話nullnilaki
 
S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)
S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)
S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)Microsoft Azure Japan
 
ワンチップAndroidの紹介(ABC2013s)
ワンチップAndroidの紹介(ABC2013s)ワンチップAndroidの紹介(ABC2013s)
ワンチップAndroidの紹介(ABC2013s)博宣 今村
 

Ähnlich wie NetBSD移植の昔話 (15)

パソコン選び(抜粋)
パソコン選び(抜粋)パソコン選び(抜粋)
パソコン選び(抜粋)
 
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
 
レトロエクスプレス5講演
レトロエクスプレス5講演レトロエクスプレス5講演
レトロエクスプレス5講演
 
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)
 
Dpdk環境の話
Dpdk環境の話Dpdk環境の話
Dpdk環境の話
 
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
20120519_qpstudy 2012.05 いやらしい@hasegawのI/O入門
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
 
コンビニマルチコピー機の活用
コンビニマルチコピー機の活用コンビニマルチコピー機の活用
コンビニマルチコピー機の活用
 
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoFretrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
 
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたMovidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみた
 
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
 
あるブートローダの話
あるブートローダの話あるブートローダの話
あるブートローダの話
 
S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)
S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)
S02 企業で活用が進む Microsoft Azureの仮想マシン (Linux)
 
ワンチップAndroidの紹介(ABC2013s)
ワンチップAndroidの紹介(ABC2013s)ワンチップAndroidの紹介(ABC2013s)
ワンチップAndroidの紹介(ABC2013s)
 

Mehr von Masaru Oki

Lagopusとvagrant
LagopusとvagrantLagopusとvagrant
LagopusとvagrantMasaru Oki
 
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるかOpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるかMasaru Oki
 
今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話Masaru Oki
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話Masaru Oki
 
GPD WINが来た!
GPD WINが来た!GPD WINが来た!
GPD WINが来た!Masaru Oki
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)Masaru Oki
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Masaru Oki
 
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件Masaru Oki
 
Lagopus どれだけ速いのか
Lagopus どれだけ速いのかLagopus どれだけ速いのか
Lagopus どれだけ速いのかMasaru Oki
 
Ryu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみようRyu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみようMasaru Oki
 
Lagopus match improvements
Lagopus match improvementsLagopus match improvements
Lagopus match improvementsMasaru Oki
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchMasaru Oki
 
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switchLagopus as open flow hybrid switch
Lagopus as open flow hybrid switchMasaru Oki
 
Net bsd advent calendar 2015 bpf
Net bsd advent calendar 2015 bpfNet bsd advent calendar 2015 bpf
Net bsd advent calendar 2015 bpfMasaru Oki
 
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Masaru Oki
 
Rumpを使ってみる
Rumpを使ってみるRumpを使ってみる
Rumpを使ってみるMasaru Oki
 

Mehr von Masaru Oki (20)

Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
Lagopusとvagrant
LagopusとvagrantLagopusとvagrant
Lagopusとvagrant
 
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるかOpenFlowでいろんなプロトコルを 話そうとするとどうなるか
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
 
今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話
 
GPD WINが来た!
GPD WINが来た!GPD WINが来た!
GPD WINが来た!
 
新生Lagopus2017(仮称)
新生Lagopus2017(仮称)新生Lagopus2017(仮称)
新生Lagopus2017(仮称)
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
 
LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件LagopusでPPPoEを使えるか考えてみた件
LagopusでPPPoEを使えるか考えてみた件
 
Lagopus どれだけ速いのか
Lagopus どれだけ速いのかLagopus どれだけ速いのか
Lagopus どれだけ速いのか
 
Lagopus 0.2.7
Lagopus 0.2.7Lagopus 0.2.7
Lagopus 0.2.7
 
Ryu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみようRyu+Lagopusで OpenFlowの動きを見てみよう
Ryu+Lagopusで OpenFlowの動きを見てみよう
 
Lagopus match improvements
Lagopus match improvementsLagopus match improvements
Lagopus match improvements
 
Lagopus 0.2.4
Lagopus 0.2.4Lagopus 0.2.4
Lagopus 0.2.4
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
 
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switchLagopus as open flow hybrid switch
Lagopus as open flow hybrid switch
 
Net bsd advent calendar 2015 bpf
Net bsd advent calendar 2015 bpfNet bsd advent calendar 2015 bpf
Net bsd advent calendar 2015 bpf
 
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Using rump on NetBSD 7.0
Using rump on NetBSD 7.0
 
Rumpを使ってみる
Rumpを使ってみるRumpを使ってみる
Rumpを使ってみる
 

NetBSD移植の昔話