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
Apple Siliconへの移行 完全に理解した
Search
Yusaku-T
October 04, 2021
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Apple Siliconへの移行 完全に理解した
Yusaku-T
October 04, 2021
More Decks by Yusaku-T
See All by Yusaku-T
_実録_フレッツのIPv6_完全に理解した.pdf
yusakutnk
0
41
Apple_Siliconへの移行_完全に理解した.pdf
yusakutnk
0
110
【実録】フレッツのIPv6 完全に理解した
yusakutnk
0
480
Other Decks in Technology
See All in Technology
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
2
500
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
990
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
910
ダッシュボード"開発"について 〜使われるダッシュボードのつくりかた〜
kimichan
0
110
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
2
960
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
120
複数プロダクトで進めるAI機能実装 ── 実践から得たリアルな学びとロードマップ実現への挑戦 / AICon2026_yanari
rakus_dev
0
250
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
430
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
160
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
370
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
390
Multicaで30個のミニプロジェクトをAIエージェント運用して見えてきたこと
eiei114
1
590
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
52k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
460
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Test your architecture with Archunit
thirion
1
2.3k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Thoughts on Productivity
jonyablonski
76
5.3k
The Language of Interfaces
destraynor
162
27k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Docker and Python
trallard
47
4k
Transcript
Apple SiliconͷҠߦ શʹཧղͨ͠ 2020/6/25 Yusaku-T
ࣗݾհ • Yusaku-T • ࣾITΤϯδχΞ ◦ αʔόʔαΠυ͕ϝΠϯͰ͕͢ɺϑϩϯτΤϯυΠϯϑϥଟগ • ࣾΠϯλʔωοτਓձձ ◦
ͦΖͦΖެࣜϋϯυϧΛkaichoʹ͠Α͏͔ͱࢥͬͯ·͢
ൃද༰ • ॳࣗͷOCNϑϨοπճઢΛIPoE(IPv4 over IPv6)ʹҠߦͨ͠Λ͢Δ༧ఆͰͨ͠ ◦ ʮϑϨοπͷIPv6શʹཧղͨ͠ʯ • 6/23ʹMacͷCPUҠߦͷχϡʔε͕ྲྀΕ͖ͯͯɺܰ͘ௐͨΓؾʹͳͬͨ͜ͱΛϝϞ͍ͯ͠ ͨΒʮλΠϜϦʔͩͬͪ͜͠Λͨ͠ํ͕ྑ͍Μ͡Ό…ʁʯͱࢥ͍ɺٸᬎ༰มߋ͠·ͨ͠
◦ ͍Ͱ·ͱΊͨͷͰࣄ࣮ޡೝޙʹͳͬͯ໌͢Δ৽ࣄ࣮͋Δ͔͠Ε·ͤΜ ◦ ओʹITΤϯδχΞʹର͢ΔӨڹʹ͍ͭͯ͠·͢ • IPoE(IPv4 over IPv6)ʹ͍ͭͯདྷ݄͓͠͠·͢ ◦ ͜͜Ͱঢ়گ͕มԽͨ͠ͷͰͦΕΛө&ݕূΛՃ͠·͢
Apple Siliconͱʁ • ઌ(ݱ࣌ؒ6/22)ͷWWDC 2020Ͱൃද͞ΕͨMac ༻ͷ৽͍͠AppleಠࣗCPU • ։ൃΩοτػʹApple A12Z(iPad Pro
2020ͱಉ͡ CPU)͕ࡌ • ࣮ࡍͷMacʹผͳCPU͕ࡌ͞ΕΔࣄͱߟ͑ΒΕΔ ͕ɺجຊతʹiPhone/iPadͰΘΕΔApple AγϦʔ ζͱಉ͡64bit ARMΞʔΩςΫνϟͷCPUʹͳΔͣ جௐߨԋ https://developer.apple.com/videos/play/wwdc2020/101/ ΑΓ
Macͷྺ࢙CPUมߋͷྺ࢙(1/2) • Ұࣾఏڙ͔ͩΒͰ͖Δߥٕʢ͋ΔҙຯήʔϜػʹ͍ۙʣ • ࣌࣌ʹԠͯ͡࠷దʢͱࢥΘΕΔʣCPUΛબ͖ͯͨ͠ Motorola MC68000 (MEGA DRIVE, NEOGEO)
IBM PowerPC (Wii, PS3, Xbox 360) Intel x86/x64 (PS4, PS5, Xbox One) Apple Silicon(ARM) (Nintendo Switch, PS Vita) 1994 2006 1984 2020
Macͷྺ࢙CPUมߋͷྺ࢙(2/2) • ITΤϯδχΞʢಛʹWebܥΠϯϑϥܥʣʹMac͕େ͖͕ͬͨ͘ͷIntel CPUҎ߱ • ଟ͘ͷITΤϯδχΞʹͱͬͯॳͷCPUมߋʹͳΔʂ Motorola MC68000 (MEGA DRIVE,
NEOGEO) IBM PowerPC (Wii, PS3, Xbox 360) Intel x86/x64 (PS4, PS5, Xbox One) Apple Silicon(ARM) (Nintendo Switch, PS Vita) 1994 2006 1984 2020
Կ͕ʁ • ϓϩάϥϜ࠷ऴతʹCPU͕ཧղͰ͖Δػցޠʹม͞Ε࣮ͯߦ͞ΕΔ ◦ PythonJavaScriptͳͲͷεΫϦϓτݴޠ • ࠓ·ͰͷMacͷIntelܥCPU(x86/x64)ͱApple Silicon(ARM)Ͱɺ͜ͷػցޠͷܗ ͕ࣜશ͘ҧ͏ʂ ◦
ͦͦCISCͱRISCͱ͍͏େ·͔ͳ۠Γ͔Βͯ͠ҟͳΔ • ࠓ·ͰͷMacͰಈ͍͍ͯͨϓϩάϥϜ͕ಈ࡞͠ͳ͍ʂ
ҠߦͷͨΊͷαϙʔτ • Universal 2 ◦ 1ͭͷϓϩάϥϜϑΝΠϧͷதʹIntel൛ͱApple Silicon൛Λ ؚΊΔΈ • Rosetta
2 ◦ Intel൛ͷ࣮ߦόΠφϦʢϓϩάϥϜʣΛมͯ͠Apple SiliconͰ࣮ߦ͢ΔΈ ◦ Πϯετʔϧ࣌ͷҰׅมͱ࣮ߦ࣌ͷಈతมͷೋछྨͷಈ ࡞Λαϙʔτʁ ▪ https://news.mynavi.jp/article/osxhack-266/ • ʮ2ʯͱ͋ΔͷݩʑPowerPC→Intel CPUͷҠߦͷࡍʹ ΘΕٕͨज़͔ͩΒ ϓϥοτϑΥʔϜߨԋΑΓRosetta 2ͷઆ໌ https://developer.apple.com/videos/play/wwdc2020/101/ Α Γ
ͱ͍͑… • ύϑΥʔϚϯεΛߟ͑ΔͱApple Silicon(64bit ARM)ωΠςΟϒͰಈ͘ํ͕͋ Γ͕͍ͨ • ARM൛LinuxARM൛Windows 10༻ͷόΠ φϦ͕ఏڙ͞Ε͍ͯΔΦʔϓϯιʔειϑτ
ΣΞൺֱతૣظʹରԠ͢ΔͱࢥΘΕΔ • ϓϥοτϑΥʔϜߨԋͰMacITΤϯδχ Ξʹͱͬͯඇৗʹਓؾ͕͋Δͱͷݴٴ͋Γ ʮOSSͷҠߦΛࢧԉ͠ύονΛఏڙ͢Δʯͱද໌ͨ͠ ໘Ͱදࣔ͞ΕͨϦετ https://developer.apple.com/videos/play/wwdc2020/102/ ΑΓ
Apple७ਖ਼ͷΞϓϦ • Safari, iWork(Pages, Keynote, Numbers), XcodeͳͲ • ྲྀੴʹ͜ΕΒApple SiliconωΠςΟϒͰಈ͘ͷ͕৽Mac/Bug
Surͱಉ࣌ʹఏڙ ͞ΕΔͣ • ಈըฤूͷFinal Cut Pro XԻָฤूͷLogicͱ͍ͬͨॏ͍ΞϓϦͷσϞΛྲྀ͢ͳ ͲAppleͷ৽CPUͷࣗ৴͕͑Δ ◦ ͍͖ͳΓApple SiliconࡌͷMacbook ProMac Pro͋ͨΓ͕ग़Δ͔ʁ
Microsoft(Office), Adobe(Creative Cloud) • WWDCͷجௐߨԋͰσϞ • ϨΨγʔͳػೳΛϑϧαϙʔτͯ͘͠ΕΔ͔ʁ ◦ Office 2003·ͰͷچܗࣜϑΝΠϧͱ͔VBAͱ͔
◦ Adobeʹ͍ͭͯ࠷ۙόʔδϣϯͷΞϓϦ͔ΒରԠ ▪ Lightroom Classicͱ͔ඇରԠʢΒ͍͠ʣ
Webϒϥβ • Google Chrome, Firefox͍ͣΕARM൛Windows 10ͷόΠφϦͷఏڙ͋Γ • Adobe FlashͳͲ֤छϓϥάΠϯ͕ඞཁͳWebϖʔδΛݟΔ͜ͱͦ͠͏ ◦
ࠓ͍ͬͺ͍ͰαϙʔτऴྃͰ͕͢…
Homebrew • ϕʔεͱͳ͍ͬͯΔUNIXܥͷOSSଟ͘ARM൛LinuxͰಈ͘ͷͰରԠ͢Δͣ ◦ લड़ͷ௨ΓϓϥοτϑΥʔϜߨԋͰαϙʔτΛൃද • PowerPC൛ͷHomebrewͰ͋ΔTigerbrewͳΔͷ͕͋Γɺະͩʹϝϯς͞Ε͍ͯ Δʂ ◦ https://github.com/mistydemeo/tigerbrew
ElectronϕʔεͷσεΫτοϓΞϓϦ • VS Code, Postman, SlackΫϥΠΞϯτ, DiscordΫϥΠΞϯτͳͲ • ϕʔεͱͳΔElectron7.0͔ΒARM൛WindowsʹରԠ ◦
https://forest.watch.impress.co.jp/docs/news/1214252.html • VS Codeʹ͍ͭͯ1.46͔ΒARM൛Windows 10ʹରԠ ◦ https://code.visualstudio.com/insiders/#win
։ൃݴޠ(1/2) • Python, Ruby, Node.jsͷεΫϦϓτݴޠ ◦ ଟ͘ͷΠϯλϓϦλ͕ARM൛LinuxͰಈ࡞ ◦ Python, Ruby͋ͨΓ৽OSͷBig
SurʹApple SiliconରԠ൛͕όϯυϧ͞ΕΔͣ ◦ ϥΠϒϥϦʹΑͬͯCͳͲͰॻ͔ΕͨωΠςΟϒίʔυΛؚΉͷͰཁҙ • Java ◦ ARM൛LinuxͰಈ͘OpenJDK͕ఏڙͣΈ ▪ https://adoptopenjdk.net/releases.html ◦ ωΠςΟϒίʔυΛؚΉϥΠϒϥϦʹ͍ͭͯಉ্
։ൃݴޠ(2/2) • Go, RustͳͲͷʢωΠςΟϒίʔυʣίϯύΠϥܕݴޠ ◦ Go, RustARM൛LinuxͷίϯύΠϥ͕͋Γ ▪ Go: https://golang.org/dl/
▪ Rustʹؔͯ͠Tier 2: https://forge.rust-lang.org/release/platform-support.html • ͍ͣΕͷݴޠաڈͷόʔδϣϯʹḪͬͯApple Silicon൛MacʹωΠςΟϒରԠ͢Δ͔ʁ ◦ Python 2.7Java 8ͳͲ ◦ อकҊ݅ͳͲͰຯʹʹͳΔՄೳੑ ◦ Rosetta 2ܦ༝Ͱ࣮ߦ͢Δ͔ඇެࣜόΠφϦΛར༻͢Δ͔ ▪ ؤுͬͯࣗྗϏϧυ͢Δͱݴ͏ͷͪΖΜΞϦ
ԾԽɾίϯςφ • ࠓճͷCPUมߋͰେ͖ͳӨڹ ͕͋Δͱߟ͑ΒΕΔ • جௐߨԋͰParallels DockerͷσϞը໘͕ొ • ʮVirtualizationʯͳΔԾԽ ϑϨʔϜϫʔΫ͕Big
SurͰ Ճ͞ΕΔ https://developer.apple.com/videos/play/wwdc2020/101/ Α Γ
Ͳͬͪͷํࣜʁ 1. CPUΤϛϡϨʔγϣϯΛߦΘͣɺARM൛ͷԾOSίϯςφΛ࣮ߦ͢Δ 2. CPUΤϛϡϨʔγϣϯΛߦ͍ɺIntel CPU൛ͷԾOSίϯςφΛ࣮ߦ͢Δ
1.ͷํࣜͷ༷ • ϓϥοτϑΥʔϜߨԋͰʮARM൛ ͷDebian LinuxΛಈ͔͍ͯ͠Δʯ ൃݴ͓Αͼը໘͋Γ ◦ https://applech2.com/archives/ 20200623-apple-silicon-mac- new-hypervisor-virtualization.html
◦ https://developer.apple.com/ videos/play/wwdc2020/102/ https://developer.apple.com/videos/play/wwdc2020/102/ ΑΓ
ARM൛DockerίϯςφͰൃੜ͢Δ • DockerHubͰARM൛ͷίϯςφΠϝʔδ͕ఏڙ͞Ε͍ͯͳ͍߹͕͋Δ ◦ ଟ͘ରԠͭͭ͋͠Δ͕ɺྫ͑MySQLʢެࣜʣͳͲݱ࣌ͰະରԠ • ։ൃڥͱӡ༻ڥͰಈ͔͢ίϯςφΠϝʔδʹࠩҟ͕ൃੜ͢Δ ◦ Ϩϯλϧαʔόʔ֤छΫϥυͷαʔόʔ͕Intel/AMD͔ΒARMܥʹҰؾʹΓସΘΔ͜ͱͳ͍ͣ ▪
ӡ༻ڥ͚ͷίϯςφIntel CPU͚ʹ࠶ߏஙɾ࠶ݕূ͕ඞཁʹͳΔ • JenkinsCircle CIͰCI/CDΛΜͰ͍Δ߹ࠓ·Ͱ௨Γ ◦ τϥϒϧൃੜ࣌ͷͷΓ͚Ͱߟྀ͢Δཁૉ͕૿͑Δ ◦ ӡ༻ڥͰ͕ى͖ͨΠϝʔδΛҾͬுͬͯϩʔΧϧͷMacͰݕূ…ͱ͍ͬͨ͜ͱ͕Ͱ͖ͳ͘ͳΔ
Intel CPU൛DockerίϯςφͰൃੜ͢Δ • ݱࡏMac൛DockerʹQEMUΛͬͯARMPowerPCͳͲΛΤϛϡϨʔγϣϯ͢ Δػೳ͕͋Δ ◦ https://qiita.com/hnw/items/99e207d16b313f027528 • ͜ΕΛٯʹద༻͢ΔࣄͰIntel CPU൛ͷDockerΠϝʔδ͕ಈ͘ʁ
◦ Rosetta 2ͷػೳ͑ͳͦ͞͏ʁ • ͨͩͰ͑͞ॏ͍MacͷDocker͕͞Βʹॏ͘ͳΔͱ͍͏
ΞϯνΠϧειϑτΣΞʢهʣ • ࠓͷॴARM൛LinuxARM൛WindowsʹରԠͨ͠ݟͨΒͣ ◦ OSSͷClamAV͕ಈ࡞͢Δఔʁ • ݸਓ։ൃΑΓνʔϜ։ൃاۀͰͷେྔಋೖʢޙड़ʣͷࡍʹʹͳΔ ◦ ΞϯνΠϧειϑτΣΞ͕ಋೖ͞Ε͍ͯͳ͍ʢಋೖͰ͖ͳ͍ʣPCISMSࣾη ΩϡϦςΟϙϦγʔʹ৮͢ΔՄೳੑ
◦ ྫ͑Apple SiliconͷMacʹӨڹٴ΅͞ͳ͘ͱɺଞϓϥοτϑΥʔϜͰಈ࡞͢ΔϚϧ ΣΞ͕ݟಀ͞ΕͯϩʔΧϧετϨʔδʹอଘ͞ΕΔՄೳੑ͕͋Δ
ػցֶश • શ͘ཧղͯ͠ͳ͍Ͱ͢ • NumPy, TensorFlow, PyTorchͱݴͬͨϥΠϒϥϦPythonϕʔεͱ͍͑Cݴޠͷίʔυؚ·Εͯ ͍ΔͷͰɺϥΠϒϥϦݸผͷରԠඞཁ ◦ Raspberry
PiͳͲARM൛LinuxͰಈ͔ͯ͠Δέʔε͋Γ • CPUApple SiliconʹมΘΔ͕ɺGPUͲ͏ͳΔʁ ◦ AMDΛ͍ଓ͚Δʁ ◦ NVIDIAʹҠߦ͢Δʁ ◦ ·͔͞GPUAppleಠࣗ։ൃʹͳΔʁ
εϚʔτϑΥϯΞϓϦ։ൃ • શ͘ཧղͯ͠ͳ͍Ͱ͢ • iOSΞϓϦ։ൃ ◦ XCodeྲྀੴʹApple SiliconωΠςΟϒରԠ͢Δͣ • AndroidΞϓϦ։ൃ
◦ Android StudioJavaϕʔε(IntelliJϕʔε)ͳͷͰɺJava͕ωΠςΟϒରԠ͢ΕͳΜͱ͔ͳΔͣ • ΫϩεϓϥοτϑΥʔϜ։ൃ(Flutter, XamarinͳͲ) ◦ Θ͔Βͳ͍Ͱ͢
ήʔϜ։ൃ • શ͘ཧղͯ͠ͳ͍Ͱ͢ • Unityͷ։ൃπʔϧͷσϞ͕ొ https://developer.apple.com/videos/play/wwdc2020/102/ ΑΓ
νʔϜ։ൃ(1/2) • ։ൃ༻ͷି༩PCͱͯ͠MacΛେྔಋೖ͍ͯ͠ΔاۀͳͲ • ҠߦظؒதIntelͱApple SiliconͷMac͕اۀɾ։ൃνʔϜͳͲͰࠞࡏ͢ΔࣄʹͳΔ ◦ શ෦Apple SiliconͷMacʹҠߦ͢Δʁ ▪
අ༻໘ɾޓੑͷ ◦ Intel CPUͷMacΛߪೖ͠ଓ͚Δʁ ▪ Ҡߦظؒ2 ▪ Intel CPU൛MacmacOSͷߋ৽ʹैͰ͖ͳ͘ͳΔ • PowerPC→Intel CPUͷ࣌Ҡߦޙͷ࣍ͷόʔδϣϯ(OS X 10.6)͕࠷ऴ ◦ ͍ͬͦWindowsʹҠߦ͢Δʁ ▪ طଘMacʹBootCampͰWindowsΛಋೖ͠৽ͨʹWindows PCΛങ͍͍ͯ͘͠ ▪ DockerλʔϛφϧͳͲɺWindowsͷ։ൃऀαϙʔτॆ࣮ͭͭ͋͠Δ
νʔϜ։ൃ(2/2) • τϥϒϧ͕ى͖ͨ࣌ͷͷΓ͚͕͘͠ͳΔ ◦ ৽ଔ͕Apple SiliconͷMacΛ͖࣋ͬͯͯʮ͜Εಈ͔ͳ͍ΜͰ͚͢Ͳ…ʯͱݴ͖ͬͯͨͱ͖Ͳ͏͢Δʁ • ։ൃڥͷߏஙखॱॻͳͲɺ྆ํͷCPUڥΛߟྀͯ͠ॻ͘ඞཁ͕ग़ͯ͘Δ ◦ ֤छΞϓϦͷΠϯετʔϧʹؔͯ͠લड़ͷUniversal
2Ͱ͋ΔఔҰຊԽͰ͖Δͣ • ৽ଔʹ҆ఆͨ͠Intel CPUͷMacΛି༩͠ɺ։ൃܦݧͷ͍ITΤϯδχΞʹApple Siliconͷ MacΛି༩ͯ͠Λચ͍ग़ͯ͠Β͏ɺͱ͍ͬͨඞཁ͔ʁ ◦ ਓͷۚͰ͘Apple SiliconͷMacΛ͍͍ͨͱݴ͍ͬͯΔΘ͚Ͱͳ͍
·ͱΊ • MacͷCPU͕Apple SiliconʹมΘΔͱʢͦͷ··Ͱʣࠓ·ͰͷϓϩάϥϜ͕ಈ͔ͳ͘ͳΔ Α • ެࣜͷҠߦαϙʔτ͋Δ͠ɺARM൛Windows/LinuxʹωΠςΟϒରԠ͍ͯ͠ΔΞϓϦۙ ͍͏ͪʹApple SiliconͷMacʹରԠ͢Δͱࢥ͏Αʢظʣ •
ԾԽɾίϯςφΛͬͨ։ൃͪΐͬͱӨڹ͕େ͖ͦ͏ͩΑ • νʔϜ։ൃͰCPU͕౷Ұ͞Εͯͳ͍ࣄʹΑΔτϥϒϧ͕ى͖͏Δ͔Βɺӡ༻ɾυΩϡϝϯ τɾπʔϧͳͲͰΧόʔ͢Δඞཁ͕͋Γͦ͏ͩΑ