Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
すごいBareflank楽しく学ぼう!
Search
morimolymoly
November 11, 2018
Technology
1
130
すごいBareflank楽しく学ぼう!
ゆるふわ入門編
morimolymoly
November 11, 2018
Tweet
Share
More Decks by morimolymoly
See All by morimolymoly
AVTOKYO2022
morimolymoly
0
2k
Linuxの改造とパッチ
morimolymoly
0
2.4k
Porting Golang Runtime To Baremetal
morimolymoly
1
120
Other Decks in Technology
See All in Technology
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
340
開発パフォーマンスを最大化するための開発体制
ham0215
2
320
日本におけるデータエンジニアリングのこれまでとこれから
foursue
16
4.2k
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
410
アクセス制御にまつわる改善 / Improving access control
itkq
0
530
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
230
MySQL の SQL クエリチューニングの要所を掴む勉強会
andpad
2
6.2k
ServiceNow Knowledge Learning Rise up
manarobot
0
210
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
Databricks における 『MLOps』
databricksjapan
2
170
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
生産性向上チームの紹介
cybozuinsideout
PRO
1
870
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
The Cult of Friendly URLs
andyhume
74
5.7k
GitHub's CSS Performance
jonrohan
1025
450k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
What's new in Ruby 2.0
geeforr
337
31k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
274
13k
Code Reviewing Like a Champion
maltzj
514
39k
[RailsConf 2023] Rails as a piece of cake
palkan
23
3.9k
In The Pink: A Labor of Love
frogandcode
138
21k
Transcript
͍͢͝Bareflankָ͠ ֶ͘΅͏ʂ @Dentoo.LT #21 @morimolymoly
͜Μʹͪ
ࢲ morimolymoly a.k.a. ήΩΧϫͶ͜ΈΈϝΠυ řŐŕŲƄ:morimolymoly.com আ ීஈͬͯΔ͜ͱ • ใηΩϡϦςΟ •
Hypervisor • Twitter • ΞΠΧπ@10߸ؗΞΠΧπࢹௌεϖʔε ࣮MMA෦һͳΜͰ͢Ͷʙʙʙʙ
আ
ͯ͞ɼ
͘͡ • Hypervisorͱʁ • Bareflankͬͯͳʹ • Ͱ͖Δ͜ͱ • ͭΒ͍͜ͱ •
ৄղ Bareflank’s ϏϧυγεςϜ(͕࣌ؒ͋Ε -> ͳͦ͞ ͏ͳͷͰϒϩάͰॻ͘)
ΏΔ;Θʹೖ͍ͯ͠ ͖·͢
Let’s get started!
Hypervisorͱ ԾϚγϯΛཧ͢ΔͨΊͷγεςϜ Type1 - Baremetal Type2 - Host ϋʔυΣΞ Hypervisor
VM VM VM ϋʔυΣΞ Hypervisor VM VM VM ήετOS • Xen • KVM • Hyper-V • Bitvisor • VirtualBox • Qemu • Bochs
Is Կ •Hypervisor։ൃϑϨʔϜϫʔΫ •Type-1,2͕ͭ͘ΕΔʂ •LinuxɼWIndowsɼUEFIʹରԠ •x86-64ରԠ •ถۭ܉ݚڀॴൃͷελʔτΞοϓ͕։ൃ •ϕΞϝλϧͳͷʹC++Ͱ͔͚Δʂ •ͱͱͷ࣮͕͘͢͝ബ͍(࣮͕Ѳ͍͢͠) •։ൃָ͕ʂ(։ൃָ͕ͱݴ͍ͬͯͳ͍)
ͦ͢͝͏(খฒײ)
͏Ε͍͜͠ͱ • ࣮͕ബ͍ͷͰίʔυϦʔσΟϯάָ • ԾԽؔͷߏମ͕·ͱ·ͬͯͯΑ͖ • ϏϧυγεςϜ͕CMakeͰ·Ε͍ͯͯΏΔ;Θ • ϞμϯͳC++Ͱॻ͚Δͷ͏Ε͍͠ͱࢥ͏ •
STL͕͔ͭ͑Δ • gitterͰ࣭͢Δͱ։ൃऀ͕͘͞͠ڭ͑ͯ͘ΕΔ •
ͭΒ͍͜ͱ • ബ͍ϑϨʔϜϫʔΫ -> ࣗͰ༻ҙ͠Ζ • υΩϡϝϯτ͕ແ(͋Δ͚Ͳݹ͍) -> ςετίʔυ͋Δ͍͍͠? ->
ίϯτϦϏϡʔγϣϯͷ νϟϯε? ଞͷHypervisor(Xen, Bitvisor)ͷιʔεͱIntel SDMΛಡΊʂ͆
Αͦ͞͏จݙ • ʰϋΠύʔόΠβͷ࡞Γํʱhttp://syuu1228.github.io/howto_implement_hypervisor/ • ʰHypervisor From Scratchʱhttps://rayanfam.com/topics/hypervisor-from-scratch- part-1/ • Intel
SDM • Bitvisorͷιʔε - thin hypervisorͷྲّྀ͕Θ͔Δ(PassThrough Driverͱ͔) Γ͍ͨ͜ͱʹΑͬͯಡΉจݙ͋Γ͑Μଟ͘ͳΔ
۩ମతͳ֦ுํ๏ʁ • vcpuΫϥε(VMͷίΞ෦)Λܧঝͨ͠ΫϥεΛ࡞͢Δ͚ͩ
;Μ͍͖
ྫ ࢀߟ: http://github.com/Tr4pMafia • syscall -MSR-IA32-LSTARͷվ͟ΜʹΑΔsyscall໋ྩͷtrap • Int3 - INT3ͷtrap
• starter_kit - γϯϓϧͳ֦ு ࠓύεεϧʔυϥΠόͷ࣮ͱ͔Λ;͘Ή͍͍ײ͡ͷHypervisorΛ։ൃ͍ͯ͠Δ
͓ΘΓ