Rust-for-Linux ํ๋ก์ ํธ์ ์ ์์ธ Miguel Ojeda๋ Linux ์ปค๋ ๊ฐ๋ฐ์๊ฐ ๊ณ ๋ คํ ์ ์๋๋ก Rust ์ธ์ด๋ก ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๊ตฌ์ฑ ์์์ ๋ค ๋ฒ์งธ ๋ฒ์ ์ ์ ์ํ์ต๋๋ค. Rust ์ง์์ ์คํ์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ง๋ง ์ด๋ฏธ linux-next ๋ธ๋์น์ ํฌํจํ๊ธฐ๋ก ๋์ํ์ผ๋ฉฐ ์ปค๋ ํ์ ์์คํ ์ ๋ํ ์ถ์ํ ๊ณ์ธต ์์ฑ๊ณผ ๋๋ผ์ด๋ฒ ๋ฐ ๋ชจ๋ ์์ฑ ์์ ์ ์์ํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ์ฑ์๋์์ต๋๋ค. ์ด ๊ฐ๋ฐ์ Google๊ณผ Let's Encrypt ํ๋ก์ ํธ์ ์ฐฝ๋ฆฝ์์ธ ISRG(Internet Security Research Group)์์ ์๊ธ์ ์ง์๋ฐ๊ณ HTTPS์ ์ธํฐ๋ท ๋ณด์์ ํฅ์์ํค๋ ๊ธฐ์ ๊ฐ๋ฐ์ ์ด์งํฉ๋๋ค.
์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ํตํด Rust๋ฅผ ๋๋ผ์ด๋ฒ ๋ฐ ์ปค๋ ๋ชจ๋ ๊ฐ๋ฐ์ ์ํ ๋ ๋ฒ์งธ ์ธ์ด๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์. Rust ์ง์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ง ์๋ ์ต์ ์ผ๋ก ์ ๊ณต๋๋ฉฐ Rust๊ฐ ์ปค๋์ ๋ํ ํ์ ๋น๋ ์ข ์์ฑ์ผ๋ก ํฌํจ๋์ง ์์ต๋๋ค. ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์ Rust๋ฅผ ์ฌ์ฉํ๋ฉด ํด์ ํ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค, ๋ ํฌ์ธํฐ ์ญ์ฐธ์กฐ ๋ฐ ๋ฒํผ ์ค๋ฒ๋ฐ๊ณผ ๊ฐ์ ๋ฌธ์ ์์ด ์ต์ํ์ ๋ ธ๋ ฅ์ผ๋ก ๋ ์์ ํ๊ณ ๋ ๋์ ๋๋ผ์ด๋ฒ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ ์ฒ๋ฆฌ๋ ์ฝ๋ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ ํ๊ฐ๋ฟ๋ง ์๋๋ผ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ๋ฐ ๊ฐ์ฒด ์๋ช (๋ฒ์) ์ถ์ ์ ํตํด ์ปดํ์ผ ์๊ฐ์ Rust์์ ์ ๊ณต๋ฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ํ์ ์ด๊ธฐํ๊ฐ ํ์ํ๋ฉฐ, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ฅ๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋ ์ ์ ์ฉํ๊ณ , ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํ์ฌ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
ํจ์น์ ์ ๋ฒ์ ์์๋ ํจ์น์ ์ฒซ ๋ฒ์งธ, ๋ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ๋ฒ์ ์ ๋ํ ๋ ผ์ ์ค์ ์ธ๊ธ๋ ์๊ฒฌ์ด ๊ณ์ํด์ ์ ๊ฑฐ๋์์ต๋๋ค. ์ ๋ฒ์ ์์๋:
- ์ฐธ์กฐ ์ปดํ์ผ๋ฌ๋ก Rust 1.58.0์ ์์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋๋ก ์ ํ๋์์ต๋๋ค. ๋ฉ์ธ Rust ํดํท์๋ ์์ง ํฌํจ๋์ง ์์์ง๋ง ํ๋ก์ ํธ์ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ ์ค์๋ "-Zsymbol-mangling-version=v0" ํ๋๊ทธ(Rust 1.59.0์์ ์์๋จ) ๋ฐ "maybe_uninit_extra" ๋ชจ๋(Rust 1.60.0์์ ์์๋จ)๊ฐ ์์ต๋๋ค. .XNUMX)์ด ๊ธฐ๋ก๋์ด ์์ต๋๋ค. .
- ์ ํฉํ Rust ๋๊ตฌ์ ๊ฐ์ฉ์ฑ์ ๋ํ ์๋ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ๊ณ ์์คํ ์์ Rust ์ง์์ ํ ์คํธํ๋ ๊ธฐ๋ฅ์ ํ์ฅํ์ต๋๋ค.
- Rust ์ฝ๋์์ ์ฅ์น ์๋ณ์ ํ ์ด๋ธ("IdArray" ๋ฐ "IdTable")์ ์ก์ธ์คํ๊ธฐ ์ํ ์๋ก์ด ์ถ์ํ๊ฐ ์ ์๋์์ต๋๋ค.
- ํ์ด๋จธ ๊ด๋ จ ๊ธฐ๋ฅ(์๊ณ ํ๋ ์์ํฌ)์ ์ก์ธ์คํ๊ธฐ ์ํ ๋ ์ด์ด๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ํ๋ซํผ ๋๋ผ์ด๋ฒ๋ ์ด์ ํน์ฑ ๊ตฌํ์ ํตํด ์ ์๋ฉ๋๋ค.
- ํ๋ซํผ ๋๋ผ์ด๋ฒ ๋ฑ๋ก์ ๋จ์ํํ๊ธฐ ์ํด ์๋ก์ด ๋งคํฌ๋ก๊ฐ ์ถ๊ฐ๋์์ผ๋ฉฐ ์๋ก์ด ์ผ๋ฐ ๋๋ผ์ด๋ฒ ํ ํ๋ฆฟ์ด ์ ์๋์์ต๋๋ค.
- "dev_*" ๊ตฌ์กฐ์ ๋ํ ๋งคํฌ๋ก๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- IoMem ์ ํ์ ๋ํ "{read,write}*_relaxed" ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. .
- ํ์ผ ์์ ์ ๋จ์ํํ๊ธฐ ์ํด FileOpener ์์ฑ์ ์ ๊ฑฐํ์ต๋๋ค.
- ๋๋ผ์ด๋ฒ ๋ฑ๋ก ์ ์ ๋ฌ๋๋ ์ธ์์ "ThisModule" ๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- Rust ์ธ์ด๋ก ์ปค๋ ๋ชจ๋์ ์์ฑํ๊ธฐ ์ํ ํ์ค ํ ํ๋ฆฟ์ด ์ ์๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru