๊ฐ์ฅ ์ค์ํ
- ๋ชจ๋ ๋ฐ์คํฌํ ๋ฐฐํฌ ์ต์ (Fedora Workstation, Fedora KDE ๋ฑ)์ ๊ธฐ๋ณธ์ ์ผ๋ก Btrfs ํ์ผ ์์คํ ์ ์ฌ์ฉํ๋๋ก ์ ํ๋์์ต๋๋ค. ๋ด์ฅ ํํฐ์ ๊ด๋ฆฌ์ Btrfs๋ฅผ ์ฌ์ฉํ๋ฉด / ๋ฐ /home ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณ๋๋ก ๋ง์ดํธํ ๋ ์ฌ์ ๋์คํฌ ๊ณต๊ฐ์ด ์์ง๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. Btrfs๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ํํฐ์ ์ ๋ ๊ฐ์ ํ์ ํํฐ์ ์ ๋ฐฐ์นํ์ฌ ๋ณ๋๋ก ๋ง์ดํธํ ์ ์์ง๋ง ๋์ผํ ๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ Btrfs๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ ์ท, ํฌ๋ช ํ ๋ฐ์ดํฐ ์์ถ, cgroups2๋ฅผ ํตํ I/O ์์ ์ ์ฌ๋ฐ๋ฅธ ๊ฒฉ๋ฆฌ, ์ฆ๊ฐ์ ์ธ ํํฐ์ ํฌ๊ธฐ ์กฐ์ ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ถ์๋ฅผ ์ํด ์
๋ฐ์ดํธ๋ Fedora Workstation ๋ฐ์คํฌํ
๊ทธ๋ 3.38 ์ฑ๋ฅ์ด ์ต์ ํ๋ GNOME์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ ์๊ฐ ์ธํฐํ์ด์ค(ํ์ ํฌ์ด) ์ ๊ณต, ์๋ ๋ณดํธ ๊ธฐ๋ฅ ํ์ฅ, ๊ฐ ๋ชจ๋ํฐ์ ์๋ก ๋ค๋ฅธ ํ๋ฉด ์๋ก ๊ณ ์นจ ๋น๋๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฅ ์ ๊ณต, ์น์ธ๋์ง ์์ USB ์ฐ๊ฒฐ์ ๋ฌด์ํ๋ ์ต์ ์ถ๊ฐ ํ๋ฉด์ด ์ ๊ฒจ ์๋ ๋์ ์ฅ์น. - Thermald๋ ๊ธฐ๋ณธ์ ์ผ๋ก Fedora Workstation์ ์ถ๊ฐ๋์ด ์จ๋ ์ผ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ต๋ ๋ถํ ๋์ CPU๊ฐ ๊ณผ์ด๋์ง ์๋๋ก ๋ณดํธํฉ๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ฐ์ ๋ฐ๋ผ ์์์ด ๋ณ๊ฒฝ๋๋ ์ ๋๋ฉ์ด์ ๋ฐ์คํฌํ ๋ฐฐ๊ฒฝํ๋ฉด์ด ํ์ฑํ๋ฉ๋๋ค.
- vi ๋์ ๊ธฐ๋ณธ ํ ์คํธ ํธ์ง๊ธฐ๋ nano์ ๋๋ค. Vi ํธ์ง๊ธฐ ์์ ๋ฐฉ๋ฒ์ ๋ํ ํน๋ณํ ์ง์์ด ์๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ํธ์ง๊ธฐ๋ฅผ ์ ๊ณตํ์ฌ ์ ๊ท ์ฌ์ฉ์๊ฐ ๋ฐฐํฌํ์ ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ค๋ ์๋์์ ์ด๋ฌํ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ๋์์ ๊ธฐ๋ณธ ํจํค์ง๋ vim-minimal ํจํค์ง๋ฅผ ์ ์งํ๊ณ (vi์ ๋ํ ์ง์ ํธ์ถ์ ์ ์ง๋จ) ์ฌ์ฉ์ ์์ฒญ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ํธ์ง๊ธฐ๋ฅผ vi๋ก ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฐฐํฌํ์ ๊ณต์ ํ ์ค์์ ์ฑํ๋จ
์ฌ๋ฌผ ์ธํฐ๋ท ์ต์ (Fedora IoT)๋ ์ด์ Fedora Workstation ๋ฐ Fedora Server์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. Fedora IoT ์๋์ ์ Fedora IoT ์๋์ ์ ์ฌ์ฉ๋ ๊ฒ๊ณผ ๋์ผํ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.ํ๋๋ผ ์ฝ์ด OS ,Fedora ์์ ํธ์คํธ ะธํ๋๋ผ ์ค๋ฒ ๋ธ๋ฃจ , ๋ณ๋์ ํจํค์ง๋ก ์ชผ๊ฐ์ง ์๊ณ ์ ์ฒด ์์คํ ์ ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํ์ฌ ์์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ์ต์ํ์ ์์คํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๋ฌด๊ฒฐ์ฑ์ ์ ์ดํ๊ธฐ ์ํด ์ ์ฒด ์์คํ ์ด๋ฏธ์ง๊ฐ ๋์งํธ ์๋ช ์ผ๋ก ์ธ์ฆ๋ฉ๋๋ค. ๋ฉ์ธ ์์คํ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ๋ฆฌํ๋ ค๋ฉด์ ๊ณต ๊ฒฉ๋ฆฌ๋ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํฉ๋๋ค(๊ด๋ฆฌ์๋ Podman์ด ์ฌ์ฉ๋จ).Fedora IoT ์์คํ ํ๊ฒฝ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ง๋ค์ด์ง๋๋ค.
OS ํธ๋ฆฌ , ์์คํ ์ด๋ฏธ์ง๊ฐ Git๊ณผ ์ ์ฌํ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ด ๋ฒ์ ์ ์ด ๋ฐฉ๋ฒ์ ๋ฐฐํฌ ๊ตฌ์ฑ ์์์ ์ ์ฉํ ์ ์์ต๋๋ค(์: ์์คํ ์ ์ด์ ์ํ๋ก ์ ์ํ๊ฒ ๋กค๋ฐฑํ ์ ์์). RPM ํจํค์ง๋ ํน์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ OSTree ์ ์ฅ์๋ก ๋ณํ๋ฉ๋๋ค.rpm-ostree . ๊ธฐ์ฑํ ์ด์ ๋ธ๋ฆฌ์ ๊ณต๋ x86_64, Aarch64 ๋ฐ ARMv7(armhfp) ์ํคํ ์ฒ์ฉ.์ ์ธ๋จ Raspberry Pi 3 ๋ชจ๋ธ B/B+, 96๋ณด๋ Rock960 Consumer Edition, Pine64 A64-LTS, Pine64 Rockpro64 ๋ฐ Rock64 ๋ฐ Up Squared๋ ๋ฌผ๋ก x86_64 ๋ฐ aarch64 ๊ฐ์ ๋จธ์ ์ ์ง์ํฉ๋๋ค. - Fedora์ KDE ๋ฒ์ ์๋ Fedora Workstation์ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์์ ์ ๊ณต๋์๋ Earlyoom ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค. Earlyoom์ ์ฌ์ฉํ๋ฉด ์ํฉ์ด ์ฌ๊ฐํด์ง๊ณ ์ผ๋ฐ์ ์ผ๋ก ์์คํ ์ด ๋ ์ด์ ์๋ตํ์ง ์์ ๋ ํธ๋ฆฌ๊ฑฐ๋๋ ์ปค๋์ OOM(Out Of Memory) ํธ๋ค๋ฌ๋ฅผ ํธ์ถํ์ง ์๊ณ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ๋ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ํ๋์. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์ด 4% ๋ฏธ๋ง์ด๊ณ 400MiB ์ดํ์ธ ๊ฒฝ์ฐ earlyoom์ ์์คํ ์ํ๋ฅผ ์์คํ ์ง์ฐ๊ธฐ ์ํ๋ก ๊ฐ์ ธ์ค์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ฅ ๋ง์ด ์๋นํ๋ ํ๋ก์ธ์ค(/proc/*/oom_score๊ฐ ๊ฐ์ฅ ๋์ ํ๋ก์ธ์ค)๋ฅผ ๊ฐ์ ๋ก ์ข ๋ฃํฉ๋๋ค. ๋ฒํผ.
- RPM 4.16, Python 3.9, Perl 5.32, Binutils 2.34, Boost 1.73, Glibc 2.32, Go 1.15, Java 11, LLVM/Clang 11, GNU Make 4.3, Node.js 14, Erlang 23, LXQt 0.15.0๋ฅผ ํฌํจํ ๋ง์ ํจํค์ง์ ์ ๋ฐ์ดํธ๋ ๋ฒ์ .6.0, ๋ฃจ๋น ์จ ๋ ์ผ์ค 2.1.0, ์คํธ๋ผํฐ์ค 2.6. Python 3.4 ๋ฐ Python 64์ ๋ํ ์ง์์ด ์ค๋จ๋์์ต๋๋ค. aarchXNUMX ์ํคํ ์ฒ๋ .NET Core์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
- Apache http ์๋ฒ์ฉ mod_php ๋ชจ๋์ ๋ํ ์ง์์ด ์ค๋จ๋์์ต๋๋ค. ๋์ php-fpm์ ์ฌ์ฉํ์ฌ PHP์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ ๊ฒ์ด ์ ์๋์์ต๋๋ค.
- Fedora์ฉ Firefox์ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต
ํฌํจ ๋ ํจ์น์ง์ง VA-API(Video Acceleration API) ๋ฐ FFmpegDataDecoder๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋์ค ๋์ฝ๋ฉ์ ํ๋์จ์ด ๊ฐ์์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ํ์ ํ์์ฉ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๋ WebRTC ๊ธฐ์ ๊ธฐ๋ฐ ์ธ์ ์์๋ ํ์ฑํ๋ฉ๋๋ค. ๊ฐ์์ Wayland ๋ฐ X11 ๊ธฐ๋ฐ ํ๊ฒฝ์์ ์๋ํฉ๋๋ค("MOZ_X11_EGL=1 firefox"๋ฅผ ์คํํ๊ณ "media.ffmpeg.vaapi.enabled" ์ค์ ์ ํ์ฑํํ๋ ๊ฒฝ์ฐ). - Chrony์ ์ ํํ ์๊ฐ ๋๊ธฐํ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ฐ ์ค์น ํ๋ก๊ทธ๋จ์๋ NTS(Network Time Security) ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ๋ํ ์ง์์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ์์ธ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก
๋ค์ฝํ DXGI(DirectX ๊ทธ๋ํฝ ์ธํ๋ผ), Direct3D 9, 10 ๋ฐ 11์ ๊ตฌํ์ ์ ๊ณตํ๋ DXVK ๋ ์ด์ด ๊ธฐ๋ฐ ๋ฐฑ์๋๋ Vulkan API์ ๋ํ ํธ์ถ ๋ณํ์ ํตํด ์๋ํฉ๋๋ค.
OpenGL ์์์ ์คํ๋๋ Wine์ ๋ด์ฅ Direct3D 9/10/11 ๊ตฌํ๊ณผ ๋ฌ๋ฆฌ DXVK๋ Wine์์ 3D ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฒ์์ ์คํํ ๋ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. - ๊ธฐ๋ณธ์ ์ผ๋ก ํจํค์ง๋ฅผ ๋น๋ํ๋ ๊ฒฝ์ฐ
ํฌํจ ๋ ์ฐ๊ฒฐ ๋จ๊ณ์์์ ์ต์ ํ(LTO, Link Time Optimization). redhat-rpm-config์ "-flto" ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. - ๊ธฐ๋ณธ DNS ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด
๋ค์ฝํ ์ฒด๊ณ์ ์ผ๋ก ํด๊ฒฐ๋์์ต๋๋ค. Glibc๋ ๋ด์ฅ NSS ๋ชจ๋ nss-dns ๋์ systemd ํ๋ก์ ํธ์์ nss-resolve๋ก ์ด๋๋์์ต๋๋ค.
Systemd-resolved๋ DHCP ๋ฐ์ดํฐ ๋ฐ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ ์ DNS ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก resolv.conf ํ์ผ์ ์ค์ ์ ์ ์งํ๋ ๋ฑ์ ๊ธฐ๋ฅ์ ์ํํ๊ณ DNSSEC ๋ฐ LLMNR(Link Local Multicast Name Resolution)์ ์ง์ํฉ๋๋ค. systemd-resolved๋ก ์ ํํ๋ฉด TLS๋ฅผ ํตํ DNS ์ง์, DNS ์ฟผ๋ฆฌ์ ๋ก์ปฌ ์บ์ฑ ํ์ฑํ, ๋ค์ํ ํธ๋ค๋ฌ๋ฅผ ๋ค์ํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ฐ์ธ๋ฉํ๋ ๊ธฐ๋ฅ ์ง์(๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ฐ๋ผ DNS ์๋ฒ๊ฐ ์ฐ๊ฒฐ์ ์ํด ์ ํ๋จ) ๋ฑ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด VPN ์ธํฐํ์ด์ค์ ๊ฒฝ์ฐ DNS ์ฟผ๋ฆฌ๋ VPN์ ํตํด ์ ์ก๋ฉ๋๋ค. Fedora์์๋ DNSSEC๋ฅผ ์ฌ์ฉํ ๊ณํ์ด ์์ต๋๋ค(systemd-resolved๋ DNSSEC=no ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ฉ๋๋ค).
systemd-resolved๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด systemd-resolved.service๋ฅผ ๋นํ์ฑํํ๊ณ NetworkManager๋ฅผ ๋ค์ ์์ํ๋ฉด ๊ธฐ์กด /etc/resolv.conf๊ฐ ์์ฑ๋ฉ๋๋ค. - NetworkManager์์ ifcfg-rh ํ๋ฌ๊ทธ์ธ ๋์ ์ค์ ์ ์ ์ฅํฉ๋๋ค.
๋ค์ฝํ ํค ํ์ผ ํ์์ ํ์ผ์ ๋๋ค. - ARM64 ์์คํ
์ ๊ฒฝ์ฐ
ํฌํจ ๋ ํฌ์ธํฐ ์ธ์ฆ์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ์กฐ๋ฆฝํ๊ณ ๋ถ๊ธฐ ์ค์ ๋ฐ๋ผ์๋ ์ ๋๋ ๋ช ๋ น ์ธํธ ์คํ์ ๋ํ ๋ณดํธ(BTI, ๋ถ๊ธฐ ๋์ ํ์๊ธฐ). ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ ๊ณต๊ฒฉ์๊ฐ ์์ ์ ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์นํ๋ ค๊ณ ์๋ํ์ง ์๊ณ ๋ก๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฏธ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๊ณ ๋ช ๋ น์ด ๋ถ๋ถ์์ ์๋ํ์ฌ ๋ฐํ ์ ์ด๋ก ๋๋๋ ๋ฐํ ์งํฅ ํ๋ก๊ทธ๋๋ฐ(ROP) ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๋ฐ ํจ๊ณผ์ ์ ๋๋ค. ์ง์นจ. - ์ค์
์ผ ๋ฉ๋ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์จ๊ฒจ์ ธ ์๊ณ ๊ทธ๋์์ ์ต์ ์ด ์คํจํ๊ฑฐ๋ ํ์ฑํ๋ ํ์๋ง ํ์๋๋ ๋ถํ ๋ฉ๋ด์ ์ ํ์ ํ์ ๊ธฐ์ ๊ตฌํ์ ๋จ์ํํฉ๋๋ค. - ์ ํต์ ์ธ ์ค์ ํํฐ์
์ ๋ง๋๋ ๋์
๊ตฌํ ์์ถ๋ ํํ๋ก RAM์ ๋ฐ์ดํฐ ์ ์ฅ์ ์ ๊ณตํ๋ zRAM ๋ธ๋ก ์ฅ์น๋ฅผ ์ฌ์ฉํ์ฌ ์ค์(์ค์) ๋ฐฐ์น. -
์ถ๊ฐ๋จ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์คSID (Storage Instantiation Daemon)์ ๋ค์ํ ์ ์ฅ์ ํ์ ์์คํ (LVM, ๋ค์ค ๊ฒฝ๋ก, MD)์ ์ฅ์น ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํธ์ถํฉ๋๋ค(์: ์ฅ์น ํ์ฑํ ๋ฐ ๋นํ์ฑํ). SID๋ udev์ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์๋ํ๊ณ udev์ ์ด๋ฒคํธ์ ๋ฐ์ํ๋ฏ๋ก ์ ์ง ๊ด๋ฆฌ ๋ฐ ๋๋ฒ๊ทธ๊ฐ ์ด๋ ค์ด ๋ค์ํ ํด๋์ค์ ์ฅ์น ๋ฐ ์คํ ๋ฆฌ์ง ํ์ ์์คํ ๊ณผ ์ํธ ์์ฉํ๊ธฐ ์ํด ๋ณต์กํ udev ๊ท์น์ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. - RPM ํจํค์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค(rpmdb)
๋ฒ์ญ BerkeleyDB์์ SQLite๋ก. ๊ต์ฒด์ ์ฃผ๋ ์ด์ ๋ ์๋ ๋์ ์ ์ง ๊ด๋ฆฌ๋์ง ์์ ์ค๋๋ ๋ฒ์ ์ Berkeley DB 5.x๋ฅผ rpmdb์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ต์ ๋ฆด๋ฆฌ์ค๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ Berkeley DB 6 ๋ผ์ด์ ์ค๊ฐ AGPLv3์ผ๋ก ๋ณ๊ฒฝ๋์ด ๋ฐฉํด๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ BerkeleyDB๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์์ผ๋ก ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ ์ฉ๋ฉ๋๋ค(RPM์ GPLv2์ ์ํ์ง๋ง AGPL์ GPLv2์ ํธํ๋์ง ์์ต๋๋ค). ๋ํ ํ์ฌ BerkeleyDB๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ rpmdb ๊ตฌํ์ ํธ๋์ญ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ์ผ์น๋ฅผ ๊ฐ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ํ ์ ๋ขฐ์ฑ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
์ถ์ฒ : opennet.ru