Rust๋กœ ์žฌ์ž‘์„ฑ๋œ GNU Coreutils ์—…๋ฐ์ดํŠธ

Rust ์–ธ์–ด๋กœ ์žฌ์ž‘์„ฑ๋œ GNU Coreutils ํŒจํ‚ค์ง€์˜ ์œ ์‚ฌ์ฒด๊ฐ€ ๊ฐœ๋ฐœ ์ค‘์ธ uutils coreutils 0.0.12 ํˆดํ‚ท์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Coreutils์—๋Š” sort, cat, chmod, chown, chroot, cp, date, dd, echo, ํ˜ธ์ŠคํŠธ ์ด๋ฆ„, id, ln ๋ฐ ls๋ฅผ ํฌํ•จํ•˜์—ฌ 0.3.0๊ฐœ ์ด์ƒ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— uutils findutils XNUMX ํŒจํ‚ค์ง€๋Š” GNU Findutils ์ œํ’ˆ๊ตฐ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ(find, Locate,updateb ๋ฐ xargs)์˜ Rust ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  Rust ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” Windows, Redox ๋ฐ Fuchsia ํ”Œ๋žซํผ์—์„œ๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” Coreutils ๋ฐ Findutils์˜ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋Œ€์ฒด ๊ตฌํ˜„์„ ๋งŒ๋“ค๊ณ ์ž ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. uutils์˜ ๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์€ GPL ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ผ์Šค ๋Œ€์‹  MIT ํ—ˆ์šฉ ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ 88๊ฐœ ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๊ตฌํ˜„์ด GNU Coreutils์™€ ์™„์ „ํžˆ ๋™์ผํ•ด์กŒ์Šต๋‹ˆ๋‹ค. cp, dd, date, df, install, ls, more, sort, Split, tail ๋ฐ test๋ฅผ ํฌํ•จํ•œ 18๊ฐœ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ๊ฐœ๋ณ„ ๊ฒฐํ•จ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. stty ์œ ํ‹ธ๋ฆฌํ‹ฐ๋งŒ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. GNU Coreutils ํ”„๋กœ์ ํŠธ์˜ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด 214๊ฐœ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์ง€๋งŒ Rust ์•„๋‚ ๋กœ๊ทธ๋Š” ์•„์ง 313๊ฐœ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ๊ฐ•๋„๋„ ๋ˆˆ์— ๋„๊ฒŒ ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค. 400๋…„ ์ „์—๋Š” 470~20๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ 50~30๊ฐœ์˜ ํŒจ์น˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ, 60~3๋ช…์˜ ๊ฐœ๋ฐœ์ž๋Š” ๋งค๋‹ฌ 8~XNUMX๊ฐœ์˜ ํŒจ์น˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

Rust๋กœ ์žฌ์ž‘์„ฑ๋œ GNU Coreutils ์—…๋ฐ์ดํŠธ

์ตœ๊ทผ ์„ฑ๊ณผ ์ค‘ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ฃผ๋ชฉ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ์—์„œ๋Š” ํ—ค๋“œ ๋ฐ ์ปท๊ณผ ๊ฐ™์€ ๋งŽ์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์„ฑ๋Šฅ ๋ฉด์—์„œ GNU Coreutils์˜ ์˜ต์…˜์„ ํ›จ์”ฌ ๋Šฅ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ ์ „์ฒด ์ฝ”๋“œ์˜ 55%์—์„œ 75%๋กœ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(80%์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค). ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๊ฐ€ ๋ฆฌํŒฉํ„ฐ๋ง๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ†ตํ•ฉ๋˜์—ˆ๊ณ  ์•ก์„ธ์Šค ๊ถŒํ•œ ์ž‘์—…์„ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ chgrp ๋ฐ chown์— ๊ฒฐํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GNU Coreutils์™€์˜ ํ˜ธํ™˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๊ณ„ํš์—๋Š” stty ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ตฌํ˜„, GNU Coreutils์™€์˜ ํ˜ธํ™˜์„ฑ ๊ฐœ์„ ์„ ์œ„ํ•œ ์ง€์†์ ์ธ ์ž‘์—…, ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™” ์ถ”๊ฐ€, GNU Coreutils ๋ฐ GNU ๋Œ€์‹  Debian ๋ฐ Ubuntu์—์„œ uutils ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ์‹คํ—˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Findutils(์ด์ „์— Clang ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Debian GNU/Linux ๋นŒ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ–ˆ๋˜ uutils์˜ ์ฃผ์š” ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…). ๋˜ํ•œ macOS์šฉ uutils-coreutils ํŒจํ‚ค์ง€ ์ค€๋น„, NixOS์—์„œ GNU Coreutils๋ฅผ uutils coreutils๋กœ ๋Œ€์ฒดํ•˜๋Š” ์‹คํ—˜, Apertis ๋ฐฐํฌํŒ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ uutils coreutils๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์˜๋„, Redox OS์šฉ์œผ๋กœ ์„ค์ •๋œ uutils ์ ์šฉ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. .

์ถœ์ฒ˜ : opennet.ru

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