@rwmjones์์ :
RISC-V๋ 2010๋ ๋ถํฐ UCB์์ ๊ฐ๋ฐ๋ ์คํ ์์ค ๋ฌด๋ฃ ISA์ ๋๋ค(https://riscv.org/).
์ฐ๋ฆฌ๋ ์ปค๋ ์ง์์ด ์๋ฆฌ์ ์ ์ libseccomp ์ง์ (2016 ๊ฐ์) ์ถ๊ฐ # 50 @rwmjones์์ ํ๋์ ์ค๋๋ PR ์์ต๋๋ค.
์ปค๋ ์ง์ (2 ์ 2018 ๋ ) ์์ง ์ ์ ์์ง๋ง ์ฐ๋ฆฌ๋ libseccomp ์ง์์ ์ถ๊ฐํ๋ # 108 @Icenowy์์ ์ต๊ทผ PR ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ PR ์ ์ฒด์์ ๋ฉ๋ชจ์ ์งํ ์ํฉ์ ์ถ์ ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
@pcmoore ์ปค๋ ์ง์์ 4.15.0์์ ์ ์คํธ๋ฆผ์ ๋๋ค. (๋ถํ ํ๋ ค๋ฉด ๋ ๋ง์ ๋๋ผ์ด๋ฒ๊ฐ ํ์ํ๋ฉฐ 4.17์์ ์์๋์ง๋ง 4.15์๋ ์์ ํ uapi๊ฐ ์์ต๋๋ค)
@sorear ์์ ๊ฐ์ ์ฌํญ์ ๋ํด์๋ ๋ค๋ฅธ PR์ ํ ๋ฒ๋ง ๋๊ธ์ ๋ฌ์๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
... ๊ทธ๋ฆฌ๊ณ ๋ด ๋ฏธ๋๋ฅผ ์ํด v4.16-rc2+๊ฐ RISC-V์ ํ์ํ HAVE_ARCH_SECCOMP_FILTER
์ง์์ ์ ๊ณตํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋น ๋ฅธ ์ ๋ฐ์ดํธ, Linus์ ํธ๋ฆฌ์์ ์ปค๋ ์ง์์ด ์ฌ์ ํ ๋๋ฝ๋์์ต๋๋ค.
# grep "HAVE_ARCH_SECCOMP_FILTER" $(find arch/*/ -type f)
arch/arm/Kconfig: select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
arch/arm/kernel/ptrace.c:#ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
arch/arm64/Kconfig: select HAVE_ARCH_SECCOMP_FILTER
arch/mips/Kconfig: select HAVE_ARCH_SECCOMP_FILTER
arch/parisc/Kconfig: select HAVE_ARCH_SECCOMP_FILTER
arch/powerpc/Kconfig: select HAVE_ARCH_SECCOMP_FILTER
arch/s390/Kconfig: select HAVE_ARCH_SECCOMP_FILTER
arch/um/Kconfig.common: select HAVE_ARCH_SECCOMP_FILTER
arch/x86/Kconfig: select HAVE_ARCH_SECCOMP_FILTER
https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020 ์์ ๊ฐ๋ฐ risc-v ์ปค๋ ๋ถ๊ธฐ์ ํ๋กํ ํ์ ์ปค๋ฐ์ ํธ์ํ์ต๋๋ค.
ํ์ง๋ง ์ด๋ป๊ฒ ํ ์คํธํด์ผ ํ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์ @terpstra
@kees ์ ์์ง ์ฐ๋ฝ์ด (cd tests; ./regression -T live)
๊ฐ ์์ต๋๋ค. ์ปค๋ ์์ค์ samples/seccomp๋ ์์ง๋ง ์ด์ ๋ํ ์ง์ ์ ์ธ ๊ฒฝํ์ ์์ต๋๋ค.
openSUSE์ ์ธ ๋ฒ์งธ ํจ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. https://build.opensuse.org/package/view_file/openSUSE : Factory:RISCV/libseccomp/riscv.patch?expand=1
ํ์ง๋ง __NR_riscv_flush_icache
.
์ต์ libseccomp ํ๋ณด: https://github.com/seccomp/libseccomp/pull/134
์๋ ํ์ธ์ @terpstra๋ , ํจ์น๊ฐ https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020 ๋ฉ์ธ๋ผ์ธ ์ปค๋์ ๋ณํฉ๋์์ต๋๊น? ์ผ์ ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น? @palmer-dabbelt๊ฐ ์ด์ ๋ํด ๋์์ ์ค ์ ์์ต๋๋ค.
U540์ ๋ํด ์์ฑํ ๋ชจ๋ Linux ๋๋ผ์ด๋ฒ ํญ๋ชฉ์ Paul์๊ฒ ์คํ๋ก๋ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋จธ. ๋๋ ๋ ์ด์ ์
์คํธ๋ฆผ ๋ฃจํ์ ์์ง ์์ต๋๋ค.
2019๋
6์ 5์ผ ์์์ผ ์คํ 12:53 Carlos Eduardo [email protected]
์ผ๋ค:
์๋ ํ์ธ์ @terpstra https://github.com/terpstra , ํจ์น๊ฐ ์์ต๋๋ค
riscv/ riscv-linux@0712587
https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020
๋ฉ์ธ๋ผ์ธ ์ปค๋์ ๋ณํฉ? ์ผ์ ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น? ์๋ง๋
@palmer-dabbelt https://github.com/palmer-dabbelt ๊ฐ ์ด์ ๋ํด ๋์์ ์ค ์ ์์ต๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/seccomp/libseccomp/issues/110?email_source=notifications&email_token=AAIM7CU2KQFCLUTSCO2VYILPZAKUXA5CNFSM4ERS6NOKYY3PNVWYWK3TUL52HS4DFVREXG43VMVBW63LDNMVX
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAIM7CXIDCVBETFXJLBRY73PZAKUXANCNFSM4ERS6NOA
.
๋๋ libseccomp testsuite์ ์ปค๋ ์์ฒด ํ ์คํธ๋ฅผ ํต๊ณผํ ๋ช ๋ฌ ์ ์ seccomp v1 ํจ์น๋ฅผ ๋ณด๋์ต๋๋ค. v2๋ฅผ ๋ณด๋ด๋ ค๋ฉด ์ต์ ์ปค๋์์ ๋ค์ ํ ์คํธํ ์๊ฐ์ ์ฐพ์์ผ ํฉ๋๋ค. libseccomp ํจ์น๋ ์ฌ๊ธฐ: https://github.com/seccomp/libseccomp/pull/134
@carlosedp ์ผ๋ง๋ ๋นจ๋ฆฌ ํ์ํฉ๋๊น?
์ปค๋ ํจ์น๊ฐ Linus์ ํธ๋ฆฌ์ ๋์ฐฉํ ๋๊น์ง ๋๋ ๊ทธ๊ฒ์ ๋ํด ๊ฑฑ์ ํ์ง ์์ ๊ฒ์ด์ง๋ง, PR #134๋ ํ์ฌ libseccomp ๋ง์คํฐ ๋ธ๋์น์ ๋ํ ํฌ์๋ ํฌํธ๊ฐ ํ์ํ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
ํ๋์ RISC-V๋ฅผ ์ดํด๋ณด์ง ์์์ต๋๋ค. ํ์ค ๋ฐฐํฌํ์ ์คํํ ๊ฐ๋ฐ/ํ ์คํธ์ฉ์ผ๋ก ํฉ๋ฆฌ์ ์ธ ๊ฐ๊ฒฉ๊ณผ ํฉ๋ฆฌ์ ์ธ ์ฑ๋ฅ์ RISC-V ํ๋์จ์ด๊ฐ ์์ต๋๊น?
@davidlt PR134 ํจ์น๋ฅผ ๊ฐ์ ธ์ ์ ์ฉํ๋๋ฐ ์ปค๋ ํจ์น ์์ด๋ ์๋ฒฝํ๊ฒ ํ ์คํธ๋ฉ๋๋ค. libseccomp์ ๋ค๋ฅธ ์ข ์์ฑ์ ๊ตฌ์ถํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ฏธ ๋ก์ปฌ๋ก ๋น๋๋ Docker๋ฅผ ์คํ ์ค์ ๋๋ค.
@pcmoore ํ๋์จ์ด ์ธก๋ฉด์์๋ ๊ฐ๊ฒฉ์ด ๋น์ผ SiFive Unleashed ๋ณด๋๋ง ์์ต๋๋ค. Debian๊ณผ ํจ๊ป ํฌ์ฅํ Qemu VM์ด ์์ต๋๋ค(๊ทธ๋ฌ๋ ํฌ์ฅํ ์ ์๋ Fedora rootfs๋ ์์ต๋๋ค). ๊ฐ๋ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
https://github.com/carlosedp/riscv-bringup์ ๋ํ ์ข ์์ฑ์ ์ถ์ ํ๊ณ
์ฌ์ค ๋ฐฉ๊ธ PR134๊ฐ ์๋ Tip์ผ๋ก ๋ค์ ํ ์คํธํ์ต๋๋ค. 6๋ฒ์ ํ ์คํธ๋ฅผ ์คํจํ์ต๋๋ค.
๊ฒฐ๊ณผ๋ https://gist.github.com/carlosedp/7e1e222e5ccb4b45faa357dd6b30ac9a์์ ๋ณผ ์ ์์ต๋๋ค.
ํ , ์ด์ํ๋ค์. ํ ์คํธ ์ถ๋ ฅ์ ๋ฐ๋ฅด๋ฉด ํ ์คํธ 46์ด ENOMEM์์ ์คํจํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ ์ฝ๊ฐ ํน์ดํ ๊ฒ์ ๋๋ค(tools/scmp_bpf_sim.c ์ฐธ์กฐ). ์ง๊ธ์ ๋ค์ ๋ฐ์๊ณ ์ด๋ฅผ ํ ์คํธํ RISC-V VM์ด ์์ง๋ง ๋๋ฒ๊น ๋ฐฉ๋ฒ์ ๋ํ ํฌ์ธํฐ๊ฐ ํ์ํ๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ ์ง๋ฌธํ์ญ์์ค.
Qemu VM๊ณผ Risc-V ๋ณด๋๊ฐ ๋ชจ๋ ์์ต๋๋ค. ํ์ฌ ์ปค๋์๋ seccomp ํจ์น๊ฐ ์ ์ฉ๋์ด ์์ง ์์ต๋๋ค. ๋ด๊ฐ ๋์ธ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ํ์ด ์๋ค๋ฉด ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค!
๊ทธ๋ ์ง ์๊ณ RiscV Qemu VM์ ์ํ๋ค๋ฉด https://github.com/carlosedp/riscv-bringup#virtual -machine-and-pre-built-docker์ ํฉ์ ๋ฃ์ต๋๋ค.
@davidlt RISC-V ์ปค๋ ์ง์์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
https://lkml.org/lkml/2019/10/14/811
์์ ํ ๊ฒํ ๋ ๊ฒ ๊ฐ์ง๋ง ๋ ๊ฐ๋ฐ์ ์ฌ์ด์ ์ต์ข ํจ์น๊ฐ ์์ค๋์์ต๋๋ค.
ํจ์น๋ 5.4 ์ปค๋์ฉ์ผ๋ก Linus์ ๋ณด๋ด์ก์ง๋ง ๊ทธ๋ ์ง๊ธ๊น์ง RC์ ์ ์ฉํ๊ณ ์ถ์ง ์์์ต๋๋ค. ํจ์น๋ 5.5 ๋ณํฉ ์ฐฝ์ ์ ์ฉ๋ฉ๋๋ค.
์ค์ํ ๊ฒฝ์ฐ ํจ์น๋ ์ด๋ฏธ linux-next์ ์์ต๋๋ค.
์ข์ ์์์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค! Linus์ ํธ๋ฆฌ์์ ์ด๊ฒ์ ๋ณด๋ ค๋ฉด ์์ผ๋ก ๋ช ์ฃผ๊ฐ ๊ฑธ๋ฆด ๊ฒ ๊ฐ์ผ๋ฏ๋ก libseccomp v2.5 ์ด์ ํ๋ฅผ ์ํด ์ด๊ฒ์ ํ์ํ๊ฒ ์ต๋๋ค.
๋ณํฉ ์ฐฝ์ด ๋ซํ๋ฉด ๋๊ตฐ๊ฐ๊ฐ PR์ ์๋ก๊ณ ์นจ/ํ ์คํธ/์ฌ์ ์ถํ๊ธฐ ์ํด ์์ํ๊ณ ์ถ์ต๋๊น?
libseccomp๊ฐ Linus์ ํธ๋ฆฌ์ ๋์ฐฉํ๋ฉด ์ ๋ฒ์ ์ PR์ ๋ณด๋ด๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค. @davidlt.
seccomp ์ง์์ด Linus์ ํธ๋ฆฌ์ ๋ฐฉ๊ธ ๋์ฐฉํ์ต๋๋ค.
"[GIT PULL] seccomp updates for v5.5-rc1"๋ ๋ณํฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค. ์์ RISC-V ํจ์น๊ฐ ํ๋ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ์์ง v2.5 ๋ฆด๋ฆฌ์ค์ TODO ๋ชฉ๋ก์ ๋ง์ ํญ๋ชฉ์ด ์์ผ๋ฏ๋ก ์๊ฐ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋น ๋ฅธ ์ ๋ฐ์ดํธ. Fedora/RISCV๋ฅผ 5.5-rc2๋ก ์ ๋ฐ์ดํธํ๊ธฐ ์์ํ๋๋ฐ ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ปค๋์์ SECCOMP์ ์ํด ์์ฑ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋จผ์ ์์ ํ๋ ์์ ์ ํ๊ณ ์์ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ libseccomp ํ ์คํธ ์ ํ๊ตฐ ๋๋ ์ปค๋ seccomp ์์ฒด ํ ์คํธ์์๋ ํ์๋์ง ์์์ต๋๋ค.
์ ๋ฐ์ดํธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. FWIW์์ libseccomp ํ ์คํธ๋ ์ปค๋์ ๊ณต๊ฒฉ์ ์ผ๋ก ํ ์คํธํ์ง ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธก๋ฉด(BPF ์๋ฎฌ๋ ์ดํฐ๋ฅผ ํตํด ์ฝ๋ ์คํ)์ ๋ ์ค์ ์ ๋ก๋๋ค.
์ด๊ฒ์ #197, ์ข ๋ฃ๋ฅผ ํตํด ํด๊ฒฐ๋์ด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
"[GIT PULL] seccomp updates for v5.5-rc1"๋ ๋ณํฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค. ์์ RISC-V ํจ์น๊ฐ ํ๋ ์์ต๋๋ค.