File:  [NetBSD Developer Wiki] / wikisrc / users / jun / intro.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Mon May 28 11:43:19 2012 UTC (9 years, 6 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by jun

## NetBSD

### こういうOSが欲しい
- コンピュータは世界中にある
- 昔の計算機から最近のパソコン/組込まで目についたすべてのコンピュータで動くOS
- 手持ちの周辺機器が全部使えるOS
- すべてのソフトウェアが動くOS
- ソースコードを自由に使えるOS
-  読む/書く/引用する/売る

### NetBSD
- 4.3/4.4BSD&386BSDベース
- 1993年3月21日から開始 
- 今年18周年
- 2012年2月11日にNetBSD5.1
- 58種類のハードウェアを単一ソースでサポート
- ハードウェア依存/非依存部分を分離
- 最新のネットワークプロトコルをサポート
- IPv6 マルチキャスト標準サポート
- 商用ルータ・プリンタ・家電製品に組み込まれる例も
- http://www.NetBSD.org/

- http://commons.wikimedia.org/wiki/File:Unix_history-simple.png

### NetBSDのライセンス
- 著作権表示
- ソースコードの再配布においては、上記の著作権表示、この条件の列挙、下記の注意書きを残すこと。
- バイナリー形式の再配布においては、上記の著作権表示、この条件の列挙、下記の注意書きを、配布物に付属した文書および/または他のものに再現させること。
- 注意書き
- このソフトウェアに関して問題が生じても、作者は責任を負わない
 [http://www.netbsd.org/ja/about/redistribution.html]

### BSDライセンスとNetBSD
- 著作権表示を保存する
- 転用して販売できる
- ソースの公開義務なし
 [http://www.NetBSD.org/about/redistribution.html]
- ライセンス条項が異なるソースを分離する
- GNUは/usr/src/gnu以下に
- /usr/src/external/gpl3

### 管理元が異なるソースを分離する

- /usr/src/dist
	bzip2,dhcp,file,ipf,iscsi,libpcap,nawk,ntp,nvi...
- /usr/src/crypto/dist
	heimdal,ipsec-tools
- /usr/src/external
	bsd
	am-util,atf,bind,dhcpcd
	gpl2
	lvm2,xcvs
	intel-fw-oem
	intel-fw-public
	intel-public
	acpica
	mit
	xorg

### GPLv3
- ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-current/src/external/gpl3/README
- http://www.gnu.org/licenses/gcc-exception-faq.html
- gcc 4.1.3で止める→4.5.3に移行
- GCCを捨ててpccかllvm
- pccで動く(i386/2011/5/10)
- gettextは0.14.4
- ブートローダをGPLじゃないものに置き換える

### 単一ソースコード
- 単一ソースツリーで
- CPUアーキテクチャ 15種類
- 58種類のプラットホームで動く
- 16種類のバスサポート
- ATA,CardBus,EISA,PCI,PCMCIA,VME

### 新しく移植するときには
- まず、機種に依存しない部品を組み合わせる
- CPU..バス..
- 機種依存部分だけを追加する

- Alpha/arm/acorn26/acorn32/cats/evbarm/hpcarm/Netwinder
- shark/WZero3/evbarm/hppa/hp700/i386/sun2/
- Amiga/Atari/Cesfic/Hp300/Luna68k/Mac68k/Mvme68k/News68k/next68k

### ドリームキャスト版CD
- http://ftp.netbsd.org/pub/NetBSD/misc/tsutsui/dreamcast/
dreamcastbootcd-20101010.tar.gz
- CD-R付きNetBSDマシンで展開
- CD-R入れる
- makeすると、バイナリをダウンロードしてブートCDが焼ける
- dreamcastに入れて起動

### X68030
- X68kエミュレータ
- XM6i
- NetBSDがブートします
- http://www.xm6i.org/
- OSC広島で祭り
- 21世紀のX68
- CPU内部の挙動を細かく観測できる
- ATCエントリが見える

### サポートハードウェア 56種類

### 4.4BSD由来の機能
- Nullfs – loopbackマウント
- Unionfs – ファイルシステムを重ねる
- Lfs – 高速書き込み性能
- NFS – NFSv3 NFSoverTCP
- IP virtual hosting

### NetBSD独自の改良
- NFS – WebNFS
- NFS over IPv6
- UVM virtual memory system
- UBC  unified buffer cache system
- Cardbus
- Wscons
- USB ver2.0
- 64bit clean
- Wireless networking
- http://www.NetBSD.org/about/features.html
- ZFS? Google Summer of Code

### アーキテクチャに共通する部分
- Package system
- バス USB、CardBus
- デバイスドライバ
- オーディオフレームワーク
- OSエミュレーション
- バスサポート
- 仮想デバイス
- Concatenated disk driver
- Memory disk driver
- RAIDframe disk
- Random device
- Vnode disk
- 物理デバイス
- オーディオデバイス
- WSCONS - ワークステーションコンソール
- wsdisplay
- wskbd
- wsmouse

### NetBSD:カーネル
- 機種に依存する部分
- i386/MIPS/SH/68000…
- デバイスに依存する部分
- PCIバス/ISAバス/PCMCIA…
- その他
- メモリ管理
### 新しいマシンをサポートするには
- 搭載CPUがサポートされているか?
- 搭載バスがサポートされているか?
- 搭載デバイスがサポートされているか?
- 共有部分はすべてで共有できる
- サポートされていない部分だけを作り
-     CVSツリーに追加する
### Package - /usr/pkgsrc 
- 簡単にソフトウェアをコンパイル・インストール
- 1997年8月開始ー今年で13年目 
- 2011-Q2 もうすぐ準備
- 41種類のジャンル
- 9963種類以上のソフトウェア
- Make installでソフトウェアのインストール
- 各CPUアーキテクチャ間で共通
- Mipsel –mips endian little
- Arc – MIPSで動くNTマシン
- Cobalt – Cobalt Qube1/2
- Pmax – DEC station
- Hpcmips – MIPS搭載WinCE
- NetBSD/Solaris/Linux/Darwin/FreeBSD/OpenBSD/
- IRIX/BSDOS/AIX/SUA(Interix)/DragonFlyBSD/OSF1/hpux
### エミュレータ
- /usr/pkgsrc/emulators
- gxemul
- mips (pmax,hpcmips)
- dreamcast
- simh
- NetBSD/vax
- tme
- sun2,sun3,SPARCstation 2
- QEMU
- PC
- USBデバッグ
### Packagesジャンル一覧
- ソフトウェアのコンパイル/インストール
- drupal
- cd /usr/pkgsrc/www/drupal6
- make package
- make install
- 関連するソフトウェアがインストール
- OpenOffice
- cd /usr/pkgsrc/misc/openoffice3
- make package
- make install
- /usr/pkg/bin/soffice ....
### NetBSDを使う時
- OSをインストールする
- pkgsrc.tar.gzを取得
- 必要なパッケージをインストール
- tcsh,icewm,kterm,anthy-elisp,ja-less
- openoffice,firefox,gimp
- 目的別
- デスクトップ向け
- 組み込み向け
- pkgsrc/meta-pkgにいくつかある
### Package対応プラットフォーム
- NetBSD
- FreeBSD
- OpenBSD
- BSD/OS
- Solaris
- Linux
- DragonflyBSD
- (SSD Linux)
### Package – NetBSD以外での利用
### Packageとライセンスの取扱い
- 個々のパッケージごとにLICENSE定義
- 受け入れられるライセンスを制御したい
- ツールとライブラリのライセンスが違う
- ツールがGPL,ライブラリがLGPL
- GPLv2とv3が混在する例
- rubyとreadline6
- GPL2とGPL2 or laterの区別
- GPL3とリンクできるかできないか
- http://d.hatena.ne.jp/obache/20090922/

### NetBSDのリリース
- リリース版2.0 3.0 4.0 5.0......
- マイナーリリース 2.1.. 3.1...
- パッチリリース   2.1.1... 3.1.1...
- 開発版 2.99 3.99 4.99 5.99...
- カーネルAPIの変更があるとき 2.99.1...
### NetBSD開発ロードマップ
- NetBSD5.1サポート機能
- RAIDframe parity maps, which greatly improve parity rewrite times  after unclean shutdown
- X.Org updates
- Support for many more network devices
- Xen PAE dom0 support
- Xen PCI pass-through support
### NetBSD6.0に入れたい機能
- kernel modules
- kernel scalability improvements
- 64bit time_t (solves year 2038 problem)
- DTrace
- ZFS
- NILFS
- Logical Volume Manager
- NPF (New Packet Filter)
- Thread Local Storage
- Xen SMP support 
### NetBSD6.0に入れたい機能(2)
-  automated tests
-  improved puffs (Pass-to-Userspace Framework File System)
- improved rump (Runnable Userspace Meta Program kernel)
- UltraSPARC III(+) support
- MIPS 64bit support
-  a lot of updated and new 3rd party software
- Automated Testing Framework
- cd /usr/tests;
- atf-run | atf-report
### 組織構成
- Core 5人 テクニカルマネージメント
- Port maintainer 28人
- 各実装に関する担当者
- Developer
- CVS/WWW/FTP等開発資産に書き込みできる
- アクティブなのは188人
- NetBSD Foundation,Inc
- デラウェア州の法人組織
- サーバマシンを所有
- お金と寄付を管理
- NetBSDの版権を管理
### developer
- 直接ソースを変更できる
- CVS/FTP/WWWサーバの内容
- 世界中で188人
- GNATSでバグ管理
- Cvsweb.netbsd.org
- 日本人38人
### NetBSD開発者世界分布図
- NetBSD開発者分布図
### Developerになるには(1)
- 	去年のクリパでやったこと
- PGP/GnuPGの鍵を作る
- fingerprint印刷
- gpg --fingerprint jun@soum.co.jp
- fingerprint交換
- 他のDeveloperとfingerprint印刷を交換
- 本人確認
- 公的証明書を見せあって本人確認
### Developerになるには(2)
- 相手の鍵を取り込んで、fingerprint照合
- gpg-email-confirm soda@netbsd.org..
- ランダムな文字列を送る
- メールを暗号化して送り返してもらう
- 送った文字列とメールアドレスを照合する
- 鍵にサインしてもらって送り返してもらう
- Developerサイン入り自分の鍵ができる
- 自分の鍵束にimport
- pgp.mit.eduにサイン入り自分の鍵を登録する
### 世界中で打ち合わせをする時間
-  May 21 03:00 PM -0700 America/Los_Angeles
-  May 21 06:00 PM -0400 America/New_York
-  May 21 11:00 PM +0100 Europe/London
-  May 22 00:00 AM +0200 Europe/Berlin
-  May 22 01:00 AM +0300 Europe/Helsinki
-  May 22 07:00 AM +0900 Asia/Tokyo
-  May 22 08:00 AM +1000 Australia/Melbourne
### Port-maintainer
- 移植責任者
- 57種類のうち15種類以上は日本人が担当
### 日本人担当ハードウェア15/56
- NetBSD動作マシン@日本
### 日本からの貢献
- 国産ハードウェアサポート
- ゲーム機・携帯情報端末サポート
- IPv6/ IPSEC
- Pkgsrc
- CardBusサポート
- MIPS/SH/m68K
- NetBSD書籍が世界一多く出版される
- developer53人
### WindowsCE向けNetBSD
- MIPS系CPU搭載
- NEC MobileGear
- SHARP Tellios
- SH系CPU搭載
- HP ジョルナダシリーズ
- SEGA DreamCast
- StrongARM系CPU搭載
- Compaq iPAQ
- HP ジョルナダシリーズ
- WZero3
### ブートまでの流れ
- コンパクトフラッシュを2分割
- WindowsCEの領域
- NetBSD/hpcmipsの領域
- WindowsCE上のブートローダからブート
- メモリ空間を取れるだけ確保する
- カーネルファイルをメモリ空間に送り込んで
- NetBSDの世界へ飛び込んでゆく
### NetBSD/hpcsh
- SH搭載WindowsCEマシン向け
- HP Jornada680 690 620LX
- 日立ペルソナ HPW50 230
- (NetBSD/sh3+NetBSD/hpcmips)/2+α
### 従来の開発ノウハウとソフトウェア資産
- NetBSD/hpcmipsとのソース共有化
- NetBSD/Dreamcast互換
- 
- NetBSD/hpcarm
- StrongArm搭載WindowsCEマシン向け
- SA-1100/1110対応
- HP Jornada720
- WZero3
- Compaq iPAQ
- hpcファミリー中最速
- 
### クロス開発環境
- NetBSD/i386でクロスコンパイル
- build.sh –m hpcmips –D /hpcmips-root
- Pkgsrc/cross以下に各種パッケージ
- Windows環境でクロスコンパイル
- Cygwinなど
- Linux上でクロスコンパイル
- FreeBSD上でクロスコンパイル
- distcc - コンパイルだけ速いマシンで
- pkgsrcをクロスコンパイル
- pkgsrcのcrossbuildでググる!
- http://www.lins.jp/~obata/diary/200803242.html
- クロス用toolsを作る
### バイナリ互換性を利用する
- Cobalt Qube2でhpcmipsバイナリ作成
- MIPSでendian little =mipsel同士なら動く
- ユーザランドはほとんどそのまま動く
- パッケージも共通化
- NetBSD/{pmax,cobalt,arc,hpcmips}で共通
- 数GBある各種アプリケーション群を共通にする
- エミュレーション環境
- Linux
- I386以外のバイナリも動くようにする
- FreeBSD
- Windows2000/XP
- PECOFF
- Win32アプリケーションをそのまま動かす
- ゲームなど
- Unixware
### 移植成果をNetBSDに組み込む
- カーネル部分を移植する
- セルフコンパイルでスナップショット作成
- パッケージソフトウェアセットを作る
- ドキュメント整備
- Web・マニュアル・FAQ
- インストーラを作る
- メーリングリストを作る
### プログラミング以外にすること
- Port登録 NetBSD/???? 部分
- Webページ作成
- バグレポートデータベース作成
- GNATS
- マニュアル作成
- インストールマニュアル・マニュアル・FAQ
- メーリングリスト作成
- ニュースとして報告
### EeePC&Netbook
- Escape押して起動ディスク選択
- バックアップCDあり
- ディスプレイ
- 82915GM
- Attansic Technologies L2 100Mbit Ethernet Adapter
- http://www.NetBSD.org/ports/i386/netbook.html
- VAIO Type P
- 
### NetBSD開発者情報
- ftp/WWW/CVS/SUPサーバ
- http://www.jp.netbsd.org/ja/JP/sites.html
- 開発環境設定方法
- http://www.netbsd.org/developers/
- メーリングリスト
- http://www.jp.netbsd.org/ja/JP/ml.html
- netbsd-request@re.soum.co.jp
- 1994/11-  10年以上! 参加者600名
-  http://releng.netbsd.org  
### ソースコード取得方法
- ftp
- Cvs
- cvsup
- Sup
- Anonymous CVS
- rsync
### Japan NetBSD Users’ Group
- 1999年8月21日成立
- 日本のNetBSDユーザに便宜を図る
- FTP/CVS/WWWサーバの管理
- ドキュメント・WWWページ翻訳
- 場所提供:IIJ
- http://www.jp.netbsd.org/
- 年一度定期総会・BoFを実施
- 次回は2012/7/?
- 東京 根津 東大武田先端知ビル
### www.netbsd.org 翻訳
- 現在
- www.netbsd.org上のCVSリポジトリ
- 削除→各国のwwwサーバ
- 各国の翻訳
- ドイツ語
- 韓国語
- ポーランド語
- フランス語
- 緊急度の高い情報を正確に広報する
- 古いドキュメントでもあった方がいいか
- そもそも英語のドキュメントは正確か
### 国内BSDユーザグループ
- http://www.netbsd.org/gallery/groups.html
- BBQ
- BSD Users Group,Shinshu
- Chofu *BSD Users’ Group
- Chiba *BSD Users’ Group
- Daibou East *BSD Users Group
- Echigo BSD Users Group
- Kansai *BSD Users Group
- Nagoya *BSD Users Group
- Northern land BSD Users Group
- Shikoku *BSD Users Group
- Tohoku BSD Users Group
### まとめ
- NetBSDはいろんなハードで動きます
- 自作ソフトをいろんなCPUで試せます
- 最初から移植を考えて設計されています
- 試作機に移植する工数が最小ですみます
- 自分の専門分野だけを組み込めます
- 自由に利用可能で再配布可能なOSです
- 移植するとIPv6マシンに変貌
- さまざまなCPU向けIPv6スタックがあります
- 愛着あるハードウェアが生き返ります
- 最新のネットワークコードが利用できます
- もしかしたらリサイクル団体なんでしょうか?

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb