Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apple Siliconへの移行 完全に理解した

Yusaku-T
October 04, 2021

Apple Siliconへの移行 完全に理解した

Yusaku-T

October 04, 2021
Tweet

More Decks by Yusaku-T

Other Decks in Technology

Transcript

  1. ൃද಺༰ • ౰ॳ͸ࣗ୐ͷOCNϑϨοπճઢΛIPoE(IPv4 over IPv6)ʹҠߦͨ͠࿩Λ͢Δ༧ఆͰͨ͠ ◦ ʮϑϨοπͷIPv6׬શʹཧղͨ͠ʯ • 6/23ʹMacͷCPUҠߦͷχϡʔε͕ྲྀΕ͖ͯͯɺܰ͘ௐ΂ͨΓؾʹͳͬͨ͜ͱΛϝϞ͍ͯ͠ ͨΒʮλΠϜϦʔͩͬͪ͜͠Λ࿩ͨ͠ํ͕ྑ͍Μ͡Ό…ʁʯͱࢥ͍ɺٸᬎ಺༰มߋ͠·ͨ͠

    ◦ ੎͍Ͱ·ͱΊͨͷͰࣄ࣮ޡೝ΍ޙʹͳͬͯ൑໌͢Δ৽ࣄ࣮౳͋Δ͔΋͠Ε·ͤΜ ◦ ओʹITΤϯδχΞʹର͢ΔӨڹʹ͍ͭͯ࿩͠·͢ • IPoE(IPv4 over IPv6)ʹ͍ͭͯ͸དྷ݄͓࿩͠͠·͢ ◦ ͜͜਺೔Ͱঢ়گ͕มԽͨ͠ͷͰͦΕΛ൓ө&ݕূΛ௥Ճ͠·͢
  2. 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/ ΑΓ
  3. 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
  4. 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
  5. ҠߦͷͨΊͷαϙʔτ • 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/ Α Γ
  6. ͱ͸͍͑… • ύϑΥʔϚϯε౳Λߟ͑ΔͱApple Silicon(64bit ARM)ωΠςΟϒͰಈ͘ํ͕͋ Γ͕͍ͨ • ARM൛Linux΍ARM൛Windows 10༻ͷόΠ φϦ͕ఏڙ͞Ε͍ͯΔΦʔϓϯιʔειϑτ

    ΢ΣΞ͸ൺֱతૣظʹରԠ͢ΔͱࢥΘΕΔ • ϓϥοτϑΥʔϜߨԋͰ΋Mac͸ITΤϯδχ Ξʹͱͬͯඇৗʹਓؾ͕͋Δͱͷݴٴ͋Γ ʮOSS΁ͷҠߦΛࢧԉ͠ύονΛఏڙ͢Δʯͱද໌ͨ͠৔ ໘Ͱදࣔ͞ΕͨϦετ https://developer.apple.com/videos/play/wwdc2020/102/ ΑΓ
  7. Apple७ਖ਼ͷΞϓϦ • Safari, iWork(Pages, Keynote, Numbers), XcodeͳͲ • ྲྀੴʹ͜ΕΒ͸Apple SiliconωΠςΟϒͰಈ͘΋ͷ͕৽Mac/Bug

    Surͱಉ࣌ʹఏڙ ͞ΕΔ͸ͣ • ಈըฤूͷFinal Cut Pro X΍ԻָฤूͷLogicͱ͍ͬͨॏ͍ΞϓϦͷσϞΛྲྀ͢ͳ ͲAppleͷ৽CPU΁ͷࣗ৴͕࢕͑Δ ◦ ͍͖ͳΓApple Silicon౥ࡌͷMacbook Pro΍Mac Pro͋ͨΓ͕ग़Δ͔΋ʁ
  8. ElectronϕʔεͷσεΫτοϓΞϓϦ • VS Code, Postman, SlackΫϥΠΞϯτ, DiscordΫϥΠΞϯτͳͲ • ϕʔεͱͳΔElectron͸7.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
  9. ։ൃݴޠ(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 ◦ ωΠςΟϒίʔυΛؚΉϥΠϒϥϦʹ͍ͭͯ͸ಉ্
  10. ։ൃݴޠ(2/2) • Go, RustͳͲͷʢωΠςΟϒίʔυʣίϯύΠϥܕݴޠ ◦ Go, Rust͸ARM൛LinuxͷίϯύΠϥ͕͋Γ ▪ Go: https://golang.org/dl/

    ▪ Rustʹؔͯ͠͸Tier 2: https://forge.rust-lang.org/release/platform-support.html • ͍ͣΕͷݴޠ΋աڈͷόʔδϣϯʹḪͬͯApple Silicon൛MacʹωΠςΟϒରԠ͢Δ͔ʁ ◦ Python 2.7΍Java 8ͳͲ ◦ อकҊ݅ͳͲͰ஍ຯʹ໰୊ʹͳΔՄೳੑ ◦ Rosetta 2ܦ༝Ͱ࣮ߦ͢Δ͔ඇެࣜόΠφϦΛར༻͢Δ͔ ▪ ؤுͬͯࣗྗϏϧυ͢Δͱݴ͏ͷ΋΋ͪΖΜΞϦ
  11. ARM൛DockerίϯςφͰൃੜ͢Δ໰୊఺ • DockerHubͰARM൛ͷίϯςφΠϝʔδ͕ఏڙ͞Ε͍ͯͳ͍৔߹͕͋Δ ◦ ଟ͘͸ରԠͭͭ͋͠Δ͕ɺྫ͑͹MySQLʢެࣜʣͳͲ͸ݱ࣌఺ͰະରԠ • ։ൃ؀ڥͱӡ༻؀ڥͰಈ͔͢ίϯςφΠϝʔδʹࠩҟ͕ൃੜ͢Δ ◦ Ϩϯλϧαʔόʔ΍֤छΫϥ΢υͷαʔόʔ͕Intel/AMD͔ΒARMܥʹҰؾʹ੾ΓସΘΔ͜ͱ͸ͳ͍͸ͣ ▪

    ӡ༻؀ڥ޲͚ͷίϯςφ͸Intel CPU޲͚ʹ࠶ߏஙɾ࠶ݕূ͕ඞཁʹͳΔ • Jenkins΍Circle CI౳ͰCI/CDΛ૊ΜͰ͍Δ৔߹͸ࠓ·Ͱ௨Γ ◦ τϥϒϧൃੜ࣌ͷ໰୊ͷ੾Γ෼͚Ͱߟྀ͢Δཁૉ͕૿͑Δ ◦ ӡ༻؀ڥͰ໰୊͕ى͖ͨΠϝʔδΛҾͬுͬͯϩʔΧϧͷMacͰݕূ…ͱ͍ͬͨ͜ͱ͕Ͱ͖ͳ͘ͳΔ
  12. ػցֶश • શ͘ཧղͯ͠ͳ͍Ͱ͢ • NumPy, TensorFlow, PyTorchͱݴͬͨϥΠϒϥϦ͸Pythonϕʔεͱ͸͍͑Cݴޠͷίʔυ΋ؚ·Εͯ ͍ΔͷͰɺϥΠϒϥϦݸผͷରԠ΋ඞཁ ◦ Raspberry

    PiͳͲARM൛LinuxͰಈ͔ͯ͠Δέʔε͋Γ • CPU͸Apple SiliconʹมΘΔ͕ɺGPU͸Ͳ͏ͳΔʁ ◦ AMDΛ࢖͍ଓ͚Δʁ ◦ NVIDIAʹҠߦ͢Δʁ ◦ ·͔͞GPU΋Appleಠࣗ։ൃʹͳΔʁ
  13. εϚʔτϑΥϯΞϓϦ։ൃ • શ͘ཧղͯ͠ͳ͍Ͱ͢ • iOSΞϓϦ։ൃ ◦ XCode͸ྲྀੴʹApple SiliconωΠςΟϒରԠ͢Δ͸ͣ • AndroidΞϓϦ։ൃ

    ◦ Android Studio͸Javaϕʔε(IntelliJϕʔε)ͳͷͰɺJava͕ωΠςΟϒରԠ͢Ε͹ͳΜͱ͔ͳΔ͸ͣ • ΫϩεϓϥοτϑΥʔϜ։ൃ(Flutter, XamarinͳͲ) ◦ Θ͔Βͳ͍Ͱ͢
  14. νʔϜ։ൃ(1/2) • ։ൃ༻ͷି༩PCͱͯ͠MacΛେྔಋೖ͍ͯ͠ΔاۀͳͲ • Ҡߦظؒத͸IntelͱApple SiliconͷMac͕اۀ಺ɾ։ൃνʔϜ಺ͳͲͰࠞࡏ͢ΔࣄʹͳΔ ◦ શ෦Apple SiliconͷMacʹҠߦ͢Δʁ ▪

    අ༻໘ɾޓ׵ੑͷ໰୊ ◦ Intel CPUͷMacΛߪೖ͠ଓ͚Δʁ ▪ Ҡߦظؒ͸2೥ ▪ Intel CPU൛Mac͸macOSͷߋ৽ʹ௥ैͰ͖ͳ͘ͳΔ • PowerPC→Intel CPUͷ࣌͸Ҡߦޙͷ࣍ͷόʔδϣϯ(OS X 10.6)͕࠷ऴ ◦ ͍ͬͦWindowsʹҠߦ͢Δʁ ▪ طଘMacʹ͸BootCampͰWindowsΛಋೖ͠৽ͨʹWindows PCΛങ͍଍͍ͯ͘͠ ▪ Docker΍λʔϛφϧͳͲɺWindowsͷ։ൃऀαϙʔτ΋ॆ࣮ͭͭ͋͠Δ
  15. νʔϜ։ൃ(2/2) • τϥϒϧ͕ى͖ͨ࣌ͷ໰୊ͷ੾Γ෼͚͕೉͘͠ͳΔ ◦ ৽ଔ͕Apple SiliconͷMacΛ͖࣋ͬͯͯʮ͜Εಈ͔ͳ͍ΜͰ͚͢Ͳ…ʯͱݴ͖ͬͯͨͱ͖Ͳ͏͢Δʁ • ։ൃ؀ڥͷߏஙखॱॻͳͲ΋ɺ྆ํͷCPU؀ڥΛߟྀͯ͠ॻ͘ඞཁ͕ग़ͯ͘Δ ◦ ֤छΞϓϦͷΠϯετʔϧʹؔͯ͠͸લड़ͷUniversal

    2Ͱ͋Δఔ౓͸ҰຊԽͰ͖Δ͸ͣ • ৽ଔʹ͸҆ఆͨ͠Intel CPUͷMacΛି༩͠ɺ։ൃܦݧͷ௕͍ITΤϯδχΞʹApple Siliconͷ MacΛି༩ͯ͠໰୊఺Λચ͍ग़ͯ͠΋Β͏ɺͱ͍ͬͨ޻෉΋ඞཁ͔΋ʁ ◦ ਓͷۚͰ͸΍͘Apple SiliconͷMacΛ࢖͍͍ͨͱݴ͍ͬͯΔΘ͚Ͱ͸ͳ͍
  16. ·ͱΊ • MacͷCPU͕Apple SiliconʹมΘΔͱʢͦͷ··Ͱ͸ʣࠓ·ͰͷϓϩάϥϜ͕ಈ͔ͳ͘ͳΔ Α • ެࣜͷҠߦαϙʔτ΋͋Δ͠ɺARM൛Windows/LinuxʹωΠςΟϒରԠ͍ͯ͠ΔΞϓϦ͸ۙ ͍͏ͪʹApple SiliconͷMacʹ΋ରԠ͢Δͱࢥ͏Αʢظ଴ʣ •

    Ծ૝ԽɾίϯςφΛ࢖ͬͨ։ൃ͸ͪΐͬͱӨڹ͕େ͖ͦ͏ͩΑ • νʔϜ։ൃͰ͸CPU͕౷Ұ͞Εͯͳ͍ࣄʹΑΔτϥϒϧ͕ى͖͏Δ͔Βɺӡ༻ɾυΩϡϝϯ τɾπʔϧͳͲͰΧόʔ͢Δඞཁ͕͋Γͦ͏ͩΑ