ํ๋์ ์ธ Debian ๊ฐ๋ฐ์์ด์ X.Org ํ๋ก์ ํธ์ ๋ฆฌ๋์ด์ XRender, XComposite ๋ฐ XRandR์ ํฌํจํ ๋ง์ X ํ์ฅ์ ์ฐฝ์์์ธ Keith Packard๋
Keith Packard๋ RAM์ด ๊ฑฐ์ ์๋ ์๋ฒ ๋๋ ์ฅ์น์ ์ฌ์ฉํ ์ ์๋ ์ ์ ํ Libc ์ต์ ์ ์ฐพ์ง ๋ชปํ ํ ๊ฐ๋ฐ์ ์์ํ์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ์๋ ๋ถํฐ ๊ฐ๋ฐ๋์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์ ํ๋ก์ ํธ๋ stdio์ ๊ธฐ๋ฅ์ด avrlibc์ ์ปดํฉํธ ๋ฒ์ ์ผ๋ก ๋์ฒด๋ newlib์ ๋ณํ์ด์์ต๋๋ค(newlib์ stdio๋ ๋์ ๋ฆฌ์์ค ์๋น์ ์ ํฉํ์ง ์์์ต๋๋ค). Keith์ ํ์ฌ ์์ ์๋ RISC-V ์ํคํ ์ฒ ๋ฐ ์๋ฒ ๋๋ ์ฅ์น์ฉ ๋๊ตฌ ๊ฐ๋ฐ์ ๋ํ ์ง์์ ์ธ ์์ ์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก ์ต๊ทผ libc ๊ตฌํ ์ํ๋ฅผ ๊ฒํ ํ๊ณ ์ฝ๊ฐ๋ง ์กฐ์ ํ๋ฉด newlib์ avrlibc์ ์กฐํฉ์ด ์ข์ ๋ฒ์ฉ ๊ตฌํ์ด ๋ ์ ์๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค. ํด๊ฒฐ์ฑ . ์ฒ์์ ํ๋ก์ ํธ๋ "newlib-nano"๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ฐ๋ฐ๋์์ง๋ง Newlib ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํผ๋์ ํผํ๊ธฐ ์ํด PicoLibc๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
ํ์ฌ ํํ์์ Picolibc๋ ์ด๋ฏธ BSD ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ์ ๊ณต๋์ง ์๋ ๋ชจ๋ ์ฝ๋(์ด ์ฝ๋๋ ์๋ฒ ๋๋ ์ฅ์น์ฉ์ผ๋ก ๋น๋ํ ๋ ์ฌ์ฉ๋์ง ์์)๋ฅผ ์ ๊ฑฐํ๋ ์์
์ ์ํํ์ผ๋ฉฐ, ์ด๋ ํ๋ก์ ํธ ๋ผ์ด์ผ์ค์ ์ํฉ์ ํฌ๊ฒ ๋จ์ํํ์ต๋๋ค. ๋ก์ปฌ ์คํธ๋ฆผ ๊ตฌํ์ด 'struct _reent'์์ TLS ๋ฉ์ปค๋์ฆ(
Picolibc ๋ฒ์ 1.1์์:
- ๊ธฐ์ ์ ์ง์ํ๊ธฐ ์ํด ๋ณด์กฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค."
์ธ๋ฏธํธ์คํ "๋๋ฒ๊ฑฐ ๋๋ ์๋ฎฌ๋ ์ดํฐ ํ๊ฒฝ์์ ์คํ๋๋ ์ฝ๋๊ฐ ํธ์คํธ ์์คํ ์ I/O ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค. - ์ด๊ธฐ, ๋ซ๊ธฐ, ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์คํ ํธ์ถ์ ์ง์ํ๋ ์์คํ ์ ๊ฒฝ์ฐ,tinystdio๋ fopen ๋ฐ fdopen ํจ์๋ฅผ ํฌํจํ ํ์คํ๋ POSIX stdio I/O ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํ๊ณ stdin/stdout/stderr์ POSIX ์ ์ ํ์ผ ์ค๋ช ์์ ๋ฐ์ธ๋ฉํฉ๋๋ค.
- newlib ์ฝ๋๋ฒ ์ด์ค์ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ์ด ์ด์ด์ก์ต๋๋ค. ์ถ๊ฐ๋ libm ์คํ
ํฌํจ
fenv.h , ๋ถ๋ ์์์ ์ง์์ด ์๋ ์์คํ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ARM ๋ฐ RISC-V ์์คํ ์ฉ picolibc๋ฅผ ์ฌ์ฉํ์ฌ "Hello world" ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฌ์ฉ๋์ง ์์ ์คํ ์ฝ๋๊ฐ ํฌํจ๋ newlib, libm ๋ฐ mathfp ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
์ถ์ฒ : opennet.ru