FreeBSD ๊ฐœ๋ฐœ ๋ณด๊ณ ์„œ 2019๋…„ XNUMX๋ถ„๊ธฐ

๊ฒŒ์‹œ ๋จ 2019๋…„ XNUMX์›”๋ถ€ํ„ฐ XNUMX์›”๊นŒ์ง€ FreeBSD ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ผ๋ฐ˜ ๋ฐ ์‹œ์Šคํ…œ ์งˆ๋ฌธ
    • Core ํŒ€์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ถ”๊ฐ€ ํŠนํ—ˆ ๊ณ„์•ฝ๊ณผ ํ•จ๊ป˜ BSD ๋ผ์ด์„ผ์Šค ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์„ ์Šน์ธํ–ˆ์Šต๋‹ˆ๋‹ค(BSD+ํŠนํ—ˆ), ๊ทธ๋Ÿฌ๋‚˜ ๋ณธ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‹œ์Šคํ…œ์— ํฌํ•จํ•˜๊ธฐ๋กœ ํ•œ ๊ฒฐ์ •์€ ๋ณ„๋„๋กœ ์Šน์ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ค‘์•™ ์ง‘์ค‘์‹ ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ธ Subversion์—์„œ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ธ Git์œผ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์›Œํ‚น ๊ทธ๋ฃน์˜ ์ฒซ ๋ฒˆ์งธ ํšŒ์˜๊ฐ€ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์˜ ์ ์ ˆ์„ฑ์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” ์—ฌ์ „ํžˆ ์ง„ํ–‰ ์ค‘์ด๋ฉฐ ๊ฒฐ์ •ํ•ด์•ผ ํ•  ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: contrib/๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•, ํ˜„์žฌ git ์ €์žฅ์†Œ์—์„œ ํ•ด์‹œ๋ฅผ ์žฌ์ƒ์„ฑํ• ์ง€ ์—ฌ๋ถ€, ์ปค๋ฐ‹ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ€์žฅ ์ž˜ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•).
    • NetBSD์—์„œ ์ด์‹๋œ ์„œ๋กœ ๋‹ค๋ฅธ CPU์—์„œ ์‹คํ–‰๋˜๋Š” ์ปค๋„ ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ๊ฒฝ์Ÿ ์กฐ๊ฑด ๋ฐœ์ƒ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” KCSAN(Kernel Concurrency Sanitizer) ํˆดํ‚ท
    • GNU binutils์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ ๋Œ€์‹  Clang์˜ ๋‚ด์žฅ ์–ด์…ˆ๋ธ”๋Ÿฌ(IAS)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
    • Linux ํ™˜๊ฒฝ ์—๋ฎฌ๋ ˆ์ด์…˜ ์ธํ”„๋ผ(Linuxulator)๋Š” ARM64 ์•„ํ‚คํ…์ฒ˜์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "renameat2" ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Linuxulator์—์„œ ์‹คํ–‰๋˜๋Š” Linux ์‹คํ–‰ ํŒŒ์ผ์˜ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๊ธฐ ์œ„ํ•ด strace ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒˆ๋กœ์šด glibc์™€ ์—ฐ๊ฒฐํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. CentOS 7.7๋กœ ์—…๋ฐ์ดํŠธ๋œ Linuxulator์šฉ Linux ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋œ ํฌํŠธ
    • Google Summer of Code ํ”„๋กœ๊ทธ๋žจ์˜ ์ผํ™˜์œผ๋กœ ํ•™์ƒ๋“ค์€ 4๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ†ตํ•ฉ(IPv6/IPvXNUMX) ping ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ตฌํ˜„ ์ค€๋น„, ๋ฐฉํ™”๋ฒฝ ํ…Œ์ŠคํŠธ ๋ฐ ์ปค๋„ ์˜ค๋ฅ˜ ๊ฐ์ง€(Kernel sanitizer), mac_ipacl ๋„๊ตฌ ๊ฐœ๋ฐœ ๋ชจ๋“ˆ์ด ์ œ์•ˆ๋˜์—ˆ๊ณ , ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์••์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ํฌํŠธ ๊ตฌ์ถ• ํ”„๋กœ์„ธ์Šค์™€ ๋กœ์ปฌ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ FreeBSD ์ปค๋„์„ ํผ์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์‹œ์ฆˆ์นผ๋Ÿฌ. ๋ณด๊ณ  ๊ธฐ๊ฐ„ ๋™์•ˆ syzkaller์˜ ๋„์›€์œผ๋กœ XNUMX๊ฐœ ์ด์ƒ์˜ ์˜ค๋ฅ˜๊ฐ€ ์‹๋ณ„๋˜๊ณ  ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. bhyve ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒ๋จธ์‹ ์—์„œ syzkaller๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ์„œ๋ฒ„๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ
      syzbot์€ Google ์ธํ”„๋ผ์—์„œ ๋‹ค์–‘ํ•œ FreeBSD ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ถฉ๋Œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ backtrace.io ์„œ๋น„์Šค๋กœ ์ „์†กํ•˜์—ฌ ๊ทธ๋ฃนํ™” ๋ฐ ๋ถ„์„์„ ๋‹จ์ˆœํ™”ํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • ์ปค๋„ ์ˆ˜์ค€์—์„œ zlib ๊ตฌํ˜„์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
      ์••์ถ• ๊ด€๋ จ ์ฝ”๋“œ๋Š” 1.0.4๋…„ ์ „์— ์ถœ์‹œ๋œ zlib 20์—์„œ ํ˜„์žฌ zlib 1.2.11 ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค. zlib์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์••์ถ•, ์••์ถ•2 ๋ฐ ์••์ถ• ํ•ด์ œ ๊ธฐ๋Šฅ์ด ์ปค๋„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. netgraph ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ PPP ํ”„๋กœํ† ์ฝœ์„ ์ œ๊ณตํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋ณธ ๋ฒ„์ „ ๋Œ€์‹  zlib์˜ ์‹œ์Šคํ…œ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ์‹œ์Šคํ…œ kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor,
      if_mxge, bxe ์—…๋ฐ์ดํŠธ ๋ฐ ng_deflate;

    • ์ƒˆ๋กœ์šด ์ปค๋„ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. sysctlinf, ์ด๋ฅผ ํ†ตํ•ด MIB(Management Information Base) ํ˜•์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” sysctl ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฒ ์ด์Šค์—์„œ ์š”์†Œ๋ฅผ ์ฐพ์•„ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์œผ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ะ‘ะตะทะพะฟะฐัะฝะพัั‚ัŒ
    • ์ปค๋„ ๋ชจ๋“ˆ ๊ฐœ๋ฐœ mac_ipacl, TrustedBSD MAC ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ๊ฐ์˜ฅ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ์Šคํƒ ์„ค์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” mac_ipacl์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์˜ฅ ํ™˜๊ฒฝ์˜ ๋ฃจํŠธ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ IP ์ฃผ์†Œ ๋˜๋Š” ์„œ๋ธŒ๋„ท ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ํ•„์ˆ˜ ์ถœ์ž…ํ†ต์ œ ์‹œ์Šคํ…œ ๊ทธ๊ฒƒ์€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๊ฐ์˜ฅ์— ํ—ˆ์šฉ๋˜๋Š” IP ์ฃผ์†Œ ๋ฐ ์„œ๋ธŒ๋„ท ๋ชฉ๋ก์„ ์„ค์ •ํ•˜๊ณ , ๊ฐ์˜ฅ์— ํŠน์ • IP ๋ฐ ์„œ๋ธŒ๋„ท ์„ค์น˜๋ฅผ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด์„œ๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
    • ์ธํ…”์€ ํ”„๋กœ์ ํŠธ์— ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ ํฌํŠธ๋ฅผ ๊ธฐ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. TPM 2.0 (์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ ๋ชจ๋“ˆ)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํŽŒ์›จ์–ด ๋ฐ OS ๋ถ€ํŠธ๋กœ๋”์˜ ๊ฒ€์ฆ๋œ ๋ถ€ํŒ…์— ์‚ฌ์šฉ๋˜๋Š” ๋ณด์•ˆ ์ปดํ“จํŒ… ์นฉ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ ๊ตฌ์„ฑ ์š”์†Œ๋Š” security/tpm2-tss, security/tpm2-tools ๋ฐ security/tpm2-abrmd ํฌํŠธ ํ˜•์‹์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. tpm2-tss ํฌํŠธ์—๋Š” TPM2 API ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , tpm2-tools๋Š” TPM ์ž‘์—… ์ˆ˜ํ–‰์„ ์œ„ํ•œ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, tpm2-abrmd์—๋Š” ๋‹ค์–‘ํ•œ TPM์˜ ์š”์ฒญ์„ ๋‹ค์ค‘ํ™”ํ•˜๋Š” TPM ์•ก์„ธ์Šค ๋ธŒ๋กœ์ปค ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋‹จ์ผ ์žฅ์น˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. FreeBSD์˜ ์ž์ฒด ๊ฒ€์‚ฌ ๋ถ€ํŒ… ์™ธ์—๋„ TPM์€ ๋ณ„๋„์˜ ์นฉ์—์„œ ์•”ํ˜ธํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ Strongswan IPsec, SSH ๋ฐ TLS ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • amd64 ์•„ํ‚คํ…์ฒ˜์šฉ ์ปค๋„์€ W^X(์“ฐ๊ธฐ XOR ์‹คํ–‰) ๋ณดํ˜ธ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œ๋˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ์“ฐ๊ธฐ์™€ ์‹คํ–‰์— ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(์ด์ œ ์ปค๋„์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Œ). ์“ฐ๊ธฐ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.) ์ƒˆ๋กœ์šด ์ปค๋„ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์€ HEAD ๋ถ„๊ธฐ์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ FreeBSD 13.0 ๋ฐ 12.2 ๋ฆด๋ฆฌ์Šค์˜ ์ผ๋ถ€๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    • mmap ๋ฐ mprotect ์‹œ์Šคํ…œ ํ˜ธ์ถœ์˜ ๊ฒฝ์šฐ ๊ตฌํ˜„ ์ถ”๊ฐ€ ๋ณ€๊ฒฝ์— ์œ ํšจํ•œ ์•ก์„ธ์Šค ์ œํ•œ ํ”Œ๋ž˜๊ทธ(PROT_READ, PROT_WRITE, PROT_EXEC) ์„ธํŠธ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” PROT_MAX() ๋งคํฌ๋กœ. PROT_MAX()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์‹คํ–‰ ๊ฐ€๋Šฅ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ด์ „ํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚˜์ค‘์— ์‹คํ–‰ ๊ฐ€๋Šฅ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ด์ „ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ ๋™์  ์—ฐ๊ฒฐ์ด๋‚˜ JIT ์ฝ”๋“œ ์ƒ์„ฑ ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋งŒ ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•ด ์—ด๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ์“ฐ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„์—๋Š” ์ฝ๊ธฐ ๋ฐ ์‹คํ–‰์œผ๋กœ๋งŒ ์ œํ•œ๋˜๋ฉฐ ํ–ฅํ›„์—๋Š” ์†์ƒ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ , ๊ณต๊ฒฉ์ž๋Š” ์ด ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. PROT_MAX() ์™ธ์—๋„ sysctl vm.imply_prot_max๋„ ๊ตฌํ˜„๋˜์–ด ํ™œ์„ฑํ™”๋˜๋ฉด ์ฒซ ๋ฒˆ์งธ mmap ํ˜ธ์ถœ์˜ ์ดˆ๊ธฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ํšจํ•œ ํ”Œ๋ž˜๊ทธ ์„ธํŠธ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์ทจ์•ฝ์  ์•…์šฉ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ASLR(์ฃผ์†Œ ๊ณต๊ฐ„ ๋ฌด์ž‘์œ„ํ™”) ๊ธฐ์ˆ  ์™ธ์—๋„ ํ™˜๊ฒฝ, ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ๋งค๊ฐœ๋ณ€์ˆ˜, ELF ํ˜•์‹์˜ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ;
    • libc์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜๊ณ (C11 ํ‘œ์ค€๋ถ€ํ„ฐ ์ด ๊ธฐ๋Šฅ์€ ์‚ฌ์–‘์—์„œ ์ œ์™ธ๋จ) ์ด ๊ธฐ๋Šฅ์„ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ FreeBSD 13.0์—์„œ ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
    • ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์˜ฅ ํ™˜๊ฒฝ์„ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํŒŒ์ผ๋Ÿฟ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ Docker์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๊ตฌํ˜„๋œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ์šฉ ๋“œ๋ผ์ด๋ฒ„ ์œ ๋ชฉ๋ฏผ, ๊ฐ์˜ฅ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์˜ฅ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” Docker ์Šคํƒ€์ผ ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ™์€ ๊ฐ์˜ฅ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ
    • NetBSD์—์„œ "makefs" ์œ ํ‹ธ๋ฆฌํ‹ฐ๊นŒ์ง€ ์ผ์ •์ด ๋ณ€๊ฒฝ๋จ FAT ํŒŒ์ผ ์‹œ์Šคํ…œ(msdosfs)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ค€๋น„๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•˜๋ฉด md ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฃจํŠธ ๊ถŒํ•œ ์—†์ด FAT๋กœ FS ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • FUSE(USErspace์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ) ํ•˜์œ„ ์‹œ์Šคํ…œ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์žฌ์ž‘์—…๋˜์–ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌํ˜„์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ์ถœ์‹œ๋œ ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋งŽ์•˜์œผ๋ฉฐ 7.8๋…„ ์ „์— ์ถœ์‹œ๋œ FUSE 11์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„ ํ˜„๋Œ€ํ™” ํ”„๋กœ์ ํŠธ์˜ ์ผํ™˜์œผ๋กœ FUSE 7.23 ํ”„๋กœํ† ์ฝœ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ๊ณ , ์ปค๋„ ์ธก์—์„œ ๊ถŒํ•œ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ("-o default_permissions")๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, VOP_MKNOD, VOP_BMAP ๋ฐ VOP_ADVLOCK ํ˜ธ์ถœ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, FUSE ์ž‘์—…์„ ์ค‘๋‹จํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€, ์ด๋ฆ„ ์—†๋Š” ํŒŒ์ดํ”„ ๋ฐ unix ์†Œ์ผ“์— ๋Œ€ํ•œ ์ง€์›์ด ํ“จ์ฆˆfs์— ์ถ”๊ฐ€๋˜์—ˆ๊ณ , /dev/fuse์— kqueue๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, "mount -u"๋ฅผ ํ†ตํ•œ ๋งˆ์šดํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ—ˆ์šฉ๋˜์—ˆ์œผ๋ฉฐ, NFS๋ฅผ ํ†ตํ•ด ํ“จ์ฆˆf ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, RLIMIT_FSIZE ๊ณ„์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„๋˜๊ณ  FOPEN_KEEP_CACHE ๋ฐ FUSE_ASYNC_READ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์œผ๋ฉฐ ์บ์‹ฑ ๊ตฌ์„ฑ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋“œ๋ผ์ด๋ฒ„๋Š” head ๋ฐ stable/12 ๋ธŒ๋žœ์น˜(FreeBSD 12.1์— ํฌํ•จ)์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • FreeBSD์— ๋Œ€ํ•œ NFSv4.2 ๊ตฌํ˜„(RFC-7862)์ด ๊ฑฐ์˜ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ  ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋Š” ํ…Œ์ŠคํŠธ์— ์ค‘์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. Linux ๊ตฌํ˜„๊ณผ์˜ ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ๋Š” ์™„๋ฃŒ๋˜์—ˆ์ง€๋งŒ NFSv4.2๋ฅผ ์‚ฌ์šฉํ•œ pNFS ์„œ๋ฒ„ ํ…Œ์ŠคํŠธ๋Š” ์•„์ง ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ, ์ฝ”๋“œ๋Š” ์ด๋ฏธ FreeBSD์˜ ํ—ค๋“œ/ํ˜„์žฌ ๋ถ„๊ธฐ์— ํ†ตํ•ฉํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. NFS์˜ ์ƒˆ ๋ฒ„์ „์—๋Š” posix_fadvise, posix_fallocate ํ•จ์ˆ˜, lseek์˜ SEEKHOLE/SEEKDATA ๋ชจ๋“œ, ์„œ๋ฒ„์—์„œ ํŒŒ์ผ ๋ถ€๋ถ„์˜ ๋กœ์ปฌ ๋ณต์‚ฌ(ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†กํ•˜์ง€ ์•Š์Œ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ์ง€์›
    • ๋…ธํŠธ๋ถ์—์„œ FreeBSD๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. FreeBSD์˜ ํ•˜๋“œ์›จ์–ด ์ง€์›์— ๋Œ€ํ•ด ๊ฐ์‚ฌ๋ฅผ ๋ฐ›์€ ์ฒซ ๋ฒˆ์งธ ์žฅ์น˜๋Š” 1์„ธ๋Œ€ Lenovo XXNUMX Carbon ๋…ธํŠธ๋ถ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์—ฐ๊ตฌ์šฉ ํ”„๋กœ์„ธ์„œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ FreeBSD์˜ ํฌํฌ์ธ CheriBSD ์ฒด๋ฆฌ (Capability Hardware Enhanced RISC Instructions), ๊ณง ์ถœ์‹œ๋  ARM Morello ํ”„๋กœ์„ธ์„œ๋ฅผ ์ง€์›ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์„œ๋Š” Capsicum ๋ณด์•ˆ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” CHERI์˜ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์ œ์–ด ์‹œ์Šคํ…œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ ๋กœ ์นฉ ๊ณ„ํšํ•˜๊ณ ์žˆ๋‹ค. 2021๋…„ ์ถœ์‹œ. CheriBSD ๊ฐœ๋ฐœ์ž๋Š” ๋˜ํ•œ MIPS ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” CHERI ์ฐธ์กฐ ํ”„๋กœํ† ํƒ€์ž…์˜ ๊ฐœ๋ฐœ์„ ๊ณ„์† ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • RockPro3399 ๋ฐ NanoPC-T64 ๋ณด๋“œ์— ์‚ฌ์šฉ๋˜๋Š” RockChip RK4 ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์€ eMMC ์ง€์›๊ณผ ๋ณด๋“œ์— ์‚ฌ์šฉ๋˜๋Š” eMMC ์ปจํŠธ๋กค๋Ÿฌ์šฉ ์ƒˆ ๋“œ๋ผ์ด๋ฒ„ ๊ฐœ๋ฐœ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ผ์šฐํ„ฐ, ๊ฒŒ์ดํŠธ์›จ์ด ๋ฐ NAS์—์„œ์˜ ์‚ฌ์šฉ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ARMv64 Cortex-A5871 ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ฐ–์ถ˜ ARM8 SoC Broadcom BCM57X์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•˜๋Š” ์ž‘์—…์ด ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ๊ธฐ๊ฐ„ ๋™์•ˆ
      iProc PCIe์— ๋Œ€ํ•œ ์ง€์›์„ ํ™•์žฅํ•˜๊ณ  ํ•˜๋“œ์›จ์–ด ์•”ํ˜ธํ™” ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์—ฌ IPsec ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
      HEAD ๋ถ„๊ธฐ์— ์ฝ”๋“œ ํ†ตํ•ฉ์€ XNUMX๋ถ„๊ธฐ์— ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

    • powerpc64 ํ”Œ๋žซํผ์šฉ FreeBSD ํฌํŠธ ๊ฐœ๋ฐœ์— ์ƒ๋‹นํ•œ ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. IBM POWER8 ๋ฐ POWER9 ํ”„๋กœ์„ธ์„œ๋ฅผ ํƒ‘์žฌํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ณ ํ’ˆ์งˆ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์ง€๋งŒ ๊ตฌํ˜• Apple Power Mac, x500 ๋ฐ Amiga A1222์—์„œ๋Š” ์„ ํƒ์ ์œผ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค. powerpc*/12 ๋ถ„๊ธฐ๋Š” ๊ณ„์†ํ•ด์„œ gcc 4.2.1๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฉฐ powerpc*/13 ๋ถ„๊ธฐ๋Š” ๊ณง llvm90์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. 33306๊ฐœ์˜ ํฌํŠธ ์ค‘ 30514๊ฐœ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์กฐ๋ฆฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ†ตํ•ฉ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท ์ฒ˜๋ฆฌ ๊ฐ€์† ์—”์ง„, 64Gb ์ด๋”๋„ท, PCIe 1046, SATA 8 ๋ฐ USB 72์„ ๊ฐ–์ถ˜ ARMv10 Cortex-A3.0 ํ”„๋กœ์„ธ์„œ ๊ธฐ๋ฐ˜ NXP LS3.0A 3.0๋น„ํŠธ SoC๋กœ FreeBSD ํฌํŒ…์ด ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ  ๊ธฐ๊ฐ„ ๋™์•ˆ USB 3.0, SD/MMC, I2C, DPAA ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ GPIO์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. QSPI๋ฅผ ์ง€์›ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. HEAD ์ง€์ ์ด ์™„๋ฃŒ๋˜์–ด ํฌํ•จ๋  ์˜ˆ์ •์€ 4๋…„ 2019๋ถ„๊ธฐ์ž…๋‹ˆ๋‹ค.
    • ena ๋“œ๋ผ์ด๋ฒ„๋Š” ์ตœ๋Œ€ 2Gb/s์˜ ์†๋„๋กœ EC2 ๋…ธ๋“œ ๊ฐ„ ํ†ต์‹ ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Elastic Compute Cloud(EC2) ์ธํ”„๋ผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” 25์„ธ๋Œ€ ENAv2(Elastic Network Adapter) ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ง€์›ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ena ๋“œ๋ผ์ด๋ฒ„์— NETMAP ์ง€์›์„ ์ถ”๊ฐ€ ๋ฐ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ Amazon EC1 AXNUMX ํ™˜๊ฒฝ์—์„œ LLQ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋„๋ก ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์„ ์กฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํฌํŠธ ์‹œ์Šคํ…œ
    • xorg์™€ ๊ด€๋ จ๋œ ๊ทธ๋ž˜ํ”ฝ ์Šคํƒ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ํฌํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. USE_XORG ๋ฐ XORG_CAT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ๋Š” bsd.port.mk๋ฅผ ํ†ตํ•ด bsd.xorg.mk๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹  USES ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด๋Ÿฌํ•œ ํฌํŠธ์—๋Š” makefile์— "USES=xorg" ํ”Œ๋ž˜๊ทธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. XORG_CAT ๊ธฐ๋Šฅ์€ bsd.xorg.mk์—์„œ ์ถ”์ถœ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ "USES=xorg-cat" ํ”Œ๋ž˜๊ทธ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. git ์ €์žฅ์†Œ์—์„œ xorg ํฌํŠธ๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      ์˜ˆ๋ฅผ ๋“ค์–ด, freedesktop.org์—์„œ๋Š” ์•„์ง ์ถœ์‹œ๋˜์ง€ ์•Š์€ ๋ฒ„์ „์— ๋Œ€ํ•œ ํฌํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ xorg ํฌํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด autotools ๋Œ€์‹  meson ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ํˆดํ‚ท์„ ์ค€๋น„ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

      x11/libXp ํฌํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  x11/Xxf86misc, x11-fonts/libXfontcache ๋ฐ ๊ทธ๋ž˜ํ”ฝ/libGLw ํฌํŠธ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋“ฑ ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ตฌ์„ฑ ์š”์†Œ์— ์—ฐ๊ฒฐ๋œ ์˜ค๋ž˜๋œ xorg ํฌํŠธ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • FreeBSD์—์„œ Java 11 ๋ฐ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ์„ ํ•˜๊ณ  ์ผ๋ถ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ Java 8 ๋ถ„๊ธฐ๋กœ ํฌํŒ…ํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. FreeBSD๋Š” Java Flight Recorder, HotSpot Serviceability Agent, HotSpot Debugger์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด Java 11 ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— DTrace, Javac Server, Java Sound ๋ฐ SCTP์— ๋Œ€ํ•œ ์ž‘์—…์€ ๋ชจ๋“  ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ชฝ์œผ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ†ต๊ณผ ์‹œ ์‹คํŒจ ํšŸ์ˆ˜๊ฐ€ 50ํšŒ์—์„œ 2ํšŒ๋กœ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
    • KDE ํ”Œ๋ผ์ฆˆ๋งˆ ๋ฐ์Šคํฌํƒ‘, KDE ํ”„๋ ˆ์ž„์›Œํฌ, KDE ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ Qt๋Š” ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€๋˜๊ณ  ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
    • Xfce ๋ฐ์Šคํฌํƒ‘์ด ํฌํ•จ๋œ ํฌํŠธ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 4.14;
    • FreeBSD ํฌํŠธ ํŠธ๋ฆฌ๋Š” 38000๊ฐœ์˜ ํฌํŠธ๋ผ๋Š” ์ด์ •ํ‘œ๋ฅผ ํ†ต๊ณผํ–ˆ์œผ๋ฉฐ, ์—ด๋ ค ์žˆ๋Š” PR์˜ ์ˆ˜๋Š” 2000๊ฐœ๋ฅผ ์•ฝ๊ฐ„ ๋„˜๊ณ  ๊ทธ ์ค‘ 400๊ฐœ์˜ PR์ด ์—ฌ์ „ํžˆ ๋ณด๋ฅ˜ ์ค‘์ž…๋‹ˆ๋‹ค. ๋ณด๊ณ  ๊ธฐ๊ฐ„ ๋™์•ˆ 7340๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ 169๊ฑด์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ช…์˜ ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž(Santhosh Raju ๋ฐ Dmitri Goutnik)๊ฐ€ ์ปค๋ฏธํ„ฐ ๊ถŒํ•œ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ํฌํŠธ ํŠธ๋ฆฌ์˜ ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์ง€์›ํ•˜๊ณ  bsd.sites.mk๋ฅผ ์ •๋ฆฌํ•˜๋Š” pkg 1.12 ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํฌํŠธ์˜ ์ค‘์š”ํ•œ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์—๋Š” Lazarus 2.0.4, LLVM 9.0, Perl5.30, PostgreSQL 11, Ruby 2.6, Firefox 69.0.1, Firefox-esr 68.1.0, Chromium 76.0์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
    • ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์€ ๊ณ„์†๋œ๋‹ค ํด๋ก OS, ๊ฐœ๋ฐœ ์ค‘ ๊ฐ€์ƒ ์„œ๋ฒ„ ์ธํ”„๋ผ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ „๋ฌธ ๋ฐฐํฌ ํ‚คํŠธ์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐํ•ด์•ผ ํ•  ์ž‘์—… ์ธก๋ฉด์—์„œ ClonOS๋Š” Proxmox, Triton(Joyent), OpenStack, OpenNebula ๋ฐ Amazon AWS์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ฃผ์š” ์ฐจ์ด์ ์€ FreeBSD๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  FreeBSD Jail ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌ, ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Bhyve ๋ฐ Xen ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ. ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘ ์ง€์›์ด ์žˆ์Šต๋‹ˆ๋‹ค.
      Linux/BSD VM์šฉ cloud-init ๋ฐ Windows VM์šฉ cloudbase-init, ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€๋กœ์˜ ์ „ํ™˜ ์‹œ์ž‘, ๋นŒ๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ Jenkins CI ์‚ฌ์šฉ ๋ฐ ์„ค์น˜๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด pkg ์ €์žฅ์†Œ
      ํŒจํ‚ค์ง€์˜ ClonOS.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€