11๊ฐ์์ ๊ฐ๋ฐ ๋์ FreeBSD 13.2๊ฐ ์ถ์๋์์ต๋๋ค. amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 ๋ฐ riscv64 ์ํคํ ์ฒ์ ๋ํ ์ค์น ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ฉ๋๋ค. ๋ํ ๊ฐ์ํ ์์คํ (QCOW2, VHD, VMDK, raw) ๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ Amazon EC2, Google Compute Engine ๋ฐ Vagrant๋ฅผ ์ํ ์ด์ ๋ธ๋ฆฌ๊ฐ ์ค๋น๋์์ต๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
- ๋ก๊น ์ด ํ์ฑํ๋(์ํํธ ์ ๋ฐ์ดํธ) UFS ๋ฐ FFS ํ์ผ ์์คํ ์ ์ค๋ ์ท์ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค. ์ ๋๋ง์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ง์ดํธ๋ UFS ํ์ผ ์์คํ ์ ๋ด์ฉ๊ณผ ํจ๊ป ๋คํ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ์ฅ("-L" ํ๋๊ทธ๋ก ๋คํ ์คํ)์ ๋ํ ์ง์๋ ์ถ๊ฐ๋์์ต๋๋ค. ๋ก๊น ์ ์ฌ์ฉํ ๋ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ ์ค ํ๋๋ fsck ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ๋ ๊ฒ์ ๋๋ค.
- ๊ธฐ๋ณธ ๊ตฌ์ฑ์๋ VPN WireGuard์ฉ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ตฌํ๊ณผ ํจ๊ป ์ปค๋ ์์ค์์ ์๋ํ๋ wg ๋๋ผ์ด๋ฒ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋๋ผ์ด๋ฒ์ ํ์ํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ ์ํด FreeBSD ์ปค๋ ์ํธํ ํ์ ์์คํ
์ API๊ฐ ํ์ฅ๋์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ํ์ค ์ํธํ API๋ฅผ ํตํด FreeBSD์์ ์ง์๋์ง ์๋ libsodium ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ํ๋ค์ค๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. . ๊ฐ๋ฐ ๊ณผ์ ์์ CPU ์ฝ์ด์ ๋ํ ํจํท ์ํธํ ๋ฐ ์ํธ ํด๋
์์
๋ฐ์ธ๋ฉ์ ๊ท ํ์ ๊ท ๋ฑํ๊ฒ ์ ์งํ๊ธฐ ์ํด ์ต์ ํ๋ ์ํ๋์ด WireGuard ํจํท์ ์ฒ๋ฆฌํ ๋ ์ค๋ฒํค๋๊ฐ ๊ฐ์๋์์ต๋๋ค.
FreeBSD์ WireGuard๋ฅผ ํฌํจ์ํค๋ ค๋ ๋ง์ง๋ง ์๋๋ 2020๋ ์ ์ด๋ฃจ์ด์ก์ง๋ง ์ค์บ๋ค๋ก ๋๋ฌ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋ฎ์ ํ์ง, ๋ถ์ฃผ์ํ ๋ฒํผ ์์ , ๊ฒ์ฌ โโ๋์ ์คํ ์ฌ์ฉ, ๋ถ์์ ํ ๊ตฌํ์ผ๋ก ์ธํด ์ด๋ฏธ ์ถ๊ฐ๋ ์ฝ๋๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค. ํ๋กํ ์ฝ ์๋ฐ ๋ฐ GPL ๋ผ์ด์ผ์ค ์๋ฐ. ์๋ก์ด ๊ตฌํ์ VPN WireGuard์ ์์ฑ์์ธ Jason A. Donenfeld์ ์ ๋ช ํ FreeBSD ๊ฐ๋ฐ์์ธ John H. Baldwin์ ๋์์ ๋ฐ์ ํต์ฌ FreeBSD ๋ฐ WireGuard ๊ฐ๋ฐ ํ์ด ๊ณต๋์ผ๋ก ์ค๋นํ์ต๋๋ค. ์ ์ฝ๋๊ฐ ์น์ธ๋๊ธฐ ์ ์ FreeBSD ์ฌ๋จ์ ์ง์์ ๋ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ ์ฒด ๊ฒํ ๊ฐ ์ํ๋์์ต๋๋ค.
- ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์ปค๋๊ณผ ํ๋ก์ธ์ค์ ์ํธ ์์ฉ์ ๊ตฌ์ฑํ๊ธฐ ์ํด Linux์์ ์ฌ์ฉ๋๋ Netlink ํต์ ํ๋กํ ์ฝ(RFC 3549)์ ๋ํ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ์ปค๋์์ ๋คํธ์ํฌ ํ์ ์์คํ ์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ NETLINK_ROUTE ์์ ์ ํ๊ตฐ์ ์ง์ํ๋ ๊ฒ์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด FreeBSD๋ iproute2 ํจํค์ง์ Linux ip ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ , IP โโ์ฃผ์๋ฅผ ์ค์ ํ๊ณ , ๋ผ์ฐํ ์ ๊ตฌ์ฑํ๊ณ , ๋ค์ ํ์ ์กฐ์ํ ์ ์์ต๋๋ค. ํจํท์ ์ํ๋ ๋ชฉ์ ์ง๋ก ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด์ ๋๋ค.
- 64๋นํธ ํ๋ซํผ์ ๋ชจ๋ ๊ธฐ๋ณธ ์์คํ ์คํ ํ์ผ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ASLR(Address Space Layout Randomization)์ด ํ์ฑํ๋์ด ์์ต๋๋ค. ASLR์ ์ ํ์ ์ผ๋ก ๋นํ์ฑํํ๋ ค๋ฉด "proccontrol -m aslr -s ๋นํ์ฑํ" ๋๋ "elfctl -e +noaslr" ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ipfw์์๋ ๊ธฐ์ ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ MAC ์ฃผ์๋ฅผ ์กฐํํฉ๋๋ค. ์ด๋ฅผ ํตํด MAC ์ฃผ์๊ฐ ํฌํจ๋ ํ ์ด๋ธ์ ์์ฑํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ํฝ์ ํํฐ๋งํ ์ ์์ต๋๋ค. ์: ipfw table 1 create type mac ipfw table 1 add 11:22:33:44:55:66/48 ipfw add skito tablearg src-mac 'table(1)' ipfw add ๊ฑฐ๋ถ src-mac 'table(1, 100 )' ipfw ์ถ๊ฐ ๊ฑฐ๋ถ ์กฐํ dst-mac 1
- ์ปค๋ ๋ชจ๋ dpdk_lpm4 ๋ฐ dpdk_lpm6์ด ์ถ๊ฐ๋์์ผ๋ฉฐ IPv24/IPv8์ฉ DIR-4-6 ๊ฒฝ๋ก ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ์ฌ loader.conf๋ฅผ ํตํด ๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋งค์ฐ ํฐ ๋ผ์ฐํ ํ ์ด๋ธ์ด ์๋ ํธ์คํธ์ ๋ํ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค( ํ ์คํธ์์ 25%์ ์๋ ์ฆ๊ฐ๊ฐ ๊ด์ฐฐ๋์์ต๋๋ค. ๋ชจ๋์ ๊ตฌ์ฑํ๋ ค๋ฉด ํ์ค ๊ฒฝ๋ก ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค(FIB_ALGO ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค).
- ZFS ํ์ผ ์์คํ ๊ตฌํ์ด ์ ๋ฐ์ดํธ๋์ด OpenZFS 2.1.9๊ฐ ๋ฆด๋ฆฌ์ค๋์์ต๋๋ค. zfskeys ์์ ์คํฌ๋ฆฝํธ๋ ZFS ํ์ผ ์์คํ ์ ์ ์ฅ๋ ํค์ ์๋ ๋ก๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ๋ ์ด์์ zpool์ GUID๋ฅผ ํ ๋นํ๊ธฐ ์ํ ์๋ก์ด RC ์คํฌ๋ฆฝํธ zpoolreguid๊ฐ ์ถ๊ฐ๋์์ต๋๋ค(์: ๊ณต์ ๋ฐ์ดํฐ ๊ฐ์ํ ํ๊ฒฝ์ ์ ์ฉํจ).
- Bhyve ํ์ดํผ๋ฐ์ด์ ์ vmm ๋ชจ๋์ ๊ฒ์คํธ ์์คํ ์ 15๊ฐ ์ด์์ ๊ฐ์ CPU ์ฐ๊ฒฐ์ ์ง์ํฉ๋๋ค(sysctl hw.vmm.maxcpu๋ฅผ ํตํด ๊ท์ ๋จ). bhyve ์ ํธ๋ฆฌํฐ๋ ํค๋ณด๋ ๋ฐ ๋ง์ฐ์ค ์ ๋ ฅ ์ด๋ฒคํธ๋ฅผ ๊ฒ์คํธ ์์คํ ์ผ๋ก ๋์ฒดํ ์ ์๋ virtio ์ ๋ ฅ ์ฅ์น์ ์๋ฎฌ๋ ์ด์ ์ ๊ตฌํํฉ๋๋ค.
- FreeBSD ์ปค๋ ์์ค์์ ์คํ๋๋ TLS ํ๋กํ ์ฝ ๊ตฌํ์ธ KTLS์์๋ ์ํธํ๋ ์์ ํจํท ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ์ผ๋ถ ์์ ์ ๋คํธ์ํฌ ์นด๋๋ก ์คํ๋ก๋ํ์ฌ TLS 1.3์ ํ๋์จ์ด ๊ฐ์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ ์๋ TLS 1.1 ๋ฐ TLS 1.2์์๋ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์์ต๋๋ค.
- Growfs ์์ ์คํฌ๋ฆฝํธ์์ ๋ฃจํธ ํ์ผ ์์คํ ์ ํ์ฅํ ๋ ํด๋น ํํฐ์ ์ด ์ฒ์์ ๋๋ฝ๋ ๊ฒฝ์ฐ ์ค์ ํํฐ์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค(์: SD ์นด๋์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ค์นํ ๋ ์ ์ฉํจ). ์ค์ ํฌ๊ธฐ๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์๋ก์ด ๋งค๊ฐ๋ณ์์ธrowfs_swap_size๊ฐ rc.conf์ ์ถ๊ฐ๋์์ต๋๋ค.
- Hostid ์์ ์คํฌ๋ฆฝํธ๋ /etc/hostid ํ์ผ์ด ๋๋ฝ๋์ด ํ๋์จ์ด์์ UUID๋ฅผ ์ป์ ์ ์๋ ๊ฒฝ์ฐ ์์์ UUID๊ฐ ์์ฑ๋๋๋ก ํฉ๋๋ค. ๋ํ ํธ์คํธ ID๋ฅผ ๊ฐ๋ตํ๊ฒ ํํํ(ํ์ดํ ์์) /etc/machine-id ํ์ผ์ ์ถ๊ฐํ์ต๋๋ค.
- defaultrouter_fibN ๋ฐ ipv6_defaultrouter_fibN ๋ณ์๊ฐ rc.conf์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ๋ณธ ๊ฒฝ๋ก๊ฐ ์๋ FIB ํ ์ด๋ธ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- SHA-512/224 ํด์์ ๋ํ ์ง์์ด libmd ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ๋์์ต๋๋ค.
- pthread ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Linux์์ ์ฌ์ฉ๋๋ ํจ์์ ์๋ฏธ๋ฅผ ์ง์ํฉ๋๋ค.
- kdump์ ๋ํ Linux ์์คํ ํธ์ถ ๋์ฝ๋ฉ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. kdump ๋ฐ sysdecode์ ๋ํ Linux ์คํ์ผ ์์คํ ํธ์ถ ์ถ์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ด์ killall ์ ํธ๋ฆฌํฐ์๋ ํน์ ํฐ๋ฏธ๋์ ๋ฐ์ธ๋ฉ๋ ํ๋ก์ธ์ค์ ์ ํธ๋ฅผ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค(์: "killall -t pts/1").
- ํ์ฌ ํ๋ก์ธ์ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณ์ฐ ๋ธ๋ก ์๋ฅผ ํ์ํ๋ nproc ์ ํธ๋ฆฌํฐ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ACS(์ก์ธ์ค ์ ์ด ์๋น์ค) ๋งค๊ฐ๋ณ์ ๋์ฝ๋ฉ ์ง์์ด pciconf ์ ํธ๋ฆฌํฐ์ ์ถ๊ฐ๋์์ต๋๋ค.
- SPLIT_KERNEL_DEBUG ์ค์ ์ด ์ปค๋์ ์ถ๊ฐ๋์ด ์ปค๋ ๋ฐ ์ปค๋ ๋ชจ๋์ ๋ํ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ๋ณ๋์ ํ์ผ์ ์ ์ฅํ ์ ์์ต๋๋ค.
- Linux ABI๋ ์ปจํ ์คํธ ์ ํ ์์ด ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ํ๋ ์์คํ ํธ์ถ ์ธํธ๋ฅผ ์ ๊ณตํ๋ vDSO(๊ฐ์ ๋์ ๊ณต์ ๊ฐ์ฒด) ๋ฉ์ปค๋์ฆ์ ๊ฑฐ์ ์๋ฒฝํ๊ฒ ์ง์ํฉ๋๋ค. ARM64 ์์คํ ์ Linux ABI๋ AMD64 ์ํคํ ์ฒ ๊ตฌํ๊ณผ ๋๋ฑํด์ก์ต๋๋ค.
- ํฅ์๋ ํ๋์จ์ด ์ง์. Intel Alder Lake CPU์ ๋ํ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง(hwpmc) ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. Intel ๋ฌด์ ์นด๋์ฉ iwlwifi ๋๋ผ์ด๋ฒ๋ ์๋ก์ด ์นฉ๊ณผ 802.11ac ํ์ค์ ์ง์ํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. PCI ์ธํฐํ์ด์ค๊ฐ ์๋ Realtek ๋ฌด์ ์นด๋์ฉ rtw88 ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. linuxkpi ๊ณ์ธต์ ๊ธฐ๋ฅ์ FreeBSD์ Linux ๋๋ผ์ด๋ฒ์ ํจ๊ป ์ฌ์ฉํ ์ ์๋๋ก ํ์ฅ๋์์ต๋๋ค.
- OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฒ์ 1.1.1t๋ก, LLVM/ะกlang์ ๋ฒ์ 14.0.5๋ก ์ ๋ฐ์ดํธ๋์์ผ๋ฉฐ, SSH ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ OpenSSH 9.2p1๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค(์ด์ ๋ฒ์ ์์๋ OpenSSH 8.8p1์ ์ฌ์ฉํ์ต๋๋ค). ๋ํ ๋ฒ์ bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13๋ ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
๋ํ FreeBSD 14.0 ๋ธ๋์น๋ถํฐ ์ผํ์ฉ ๋น๋ฐ๋ฒํธ OPIE, ce ๋ฐ cp ๋๋ผ์ด๋ฒ, ISA ์นด๋์ฉ ๋๋ผ์ด๋ฒ, mergemaster ๋ฐ minigzip ์ ํธ๋ฆฌํฐ, netgraph(NgATM)์ ATM ๊ตฌ์ฑ ์์, telnetd ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค ๋ฐ ๊ธฐํํ์ VINUM ํด๋์ค.
์ถ์ฒ : opennet.ru