Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Apple Siliconへの移行 完全に理解した
Search
Yusaku-T
October 04, 2021
Technology
400
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
47
Apple_Siliconへの移行_完全に理解した.pdf
yusakutnk
0
120
【実録】フレッツのIPv6 完全に理解した
yusakutnk
0
510
Other Decks in Technology
See All in Technology
今こそ知りたいAmplifyGen2
mkdev10
2
160
Loop Engineering これくらいでいい
mikanichinose
0
230
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
190
Running Kotlin + Quarkus with Lambda
nealle
1
450
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
220
自分で立ててみるLLMサービス
y_sera15
0
160
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
120
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
290
パッチ更新でterraform initが落ちた日
grimoh
1
120
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
2
850
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
390
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Navigating Weather and Climate Data
rabernat
0
550
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Curious Case for Waylosing
cassininazir
1
560
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
The browser strikes back
jonoalderson
0
1.8k
Documentation Writing (for coders)
carmenintech
77
5.6k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
620
Scaling GitHub
holman
464
140k
Become a Pro
speakerdeck
PRO
31
6.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Code Review Best Practice
trishagee
74
20k
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͕౷Ұ͞Εͯͳ͍ࣄʹΑΔτϥϒϧ͕ى͖͏Δ͔Βɺӡ༻ɾυΩϡϝϯ τɾπʔϧͳͲͰΧόʔ͢Δඞཁ͕͋Γͦ͏ͩΑ