Google์€ Fuchsia 14 ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

Google์€ Google Nest Hub ๋ฐ Nest Hub Max ์•ก์ž์— ๋Œ€ํ•œ ์˜ˆ๋น„ ํŽŒ์›จ์–ด ์—…๋ฐ์ดํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” Fuchsia 14 ์šด์˜ ์ฒด์ œ ์ถœ์‹œ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. Fuchsia OS๋Š” Android ํ”Œ๋žซํผ์˜ ํ™•์žฅ์„ฑ๊ณผ ๋ณด์•ˆ ๋‹จ์ ์„ ๊ณ ๋ คํ•˜์—ฌ 2016๋…„๋ถ€ํ„ฐ Google์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Fuchsia 14์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • Starnix ๊ณ„์ธต์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์–ด Linux ์ปค๋„์˜ ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•ด๋‹น Fuchsia ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜ํ•จ์œผ๋กœ์จ ์ˆ˜์ •๋˜์ง€ ์•Š์€ Linux ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—๋Š” ์›๊ฒฉ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋งˆ์šดํŠธ์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€, fxfs์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์— ๋Œ€ํ•œ xattrs ์ถ”๊ฐ€, mmap() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์ถ”์  ์ง€์  ์ถ”๊ฐ€, /proc/pid/stat์˜ ์ •๋ณด ํ™•์žฅ, fuchsia_sync::Mutex์— ๋Œ€ํ•œ ์ง€์› ํ™œ์„ฑํ™”, ์ง€์› ๊ตฌํ˜„ O_TMPFILE, pidfd_getfd, sys_reboot(),timer_create,timer_delete, times() ๋ฐ ptrace()์˜ ๊ฒฝ์šฐ ext4 ๊ตฌํ˜„์€ ์‹œ์Šคํ…œ ํŒŒ์ผ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ๋ธ”๋ฃจํˆฌ์Šค ์Šคํƒ. HSP(HandSet ํ”„๋กœํ•„) Bluetooth ํ”„๋กœํ•„์— ์˜ค๋””์˜ค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ A2DP ํ”„๋กœํ•„์„ ํ†ตํ•ด ์˜ค๋””์˜ค๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…ํ•  ๋•Œ ์ง€์—ฐ์ด ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์Šค๋งˆํŠธ ํ™ˆ์˜ ์žฅ์น˜ ์—ฐ๊ฒฐ ํ‘œ์ค€์„ ๊ตฌํ˜„ํ•œ Matter์—๋Š” ์—…๋ฐ์ดํŠธ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ง€์›๊ณผ ๋ฐฑ๋ผ์ดํŠธ ์ œ์–ด ์‹œ ์ผ์‹œ์  ์ƒํƒœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ํ”Œ๋žซํผ์˜ ๋„คํŠธ์›Œํฌ ์Šคํƒ์—๋Š” FastUDP ์†Œ์ผ“์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • RISC-V ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฉ€ํ‹ฐ ์ฝ”์–ด ์‹œ์Šคํ…œ(SMP)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ API๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • DeviceTree ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • USB ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ์˜ค๋””์˜ค ์žฅ์น˜์šฉ ๋“œ๋ผ์ด๋ฒ„๋Š” DFv2 ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Fuchsia๋Š” LK ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Zircon ๋งˆ์ดํฌ๋กœ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์Šค๋งˆํŠธํฐ ๋ฐ ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์žฅ์น˜์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Zircon์€ ํ”„๋กœ์„ธ์Šค ๋ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์‚ฌ์šฉ์ž ์ˆ˜์ค€, ๊ฐœ์ฒด ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ ๋ฐ ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ๋ชจ๋ธ์„ ์ง€์›ํ•˜์—ฌ LK๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๊ณ  devhost ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๋กœ๋“œ๋˜๊ณ  ์žฅ์น˜ ๊ด€๋ฆฌ์ž(devmg, ์žฅ์น˜ ๊ด€๋ฆฌ์ž)์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

Fuchsia์—๋Š” Flutter ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Dart๋กœ ์ž‘์„ฑ๋œ ์ž์ฒด ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋˜ํ•œ Peridot ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ํ”„๋ ˆ์ž„์›Œํฌ, Fargo ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž, libc ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, Escher ๋ Œ๋”๋ง ์‹œ์Šคํ…œ, Magma Vulkan ๋“œ๋ผ์ด๋ฒ„, Scenic ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž, MinFS, MemFS, ThinFS(Go ์–ธ์–ด์˜ FAT) ๋ฐ Blobfs ํŒŒ์ผ์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋ฐ ๊ด€๋ฆฌ์ž FVM ํŒŒํ‹ฐ์…˜. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด C/C++ ๋ฐ Dart ์–ธ์–ด์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ๊ณต๋˜๋ฉฐ Rust๋Š” ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ, Go ๋„คํŠธ์›Œํฌ ์Šคํƒ ๋ฐ Python ์–ธ์–ด ์–ด์…ˆ๋ธ”๋ฆฌ ์‹œ์Šคํ…œ์—์„œ๋„ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ถ€ํŒ… ํ”„๋กœ์„ธ์Šค์—์„œ๋Š” ์ดˆ๊ธฐ ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋Š” appmgr, ๋ถ€ํŒ… ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋Š” sysmgr, ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋กœ๊ทธ์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” basemgr ๋“ฑ์˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ปค๋„ ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ณ ๊ธ‰ ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ ์‹œ์Šคํ…œ์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์€ ์ž์ฒด ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์‹คํ–‰๋˜๊ณ  IPC๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€