OSv噺 
@syuu1228
OSv噺
自己紹介 
• Software Engineer at Cloudius Systems, 
Developing OSv 
• FreeBSD developer (bhyve, network stack..) 
• Software Designで「ハイパーバイザの作り 
方」を連載中
おさらい
OSvとは? 
• OSvは単一のアプリケーションをハイパーバイザ・IaaSでLinuxOSな 
しに実行するための新しい仕組み 
• より効率よく高い性能で実行 
• よりシンプルに管理しやすく 
• オープンソース(BSDライセンス)、コミュニティでの開発 
• http://osv.io/ 
• Kivity, Avi, et al. "OSv—Optimizing the Operating System for 
Virtual Machines." 2014 USENIX Annual Technical Conference 
(USENIX ATC 14). USENIX Association, 2014.
OSvの設計 
• OSvは複数のメモリ空間を持たない 
メモリ空間は全プロセス&カーネルで共通 
• OSvはカーネルとユーザプロセス間で権限のモード切替を行わない 
従って,カーネルの機能はlibc経由の関数コールで実現 
• メモリの保護や権限の制限はハイパーバイザや言語ランタイムに任 
せる 
ネイティブコードがメモリ保護エラーでOSvカーネルのメモリ領域 
を破壊するのはユーザ責任 
• イメージとしては言語ランタイムをベアメタル環境に移植して 
いる状態に近い
OSvの構造 
Java apps 
OpenJDK 
OSv kernel 
ZFS 
TCP/ 
IP 
FBSD code 
CLI 
COM 
port 
virtio-blk 
virtio-net 
sched 
uler 
libc 
ACPI clock 
ramfs 
VFS 
MM 
ELF 
loader 
syscall 
emu 
libjvm.so 
java.so 
オリジナル実装(C++11) 
ポーティング 
バイナリ 
LuaVM 非ネイティブコード 
REST 
server
アプリケーション 
• OSvが提供するlibcの範囲で動き、-fPIC(-shared)でビルドされて 
いる必要がある(最近PIE Executablesをサポート) 
• アプリの実行=現在のメモリ空間への<app>.soのロードとmain関数 
の実行 
• fork() / exec()はサポートされない 
→内部でコマンド実行するプログラムとの互換性がない 
• マルチスレッドはサポートされる
動作環境 
• ハイパーバイザ 
• KVM 
• Xen 
• VMware 
• VirtualBox 
• IaaS 
• Amazon EC2 
• Google Compute 
Engine
対応アプリ 
(Java) 
• OpenJDK7,8 
• Tomcat 
• Cassandra 
• Jetty 
• Solr 
• OpenDaylight 
• Gitblit 
• Clojure 
• JRuby(Ruby on Railsなど) 
• Ringo.JS 
• Jython 
• Erjang 
• Scala 
• Quercus(PHPエンジン、 
Wordpressなど) 
• minecraft-server 
• Oracle NoSQLDB
対応アプリ 
(Java以外) 
• Ruby 
• WEBRick 
• Ruby on Rails 
• Publify(Railsベースのブログエンジン) 
• mruby 
• lua 
• Node.js
何が動くの? 
(ネイティブアプリ) 
• haproxy 
• memcached 
• MySQL 
• LevelDB 
• SQLite 
• twemproxy
フットプリント 
(ディスクイメージサイズ) 
• mruby = 14MB 
• Ruby = 48MB 
• OpenJDK = 77MB
フットプリント 
(最低メモリ使用量) 
• mruby = 65MB 
• Ruby = 75MB 
• OpenJDK = 110MB
ブート時間 
• 1秒(DHCP、ZFS初期化込み)
OSvをプログラムから操作 
「REST API」 
• REST API経由でOSvに任意の操作を実行 
• 従来のOS:コマンド実行やファイルの編集で設 
定を変更 
(手動が基本、シェルスクリプトなどで自動化) 
OSv:APIで設定を変更 
(自動化が基本、CLIはオプション)
OSvを対話的に操作 
「Lua CLI」 
• 簡易的なシェル機能を実現 
• 全ての機能をREST API上に実装 
• デフォルトではOSv上で実行されるが、リモー 
トホストで実行してSSH代わりに使用可能
OSv GUI 
• WebベースのGUI 
• OSの負荷、JVMのリソース情報、アプリの 
statisticsなどの統計情報を表示 
• Virtual applianceとしてOSvを使うことを前 
提にCassandra, memcached, Redisなどの 
アプリの情報を表示する機能を実装中
OSv噺
HTTPプロトコルを通じてネッ 
トワーク越しに便利に使える 
機能が増えた
HTTPプロトコルを通じてネッ 
トワーク越しに便利に使える 
機能が増えた←
こうじゃないだろ
OSv噺
HTTPといえば
OSv噺
ついったでOSvとお話 
したい
ゆーざふれんどりぃ!
どうやって実装するか? 
• 手軽なコマンド群?←それLua CLIで(ry 
• そうだ、MentionをLua CLIに流し込もう
どんな実装でTwitterに繋ぐか? 
• CLIがLuaだからLua? 
→ ログインとツイートのサンプルコードくらいしかない 
自力でごりごり書かないと無理そう 
• JavaやCRubyなど向けのTwitterアプリ? 
→Twitterに使ってしまうとその言語ランタイムで別のア 
プリを動かすのが面倒になるので避けたい・Luaに繋ぐの 
面倒そう 
• C/C++でネイティブコードで書いてLua CLIを埋め込み? 
→これが現実解っぽい
既存実装? 
• Twitter4C 
依存性が低いのはうれしいが、ツイート投稿only 
• twitcurl 
色々なサイトで広く紹介されてる→使ってみた 
mentionのURL間違えてる(?) 
JSONパーサどこ? 
Userstreamがない→実験してたらすぐrate limit 
食らっちゃった
Userstreamは欲しい 
• 即時反応したい 
数十秒とか待ってられない 
• Rate limitひっかかりたくない
cmdline_twitter 
• https://github.com/chromabox/ 
cmdline_twitter 
• libcurl, picojsonを使ってC++で書かれた簡潔な 
terminal用Twitterクライアント 
• 一行もコード書かなくても最初からUserstream 
動いた 
• これを改造しよう
一晩くっきんぐ 
1. Lua CLIのC側コードからCLIの初期化とコマン 
ドの実行のコードを抽出、関数つくる 
void cmd_init(void) 
int cmd_run(const char *line) 
2. cmdline_twitterのUserstreamハンドラのうち 
Mention部分を乗っ取り 
文字列から「@ユーザ名」を削除して 
cmd_run()にぶち込む
でも
感想 
• コマンド出力つぶやきたい人生だった 
• 送信元ユーザ制限しないとあぶなくてしょうが 
ない

More Related Content

PDF
OSvのご紹介 in OSC2014 Tokyo/Fall
PDF
OSvのご紹介 in 
Java 8 HotSpot meeting
PDF
Presentation on your terminal
PDF
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
PPTX
Seastar in 歌舞伎座.tech#8「C++初心者会」
PDF
仮想化環境におけるパケットフォワーディング
PPTX
Containerで変わるDevOps
PDF
コンテナ事例 CircleCI, Cucumber-Chef
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in 
Java 8 HotSpot meeting
Presentation on your terminal
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
Seastar in 歌舞伎座.tech#8「C++初心者会」
仮想化環境におけるパケットフォワーディング
Containerで変わるDevOps
コンテナ事例 CircleCI, Cucumber-Chef

What's hot (19)

PDF
introduction of WalB
PDF
Bossan dentoo
PDF
Couch DB in 15minutes
PPTX
社内勉強会(Docker)
KEY
Clojureの発表など
PDF
XenServer Overview
PPTX
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
PDF
Kubernetesを触ってみた
PDF
CephとGluster次期バージョンでの新機能
PDF
DockerとKubernetesが作る未来
PDF
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
PDF
Using LXC on Production
PDF
フィードフォースと AWS と私
PDF
OpenStack Block Storage (Cinder)
PDF
Docker, Kubernetes and OpenShift v3
PDF
【dots. IT勉強会】開発環境のDocker化
PDF
VagrantユーザのためのDocker入門
PDF
DockerからKubernetesへのシフト
introduction of WalB
Bossan dentoo
Couch DB in 15minutes
社内勉強会(Docker)
Clojureの発表など
XenServer Overview
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
Kubernetesを触ってみた
CephとGluster次期バージョンでの新機能
DockerとKubernetesが作る未来
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
Using LXC on Production
フィードフォースと AWS と私
OpenStack Block Storage (Cinder)
Docker, Kubernetes and OpenShift v3
【dots. IT勉強会】開発環境のDocker化
VagrantユーザのためのDocker入門
DockerからKubernetesへのシフト
Ad

Viewers also liked (20)

PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
PDF
Ethernetの受信処理
PDF
10GbE時代のネットワークI/O高速化
PDF
UEFI時代のブートローダ
PDF
僕のIntel nucが起動しないわけがない
PDF
マルチコアとネットワークスタックの高速化技法
PDF
OSvの概要と実装
PDF
ヤマノススメ〜秋山郷 de ハッカソン〜
PDF
デバドラを書いてみよう!
PDF
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
PDF
Hack tutorial
PDF
Railsチュートリアルの歩き方 (第3版)
PDF
低レイヤー入門
PDF
OSv at Cassandra Summit
PPTX
ゼロから始める自作 CPU 入門
PPS
Viagra
PPTX
How to Draw Faces
PDF
Driving at Work HSE Guide
PPTX
Senior baby pics
PPTX
Best of steve jobs
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Ethernetの受信処理
10GbE時代のネットワークI/O高速化
UEFI時代のブートローダ
僕のIntel nucが起動しないわけがない
マルチコアとネットワークスタックの高速化技法
OSvの概要と実装
ヤマノススメ〜秋山郷 de ハッカソン〜
デバドラを書いてみよう!
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
Hack tutorial
Railsチュートリアルの歩き方 (第3版)
低レイヤー入門
OSv at Cassandra Summit
ゼロから始める自作 CPU 入門
Viagra
How to Draw Faces
Driving at Work HSE Guide
Senior baby pics
Best of steve jobs
Ad

Similar to OSv噺 (20)

PDF
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
PDF
How to use Ceph RBD as CloudStack Primary Storage
PDF
OSvパンフレット v3
PDF
Windows PowerShell 2.0 の基礎知識
PPTX
Introduce couchbase server
PPTX
PHP on Cloud
PDF
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
PDF
クラウド開発に役立つ OSS あれこれ
PDF
Osc2009 Do Xen Hara
PDF
OSC2012 Nagoya - OpenStack - Storage System; Overview
PDF
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
PDF
OpenShift v3 Technical Overview
PDF
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
PDF
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
PDF
201709 osc josug
PDF
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
PDF
OpenWhisk - Docker action で MeCab を動かす
PDF
Azure DevOps と開発管理
PDF
AWSクラウドデザインパターン(CDP) - Eコマース編 -
PPTX
EWD 3トレーニングコース#1 Node.jsとCacheの連携
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
How to use Ceph RBD as CloudStack Primary Storage
OSvパンフレット v3
Windows PowerShell 2.0 の基礎知識
Introduce couchbase server
PHP on Cloud
[INSIGHT OUT 2011] B27 SQL Anywhereの先進のセルフヒーリング技術について(glenn paulley)
クラウド開発に役立つ OSS あれこれ
Osc2009 Do Xen Hara
OSC2012 Nagoya - OpenStack - Storage System; Overview
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
OpenShift v3 Technical Overview
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
201709 osc josug
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
OpenWhisk - Docker action で MeCab を動かす
Azure DevOps と開発管理
AWSクラウドデザインパターン(CDP) - Eコマース編 -
EWD 3トレーニングコース#1 Node.jsとCacheの連携

More from Takuya ASADA (15)

PDF
Linux network stack
PDF
Interrupt Affinityについて
PDF
OSvパンフレット
PDF
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
PDF
「ハイパーバイザの作り方」読書会#2
PDF
「ハイパーバイザの作り方」読書会#1
PDF
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
PDF
仮想化環境での利用者公平性
PDF
MMIO on VT-x
PDF
Implements BIOS emulation support for BHyVe
PDF
Play with UEFI
PDF
BHyVe: The BSD Hypervisor
KEY
OpenBSDな生活
PDF
/proc/irq/&lt;irq>/smp_affinity
PDF
Rps・rfs等最新linux kernel事例
Linux network stack
Interrupt Affinityについて
OSvパンフレット
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#1
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
仮想化環境での利用者公平性
MMIO on VT-x
Implements BIOS emulation support for BHyVe
Play with UEFI
BHyVe: The BSD Hypervisor
OpenBSDな生活
/proc/irq/&lt;irq>/smp_affinity
Rps・rfs等最新linux kernel事例

Recently uploaded (7)

PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
PDF
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Working as an OSS Developer at Ruby Association Activity Report 2025
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ

OSv噺