Soumettre la recherche
Mettre en ligne
Presentation on your terminal
•
7 j'aime
•
4,902 vues
Takuya ASADA
Suivre
Kernel/VM探検隊@沖縄
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 33
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
OSvのご紹介 in Java 8 HotSpot meeting
OSvのご紹介 in Java 8 HotSpot meeting
Takuya ASADA
OSv噺
OSv噺
Takuya ASADA
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
Takuya ASADA
Clojureの発表など
Clojureの発表など
Kikuta Go
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Yukihiko SAWANOBORI
introduction of WalB
introduction of WalB
MITSUNARI Shigeo
フィードフォースと AWS と私
フィードフォースと AWS と私
a know
Recommandé
OSvのご紹介 in Java 8 HotSpot meeting
OSvのご紹介 in Java 8 HotSpot meeting
Takuya ASADA
OSv噺
OSv噺
Takuya ASADA
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
Takuya ASADA
Clojureの発表など
Clojureの発表など
Kikuta Go
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Yukihiko SAWANOBORI
introduction of WalB
introduction of WalB
MITSUNARI Shigeo
フィードフォースと AWS と私
フィードフォースと AWS と私
a know
XenServer Overview
XenServer Overview
Kimihiko Kitase
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
Containerで変わるDevOps
Containerで変わるDevOps
shokiri
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
さくらのインフラコード
さくらのインフラコード
Yukihiko SAWANOBORI
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
mizusawa
Couch DB in 15minutes
Couch DB in 15minutes
Yohei Sasaki
Using LXC on Production
Using LXC on Production
Isao Shimizu
Bossan dentoo
Bossan dentoo
kubo39
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
Introduction to arm virtualization
Introduction to arm virtualization
Takaya Saeki
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
y_taka_23
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
社内勉強会(Docker)
社内勉強会(Docker)
Shinya Sasaki
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Tsuyoshi Maeda
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
Masaomi Kudo
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Kazuto Kusama
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
Contenu connexe
Tendances
XenServer Overview
XenServer Overview
Kimihiko Kitase
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
Containerで変わるDevOps
Containerで変わるDevOps
shokiri
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
さくらのインフラコード
さくらのインフラコード
Yukihiko SAWANOBORI
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
mizusawa
Couch DB in 15minutes
Couch DB in 15minutes
Yohei Sasaki
Using LXC on Production
Using LXC on Production
Isao Shimizu
Bossan dentoo
Bossan dentoo
kubo39
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
Introduction to arm virtualization
Introduction to arm virtualization
Takaya Saeki
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
y_taka_23
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
社内勉強会(Docker)
社内勉強会(Docker)
Shinya Sasaki
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Tsuyoshi Maeda
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
Masaomi Kudo
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
Kazuto Kusama
Tendances
(19)
XenServer Overview
XenServer Overview
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
Containerで変わるDevOps
Containerで変わるDevOps
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
さくらのインフラコード
さくらのインフラコード
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
Couch DB in 15minutes
Couch DB in 15minutes
Using LXC on Production
Using LXC on Production
Bossan dentoo
Bossan dentoo
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Introduction to arm virtualization
Introduction to arm virtualization
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
社内勉強会(Docker)
社内勉強会(Docker)
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Jenkins with Docker
Jenkins with Docker
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
En vedette
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
Takuya ASADA
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
Interrupt Affinityについて
Interrupt Affinityについて
Takuya ASADA
OSvの概要と実装
OSvの概要と実装
Takuya ASADA
Hack tutorial
Hack tutorial
Wakana Yoshizawa
Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)
Yohei Yasukawa
低レイヤー入門
低レイヤー入門
demuyan
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
The end of injection education
The end of injection education
Brightwave Group
Kelly ruggles
Kelly ruggles
Kelly Ruggles
对简易几何机械化证明的进一步研究
对简易几何机械化证明的进一步研究
Lixun Peng
Kelly C. Ruggless
Kelly C. Ruggless
Kelly Ruggles
Multiqueue BPF support and other BPF feature
Multiqueue BPF support and other BPF feature
Takuya ASADA
En vedette
(20)
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Ethernetの受信処理
Ethernetの受信処理
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
UEFI時代のブートローダ
UEFI時代のブートローダ
Interrupt Affinityについて
Interrupt Affinityについて
OSvの概要と実装
OSvの概要と実装
Hack tutorial
Hack tutorial
Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)
低レイヤー入門
低レイヤー入門
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
The end of injection education
The end of injection education
Kelly ruggles
Kelly ruggles
对简易几何机械化证明的进一步研究
对简易几何机械化证明的进一步研究
Kelly C. Ruggless
Kelly C. Ruggless
Multiqueue BPF support and other BPF feature
Multiqueue BPF support and other BPF feature
Similaire à Presentation on your terminal
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
Takeshi Komiya
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
20160728 hyperscale #03
20160728 hyperscale #03
ManaMurakami1
Open modeler
Open modeler
Yoshiki Izumi
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Mori Shingo
Osoljp201204
Osoljp201204
Masataka Tsukamoto
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
将 高野
2015年7月期AITC女子会「D3.js/Highchartsによるデータの可視化」
2015年7月期AITC女子会「D3.js/Highchartsによるデータの可視化」
aitc_jp
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
yaegashi
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
Masataka Tsukamoto
Unityの夕べ in Fukuoka
Unityの夕べ in Fukuoka
Shinobu Izumi
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
Hironori Sekine
Azure de debian
Azure de debian
Kazumi Hirose
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
Kazuki Takai
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
KUNITO Atsunori
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Takeshi Komiya
Similaire à Presentation on your terminal
(20)
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
20160728 hyperscale #03
20160728 hyperscale #03
Open modeler
Open modeler
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
Osoljp201204
Osoljp201204
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
2015年7月期AITC女子会「D3.js/Highchartsによるデータの可視化」
2015年7月期AITC女子会「D3.js/Highchartsによるデータの可視化」
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
Unityの夕べ in Fukuoka
Unityの夕べ in Fukuoka
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
Azure de debian
Azure de debian
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Plus de Takuya ASADA
OSvパンフレット v3
OSvパンフレット v3
Takuya ASADA
Linux network stack
Linux network stack
Takuya ASADA
OSvパンフレット
OSvパンフレット
Takuya ASADA
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
Takuya ASADA
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
仮想化環境での利用者公平性
仮想化環境での利用者公平性
Takuya ASADA
MMIO on VT-x
MMIO on VT-x
Takuya ASADA
Implements BIOS emulation support for BHyVe
Implements BIOS emulation support for BHyVe
Takuya ASADA
Play with UEFI
Play with UEFI
Takuya ASADA
BHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
Takuya ASADA
OpenBSDな生活
OpenBSDな生活
Takuya ASADA
/proc/irq/<irq>/smp_affinity
/proc/irq/<irq>/smp_affinity
Takuya ASADA
Rps・rfs等最新linux kernel事例
Rps・rfs等最新linux kernel事例
Takuya ASADA
Plus de Takuya ASADA
(15)
OSvパンフレット v3
OSvパンフレット v3
Linux network stack
Linux network stack
OSvパンフレット
OSvパンフレット
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
仮想化環境での利用者公平性
仮想化環境での利用者公平性
MMIO on VT-x
MMIO on VT-x
Implements BIOS emulation support for BHyVe
Implements BIOS emulation support for BHyVe
Play with UEFI
Play with UEFI
BHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
OpenBSDな生活
OpenBSDな生活
/proc/irq/<irq>/smp_affinity
/proc/irq/<irq>/smp_affinity
Rps・rfs等最新linux kernel事例
Rps・rfs等最新linux kernel事例
Dernier
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Dernier
(9)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Presentation on your terminal
1.
Presentation on your
terminal @syuu1228
2.
Who am I?
• @syuu1228 • 「カーネル/VM探検隊」を東京で始めたひと • FreeBSD developer(bhyveとか) • Software Designで「ハイパーバイザの作り方」を連載 バックナンバーを公開中:http://goo.gl/8AVRb8 • Cloudius SystemsでOSvを開発
3.
OSvとは? • OSvは単一のアプリケーションをハイパーバイ
ザ・IaaSでLinuxOSなしに実行するための新しい 仕組み • より効率よく高い性能で実行 • よりシンプルに管理しやすく • サーバアプリ専用なのでGUIとかない 基本シリアルコンソール
4.
in OSC京都2014
5.
んん? • Xが無いのにmikutterが走っている
• 単にフレームバッファに背景画像を貼っているだ けではない、アイコンと画像が表示出来ている
6.
注目
7.
What…? • 主犯
展示者の@tsutsuiiさんに仕組みを伺ってみ た • mikutterのデーモンモード(GUIなし)に terminalへTLを表示するプラグインを追加、そ こにSixelで画像を表示しているとの事 • 詳しくは http://www.ceres.dti.ne.jp/tsutsui/ osc2013kyoto/img00.html
8.
terminalに画像表示…? • 可能です
• その為のエスケープシーケンスが用意されています→Sixel(ビットマップ画 像用) • DEC VT2xx-VT3xx(物理的な端末)の機能 • もちろんTERM=vt100では出来ない • terminal emulatorが対応しているとは限らない • 最近terminal emulatorでSixel対応した例が増えて来ている! 参考:http://togetter.com/li/375434 • ベクタ画像用のエスケープシーケンスもあるらしい→ReGIS
9.
Sixel対応terminal emulator •
mlterm (Windows, X, Framebuffer) • luna68kではfb版で動いていた • RLogin (Windows) • XTerm (X) • tansinn (Firefox)
10.
Windowsでも
11.
Macでも
12.
luna68kでも
13.
x68kでも
14.
Sixelデモ
15.
Sixelエスケープシーケンスの 例 <ESC>Pq
#0;2;0;0;0#1;2;100;100;0#2;2;0;100;0 #1~~@@vv@@~~@@~~$ #2??}}GG}}??}}??- #1!14@ <ESC> !
16.
もしかして • 手元でmlterm立ち上げとけばOSvで
グラフィック表示余裕では
17.
_人人人人人人_ > 余裕では < ‾Y^Y^Y^Y^Y‾
18.
mikutter on OSv?
• グラフィック以前の問題として、 今の所OSv上のRubyの問題で正常実行できない • 今はmikutter on luna68kと同じ事するのは無 理 • おあずけ
19.
何か作ってみよう • でも、ただLinuxやMacの上でSixelで画像表示
しても簡単すぎて何もおもしろくない • OSvで画像表示もLinuxとそんなに変わらない • じゃあOS無しでやろうか
20.
sixelでプレゼン? スライドデータ +
シリアル出力 + ページ操作 mlterm シリアル接続
21.
作ってみた • sixelslide
https://github.com/syuu1228/sixelslide • 良い感じのデバイスで沖縄持ってきてすぐ使える 状態のものが手元になかったので、取り敢えず QEMUで動かした
22.
sixelslideデモ
23.
実装方針 • 取り敢えずqemu-system-i386向けに書く
• x86(32bit) multiboot specification ELF • 叩くデバイスはCOM1のみ • COM1へのwrite:Sixelでスライド出力 • COM1からのread:ページ操作 • HDD, NIC, クロックなど他デバイスは使わない • メモリ管理はしない、全て静的に確保
24.
スライドをELFバイナリに 埋め込む convert
slide.pdf slide.png for i in slide-*.png; do img2sixel $i ${i/.png/.txt}; done for i in slide-*.txt; do ld -r -b binary -o ${i/.txt/.o} $i done ld -o kernel kernel.o slide-*.o
25.
プログラムからの参照 char *p
= (char *) &_binary_slide_0_txt_start; char *end = (char *) &_binary_slide_0_txt_end; while (p < end) com_putc(*p++);
26.
参照を配列にしたい • このままだと出来ない
• ELFパーサを実装すれば _binary_slide_n_txt_startをイテレートできる • 今はめんどくさい • やっつけRubyスクリプトで配列生成
27.
やっつけ感 num_slides =
Dir.glob("slide-*.png").count puts "char *slide_start[] = {" (0...num_slides).each do |i| puts "(char *)&_binary_slide_#{i} _txt_start," end puts "};"
28.
スライド操作 • 良く分からないけどviっぽく
• k = 上(1ページ戻る) • j = 下(1ページ進む) • h = 左(1ページ戻る) • l = 右(1ページ進む) • q = 終了 • 1 = 1ページ目へ戻る
29.
コード量 $ cat
main.c io.c io.h power.c power.h boot.s com.c com.h sixelslide.ld|wc -l 195 $ cat genslide*.rb|wc -l 26 $ cat Makefile |wc -l 46
30.
PDF vs ELFバイナリサイズ
$ ls -lh slide.pdf -rw-rw-r-- 1 syuu syuu 1.7M 9月 20 14:19 slide.pdf $ ls -lh sixelslide -rwxrwxr-x 1 syuu syuu 9.6M 9月 20 14:20 sixelslide
31.
ページ毎のサイズ ! $
ls -lh slide-0.png -rw-rw-r-- 1 syuu syuu 354K 9月 20 14:19 slide-0.png $ ls -lh slide-0.txt -rw-rw-r-- 1 syuu syuu 317K 9月 20 22:19 slide-0.txt $ ls -lh slide-0.o -rw-rw-r-- 1 syuu syuu 318K 9月 20 14:20 slide-0.o
32.
所要時間 • 一日
• 沖縄来てから書き始めた
33.
TODO • 動きそうなスペックのボードに移植する
→Intel Galileo? • スライドデータがデカくてスペック低い板じゃ無理そう 圧縮? 減色? • 単一のオブジェクトに全スライドを入れたい • データはELFバイナリビルド後に埋め込めるようにしたい or ファームウェア経由でファイルシステムからロード • 物理ボタンでスライド操作したい • framebufferに表示したい(mlterm-fb)
Télécharger maintenant