๋ค์ํ ํด๋์ฉ ๊ธฐ๊ธฐ, ๋ณด๋, ์๋์ฐจ ์ธํฌํ ์ธ๋จผํธ ์์คํ ์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ๋ฐฉํ ํ๋ซํผ webOS Open Source Edition 2.14์ด ์ถ์๋์์ต๋๋ค. Raspberry Pi 4 ๋ณด๋๋ ์ฐธ์กฐ ํ๋์จ์ด ํ๋ซํผ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ํ๋ซํผ์ Apache 2.0 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๊ณต๊ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ฐ๋ฐ๋๋ฉฐ ๊ฐ๋ฐ์ ๊ณต๋ ๊ฐ๋ฐ ๊ด๋ฆฌ ๋ชจ๋ธ์ ์ค์ํ์ฌ ์ปค๋ฎค๋ํฐ์์ ํ๋ ์ดํ ๋ฉ๋๋ค.
webOS ํ๋ซํผ์ ์๋ 2008๋ Palm์์ ๊ฐ๋ฐํ์ผ๋ฉฐ Palm Pre ๋ฐ Pixie ์ค๋งํธํฐ์ ์ฌ์ฉ๋์์ต๋๋ค. 2020๋ Palm์ ์ธ์ํ ํ ํ๋ซํผ์ Hewlett-Packard์ ์์ ๋์ด๊ฐ๊ณ HP๋ ํ๋ฆฐํฐ, ํ๋ธ๋ฆฟ, ๋ฉํฑ ๋ฐ PC์์ ์ด ํ๋ซํผ์ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ์ต๋๋ค. 2012๋ ์ HP๋ webOS๋ฅผ ๋ ๋ฆฝ์ ์ธ ์คํ ์์ค ํ๋ก์ ํธ๋ก ์ด์ ํ๋ค๊ณ ๋ฐํํ์ผ๋ฉฐ 2013๋ ์๋ ํด๋น ๊ตฌ์ฑ ์์์ ์์ค ์ฝ๋๋ฅผ ๊ณต๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. 2013๋ ์ ์ด ํ๋ซํผ์ LG๊ฐ Hewlett-Packard์์ ์ธ์ํ์ผ๋ฉฐ ํ์ฌ 70์ฒ๋ง ๋ ์ด์์ LG TV ๋ฐ ์๋น์ ์ฅ์น์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. 2018๋ ์๋ webOS Open Source Edition ํ๋ก์ ํธ๋ฅผ ์ ์คํ์ฌ 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 ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋ฐ์ฒ๊ฐ ์ ๊ณต๋๋๋ฐ, ์ด๋ ํฐ์น ์คํฌ๋ฆฐ ์กฐ์์ ์ต์ ํ๋์ด ์์ผ๋ฉฐ (์ฐฝ ๋์ ) ์ฐ์ ๋งต ๊ฐ๋ ์ ์ ๊ณตํฉ๋๋ค.

DB8 ์คํ ๋ฆฌ์ง๋ LevelDB ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฑ์๋๋ก ์ฌ์ฉํ์ฌ JSON ํ์์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. systemd ๊ธฐ๋ฐ์ Bootd๊ฐ ์ด๊ธฐํ์ ์ฌ์ฉ๋ฉ๋๋ค. uMediaServer ๋ฐ Media Display Controller(MDC) ์๋ธ์์คํ ์ ๋ฉํฐ๋ฏธ๋์ด ์ฝํ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ ๊ณต๋๋ฉฐ, ์ค๋์ค ์ฒ๋ฆฌ๋ ์ง์ํฉ๋๋ค. ์๋ฒ PulseAudio๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ ํ์จ์ด ์ ๋ฐ์ดํธ์๋ OSTree์ ์์์ ํํฐ์ ๊ต์ฒด ๋ฐฉ์์ด ์ฌ์ฉ๋ฉ๋๋ค(๋ ๊ฐ์ ์์คํ ํํฐ์ ์ด ์์ฑ๋๋๋ฐ, ํ๋๋ ํ์ฑ ํํฐ์ ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ ๋ฐ์ดํธ ํ์ผ์ ๋ณต์ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค).
์ ๋ฆด๋ฆฌ์ค์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
- ๊ธฐ๋ณธ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์นด๋ฉ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ์ฌ์ง ์ดฌ์๊ณผ ๋น๋์ค ๋ นํ๋ฅผ ์ํ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๋ณด๋ค ๊ณ ๊ธ ์นด๋ฉ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Raspberry Pi 64 ๋ณด๋(rpi4-4)์ ์๋ฎฌ๋ ์ดํฐ(qemux64)๋ฅผ ํฌํจํ 86๋นํธ ์ด์ ๋ธ๋ฆฌ ํ์ฑ์ผ๋ก์ ์ ํ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. 32๋นํธ ๋น๋์ ๋ํ ์ง์์ด ๋ ์ด์ ์ ๊ณต๋์ง ์์ต๋๋ค.
- ์คํ ์์ค ์ฝ๋ ํธ์ง๊ธฐ Visual Studio Code์ ๋ํ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ์ ์๋์๋๋ฐ, ์ด๋ฅผ ํตํด webOS ์ ์ฉ ์น ์ ํ๋ฆฌ์ผ์ด์ , Enact ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ JavaScript ์๋น์ค์ ๊ฐ๋ฐ์ด ๊ฐ์ํ๋ฉ๋๋ค.
- systemd-oomd ์์คํ ์์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ๋ํ ์กฐ๊ธฐ ๋์ ์๋น์ค๊ฐ ํ์ฑํ๋์ด ๋ฆฌ์์ค ๋ถ์กฑ์ผ๋ก ์ธํ ์ง์ฐ์ ์์์ ๊ฐ์งํ๊ณ ์์คํ ์ด ์์ง ์ํ ์ํ์ ์์ง ์๊ณ ์บ์๋ฅผ ์ง์ค์ ์ผ๋ก ์๋ผ๋ด๊ณ ์ค์ ํํฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ํธ์ํ์ง ์๋ ๋จ๊ณ์์ ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ํ๋ก์ธ์ค๋ฅผ ์ ํ์ ์ผ๋ก ์ข ๋ฃํ ์ ์์ต๋๋ค.
- ์ด์ Network Manager๊ฐ Raspberry Pi 4 ๋ณด๋ ๋น๋์์ wpa-supplicant ์๋น์ค๋ฅผ ์คํํฉ๋๋ค.
- ์๋ฎฌ๋ ์ดํฐ ๋น๋๊ฐ occlientbasicops ๋ฐ ocserverbasicops ์คํ ํ์ผ๋ก ์ ๋ฐ์ดํธ๋์๊ณ , LGE UWB ๋ชจ๋์ ๋ํ udev ๊ท์น์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- g-camera-pipeline ๊ตฌ์ฑ ์์์ ์ค๋์ค ๋ น์๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ด ๊ฐ์ ๋์์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ์์ง์ด Chromium 91๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- ์๋ฒ ๋๋ ์์ฑ์ ์ํ ํ๋ซํผ ๊ตฌ์ฑ ์์ Linux- Yocto ์์คํ ์ด 3.1 ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๋ D-Bus ์ ํธ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํฉ๋๋ค.
๋ํ, LG TV์ฉ ํ์จ์ด์ ์ญ๊ณตํ์ ์งํํ๋ OpenLGTV ํ๋ก์ ํธ๋ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ํ์จ์ด์์ ์คํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ๋ Copyleft ๋ผ์ด์ ์ค ์ค์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ , ๊ธฐ๋ฅ์ ํ์ฅํ๊ณ , ์ค๋ฅ๋ฅผ ์์ ๊ธฐ ์ํด ๋
ธ๋ ฅํ๊ณ ์์ต๋๋ค(ํ์จ์ด๋ ๋ถ๋ถ์ ์ผ๋ก ๊ณต๊ฐ๋์ด ์์ต๋๋ค). ์ด ํ๋ก์ ํธ์์๋ LG, Hisense, Sharp, Philips/TPV ๋ฐ Thompson TV์์ ํ์จ์ด ๋ฐ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ํด๋
ํ๊ธฐ ์ํ epk2extract ํดํท๊ณผ webOS Brew ํจํค์ง ์ ์ฅ์, TV์์ ๋ฃจํธ ๊ถํ์ ์ป๊ธฐ ์ํ ํดํท(RootMyTV)์ ๊ฐ๋ฐํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ LG NC4 ๋ฐ LG115x ๋ณด๋ ๊ธฐ๋ฐ TV์ฉ ์์คํ
์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ด์
๋ธ๋ฆฌ ํ๊ฒฝ์ ์ ๊ณตํ๋ฉฐ, Broadcom ์นฉ ๊ธฐ๋ฐ Saturn S6, Saturn S7 ๋ฐ LG 2010๊ณผ 2011 TV์ฉ ๊ธฐ์กด ์์ ํ์จ์ด๋ ์ ๊ณตํฉ๋๋ค.
์ถ์ฒ : opennet.ru
