SlideShare a Scribd company logo
FreeBSD と xrdp と私
〜FreeBSD developerになるまで〜
岩男 皓一朗 <meta@FreeBSD.org>
@ Open Source Conference 2019 Tokyo/Spring
このセミナーの裏番組
DebianとUbuntuと被ってますね
OS系セミナーの時間帯
おことわり
●
発表資料は後ほど公開する予定です
●
質問やコメントは思いついたタイミングで
●
間違いがあったらすみません
私について
●
岩男 皓一朗 (31)
– a.k.a meta / metalefty
– 大分県出身
– 福岡県在住
– ネットワークエンジニア
– ソフトウェア開発者
私について
●
FreeBSD developer (ports committer)
– 2018年3月~ (見習い)
– 2019年1月〜 (fly solo)
– https://people.freebsd.org/~meta/
●
xrdp developer
– 2016年6月~ (コアメンバー)
– 開発に参加したのはもう少し前から
まだまだ新米です
FreeBSDとは
FreeBSD は、最新のサーバ、デスクトップおよび組み込
みプラットフォーム用のオペレーティングシステムで
す。高度なネットワークセキュリティ、 およびストレー
ジ機能により、 FreeBSD は数多くの 最大規模のウェブ
サイト、広く普及している組み込みネットワーク機器、
ストレージデバイスにおいて利用されています。
(FreeBSD.orgより)
FreeBSD Ports Collection
●
他のGNU/LinuxやBSDにもあるパッケージリポジトリ
●
最新リリースとその1つ前の最新をサポート
●
OS本体のリリースとは別のサイクルで管理
– 最新パッケージを使うにはOSを上げないといけない
ということがない
– そこが利点でもあり偶に壊れる原因でもある
– 例: Ubuntu 16.04 は xrdp 0.9.1
メンテナンスしている ports
●
devel/lazygit
●
dns/cli53
●
net/tigervnc
●
net/xrdp
●
security/softether
●
security/softether-devel
●
x11-drivers/xorgxrdp
●
games/quit
●
japanese/font-koruri
●
japanese/font-ricty
●
net-im/mikutter
●
etc, etc
ネットワーク
リモートデスクトップ
開発ツール
その他の活動
●
Postfixのblacklistd(8)対応
– NetBSDから持ってきたfail2ban的なもの
– そのまま持ってきたわけではなく参考にして別実装
●
SlideShareを検索してください
– 検証環境に不備あり 2500回/5秒のログイン試行は誤り
– ちゃんと3回でブロックします
https://twitter.com/n_soda/status/958907818668580864
会社のメールサーバで使おうと思っていたが
Googleへの移行になり使われることはなかった
FreeBSD developerですが
●
src のことはわかりません
– ports committer なので
●
ドライバ回りも弄ることはあります
– USB Vendor ID, Product ID を追加するだけで既存のドライ
バで動く程度のパッチ
私とFreeBSD (おことわり)
●
私の視点での出来事です
●
先達の*BSD開発者には敬意を払っています
私とFreeBSD (1)
●
FreeBSD 6.1 (2006) から初めて本格的に使う
●
FreeBSD 8.0 (2008)からデスクトップで使い始める
– 普通にデスクトップで使えることを知った
– それまではサーバ用の特殊なOSだと思っていた
– GNOMEやFirefoxが動くなら変わらない
●
Linux は下記のような遍歴
– Vine Linux 2.1.5 → 4.0 / Debian 3.1 (sarge) → 4.0 (etch)
私とFreeBSD (2)
●
日本のコミュニティをほとんど通っていない
– FreeBSD 友の会
– FreeBSD-users-jp @ {,jp.}FreeBSD.org
– おじさんばっかりだった
●
地方にコミュニティがなかった(東海道らぐ的な)
– 小金丸さんなど地方で有名な方もいるにはいる
– 公式ドキュメントと仲良し
福岡の小金丸さん
小金丸コンピュータ
エンジニアリングサービスの
小金丸 信幸さん
FreeBSDの日本語マニュアルを
作成されている
私とFreeBSD (3)
●
グローバルなコミュニティにいきなり飛び込む
– 近所にコミュニティがないなら東京も世界も同じ
– そこで日本人とやりとりすることもしばしば
– 別に日本人と絡みたくないわけではない
●
それが自然だった
– 日本人縛りで同じことで困っている人を探すのは面倒
– スコープは広く
www.jp.FreeBSD.org
こちら側の人ではありません
www.FreeBSD.org
こっち側の人です
www.jp.FreeBSD.org
●
昔ながらのページがそのまま
– 更新は2010年くらいで止まっている
– home.jp.FreeBSD.org などリンク切れ多数
●
…返上した方がいいのでは…?
– FreeBSDでググると結構上位に出てくる
– 若手初心者を惑わす
– 私は関係者ではないのでなんとも…
なぜ FreeBSD を使うの?
●
なぜでしょうね?
●
開発者だから(鶏と卵?)
– 自分でパッケージを作れる・公式ツリーにコミットできる
– .deb や .rpm も作れるには作れるが…
– Linux distroは本体のバージョンに縛られることが多い
●
ports は常に最新スナップショットを使える
– Arch/Gentoo Linux は性に合うかもしれない
●
ZFS
●
OS全体が単一ツリー
●
FreeBSD developer
●
かつてはcommitterと呼んでいた
– committer以外のdeveloperも存在するため
– (ここにベン図が挿入されます)
●
@FreeBSD.orgのアカウントを持つ
– https://people.FreeBSD.org/~meta/
Commit Bit Types
Committer Type Responsible Tree Components
src core@ src/, doc/ subject to
appropriate review
doc doceng@ doc/, ports/, src/
documentation
ports portmgr@ ports/
FreeBSD 開発者の commit bit 種別
※掛け持ちしている人も多い
FreeBSD committer になるまで
●
contributorとして活動し実績を積む
●
推薦されたり志願(自薦)したり
– 志願の場合も結局推薦してくれる人を見つける
– 私の場合は「なりたいんだけどどうしたらいい?」と
committerにきいてみた
●
メンターを2人見つける
– 指導を受けながらコミット
FreeBSD committer にできること
●
自分でSubversionのツリーにコミット
●
開発マシンにアカウントを持つ
●
それ以外はあまり変わらないかも?
– パッチを送るとコミッターがコミットする
– 自分でコミットするか、それだけの違い
My first commit (r51502)
どのように開発者になったか?
●
FreeBSDとxrdpの両方のユーザーだった
●
xrdpと深い関わりがあるかも?
●
自分で使うものは自分で修正する
– xrdpがFreeBSDでコンパイルできなくなった→直した
– 直したバージョンをFreeBSD portsに持ってくる
– xrdp upstream 開発時点でFreeBSD対応にする
– ローカルパッチは可能な限り回避!
FreeBSDとxrdp
●
net/xrdp 0.3.2 (2007-05; ports treeに初登場)
●
net/xrdp 0.6.0 (2011-04; メンテナになる)
●
net/xrdp 0.7~0.8 (このへんがコンパイルできない)
– ローカルパッチもりもりで動かしてみた
●
net/xrdp-devel 0.9.1 (2017-03; いろいろupstreamにマージ)
●
net/xrdp 0.9.6 (2018-05; -devel を統合)
普段の生活環境 (FreeBSD + xrdp)
普段の生活環境 (FreeBSD + xrdp)
detach
reattach
virtual
desktop
running on
the server
普段の生活環境 (FreeBSD + xrdp)
●
自宅に構築した 12-STABLE デスクトップ
– ラップトップで動かしてもいいけど…
●
W-Fi / Bluetooth も安定して使いたい
●
指紋認証だって使いたいしサスペンド&レジュームもしたい
●
xrdp で接続して手元に持ってくる
●
SSH + screen / tmuxのGUI版という感覚
●
どこでも自分の環境にアクセス!
どのように開発者になったか?
●
自分が使いたいものをFreeBSDで動かすため
– LinuxユーザーがLinux上で開発している
– BSDでコンパイルが通らないコードを書いたりする
– 直してはテストしてPR
●
両方の開発メンバーに入った方が楽だな
xrdp開発チームに入る
●
GitHub上でPRを出すなど外部からの開発参加
は継続的に行っていた
September 29, 2015 with Jay Sorg at San Jose
xrdp開発チームに入る
●
GitHub上でPRを出すなど外部からの開発参加
は継続的に行っていた
●
会社の出張にひっつけて会いに行く
– タイムゾーンからUS西海岸にいると推測
– 今度 San Jose に行くからもし近くなら会いませんか?
●
会った
xrdp開発チームに入る
「GitHub に立てっぱなしのIssueの整理をした
いからチームに入れてくれませんか?」
xrdpの開発者として
●
リリースマネジメントを担当
– 時間が来たらその時点のものをリリースするだけ
– 4, 8, 12月に定期的にリリース
●
最近はまったり開発
– やりたいことはたくさんある
– 対応しなければならないバグがある
OSSの開発に参加したい人へ
●
まずはヘビーユーザーであれ
●
コミュニティで覚えてもらう
●
「仲間に入れて」といえば意外と入れてくれる
●
英語はできたほうが良い
●
日本の枠にとらわれずに世界で仲間を探そう
時間があったら喋るやつ
最近やってること
●
SoftEther 5 のporting
– GitHubで日夜開発されている 元の移植性が高く普通に動く
– i386/amd64 以外もサポート (FreeBSDにおいて)
●
security/softether – 4.25.9656
– RTM版 (FreeBSDではi386/amd64のみ)
●
security/softether-devel – 4.28.9669
– 安定版のbeta版 (FreeBSDではi386/amd64のみ)
bsdinstall vs sysinstall
●
sysinstall
– FreeBSD 2.0 から使われる古いインストーラ
– よくわからん言語で書かれていて改修できなくなった
●
bsdinstall
– FreeBSD 9.0 で採用された新インストーラ (ZFS rootも!)
– 当初はsysinstallで出来たことができないなど低機能
– 現在は追い抜く 前に進むための後退だった

More Related Content

PDF
Ruby on FreeBSD 2020
PDF
FreeBSD の小ネタ
PDF
FreeBSD を VirtualBox にインストールしてみた
PDF
PDF
[Vitocha.iso] FreeBSDカスタムiso作ってみた
ODP
FreeBSDのブートプロセス
ODP
シグナル
PDF
OS development beginner with breadboard version 20161126
Ruby on FreeBSD 2020
FreeBSD の小ネタ
FreeBSD を VirtualBox にインストールしてみた
[Vitocha.iso] FreeBSDカスタムiso作ってみた
FreeBSDのブートプロセス
シグナル
OS development beginner with breadboard version 20161126

What's hot (20)

PPTX
ロボットシステム学2015年第7回
PPTX
ロボットシステム学2015年第5回
PDF
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
PDF
私とMS-DOS
PDF
10分で分かるLinuxブロックレイヤ
PDF
Javakuche yono
PPTX
Linuxのファイルシステムについて調べてみた
PPTX
ロボットシステム学2015年第9回
PDF
Nagoya vim #1 about plugins
PPTX
Linux container update
PDF
Mishimasyk6 iwatobipen
PDF
Mishimasyk 3 20140705
PPTX
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
PDF
Rdkitの紹介
PPT
PDF
Routerboard勉強会vol5
PPTX
ロボットシステム学2015年第11回
ODP
Linuxベースのシングルボード色々
PPTX
Sphinx GO!!
PDF
俺のGentooがこんなに可愛いわけがない
ロボットシステム学2015年第7回
ロボットシステム学2015年第5回
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
私とMS-DOS
10分で分かるLinuxブロックレイヤ
Javakuche yono
Linuxのファイルシステムについて調べてみた
ロボットシステム学2015年第9回
Nagoya vim #1 about plugins
Linux container update
Mishimasyk6 iwatobipen
Mishimasyk 3 20140705
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Rdkitの紹介
Routerboard勉強会vol5
ロボットシステム学2015年第11回
Linuxベースのシングルボード色々
Sphinx GO!!
俺のGentooがこんなに可愛いわけがない
Ad

Similar to FreeBSD と xrdp と私 〜FreeBSD developerになるまで〜 (20)

PDF
Osc2014 hamanako
PDF
FreeBSD ports と暮らす(2): port 作成編
KEY
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
PDF
コンテナ情報交換会2
PDF
NetBSD, On the ROAD 2016
PDF
XenServerによるお手軽開発サーバ運用
PDF
JBoss AS7 rev2
PDF
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
PDF
LXC入門 - Osc2011 nagoya
PDF
JBoss AS7
PDF
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
PDF
OSvの概要と実装
PDF
JBoss AS7 rev3
PDF
とある受託ベンダの開発環境
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
PDF
XRDPで怠惰な日々を送る
PPT
Bsd suki
PDF
Freebsd ports と暮らす(5) 2012年を振り返る
PDF
KVM+cgroup
PDF
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Osc2014 hamanako
FreeBSD ports と暮らす(2): port 作成編
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
コンテナ情報交換会2
NetBSD, On the ROAD 2016
XenServerによるお手軽開発サーバ運用
JBoss AS7 rev2
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
LXC入門 - Osc2011 nagoya
JBoss AS7
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
OSvの概要と実装
JBoss AS7 rev3
とある受託ベンダの開発環境
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
XRDPで怠惰な日々を送る
Bsd suki
Freebsd ports と暮らす(5) 2012年を振り返る
KVM+cgroup
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Ad

FreeBSD と xrdp と私 〜FreeBSD developerになるまで〜