Runtime: Arm6 ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ์ œ๋กœ - PI 1

์— ๋งŒ๋“  2017๋…„ 03์›” 31์ผ  ยท  68์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dotnet/runtime

ARM6 ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
์ €๋Š” PI Zero๊ฐ€ ๋‹ค์–‘ํ•œ IOT ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ์™„๋ฒฝํ•œ ํ”Œ๋žซํผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ, ์ด์— ๋Œ€ํ•œ ์ง€์›์ด ์—†๋‹ค๋ฉด ์ƒ๋‹นํžˆ ๋ถ€๋„๋Ÿฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

arch-arm32 area-VM-coreclr port

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๋งŒํผ Pi/Zero๋ฅผ ํ›จ์”ฌ ๋Šฅ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ARMv6์„ ์ง€์›ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ƒํƒœ๊ณ„์—์„œ .NET์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ํฐ ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉฐ CoreRT์˜ IoT ์ธก๋ฉด์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ด€์‹ฌ/๋ฒ”์œ„๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” .NET์„ ์‹ค์‹œ๊ฐ„ ์šด์˜ ์ฒด์ œ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๊ธฐ ์œ„ํ•œ ์˜ต์…˜์œผ๋กœ ๋ณด๊ฒŒ ๋  ์ˆœ์„œ๋Œ€๋กœ ์ด 1๋‹จ๊ณ„๋ฅผ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ARMv6 ์ง€์›์„ Raspberry Pi Zero ์ง€์›๊ณผ ๋‹จ์ˆœํžˆ ๋™์ผ์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค . ์ฆ‰๊ฐ์ ์ธ ์˜๋ฏธ(ํ•ด๋‹น ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋งŽ์€ MCU๊ฐ€ ์ €์ „๋ ฅ์„ ์œ„ํ•ด ๊ณง ์•„๋ฌด๋ฐ๋„ ๊ฐ€์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. /cost MCU), ๊ทธ๋ฆฌ๊ณ  ๋ณด๋‹ค ์ถ”์ƒ์ ์ธ ์˜๋ฏธ์—์„œ ๊ทธ ๋„ˆ๋จธ์˜ ์„ธ๊ณ„(์˜ˆ: FreeRTOS ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ์œ„ํ•œ CoreRT PAL ๋Œ€์ƒ ๋ณด๊ธฐ).

๋ชจ๋“  68 ๋Œ“๊ธ€

์•„๋‹ˆ, ๊ทธ๋Ÿฐ ๋…ธ๋ ฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” 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์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

https://blogs.windows.com/windowsdeveloper/2020/05/26/build-your-iot-devices-with-windows-for-iot-a-comprehensive-platform-for-every-device-developer/

์•ž์œผ๋กœ ์ด๋Ÿฌํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” 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๋กœ ๊ตฌํ˜„๋˜๋ฉฐ ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํฐ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Mono: Xamarin์—์„œ WebAssembly, Blazor ๋ฐ .NET 5๋กœ

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 ๋นŒ๋“œ์— ์ž๊ธˆ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰