๋ค์ํ ํด๋์ฉ ๊ธฐ๊ธฐ, ๋ณด๋, ์๋์ฐจ ์ธํฌํ ์ธ๋จผํธ ์์คํ ์์ ์ฌ์ฉํ ์ ์๋ ์คํ ํ๋ซํผ 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 ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋ฐ์ฒ๊ฐ ์ ๊ณต๋๋๋ฐ, ์ด๋ ํฐ์น ์คํฌ๋ฆฐ ์กฐ์์ ์ต์ ํ๋์ด ์์ผ๋ฉฐ (์ฐฝ ๋์ ) ์ฐ์ ๋งต ๊ฐ๋ ์ ์ ๊ณตํฉ๋๋ค.
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