ARM6 ํ๋ซํผ์ ์ง์ํ๊ธฐ ์ํ ๋
ธ๋ ฅ์ด ์์ต๋๊น?
์ ๋ PI Zero๊ฐ ๋ค์ํ IOT ํ๋ก์ ํธ๋ฅผ ์ํ ์๋ฒฝํ ํ๋ซํผ์ด๋ผ๊ณ ์๊ฐํ๋ฉฐ, ์ด์ ๋ํ ์ง์์ด ์๋ค๋ฉด ์๋นํ ๋ถ๋๋ฌ์ธ ๊ฒ์
๋๋ค.
์๋, ๊ทธ๋ฐ ๋ ธ๋ ฅ์ ์์ต๋๋ค. ์๋ง๋ ํด๊ฒฐํด์ผ ํ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ JIT๊ฐ ARM6 Thumb ๋ช ๋ น์ด ์ธ์ฝ๋ฉ์ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ๋๋ ๋ฌด์์ ๊ธฐ๋ํด์ผํฉ๋๊น? Arm6 ์ง์์ ์ ๊ณตํ๊ฒ ๋ค๋ ์ปค๋ฎค๋ํฐ๋ MS์ ์ฝ์์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ์๋๋ฉด Mono๊ฐ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๊น?
Pi Zero ๋ฐ Pi Zero W์ ๊ฐ์ ARMv6 CPU์ ๋ํ ์ง์์ด ์๋ค๋ฉด ํ์์ ์ผ ๊ฒ์ ๋๋ค. ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ Pi 3๊ณผ ๊ฐ์ ๋ ๊ฐ๋ ฅํ ARMv7์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
ARMv6 ์ง์์ ๋ณด๊ณ ์ถ์ต๋๋ค :)
ARMV6์ ๋ํ ์ง์์ ํฌํจํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์ง๊ธ Pi Zero์์ dotnet ์ฝ์ด๋ฅผ ์คํํ๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ธ๊ฐ ๋งํ์ต๋๋ค.
armv6 ์ง์์ ๋ํ ๋จ์ด๊ฐ ์์ต๋๊น? ๋ชฉ์ ์ ์ํด ๊ธฐ๋ค๋ฆฌ๋ ๋ ๊ฐ์ ํ์ด ์ ๋ก๊ฐ ์์ต๋๋ค.
@janvorli JIT๊ฐ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ CoreRT์ .Net Core๊ฐ ์ด๋ฅผ ํ์ฑํํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์ ์์ต๋๊น?
@dcuccia CoreRT๋ CoreCLR๊ณผ ๋์ผํ JIT ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ฌธ์ ๊ฐ ๋จ์ ์์ต๋๋ค.
@dcuccia , @mikedn corert์๋ C++๋ก ์ปดํ์ผํ๋ ๋ชจ๋๊ฐ ์์ผ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๋ชจ๋์์ ์ค์ ๋ก ์ผ๋ง๋ ๋ง์ ๊ฒ๋ค์ด ์๋ํ๋์ง ์ถ์ ํ์ง ๋ชปํ์ต๋๋ค. @jkotas ์ด์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น?
CppCodeGen์ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ(hello world ๋ฑ)์ ์คํํฉ๋๋ค. https://github.com/dotnet/corert#platform -support์์ : ๊ฐ์ฅ ํฐ ๋๋ฝ ๊ธฐ๋ฅ์ ๋ฆฌํ๋ ์ , ๊ฐ๋น์ง ์์ง ๋ฐ ์์ธ ์ฒ๋ฆฌ์ ๋๋ค.
CoreRT + CppCodeGen์ด ํ๋ซํผ ๋๋ฌ ๋ฒ์์ ์ข์ ์ต์ ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค.
@jkotas corert -> https://github.com/dotnet/corert/tree/master/samples/WebApi ์ ์์ ์ ๋ฐ๋ผ ์ด๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฝ์์ต๋๊น? cppCodeGen์ผ๋ก ์ปดํ์ผํ ์ ์๊ณ ๋ด rasp pi zero์์ ์คํํ ์ ์์ต๋๊น?
์๋๋ฉด ARMv6๋ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์คํจํ ๊น์?
CppCodeGen์ WebApi ์ํ์ ๋ํด ๋๋ฌด ๋ถ์์ ํฉ๋๋ค. ๋ฆฌํ๋ ์ ๋ฐ ๊ฐ๋น์ง ์์ง์ด ๋จผ์ ์๋ํด์ผ ํฉ๋๋ค.
@jkotas์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ฉด hello world์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ IO/httpclient ํญ๋ชฉ์ด ์๋ํ ๊น์?
httpclient๋ ๊ฝค ๋ณต์กํ ์ฝ๋ ์กฐ๊ฐ์ ๋๋ค. ์๋ํด ๋ณผ ์๋ ์์ง๋ง ์ค๋๋ CppCodeGen์์ ์๋ํ๋์ง ์์ฌ์ค๋ฝ์ต๋๋ค.
ARMv6์ ๋ํ ์ง์์ ์ ๊ณตํ ์๋๊ฐ ์์ต๋๊น?
ARMv6 ์ง์๋ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ฝ์ด๊ฐ ๊ฐ๊น์์ง๊ณ ์๋ ๊ฒ ๊ฐ์๋ฐ ์ ํ๋จํ ์๊ฒฉ์ด ์๋ค.
ARMv6 ์ง์์ ์ํด ๋ด +1์ ์ถ๊ฐํฉ๋๋ค. rPi0w์ rPi3์ ๊ฐ๊ฒฉ ์ฐจ์ด๋ 25๋ฌ๋ฌ๋ก, ๋ง์ ์ฅ์น๊ฐ ์ฌ์ฉ๋๋ IoT ํ๋ก์ ํธ์ Pi Zero W๊ฐ ํจ์ฌ ๋ ์ ์ฉํฉ๋๋ค. ์ด๋ฅผ ์ํด Mono์ ์ผ๋ถ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๋๋ ๋์ํ๋ ๊ฒฝํฅ์ด ์๋ค. Pi Zero๋ฅผ ํฌํจํ์ฌ Pi์์ ํจ์ฌ ๋ ๋์ Linux๋ฅผ ์คํํ๋ ค๋ ๋ ํฐ ์ปค๋ฎค๋ํฐ๊ฐ ์์ผ๋ฉฐ ์ปค๋ฎค๋ํฐ์์ ์ง์ํ๋ ๋ฆด๋ฆฌ์ค๋ง ํฌํจํฉ๋๋ค.
์ด๊ฒ์ ๊ฐ์น๊ฐ ์๋ ๋งํผ Pi/Zero๋ฅผ ํจ์ฌ ๋ฅ๊ฐํฉ๋๋ค. ARMv6์ ์ง์ํ๋ฉด ๋ค์ํ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋น ์ํ๊ณ์์ .NET์ ์ ํํ ์ ์๋ค๋ ๊ฒ์ ํฐ ์๋ฏธ๊ฐ ์์ผ๋ฉฐ CoreRT์ IoT ์ธก๋ฉด์ ๋ํด ํจ์ฌ ๋ ๋ง์ ๊ด์ฌ/๋ฒ์๋ฅผ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
๋๋ .NET์ ์ค์๊ฐ ์ด์ ์ฒด์ ์์ ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ํ ์ต์ ์ผ๋ก ๋ณด๊ฒ ๋ ์์๋๋ก ์ด 1๋จ๊ณ๋ฅผ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค. ์ฆ, ARMv6 ์ง์์ Raspberry Pi Zero ์ง์๊ณผ ๋จ์ํ ๋์ผ์ํ์ง ๋ง์ญ์์ค . ์ฆ๊ฐ์ ์ธ ์๋ฏธ(ํด๋น ๋ช ๋ น์ด ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ง์ MCU๊ฐ ์ ์ ๋ ฅ์ ์ํด ๊ณง ์๋ฌด๋ฐ๋ ๊ฐ์ง ์์ ๊ฒ์ ๋๋ค. /cost MCU), ๊ทธ๋ฆฌ๊ณ ๋ณด๋ค ์ถ์์ ์ธ ์๋ฏธ์์ ๊ทธ ๋๋จธ์ ์ธ๊ณ(์: FreeRTOS ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์ํ CoreRT PAL ๋์ ๋ณด๊ธฐ).
@metanoic ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด๋ IoT Edge์ ์ด์์๋ ๋์์ด ๋ฉ๋๋ค(https://github.com/Azure/iotedge/issues/12).
10$ ๋ฏธ๋ง์ผ๋ก IoT ํ๋ซํผ์ ์์ ๋ฃ์ด์ผ ํฉ๋๋ค!
+1
๋์ํ๋ค. ์ฌ์ค ์ ๋ Mono์ ์ง์ฐฉํ๊ณ ์์ด์ :)
armv6์์ ์ผ๋ถ IoT ํญ๋ชฉ์ ๋น๋ํฉ๋๋ค. ์ฌํผ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ด +1์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
์ด์ ๋ํ ์งํ ์ํฉ์ด ์๋์ง์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์๋ ์ฌ๋์ด ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด pi3b+์์ ํ๋ ๊ฒ์ฒ๋ผ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ค๊ณ ์๋ํ์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋ ๊ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์๋ผ๋ ๊ฒ์ ์์์ต๋๋ค :(
๋๋ ์ค๋๋ Raspberry Pi ๋ชจ๋ธ B(armv6l CPU)๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ผ๋ถ dotnet ์ฝ์ด ํ๋ก์ ํธ๋ฅผ ์คํํ๊ณ ์ถ์ต๋๋ค.
Linux ๋ฐ Mono๊ฐ ํฌํจ๋ ARMv6 CPU ๊ธฐ๋ฐ ๋ฏธ๋ ์๋ฒ๊ฐ ๋ง์ด ์์ต๋๋ค. .NET ์ฝ์ด๋ก ์ ํํ๊ณ ์ถ์ต๋๋ค.
armv6 ์ง์์๋ ํฌํํ ๊ฒ์ ๋๋ค! +1
armv6 ์ง์์ ์ํด +1!
+1 ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๋ค!
์ ๋ฐ!
์ ๋ง ์ข์ ๊ฒ์ ๋๋ค!
์๋ฅผ ๋ค์ด Go ๋ฐํ์์ด ๋์ผํ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ ์ํคํ ์ฒ๋ก ์ปดํ์ผํ ์ ์์ง๋ง CoreCLR์ ๊ฒฝ์ฐ ์์น ์ง์์ ์ถ๊ฐํ๋ ํ๋ก์ธ์ค๊ฐ ํจ์ฌ ๋ ๊ธด ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ธฐ์ ์ ์ธ ์ด์ ๊ฐ ์์ต๋๊น? https://gist.github.com/asukakenji/f15ba7e588ac42795f421b48b8aede63
@mms- ๋ค, ๊ธฐ์ ์ ์ธ ์ด์ ๊ฐ ์์ต๋๋ค. Go๋ ๋ฏธ๋ฆฌ ์ปดํ์ผ๋์ด ์์ต๋๋ค. x86(32 ๋ฐ 64๋นํธ)๋ง ์ง์ํ๋ gc์ ๋ฐฑ์๋๋ก GCC๋ฅผ ์ง์ํ๋ arm ๋ฐ gccgo์ ๋ ๊ฐ์ง ์ปดํ์ผ๋ฌ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ GCC์์ ์ง์ํ๋ ์ํคํ
์ฒ๊ฐ ๋ฌด์์ด๋ ๋ฌด๋ฃ๋ก ์ ๊ณต๋ฉ๋๋ค.
CoreCLR์ JIT๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์๋ก์ด ์ํคํ
์ฒ์ ๋ํ ์ง์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์๋ฒฝํฉ๋๋ค. JIT๊ฐ ์์ง ์กด์ฌํ์ง ์๋ ์ด๋ฌํ ๋ค๋ฅธ ์ํคํ ์ฒ์์ .Net Core์ ๋ํด ์ด์ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ํ์ฑํํ๋๋ก .Net Native๋ฅผ ํ์ฅํ ์ ์๋ค๋ฉด ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
ARMv6์ ๋ํ ๋ด ํฌํ ์ถ๊ฐ
์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ํ์ํฉ๋๋ค!
ARMv6์ Raspberry Pi Zero๋ฅผ ๋์ด์๋ ๋ง์ ๋งค๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Raspberry Pi Compute Module 1์ ARMv6์ ์คํํ๋ฏ๋ก dotnet์ ์์กดํ๋ ๊ฒ์ด ํจ์ฌ ์์ ํฉ๋๋ค. ํ์ฌ Mono ๋ฐํ์์ ์ฌ์ฉํด์ผ ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ง๋ง ์ ์ ํ dotnet ์ง์์ ์ ๊ฐ ์ ๋ง ์ํ๋ ๊ฒ์ ๋๋ค.
@richlander
ARMv6 ์ง์์ ๊ต์ฅํ ๊ฒ์ ๋๋ค.
Core์ JIT๊ฐ ํ์ํ๊ณ Armv6์์ ์คํํ ์ ์๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋ ์ฌ๋์ด ์์ง๋ง Mono๋ ๊ฐ๋ฅํฉ๋๊น? Mono๋ ์คํํ๊ธฐ ์ํด IL ์ฝ๋๋ง ํ์ํ๋ฏ๋ก JIT๊ฐ ์์ต๋๋ค. ๋ก์ปฌ CPU์ JITํด์ผ ํฉ๋๊น?
Core์ JIT๊ฐ ํ์ํ๊ณ Armv6์์ ์คํํ ์ ์๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋ ์ฌ๋์ด ์์ง๋ง Mono๋ ๊ฐ๋ฅํฉ๋๊น?
Mono์๋ Armv6์ ์ง์ํ๋ ๋ค๋ฅธ JIT๊ฐ ์์ต๋๋ค. CoreCLR JIT๋ ์ง์ํ์ง ์์ต๋๋ค. ARM์๋ ARM๊ณผ THUMB์ ๋ ๊ฐ์ง ๋ช
๋ น์ด ์ธํธ๊ฐ ์์ต๋๋ค. ARM v6์๋ THUMB๊ฐ ์๊ณ ARM v7์๋ THUMB2๊ฐ ์์ต๋๋ค.
Mono JIT๋ ๋ชจ๋ ๊ฒ์ ARM ๋ช
๋ น์ด ์ธํธ๋ก ์ปดํ์ผํ๋ฏ๋ก Armv6๊ณผ v7 ๋ชจ๋์์ ์๋ํ์ง๋ง ๊ทธ ๊ฒฐ๊ณผ ์ฝ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์ฝ 30% ๋ ์ปค์ง๋๋ค.
Armv7 THUMB2์ Armv6 THUMB์ ์ฐจ์ด๋ ์๋นํ ํฌ๋ฉฐ Armv6์ ๋ํ ์ง์์ ์ถ๊ฐํ๋ ค๋ฉด CoreCLR JIT์ ๋ง์ ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค.
.NET Core 3.0์ด ์ถ์๋๊ณ 3.1์ด ๊ณง ์ถ์๋๋ฉฐ 5.0์ด ๊ณํ๋๊ณ ํตํฉ ํ๋ซํผ ์ผ๋ก ๊ด๊ณ ๋ฉ๋๋ค.
Blazor๋ Mono๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋(๋์ ์ ํ) JIT๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ARMv7์ ์ ํํ ๊ฒฝ์ฐ ARMv6์ ์ ํํ ๋ค์ Mono์ ๊ฐ์ JIT์ธ ๊ฒฝ์ฐ CoreCLR๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Raspberry Pi 4๋ ์ต์ $35, Pi Zero๋ $5, Pi Zero W๋ $10์ ๋๋ค. ๋ฐ๋ผ์ ๋จ์ผ Pi 4 ๊ฐ๊ฒฉ์ผ๋ก 7๊ฐ์ Pi Zero๋ฅผ ์ป์ ์ ์์ต๋๋ค!
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค์ด ์ด์ ์ ์ผ๋ฏ์ด ์ด๊ฒ์ ๋จ์ง Raspberry Pi Zero์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๋ชจ๋ ARMv6 ์ฅ์น๋ .NET Core ์ฑ์ ์คํํ ์ ์์ต๋๋ค.
2.5๋ ์ด ์ง๋ ์ง๊ธ๋ ์ฐ๋ฆฌ๋ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค ๐
+1
๋ฐํ์ ํ๋ก์ ํธ์ armv6 ์ง์์ด๋ผ๋ PR์ด ์์ต๋๋ค. https://github.com/dotnet/runtime/pull/657
์ด ์ง์์ ์ถ๊ฐํ์ญ์์ค
์ ๋ ์ด ์ง์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค...
๋ท ์ฝ์ด์ ๋ํ Armv6 ์ง์์ ๊ต์ฅํ ๊ฒ์ ๋๋ค...
armv6 ์ง์์ ๋ํ ๋จ์ด๊ฐ ์์ต๋๊น? ๋ชฉ์ ์ ์ํด ๊ธฐ๋ค๋ฆฌ๋ ๋ ๊ฐ์ ํ์ด ์ ๋ก๊ฐ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค
armv6์ ๋ํ ์ง์์ ์ถ๊ฐํ์ญ์์ค.
์์ผ๋ก ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ํด๊ฒฐํ ์ ์๋ IoT์ฉ Windows, Windows 10 IoT Enterprise์ฉ OS ๋ฆด๋ฆฌ์ค๊ฐ ํ๋ ์๋ค๋ ์ฌ์ค์ ๊ณต์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๋ด๊ฐ ์ด๊ฒ์ ์๋ชป ํด์ํ๊ณ ์์์ง๋ ๋ชจ๋ฅด์ง๋ง ARM64๊ฐ ์๋ ํ RPi์ฉ IoT Core๋ ๋ ์ด์ ์์ ๊ฒ์ด๋ผ๋ ๊ฑฑ์ ์ด ๋ฉ๋๋ค.
@miloush ์ด ๋ฌธ์ ๋ Windows IoT์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๊ธฐ ์ฃผ์ ๋ armv6 ํ๋ก์ธ์์ dotnet ์ง์์ ์ถ๊ฐํ์ฌ Raspberry Pi Zero์์ dotnet์ ์คํํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
@realivanjx ์ ๋ง ๋ด ๋์
์์ ์ฝ๊ธฐ์์ ARM6 ์ง์์ ์์ง ๋ช ๋ น์ด ์ธํธ์ ํ์ํ ์์ ์ผ๋ก ์ธํด ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ด Orange Pi Zero์ ๊ฐ์ ๋ค๋ฅธ ์ ๊ฐ ํ๋์จ์ด์์ dotnet ์ฝ์ด๋ฅผ ์คํํ ๊ฒฝํ์ด ์์ต๋๊น?
ARMv6์ ์ถ๊ฐํ๊ธฐ ์ํ PR #657์ด ์ข ๋ฃ๋์์ต๋๋ค...
์ด ํ๋ก์ ํธ๋ฅผ ์ํด ์ฝ 25x RPi Zeros๋ฅผ ๊ตฌ๋งคํ๊ธฐ ๋๋ฌธ์ ํ๊ต์์ RPi Zeros์์ ์คํํด์ผ ํ๋ .NET Core ํ๋ก์ ํธ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์์ต๋๋ค. .NET Core๊ฐ ARMv6์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ 25๊ฐ์ ์๋ก์ด RPi 3๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ผ๋ฉฐ ๊ตฌ๋งคํ ๊ณํ๋ ์์ต๋๋ค.
Golang์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ค์ ์์ฑํ ๊ฒ ๊ฐ์์...
@eduncan911 ๋ชจ๋ ธ ๋ฃจํธ๋ก ๊ฐ๋ณด์ธ์. ๋ค์์ ๋ช ๊ฐ์ง ์ธ๋ถ ์ฌํญ์ ๋๋ค.
Net6์ ๋ชจ๋ ธ ๋ฐํ์์ ํตํด ๋ค์ค CPU ์ํคํ ์ฒ๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค. ์๋ง๋.
์ ๋ ๋ชจ๋ ธ๋ฅผ ํตํด 1000๊ฐ ์ด์์ ARMv6 CPU ์ฅ์น๋ฅผ ์คํํ๊ณ ์์ต๋๋ค. 3๋ ์ ์ ์ฐ๋ฆฌ๋ ARMv7 ํ๋์จ์ด๋ฅผ ๋์ ํ์ง๋ง ์ฌ์ ํ ๋ชจ๋ ธ์ด์ง๋ง ์ง๊ธ์ ๋ฆฌํฉํ ๋งํ๊ณ Net core/net ํ์ค์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฏ๋ก ์์ ์คํ ํ์ผ๋ง ๋ค๋ฅด๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋ ธ์ ๋ท ์ฝ์ด ๊ฐ์ ์ฌ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๋๋ ํ์ด 1์์ Lord's Cricket Ground์์ ์ค์ฝ์ด๋ณด๋๋ฅผ ์ด์ํ๋ค
Mono๋ฅผ ์ฌ์ฉํ๋ Pi B+. ์ต์ ํคํธ๋ Net Core๋ฅผ ์ฌ์ฉํ์ฌ Pi 3์์ ์คํ๋ฉ๋๋ค. ๊ฐ์
์์
์ ์ํํ๋ ํต์ฌ ๊ฐ์ฒด๊ฐ ์๋ ์์ค ํ์ผ. ํ๋ ์์ํฌ์์
์๋น์ค ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ฑ์ ๋ก๋ํ๋ ํต์ฌ ์ฑ
๊ตฌ์ฑํฉ๋๋ค.
๋ธ๋ผ์ด์ธ ํฌ๋กํ์ฆ
์ค๋ฒ ์ปค๋ธ
๋ถํํ๋ ๋ชจ๋ ธ๋ ๋ฒ๊ทธ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค. ๋ฒ๊ทธ๋ ๋๊ตฌ๋ ๊ณ ์น ์ ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ค ๋๋ถ๋ถ์ ๋คํธ์ํฌ์ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ถ ๋คํธ์ํฌ์์ DNS๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ์ผ๋ฐ ํธ๋ํฝ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. https/ssl ์คํธ๋ฆผ์๋ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋จน์ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์์ต๋๋ค. ๋๋ ๋ชจ๋ ธ๋ MTU ํฌ๊ธฐ๋ก ์ฌ์ํ์ง ์๊ณ ์ผ๋ถ ๋คํธ์ํฌ์์ ํต์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ python ๋๋ NET Core๋ ํต์ ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋๊ฒ๋ ์ต์ํ ARMv7์์๋ ๋ชจ๋ ธ๊ฐ ๋ท ์ฝ์ด๋ณด๋ค ๋น ๋ฅผ ๋๊ฐ ์์ต๋๋ค. ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋์ง๋ง ๋คํธ ์ฝ์ด๊ฐ ์ฑ๋ฅ ๊ฒฝ์์์ ํฐ ์ฐจ์ด๋ก ์น๋ฆฌํ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค.
Mono๊ฐ ๋ฒ๊ทธ๋ก ๊ฐ๋ ์ฐจ ์๋ค๋ ๊ฒ์ด ๋ฏฟ๊ธฐ์ง ์์ง๋ง ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. Blazor WASM์ Mono๋ก ๊ตฌํ๋๋ฉฐ ๋คํธ์ํฌ ๊ด๋ จ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ํฐ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
cc @ marek-safar
๋๋ ์์ฒ ๋์ ์ปดํจํฐ์ ๋ง์ ๋คํธ์ํฌ ๊ตฌ์ฑ์์ ๋ชจ๋ ธ๋ฅผ ์คํํฉ๋๋ค. ์ด๋ฌํ ๋ฒ๊ทธ๋ ๋ชจ๋ ์์คํ ๋ฐ ๋คํธ์ํฌ ๊ตฌ์ฑ์์ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๋์ผํ Linux ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
MTU ํฌ๊ธฐ ๋ฌธ์ (์ค์น์ 0.3%)๋ ์ด๋ฌํ ๋คํธ์ํฌ์์ 100% ์ฌํ ๊ฐ๋ฅํฉ๋๋ค. ์ด์ ๋ฅผ ์ ํ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ssh๋ ์ด๋ฌํ ๋คํธ์ํฌ์์ ์๋ํ๋ฉฐ mtu ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ ์ฌ์ค์ ์ฐ์ฐํ ๋ฐ๊ฒฌํ์ต๋๋ค.
SSL ์คํธ๋ฆผ ๋ฉ๋ชจ๋ฆฌ ๋์ - ์ค์น์ 2%. ์ฌ์์ฐ์ด ๋งค์ฐ ์ด๋ ค์ ๊ณ ๊ฒฐ๊ตญ 4G ๋ผ์ฐํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์๋ชจํ์ฌ ์ฌ์์ฐ์ ์ฑ๊ณตํ์ฌ dns๋ง ์๋ํ๊ณ ๋ค๋ฅธ ์์ฒญ์ ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ ์์ ์ธ lan ๋คํธ์ํฌ์์ tcp error ์๋ฎฌ๋ ์ดํฐ๋ก ๊ทธ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ ์ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ 4G ๋ผ์ฐํฐ์ ํน์ SIM ์นด๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ๋์ถ์ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 4G ๋๋ ๊ธฐํ ๋ฌด์ ๋คํธ์ํฌ์ ํจ๊ป ์ค์นํ ๋ ๋ฐ์ํฉ๋๋ค. TCP & HTTPS ์ฐ๊ฒฐ์ ์ค์ ํ ๊ฒฝ์ฐ TCP ํธ๋์ ฐ์ดํฌ๊ฐ ์๋ฃ๋์ง ์์ผ๋ฉด ๋์๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋๋ก ์ฐ๋ฆฌ๋ ๋ฒ๊ทธ๋ฅผ ๋ง๋๊ธฐ๋ ํ๊ณ , ๋๋ก๋ ์งง์ ์๊ฐ ์์ ์์ ๋๊ธฐ๋ ํ๊ณ ๋๋ก๋ ํด๊ฒฐํ๊ธฐ๋ ํ๊ณ ๋ชจ๋ ธ๋ก ์์ ํ๊ณ pull ์์ฒญ์ด ์๋ฝ๋๋ฉด (๋คํธ์ํฌ์๋ ๊ด๋ จ๋จ) :) ํ์ง๋ง ๊ณต์ ํ๊ฒ ๋งํ์๋ฉด ์ด๋ฒ ์ฃผ์ ์ ๋ NET5 RC1์์ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋ณด๊ณ ํ์ต๋๋ค. ๋์๊ฒ ๋ชจ๋ ธ๋ ํ๋ฅญํ ์ํํธ์จ์ด์ด์ง๋ง(์ ๋ 9๋ ๋์ ์ฌ์ฉํ์ต๋๋ค) ๋คํธ์ํฌ ์ฝ๋์ ์ฝ๊ฐ์ ๊ฒฐํจ์ด ์์ต๋๋ค.
์ถฉ๋ถํ ๊ณตํํ์ง๋ง Mono๋ฅผ ๋ฒ๊ทธ๋ก ๊ฐ๋ ์ฐฌ ๊ฒ์ผ๋ก ํน์ฑํํ๋ ๊ฒ์ ์ฝ๊ฐ ๋ถ๊ณตํํฉ๋๋ค. 4G ๋ผ์ฐํฐ/SIM ์นด๋ ์ฝค๋ณด๋ ํ์คํ ์ฃ์ง ์ผ์ด์ค์ฒ๋ผ ๋ณด์ ๋๋ค. Mono repo ์ ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ณ ๊ฐ๋ฅํ ํ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํด๊ฒฐ๋์ง ์๋๋ผ๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. Mono/NET5 ์ ์ฅ์์ ๋ํ ์ด์ ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์๊ฒ ์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ๋ถ๊ณตํํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ผ๋ถ ์ค์น์ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์๋ ์ด์ ๋ฅผ ์ฐพ๋ ๋ฐ ์๋ฐฑ ์๊ฐ์ ํ๋นํ์ต๋๋ค. Mono๋ ํนํ ๋ชจ๋ฐ์ผ๊ณผ ๊ฐ์ ์๋ช ์ด ์งง์ ์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ ์๊ฐ์ด 1๋ ์ด์์ธ ์ผ๋ถ ์ค์น๊ฐ ์์ง๋ง ๋๋ก๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@michaldobrodenka btw ๊ทํ์ ํ๊ฐ๋ ๋งค์ฐ ํฅ๋ฏธ ๋กญ์ต๋๋ค!
ARMv6 ์ง์์ด .NET 6.0์ ํฌํจ๋ฉ๋๊น?
Richard Lander๋ .NET 5 Preview 4 ๋ฐํ์์ ์ด์ ๋ํด ์ธ๊ธํ์ต๋๋ค.
https://devblogs.microsoft.com/dotnet/announcing-net-5-preview-4-and-our-journey-to-one-net/#comment -5958
์ ์๊ฐ์๋ .NET 5.0์ ์ผ๋ถ๋ก Armv6์ฉ Mono๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋๋ถ๋ถ์ Mono/Xamarin ๊ด๋ จ ํ๋ก์ ํธ๋ฅผ 6.0์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. 6.0์์ Mono Armv6 ๋น๋์ ์๊ธ์ ์ง์ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๊ฐ์น๊ฐ ์๋ ๋งํผ Pi/Zero๋ฅผ ํจ์ฌ ๋ฅ๊ฐํฉ๋๋ค. ARMv6์ ์ง์ํ๋ฉด ๋ค์ํ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋น ์ํ๊ณ์์ .NET์ ์ ํํ ์ ์๋ค๋ ๊ฒ์ ํฐ ์๋ฏธ๊ฐ ์์ผ๋ฉฐ CoreRT์ IoT ์ธก๋ฉด์ ๋ํด ํจ์ฌ ๋ ๋ง์ ๊ด์ฌ/๋ฒ์๋ฅผ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
๋๋ .NET์ ์ค์๊ฐ ์ด์ ์ฒด์ ์์ ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ํ ์ต์ ์ผ๋ก ๋ณด๊ฒ ๋ ์์๋๋ก ์ด 1๋จ๊ณ๋ฅผ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค. ์ฆ, ARMv6 ์ง์์ Raspberry Pi Zero ์ง์๊ณผ ๋จ์ํ ๋์ผ์ํ์ง ๋ง์ญ์์ค . ์ฆ๊ฐ์ ์ธ ์๋ฏธ(ํด๋น ๋ช ๋ น์ด ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ง์ MCU๊ฐ ์ ์ ๋ ฅ์ ์ํด ๊ณง ์๋ฌด๋ฐ๋ ๊ฐ์ง ์์ ๊ฒ์ ๋๋ค. /cost MCU), ๊ทธ๋ฆฌ๊ณ ๋ณด๋ค ์ถ์์ ์ธ ์๋ฏธ์์ ๊ทธ ๋๋จธ์ ์ธ๊ณ(์: FreeRTOS ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์ํ CoreRT PAL ๋์ ๋ณด๊ธฐ).