DragonFly BSD 5.8 ์šด์˜ ์ฒด์ œ ์ถœ์‹œ

์‚ฌ์šฉ ๊ฐ€๋Šฅ ์„๋ฐฉํ•˜๋‹ค ๋“œ๋ž˜๊ณคํ”Œ๋ผ์ดBSD 5.8, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ปค๋„์„ ๊ฐ–์ถ˜ ์šด์˜ ์ฒด์ œ, ๋งŒ๋“ค์–ด์ง„ FreeBSD 2003.x ๋ธŒ๋žœ์น˜์˜ ๋Œ€์ฒด ๊ฐœ๋ฐœ์„ ๋ชฉ์ ์œผ๋กœ 4๋…„. DragonFly BSD์˜ ๊ธฐ๋Šฅ ์ค‘ ๋ถ„์‚ฐ ๋ฒ„์ „ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ฐ•์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ง์น˜, "๊ฐ€์ƒ" ์‹œ์Šคํ…œ ์ปค๋„์„ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋กœ ๋กœ๋“œ ์ง€์›, SSD ๋“œ๋ผ์ด๋ธŒ์— FS ๋ฐ์ดํ„ฐ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ, ์ƒํ™ฉ์— ๋งž๋Š” ๋ณ€ํ˜• ๊ธฐํ˜ธ ๋งํฌ, ๋””์Šคํฌ์— ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋ฉด์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ, ๊ฒฝ๋Ÿ‰ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ปค๋„ (LWKT) .

์ฃผ์š” ๊ฐœ๋Ÿ‰DragonFlyBSD 5.8์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

  • ์ฃผ์š” ๊ตฌ์„ฑ์—๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. dsynth, ์ž์ฒด DPort ๋ฐ”์ด๋„ˆ๋ฆฌ ์ €์žฅ์†Œ์˜ ๋กœ์ปฌ ์กฐ๋ฆฝ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ ํŠธ๋ฆฌ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ž„์˜ ๊ฐœ์ˆ˜์˜ ํฌํŠธ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ณ‘๋ ฌํ™”๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ DPort๋Š” ์—ฌ๋Ÿฌ ์ข…์† ํŒจํ‚ค์ง€์˜ ๋นŒ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • libc๋Š” ์‹ ํ˜ธ์— ์˜ํ•œ ์ค‘๋‹จ์œผ๋กœ ์ธํ•œ ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ malloc*() ๋ฐ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋Š” ํšจ๊ณผ์ ์ธ ์‹ ํ˜ธ ๋งˆ์Šคํ‚น ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ธฐ์ ์ธ ์‹ ํ˜ธ ์ฐจ๋‹จ ๋ฐ ์ฐจ๋‹จ ํ•ด์ œ๋ฅผ ์œ„ํ•ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์—†์ด ์ž‘๋™ํ•˜๋Š” sigblockall() ๋ฐ sigunblockall() ํ•จ์ˆ˜๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ libc๋Š” ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด strtok() ํ•จ์ˆ˜๋ฅผ ์ฑ„ํƒํ•˜๊ณ  dport ์ง€์›์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ƒ์ˆ˜ TABDLY, TAB0, TAB3 ๋ฐ __errno_location ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • DRM(Direct Rendering Manager) ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ ์š”์†Œ๋Š” Linux ์ปค๋„ 4.9์™€ ๋™๊ธฐํ™”๋˜๋ฉฐ Wayland ์ง€์› ๊ฐœ์„ ์„ ๋ชฉํ‘œ๋กœ 4.12 ์ปค๋„์—์„œ ์ด์‹๋œ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    Intel GPU์šฉ drm/i915 ๋“œ๋ผ์ด๋ฒ„๋Š” ์ƒˆ๋กœ์šด ์นฉ(Skylake, Coffelake, Amber Lake, Whisky Lake ๋ฐ Comet Lake)์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด 4.8.17 ์ปค๋„์—์„œ ์ „์†ก๋œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Linux ์ปค๋„ 5.4๊ณผ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. AMD ๋น„๋””์˜ค ์นด๋“œ์šฉ drm/radeon ๋“œ๋ผ์ด๋ฒ„๋Š” Linux 4.9 ์ปค๋„๊ณผ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

  • ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง• ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‘๋‹ต ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์ธํ•œ Chrome/Chromium ์ •์ง€ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์„œ ์ฝ”์–ด ์ˆ˜๊ฐ€ ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ์ปค๋„ ํ™•์žฅ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์š”์ฒญ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ SMP ๊ฒฝํ•ฉ์ด ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "open(... O_RDWR)" ํ˜ธ์ถœ์˜ ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ปค๋„์˜ ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๊ฐ€ ์žฌ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RDRAND ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ชจ๋“  CPU์—์„œ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ถ•์ ํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•๋„ ๊ฐ์†Œ
    ์ด์ „์—๋Š” ์œ ํœด ์‹œ๊ฐ„ ๋™์•ˆ CPU ์‹œ๊ฐ„์˜ 2~3%๋ฅผ ์ฐจ์ง€ํ–ˆ๋˜ RDRAND ํ”ผ๋“œ์˜ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

  • ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ํ˜ธ์ถœ realpath, getrandom ๋ฐ lwp_getname์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(pthread_get_name_np ๊ตฌํ˜„ ํ—ˆ์šฉ).
  • SMAP(๊ฐ๋…์ž ๋ชจ๋“œ ์•ก์„ธ์Šค ๋ฐฉ์ง€) ๋ฐ SMEP(๊ฐ๋…์ž ๋ชจ๋“œ ์‹คํ–‰ ๋ฐฉ์ง€) ๋ณดํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SMAP์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋„ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋Š” ๊ถŒํ•œ ์žˆ๋Š” ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SMEP๋Š” ์ปค๋„ ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ์ž ์ˆ˜์ค€์— ์žˆ๋Š” ์ฝ”๋“œ ์‹คํ–‰์œผ๋กœ์˜ ์ „ํ™˜์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปค๋„์˜ ๋งŽ์€ ์ทจ์•ฝ์  ์•…์šฉ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์‰˜ ์ฝ”๋“œ๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ์žˆ์œผ๋ฏ€๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).
  • Jail ๊ตฌ์„ฑ์„ ์œ„ํ•ด sysctl ๋ณ€์ˆ˜๋ฅผ ์žฌ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. Jail์—์„œ nullfs ๋ฐ tmpfs๋ฅผ ๋งˆ์šดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์žฅ์•  ํ›„ ๋ณต๊ตฌ ์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” HAMMER2 ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‘๊ธ‰ ๋ชจ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ์—์„œ๋Š” inode๋ฅผ ๋กœ์ปฌ๋กœ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์Šค๋ƒ…์ƒท์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ธฐ๋ก ์ค‘ ๋ณต์‚ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์—†์„ ๋•Œ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ). HAMMER2์˜ ์Šค๋ ˆ๋“œ ๋””์ŠคํŒจ์น˜ ์ง€์›์„ ์žฌ์ž‘์—…ํ•˜์—ฌ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ ํ”Œ๋Ÿฌ์‹œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • TMPFS์˜ ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ ์ž‘์—… ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • IPv4 ๋„คํŠธ์›Œํฌ ์Šคํƒ์€ ์ด์ œ /31 ์ ‘๋‘์‚ฌ(RFC 3021).
    Tap์€ MTU > 1500์„ ์ง€์›ํ•˜๋„๋ก SIOCSIFMTU ioctl ์ฒ˜๋ฆฌ๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. SIOCSIFINFO_IN6 ๋ฐ SO_RERROR์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • iwm ๋“œ๋ผ์ด๋ฒ„๋Š” Intel ๋ฌด์„  ์นฉ์„ ์ง€์›ํ•˜์—ฌ FreeBSD์™€ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค(iwm-9000 ๋ฐ iwm-9260์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€).
  • ํฌํŠธ ํ˜ธํ™˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด Linux ํ˜ธํ™˜ basename() ๋ฐ dirname() ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6์„ FreeBSD์—์„œ libc/getaddrinfo(), Calendar(1), rcorder-visualize.sh๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. math.h์˜ ํ•จ์ˆ˜๊ฐ€ OpenBSD์—์„œ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3์„ ํฌํ•จํ•œ ํƒ€์‚ฌ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” gcc-8์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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