WebOS ์˜คํ”ˆ ์†Œ์Šค ์—๋””์…˜ 2.10 ํ”Œ๋žซํผ ๋ฆด๋ฆฌ์Šค

๋‹ค์–‘ํ•œ ํœด๋Œ€์šฉ ๊ธฐ๊ธฐ, ๋ณด๋“œ, ์ž๋™์ฐจ ์ธํฌํ…Œ์ธ๋จผํŠธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ํ”Œ๋žซํผ webOS ์˜คํ”ˆ์†Œ์Šค ์—๋””์…˜ 2.10์ด ์ถœ์‹œ๋๋‹ค. Raspberry Pi 4 ๋ณด๋“œ๋Š” ์ฐธ์กฐ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์€ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๊ณต๊ฐœ ์ €์žฅ์†Œ์—์„œ ๊ฐœ๋ฐœ๋˜๋ฉฐ ๊ณต๋™ ๊ฐœ๋ฐœ ๊ด€๋ฆฌ ๋ชจ๋ธ์„ ์ค€์ˆ˜ํ•˜์—ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐœ๋ฐœ์„ ๊ฐ๋…ํ•ฉ๋‹ˆ๋‹ค.

webOS ํ”Œ๋žซํผ์€ ์›๋ž˜ Palm์ด 2008๋…„์— ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ Palm Pre ๋ฐ Pixie ์Šค๋งˆํŠธํฐ์— ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2010๋…„ Palm์„ ์ธ์ˆ˜ํ•œ ๊ฒฐ๊ณผ ํ”Œ๋žซํผ์€ Hewlett-Packard์˜ ์†์— ๋„˜์–ด๊ฐ”๊ณ  ์ดํ›„ HP๋Š” ํ”„๋ฆฐํ„ฐ, ํƒœ๋ธ”๋ฆฟ, ๋…ธํŠธ๋ถ ๋ฐ PC์—์„œ ์ด ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. 2012๋…„์— HP๋Š” webOS๋ฅผ ๋…๋ฆฝ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ์ „ํ™˜ํ•œ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ์œผ๋ฉฐ 2013๋…„์—๋Š” ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. 2013๋…„์— LG๊ฐ€ Hewlett-Packard๋กœ๋ถ€ํ„ฐ ์ด ํ”Œ๋žซํผ์„ ๊ตฌ์ž…ํ–ˆ์œผ๋ฉฐ ํ˜„์žฌ 70์ฒœ๋งŒ ๋Œ€ ์ด์ƒ์˜ LG TV์™€ ์†Œ๋น„์ž ๊ธฐ๊ธฐ์— ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 2018๋…„์—๋Š” webOS ์˜คํ”ˆ์†Œ์Šค ์—๋””์…˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ถœ๋ฒ”์‹œ์ผฐ๊ณ , ์ด๋ฅผ ํ†ตํ•ด LG๋Š” ๊ฐœ๋ฐฉํ˜• ๊ฐœ๋ฐœ ๋ชจ๋ธ๋กœ์˜ ๋ณต๊ท€๋ฅผ ์‹œ๋„ํ•˜๊ณ , ์ฐธ์—ฌ์ž๋“ค์„ ์œ ์น˜ํ•˜๋ฉฐ, webOS์—์„œ ์ง€์›ํ•˜๋Š” ๋””๋ฐ”์ด์Šค ๋ฒ”์œ„๋ฅผ ํ™•๋Œ€ํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

webOS ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์€ Yocto ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ OpenEmbedded ํˆดํ‚ท ๋ฐ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. webOS์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋น„์Šค ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๋Š” ์‹œ์Šคํ…œ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ์ž(SAM, System and Application Manager)์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” LSM(Luna Surface Manager)์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ๋Š” Qt ํ”„๋ ˆ์ž„์›Œํฌ์™€ Chromium ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ Œ๋”๋ง์€ Wayland ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งž์ถคํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด ์›น ๊ธฐ์ˆ (CSS, HTML5 ๋ฐ JavaScript)๊ณผ React ๊ธฐ๋ฐ˜ Enact ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋˜์ง€๋งŒ Qt ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ C ๋ฐ C++๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ž„๋ฒ ๋””๋“œ ๊ทธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋Œ€๋ถ€๋ถ„ QML ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋œ ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™ˆ ๋Ÿฐ์ฒ˜๊ฐ€ ์ œ๊ณต๋˜๋Š”๋ฐ, ์ด๋Š” ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ ์กฐ์ž‘์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ (์ฐฝ ๋Œ€์‹ ) ์—ฐ์† ๋งต ๊ฐœ๋…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

WebOS ์˜คํ”ˆ ์†Œ์Šค ์—๋””์…˜ 2.10 ํ”Œ๋žซํผ ๋ฆด๋ฆฌ์Šค

JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐํ™”๋œ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด LevelDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” DB8 ์ €์žฅ์†Œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”์—๋Š” systemd ๊ธฐ๋ฐ˜์˜ bootd๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. uMediaServer ๋ฐ MDC(Media Display Controller) ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ œ๊ณต๋˜๋ฉฐ PulseAudio๋Š” ์‚ฌ์šด๋“œ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŽŒ์›จ์–ด๋ฅผ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด OSTree ๋ฐ ์›์ž ํŒŒํ‹ฐ์…˜ ๊ต์ฒด๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(๋‘ ๊ฐœ์˜ ์‹œ์Šคํ…œ ํŒŒํ‹ฐ์…˜์ด ์ƒ์„ฑ๋˜๋ฉฐ ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ํ™œ์„ฑ ์ƒํƒœ์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ).

์ƒˆ ๋ฆด๋ฆฌ์Šค์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ๋‚ด๋ถ€ ์ €์žฅ์†Œ, USB ๋“œ๋ผ์ด๋ธŒ ๋ฐ ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ ์‹œ์Šคํ…œ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ์ €์žฅ์†Œ ์‹œ์„ค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์ผ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ €์žฅ์†Œ ์•ก์„ธ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(ํ˜„์žฌ Google ๋“œ๋ผ์ด๋ธŒ๋งŒ ์ง€์›๋จ). ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณตํ†ต ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ตฌ์„ฑ๋œ ๋ชจ๋“  ์Šคํ† ๋ฆฌ์ง€ ์ œ๊ณต์ž์˜ ๋ฌธ์„œ, ์ด๋ฏธ์ง€ ๋ฐ ํŒŒ์ผ์„ ๋ณด๊ณ  ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์€ ์„ธ์…˜ ๋ฐ ์ธ์ฆ ์ฟ ํ‚ค๋ฅผ ์•”ํ˜ธํ™”๋œ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • GPIO, SPI, I2C ๋ฐ UART ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์žฅ์น˜์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ง€์›ํ•˜๋Š” ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์ฃผ๋ณ€ ์žฅ์น˜ ๊ด€๋ฆฌ์ž ์„œ๋น„์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”Œ๋žซํผ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์ƒˆ ์žฅ์น˜์˜ ๊ด€๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฃจ๋‚˜๋ฒ„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค์˜ ๊ถŒํ•œ์„ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ACG(Access Control Groups) ์ ‘๊ทผํ†ต์ œ ๋ชจ๋ธ์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ๊ธฐ์กด ๋ณด์•ˆ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ์กด ์„œ๋น„์Šค๊ฐ€ ๋ชจ๋‘ ACG๋กœ ์ด์ „๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ACG ๊ทœ์น™์˜ ๊ตฌ๋ฌธ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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