์ฃผ์ ์ด์ ์ฒด์ ๋ฆด๋ฆฌ์ค , ์๋ก์ด ๊ธฐ๋ฅ์ ๋ค์ ๋ถ๋ถ์ด ๊ตฌํ๋ฉ๋๋ค. ๋ก๋ฉ์ฉ ์ค์น ์ด๋ฏธ์ง ํฌ๊ธฐ๋ 470MB์ ๋๋ค. NetBSD 9.0 ๋ฆด๋ฆฌ์ค๋ ๋ค์ ๋น๋์์ ๊ณต์์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. 15๊ฐ์ ๋ค์ํ CPU ์ ํ๊ตฐ.
NetBSD ๊ฐ๋ฐ ์ ๋ต์ ํต์ฌ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ์ง์ ํฌํธ๋ 8๊ฐ(amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 ๋ฐ xen)์ ๋๋ค. alpha, hppa, m49, m68010k, sh68, sparc ๋ฐ vax์ ๊ฐ์ CPU์ ๊ด๋ จ๋ 3๊ฐ์ ํฌํธ๋ ๋ ๋ฒ์งธ ๋ฒ์ฃผ๋ก ๋ถ๋ฅ๋ฉ๋๋ค. ์ฌ์ ํ ์ง์๋์ง๋ง ๊ด๋ จ์ฑ์ ์๊ฑฐ๋ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์๋ ๊ฐ๋ฐ์ ์๊ฐ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ธ ๋ฒ์งธ ๋ฒ์ฃผ์๋ ํ๋์ ํฌํธ(acorn26)๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ฌ๊ธฐ์๋ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์๋ ์ฌ์ฉ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๊ฑฐํ ์ ์๋ ์๋ํ์ง ์๋ ํฌํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ด์ NetBSD 9.0:
- ์๋ก์ด ํ์ดํผ๋ฐ์ด์ ์ถ๊ฐ๋จ , AMD CPU์ฉ ํ๋์จ์ด ๊ฐ์ํ ๋ฉ์ปค๋์ฆ SVM ๋ฐ Intel CPU์ฉ VMX๋ฅผ ์ง์ํฉ๋๋ค. NVMM์ ํน๋ณํ ๊ธฐ๋ฅ์ ์ปค๋ ์์ค์์ ํ๋์จ์ด ๊ฐ์ํ ๋ฉ์ปค๋์ฆ์ ํ์ํ ์ต์ํ์ ๋ฐ์ธ๋ฉ ์ธํธ๋ง ์ํ๋๊ณ ๋ชจ๋ ํ๋์จ์ด ์๋ฎฌ๋ ์ด์ ์ฝ๋๊ฐ ์ปค๋์์ ์ฌ์ฉ์ ๊ณต๊ฐ์ผ๋ก ์ด๋๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ฐ์ ๋จธ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํด libnvmm ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฐ ๋๊ตฌ์ NVMM์ ์ฌ์ฉํ์ฌ ๊ฒ์คํธ ์์คํ ์ ์คํํ๊ธฐ ์ํ qemu-nvmm ํจํค์ง๊ฐ ์ค๋น๋์์ต๋๋ค. libnvmm API๋ ๊ฐ์ ๋จธ์ ์์ฑ ๋ฐ ์คํ, ๊ฒ์คํธ ์์คํ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น, VCPU ํ ๋น๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ค๋ฃน๋๋ค. ๊ทธ๋ฌ๋ libnvmm์๋ ์๋ฎฌ๋ ์ดํฐ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ, NVMM ์ง์์ QEMU์ ๊ฐ์ ๊ธฐ์กด ์๋ฎฌ๋ ์ดํฐ์ ํตํฉํ ์ ์๋ API๋ง ์ ๊ณตํฉ๋๋ค.
- ARM ํธํ ์๋ฒ ์์คํ
์ ํฌํจํ์ฌ 64๋นํธ AArch64 ์ํคํ
์ฒ(ARMv8-A)์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค. (SBBR+SBSA) ๋ฐ big.LITTLE ์์คํ
(๊ฐ๋ ฅํ์ง๋ง ์๋์ง๋ฅผ ์๋นํ๋ ์ฝ์ด์ ์์ฐ์ฑ์ ๋ฎ์ง๋ง ์๋์ง ํจ์จ์ ์ธ ์ฝ์ด๋ฅผ ํ๋์ ์นฉ์ ๊ฒฐํฉํ ๊ฒ)์
๋๋ค. COMPAT_NETBSD32๋ฅผ ์ฌ์ฉํ์ฌ 64๋นํธ ํ๊ฒฝ์์ 32๋นํธ ์์ฉ ํ๋ก๊ทธ๋จ ์คํ์ ์ง์ํฉ๋๋ค. ์ต๋ 256๊ฐ์ CPU๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. QEMU ์๋ฎฌ๋ ์ดํฐ ๋ฐ SoC์์์ ์คํ์ด ์ง์๋ฉ๋๋ค.
- ์ฌ์๋ A64, H5, H6
- ์๋ก์ง S905, S805X, S905D, S905W, S905X
- ๋ธ๋ก๋ BCM2837
- ์๋น๋์ ํ ๊ทธ๋ผ X1(T210)
- ๋ก์นฉ RK3328, RK3399
- Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040๊ณผ ๊ฐ์ SBSA/SBBR ์๋ฒ ๋ณด๋.
- ARMv7-A ์ํคํ
์ฒ ๊ธฐ๋ฐ ์ฅ์น์ ๋ํ ์ง์์ด ํ์ฅ๋์์ต๋๋ค. big.LITTLE ์์คํ
๋ฐ UEFI๋ฅผ ํตํ ๋ถํ
์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ต๋ 8๊ฐ์ CPU๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. SoC ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฌ์๋ A10, A13, A20, A31, A80, A83T, GR8, H3, R8
- Amlogic S805
- Arm ๋ค๋ชฉ์ ์ต์คํ๋ ์ค V2P-CA15
- ๋ธ๋ก๋์ปด BCM2836, BCM2837
- Intel Cyclone V SoC FPGA
- ์๋น๋์ ํ ๊ทธ๋ผ K1(T124)
- ์ผ์ฑ Exynos 5422
- TI AM335x, OMAP3
- ์์ผ๋ง์ค ์งํฌ 7000
- ะะฑะฝะพะฒะปะตะฝั ะณัะฐัะธัะตัะบะธะต ะดัะฐะนะฒะตัั ะดะปั GPU Intel (ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตัะถะบะฐ Intel Kabylake), NVIDIA ะธ AMD ะดะปั ัะธััะตะผ x86. ะะพะดัะธััะตะผะฐ DRM/KMS ัะธะฝั ัะพะฝะธะทะธัะพะฒะฐะฝะฐ ั ัะดัะพะผ Linux 4.4. ะะพะฑะฐะฒะปะตะฝั ะฝะพะฒัะต ะดัะฐะนะฒะตัั ะดะปั GPU, ะฟัะธะผะตะฝัะตะผัะต ะฝะฐ ัะธััะตะผะฐั ARM, ะฒะบะปััะฐั DRM/KMS-ะดัะฐะนะฒะตัั ะดะปั Allwinner DE2, Rockchip VOP ะธ TI AM335x LCDC, ะดัะฐะนะฒะตั framebuffer ะดะปั ARM PrimeCell PL111 ะธ TI OMAP3 DSS;
- NetBSD๋ฅผ ๊ฒ์คํธ OS๋ก ์คํํ๊ธฐ ์ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. fw_cfg ์ฅ์น(QEMU ํ์จ์ด ๊ตฌ์ฑ), Virtio MMIO ๋ฐ ARM์ฉ PCI์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. x86์ฉ HyperV ์ง์ ์ ๊ณต
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง์ ์ํด ์นด์ดํฐ๊ฐ ๊ตฌํ๋์ด ์์ด ์ปค๋ ๋ฐ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ฆ์ ๋ถ์ํ ์ ์์ต๋๋ค. ์ ์ด๋ tprof ๋ช ๋ น์ ํตํด ์ํ๋ฉ๋๋ค. Armv7, Armv8 ๋ฐ x86(AMD ๋ฐ Intel) ํ๋ซํผ์ด ์ง์๋ฉ๋๋ค.
- x86_64 ์ํคํ ์ฒ์ ๊ฒฝ์ฐ ์ปค๋ ์ฃผ์ ๊ณต๊ฐ์ ๋ฌด์์ํํ๋ ๋ฉ์ปค๋์ฆ(KASLR, Kernel Address Space Layout Randomization). ๋ถํ ํ ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ ์ฝ๋์ ๋ฌด์์ ๋ ์ด์์์ ์์ฑํ์ฌ ์ปค๋์ ์ทจ์ฝ์ ์ ์ ์ฉํ๋ ํน์ ์ ํ์ ๊ณต๊ฒฉ์ ๋ํ ์ ํญ๋ ฅ์ ๋์ผ ์ ์์ต๋๋ค.
- x86_64 ์ํคํ ์ฒ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. , ์ปค๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๊ฐ์งํ๋ ๊ธฐ์ ๋ก, ์ปค๋์์ 25๊ฐ ์ด์์ ์ค๋ฅ๋ฅผ ์ฐพ์ ์์ ํ ์ ์์์ต๋๋ค.
- x86_64 ๋ฐ Aarch64 ์ํคํ ์ฒ์ ๊ฒฝ์ฐ KASan(Kernel address sanitizer) ๋๋ฒ๊น ๋ฉ์ปค๋์ฆ์ด ๊ตฌํ๋์ด ์ด๋ฏธ ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ํ ์ก์ธ์ค ๋ฐ ๋ฒํผ ์ค๋ฒํ๋ก์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
- ์ปค๋์์ ์ ์๋์ง ์์ ๋์์ ๊ฐ์งํ๋ KUBSAN(Kernel Undefine Behavior Sanitizer) ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ์ต๋๋ค.
- x86_64 ์ํคํ ์ฒ์ ๊ฒฝ์ฐ ์ปค๋ ์ฝ๋ ์ ์ฉ ๋ฒ์๋ฅผ ๋ถ์ํ๊ธฐ ์ํด KCOV(Kernel Coverage) ๋๋ผ์ด๋ฒ๊ฐ ๊ตฌํ๋์์ต๋๋ค.
- ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ๋ ์ค๋ฅ ๋ฐ ์ด์ ํ์์ ๊ฐ์งํ๊ธฐ ์ํด Userland Sanitizer๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ํน์ ์ ํ์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๋ก๋ถํฐ ํ์ ๋ณดํธํ๊ธฐ ์ํด KHH(์ปค๋ ํ ๊ฐํ) ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ์ต๋๋ค.
- ๋คํธ์ํฌ ์คํ ๋ณด์ ๊ฐ์ฌ;
- ํฅ์๋ ptrace ๋๋ฒ๊น ๋๊ตฌ
- ์ปค๋์ NETISDN(๋๋ผ์ด๋ฒ daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 ๋ฐ ipkdb์ ๊ฐ์ ์ค๋๋๊ณ ์ ์ง ๊ด๋ฆฌ๋์ง ์๋ ํ์ ์์คํ ์ ์ ๊ฑฐํ์ต๋๋ค.
- ํจํท ํํฐ์ ๊ธฐ๋ฅ์ด ํ์ฅ๋๊ณ ์ฑ๋ฅ์ด ์ต์ ํ๋์์ต๋๋ค. , ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.
- ZFS ํ์ผ ์์คํ ๊ตฌํ์ ์ผ์์ ์ธ ์ฌ์ฉ์ ์ ํฉํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ZFS์์ ๋ถํ ํ๊ณ ๋ฃจํธ ํํฐ์ ์์ ZFS๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์์ง ์ง์๋์ง ์์ต๋๋ค.
- Broadcom ๋ฌด์ ์ฅ์น(Full-MAC)์ฉ bwfm, Amazon Elastic Network Adapter์ฉ ena ๋ฐ Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN ์ด๋๋ท ์ด๋ํฐ์ฉ mcx๋ฅผ ํฌํจํ ์๋ก์ด ๋๋ผ์ด๋ฒ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ;
- SATA ํ์ ์์คํ ์ด ์ฌ์ค๊ณ๋์ด NCQ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋๊ณ ๋๋ผ์ด๋ธ์์ ์์ฑ๋ ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
- USB ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ์ด๋๋ท ์ด๋ํฐ์ฉ ๋๋ผ์ด๋ฒ๋ฅผ ์์ฑํ๊ธฐ ์ํ ์๋ก์ด usbnet ํ๋ ์์ํฌ;
- GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 ๋ฐ SQLite 3.26.0์ ํฌํจํ ํ์ฌ ๊ตฌ์ฑ ์์์ ์
๋ฐ์ดํธ๋ ๋ฒ์ ์
๋๋ค.
์ถ์ฒ : opennet.ru
