251๊ฐ์ ๊ฐ์ ๊ฐ๋ฐ ๋์ ์์คํ ๊ด๋ฆฌ์ systemd XNUMX์ด ์ถ์๋์์ต๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- ์์คํ ์๊ตฌ ์ฌํญ์ด ์ฆ๊ฐํ์ต๋๋ค. ์ง์๋๋ ์ต์ Linux ์ปค๋ ๋ฒ์ ์ด 3.13์์ 4.15๋ก ์ฆ๊ฐ๋์์ต๋๋ค. ์๋ํ๋ ค๋ฉด CLOCK_BOOTTIME ํ์ด๋จธ๊ฐ ํ์ํฉ๋๋ค. ๋น๋ํ๋ ค๋ฉด C11 ํ์ค ๋ฐ GNU ํ์ฅ์ ์ง์ํ๋ ์ปดํ์ผ๋ฌ๊ฐ ํ์ํฉ๋๋ค(C89 ํ์ค์ ํค๋ ํ์ผ์ ๊ณ์ ์ฌ์ฉ๋ฉ๋๋ค).
- ํํฐ์ , ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ต์ฒดํ๊ธฐ ์ํ ์์ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ์๋์ผ๋ก ๊ฐ์ง, ๋ค์ด๋ก๋ ๋ฐ ์ค์นํ๋ ์คํ์ ์ ํธ๋ฆฌํฐ systemd-sysupdate๋ฅผ ์ถ๊ฐํ์ต๋๋ค(๋ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ํํฐ์ /ํ์ผ/๋๋ ํฐ๋ฆฌ๊ฐ ์ฌ์ฉ๋๋ฉฐ, ๊ทธ ์ค ํ๋์๋ ํ์ฌ ์์ ๋ฆฌ์์ค๊ฐ ํฌํจ๋๊ณ ๋ค๋ฅธ ํ๋๋ ์ค์น๋ฉ๋๋ค). ๋ค์ ์ ๋ฐ์ดํธ ์ดํ์๋ ์น์ /ํ์ผ/๋๋ ํ ๋ฆฌ๊ฐ ๊ต์ฒด๋ฉ๋๋ค).
- ์๋ก์ด ๋ด๋ถ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ libsystemd-core- ๋์ .so๋ /usr/lib/systemd/system ๋๋ ํ ๋ฆฌ์ ์ค์น๋๋ฉฐ ๊ธฐ์กด libsystemd-shared-library์ ํด๋นํฉ๋๋ค. .๊ทธ๋์. libsystemd-core- ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ .so๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ์ ์ฒด ์ค์น ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋ฒ์ ๋ฒํธ๋ meson ๋น๋ ์์คํ ์ 'shared-lib-tag' ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ง์ ํ ์ ์์ผ๋ฉฐ ๋ฐฐํฌํ์์ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ๋ฌ ๋ฒ์ ์ ๋์์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ๋ชจ๋ํฐ๋ง๋๋ ์ฅ์น์ ๋ํ ์ ๋ณด์์ ํ๊ฒฝ ๋ณ์ $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID ๋ฐ $MONITOR_UNIT๋ฅผ OnFailure/OnSuccess ํธ๋ค๋ฌ๋ก ์ ์กํ๋๋ก ๊ตฌํํ์ต๋๋ค.
- ์ฅ์น์ ๊ฒฝ์ฐ ๋์คํฌ ์ด๋ฏธ์ง๊ฐ ์๋ ์ผ๋ฐ ๋๋ ํฐ๋ฆฌ์์ ์์คํ ํ์ฅ ๊ตฌ์ฑ ์์ ๋ก๋๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ExtensionDirectories ์ค์ ์ด ๊ตฌํ๋์์ต๋๋ค. ์์คํ ํ์ฅ ๋๋ ํฐ๋ฆฌ์ ๋ด์ฉ์ OverlayFS๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฒ๋ ์ด๋๋ฉฐ /usr/ ๋ฐ /opt/ ๋๋ ํฐ๋ฆฌ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ฅํ๊ณ ํด๋น ๋๋ ํฐ๋ฆฌ๊ฐ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง์ดํธ๋ ๊ฒฝ์ฐ์๋ ๋ฐํ์์ ์ถ๊ฐ ํ์ผ์ ์ถ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. 'portablectl attachment --extension=' ๋ช ๋ น์๋ ๋๋ ํ ๋ฆฌ ์ง์ ์ ๋ํ ์ง์๋ ์ถ๊ฐ๋์์ต๋๋ค.
- ์์คํ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํด systemd-oomd ํธ๋ค๋ฌ์ ์ํด ๊ฐ์ ์ข ๋ฃ๋ ์ ๋์ ๊ฒฝ์ฐ 'oom-kill' ์์ฑ์ด ์ ์ก๋๋ฉฐ ๊ฐ์ ์ข ๋ฃ ํ์๋ 'user.oomd_ooms' ์์ฑ์ ๋ฐ์๋ฉ๋๋ค.
- ์ ๋์ ๊ฒฝ์ฐ ์๋ก์ด ๊ฒฝ๋ก ์ง์ ์ %y/%Y๊ฐ ์ถ๊ฐ๋์ด ์ ๋์ ๋ํ ์ ๊ทํ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ํฉ๋๋ค(๊ธฐํธ ๋งํฌ ํ์ฅ ํฌํจ). ๋ํ PRETTY_HOSTNAME ๊ฐ์ ๋์ฒดํ๊ธฐ ์ํ %q ์ง์ ์์ CREDENTIALS_DIRECTORY ๋์ฒด๋ฅผ ์ํ %d๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- "--user" ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ์์ํ ๊ถํ ์๋ ์๋น์ค์์ RootDirectory, MountAPIVFS, ExtensionDirectories, *Capability*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath ์ค์ ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. , PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs ๋ฐ MountFlags๊ฐ ํ์ฉ๋ฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์์คํ ์์ ์ฌ์ฉ์ ๋ค์์คํ์ด์ค๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
- LoadCredential ์ค์ ์ ์ฌ์ฉํ๋ฉด ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ์ธ์๋ก ์ง์ ํ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ํ์ผ์์ ์๊ฒฉ ์ฆ๋ช ์ ๋ก๋ํ๋ ค๊ณ ์๋ํฉ๋๋ค.
- systemctl์ "--timestamp" ๋งค๊ฐ๋ณ์์ "unix" ํ๋๊ทธ๋ฅผ ์ง์ ํ์ฌ ์๊ฐ์ ํ๊ธฐ์ ์ธ ํ์(1๋ 1970์ XNUMX์ผ ์ดํ์ ์ด ์)์ผ๋ก ํ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
- "systemctl status"๋ ์ธ์ ์ ๋ก๋๋ ์ปค๋์ด ์์คํ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ณธ ์ปค๋๋ณด๋ค ์ด์ ๋ฒ์ ๋ฒํธ๋ฅผ ๊ฐ๋ ๊ฒฝ์ฐ ํ์๋๋ "old-kernel" ํ๋๊ทธ๋ฅผ ๊ตฌํํฉ๋๋ค. ๋ํ /bin/ ๋ฐ /sbin/ ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ด /usr์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํตํด ํ์ฑ๋์ง ์์๋์ง ํ์ธํ๊ธฐ ์ํด "unmerged-usr" ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- PID 1 ํ๋ก์ธ์ค๋ก ์์๋ ์์ฑ๊ธฐ์ ๊ฒฝ์ฐ $SYSTEMD_SCOPE(์์คํ ๋๋ ์ฌ์ฉ์ ์๋น์ค์์ ์์), $SYSTEMD_IN_INITRD(initrd ๋๋ ํธ์คํธ ํ๊ฒฝ์์ ์์), $SYSTEMD_FIRST_BOOT(์ฒซ ๋ฒ์งธ ๋ถํ ํ์๊ธฐ), $SYSTEMD_VIRTUALIZATION( ๊ฐ์ํ๊ฐ ์๊ฑฐ๋ ์ปจํ ์ด๋์์ ์คํ) ๋ฐ $SYSTEMD_ARCHITECTURE(์ปค๋์ด ๋น๋๋ ์ํคํ ์ฒ).
- PID 1 ํธ๋ค๋ฌ๋ QEMU fw_cfg ์ธํฐํ์ด์ค์์ ๋๋ ์ปค๋ ๋ช ๋ น์ค์์ systemd.set_credential ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ์ฌ ์์คํ ์๊ฒฉ ์ฆ๋ช ๋งค๊ฐ๋ณ์๋ฅผ ๋ก๋ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. LoadCredential ์ง์์ด๋ ์๋ ๊ฒฝ๋ก๊ฐ ์ธ์๋ก ์ง์ ๋ ๊ฒฝ์ฐ /etc/credstore/, /run/credstore/ ๋ฐ /usr/lib/credstore/ ๋๋ ํฐ๋ฆฌ์์ ์๊ฒฉ ์ฆ๋ช ์ ์๋์ผ๋ก ๊ฒ์ํฉ๋๋ค. ๋น์ทํ ๋์์ด /etc/credstore.encrypted/, /run/credstore.encrypted/ ๋ฐ /usr/lib/credstore.encrypted/ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ํ์ธํ๋ LoadCredentialEncrypted ์ง์๋ฌธ์๋ ์ ์ฉ๋ฉ๋๋ค.
- JSON ํ์์ผ๋ก ๋ด๋ณด๋ด๋ ๊ธฐ๋ฅ์ด systemd-journald์์ ์์ ํ๋์์ต๋๋ค. "journalctl --list-boots" ๋ฐ "bootctl list" ๋ช ๋ น์ ์ด์ JSON ํ์("--json" ํ๋๊ทธ)์ ์ถ๋ ฅ์ ์ง์ํฉ๋๋ค.
- ํด๋์ฉ ์ฅ์น(PDA, ๊ณ์ฐ๊ธฐ ๋ฑ)์ ์ฌ์ด๋ ๋ฐ ๋น๋์ค ์์ฑ์ ์ฌ์ฉ๋๋ ์ฅ์น(DJ ์ฝ์, ํคํจ๋)์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ hwdb ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ์ ํ์ผ์ด udev์ ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ค์ ์์คํ ์ ์ฐ์ ์์๋ฅผ ์ค์ ํ๊ธฐ ์ํด udevadm์ ์๋ก์ด ์ต์ โ--prioritized-subsystemโ์ด ์ถ๊ฐ๋์์ต๋๋ค(๋ธ๋ก ์ฅ์น ๋ฐ TPM์ ๋จผ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด systemd-udev-trigger.service์์ ์ฌ์ฉ๋จ), โ-type=allโ, โ-initialized -matchโ ๋ฐ "--initialized-nomatch"๋ ์ด๊ธฐํ๋๊ฑฐ๋ ์ด๊ธฐํ๋์ง ์์ ์ฅ์น๋ฅผ ์ ํํ๊ณ , "udevadm info -tree"๋ /sys/ ๊ณ์ธต์ ๊ฐ์ฒด ํธ๋ฆฌ๋ฅผ ํ์ํฉ๋๋ค. udevadm์ ๋ํ ์ฅ์น ํญ๋ชฉ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ ํํฐ์ ํ ์ด๋ธ์ ํฌ๋งทํ๊ฑฐ๋ ์ฐ๋ ๋์ ๋ธ๋ก ์ฅ์น๋ฅผ ์ ๊ทธ๋ ์๋ก์ด "wait" ๋ฐ "lock" ๋ช ๋ น์ ์ถ๊ฐํฉ๋๋ค.
- /dev/disk/by-diskseq/ ์ฅ์น์ ๋ํ ์๋ก์ด ์ฌ๋ณผ๋ฆญ ๋งํฌ ์ธํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ผ๋ จ ๋ฒํธ("diskseq")๋ก ๋ธ๋ก ์ฅ์น๋ฅผ ์๋ณํฉ๋๋ค.
- ์ฅ์น๋ฅผ ํ์จ์ด ์ค๋ช ๊ณผ ์ผ์น์ํค๊ธฐ ์ํด [Match] ์น์ ์ .link ํ์ผ์ "Firmware" ๋งค๊ฐ๋ณ์์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- systemd-networkd์์ [Route] ์น์ ์ ํตํด ๊ตฌ์ฑ๋ ์ ๋์บ์คํธ ๊ฒฝ๋ก์ ๊ฒฝ์ฐ "ip Route" ๋ช ๋ น์ ๋์๊ณผ ์ผ์นํ๋๋ก ๋ฒ์ ๊ฐ์ด ๊ธฐ๋ณธ์ ์ผ๋ก "link"๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ปค๋์ ๋คํธ์ํฌ ๋ธ๋ฆฌ์ง์ ๋ํด ๋์ผํ ์ด๋ฆ์ ์์ฑ์ ๊ตฌ์ฑํ๊ธฐ ์ํด ๊ฒฉ๋ฆฌ๋จ=true|false ๋งค๊ฐ๋ณ์๊ฐ [Bridge] ์น์ ์ ์ถ๊ฐ๋์์ต๋๋ค. [ํฐ๋] ์น์ ์ ํฐ๋ ์ ํ์ ์ธ๋ถ(๋ฉํ๋ฐ์ดํฐ ์์ง ๋ชจ๋)๋ก ์ค์ ํ ์ ์๋ ์ธ๋ถ ๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. [DHCPServer] ์น์ ์๋ PXE ๋ชจ๋๋ก ๋ถํ ํ ๋ DHCP ์๋ฒ๊ฐ ๋ณด๋ด๋ ์๋ฒ ์ฃผ์, ์๋ฒ ์ด๋ฆ, ๋ถํ ํ์ผ ์ด๋ฆ์ ๊ตฌ์ฑํ๊ธฐ ์ํ BootServerName, BootServerAddress ๋ฐ BootFilename ๋งค๊ฐ ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. [๋คํธ์ํฌ] ์น์ ์์ L2TP ๋งค๊ฐ๋ณ์๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค. ๋์ .netdev ํ์ผ์์ L2TP ์ธํฐํ์ด์ค์ ๊ด๋ จ๋ ์๋ก์ด ๋ก์ปฌ ์ค์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ ๋จ์ "systemd-networkd-wait-online@"์ ์ถ๊ฐํ์ต๋๋ค. .service"๋ ํน์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๊ฐ ๋ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ด์ .netdev ํ์ผ์ ์ฌ์ฉํ์ฌ [WLAN] ์น์ ์์ ๊ตฌ์ฑํ ์ ์๋ ๊ฐ์ WLAN ์ฅ์น๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- .link/.network ํ์ผ์์ [Match] ์น์ ์ ์ฅ์น ์ ํ("bond", "bridge", "gre", "tun", "veth")๋ณ ์ผ์น๋ฅผ ์ํ Kind ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌํํฉ๋๋ค.
- initrd ์ด๋ฏธ์ง์ systemd-resolved๊ฐ ์๋ ๊ฒฝ์ฐ initrd์์ ์์ํ๋ ๊ฒ์ ํฌํจํ์ฌ Systemd-resolved๋ ์ด๊ธฐ ๋ถํ ๋จ๊ณ์์ ์์๋์์ต๋๋ค.
- systemd-cryptenroll์ ์๊ฒฉ ์ฆ๋ช ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ --fido2-credential-algorithm ์ต์ ๊ณผ TPM์ ์ฌ์ฉํ์ฌ ํํฐ์ ์ ๊ธ์ ํด์ ํ ๋ PIN ์ ๋ ฅ์ ์ ์ดํ๋ โโ--tpm2-with-pin ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. ์ ์ฌํ tpm2-pin ์ต์ ์ด /etc/crypttab์ ์ถ๊ฐ๋์์ต๋๋ค. TPM์ ํตํด ์ฅ์น ์ ๊ธ์ ํด์ ํ๋ฉด ์ํธํ ํค๊ฐ ๊ฐ๋ก์ฑ์ง ์๋๋ก ๋ณดํธํ๊ธฐ ์ํด ์ค์ ์ด ์ํธํ๋ฉ๋๋ค.
- systemd-timesyncd๋ IPC๋ฅผ ํตํด NTP ์๋ฒ์์ ์ ๋ณด๋ฅผ ๋์ ์ผ๋ก ๊ฒ์ํ๊ธฐ ์ํ D-Bus API๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์์ ์ถ๋ ฅ์ ํ์์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ชจ๋ ๋ช ๋ น์ ์ด์ ์ ํ์ธ๋ NO_COLOR, SYSTEMD_COLORS ๋ฐ TERM ์ธ์๋ COLORTERM ํ๊ฒฝ ๋ณ์์ ๋ํ ํ์ธ์ ๊ตฌํํฉ๋๋ค.
- Meson ๋น๋ ์์คํ ์ pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev์ ๊ฐ์ ํ์ ๊ตฌ์ฑ ์์์ ์ ํ์ ์กฐ๋ฆฝ ๋ฐ ์ค์น๋ฅผ ์ํด install_tag ์ต์ ์ ๊ตฌํํฉ๋๋ค. systemd-journald ๋ฐ systemd-coredump์ ๋ํ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ธฐ ์ํด ๋น๋ ์ต์ default-compression์ ์ถ๊ฐํ์ต๋๋ค.
- BitLocker TPM์ผ๋ก Microsoft Windows๋ฅผ ๋ถํ ํ๊ธฐ ์ํด loader.conf์ sd-boot์ ์คํ์ ์ธ "reboot-for-bitlocker" ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค.
์ถ์ฒ : opennet.ru