252κ°μκ°μ κ°λ° λμ μμ€ν κ΄λ¦¬μ systemd XNUMXκ° μΆμλμμ΅λλ€. μλ‘μ΄ λ²μ μ μ£Όμ λ³κ²½ μ¬νμ μ κ·Έλ μ΄λλ λΆν νλ‘μΈμ€μ λν μ§μμ ν΅ν©ν κ²μ λλ€. μ΄λ₯Ό ν΅ν΄ λμ§νΈ μλͺ μ μ¬μ©νμ¬ μ»€λκ³Ό λΆνΈλ‘λλΏλ§ μλλΌ κΈ°λ³Έ μμ€ν νκ²½μ κ΅¬μ± μμλ κ²μ¦ν μ μμ΅λλ€.
μ μλ λ°©λ²μ UEFIμμ 컀λμ λ‘λνλ νΈλ€λ¬(UEFI λΆνΈ μ€ν )μ 컀λ μ΄λ―Έμ§λ₯Ό κ²°ν©ν ν΅ν© 컀λ μ΄λ―Έμ§ UKI(Unified Kernel Image)λ₯Ό λ‘λ μ μ¬μ©νλ κ²μ ν¬ν¨ν©λλ€. Linux initrdλ λ£¨νΈ νμΌ μμ€ν μ λ§μ΄νΈνκΈ° μ μ μ΄κΈ°ννλ λ° μ¬μ©λλ λ©λͺ¨λ¦¬μ λ‘λλλ μμ€ν νκ²½μ λλ€. UKI μ΄λ―Έμ§λ PE νμμ λ¨μΌ μ€ν νμΌλ‘ ν¨ν€μ§λμ΄ μμΌλ©°, κΈ°μ‘΄ λΆνΈλ‘λλ₯Ό μ¬μ©νκ±°λ UEFI νμ¨μ΄μμ μ§μ νΈμΆν μ μμ΅λλ€. UEFIμμ νΈμΆν κ²½μ°, λμ§νΈ μλͺ μ μ¬μ©νμ¬ μ»€λλΏλ§ μλλΌ initrd λ΄μ©μ 무결μ±κ³Ό μ§μ μ¬λΆλ₯Ό νμΈν μ μμ΅λλ€.
μλ‘μ΄ μ νΈλ¦¬ν°μΈ systemd-measureκ° ν¬ν¨λμ΄ UKI μ΄λ―Έμ§μ 무결μ±μ λͺ¨λν°λ§νκ³ λμ§νΈ μλͺ μ μμ±νλ λ° μ¬μ©λλ TPM PCR(μ λ’°ν μ μλ νλ«νΌ λͺ¨λ νλ«νΌ κ΅¬μ± λ μ§μ€ν°) λ μ§μ€ν°μ λ§€κ°λ³μλ₯Ό κ³μ°ν©λλ€. μλͺ μ μ¬μ©λ κ³΅κ° ν€μ PCR κ΄λ ¨ μ 보λ UKI λΆνΈ μ΄λ―Έμ§μ μ§μ λ΄μ₯λ μ μμΌλ©°(ν€μ μλͺ μ PE νμΌμ '.pcrsig' λ° '.pcrkey' νλμ μ μ₯λ¨), μΈλΆ λλ λ΄λΆ μ νΈλ¦¬ν°λ₯Ό μ¬μ©νμ¬ UKI λΆνΈ μ΄λ―Έμ§μμ μΆμΆν μ μμ΅λλ€.
νΉν, systemd-cryptsetup, systemd-cryptenroll λ° systemd-creds μ νΈλ¦¬ν°λ μ΄ μ 보λ₯Ό μ¬μ©νλλ‘ μ‘°μ λμμΌλ©°, μ΄λ₯Ό ν΅ν΄ μνΈνλ λμ€ν¬ νν°μ μ λμ§νΈ μλͺ λ 컀λμ λ°μΈλ©νλ κ²μ΄ κ°λ₯ν©λλ€(μ΄ κ²½μ° μνΈνλ νν°μ μ λν μ‘μΈμ€λ UKI μ΄λ―Έμ§κ° TPMμ λ°°μΉλ λ§€κ°λ³μλ₯Ό κΈ°λ°μΌλ‘ νλ λμ§νΈ μλͺ μ μν κ²μ¦μ ν΅κ³Όν κ²½μ°μλ§ μ 곡λ©λλ€).
λν, systemd-pcrphase μ νΈλ¦¬ν°κ° ν¬ν¨λμ΄ μμ΄ TPM 2.0 μ¬μμ μ§μνλ μνΈν νλ‘μΈμμ λ©λͺ¨λ¦¬μ λ°°μΉλ λ§€κ°λ³μμ λν λ€μν λΆν λ¨κ³μ λ°μΈλ©μ κ΄λ¦¬ν μ μμ΅λλ€(μλ₯Ό λ€μ΄, LUKS2 νν°μ μνΈ ν΄λ ν€λ₯Ό initrd μ΄λ―Έμ§μμλ§ μ¬μ©ν μ μλλ‘ μ€μ νκ³ μ΄ν λΆν λ¨κ³μμλ ν΄λΉ ν€μ λν μ‘μΈμ€λ₯Ό μ°¨λ¨ν μ μμ).
κΈ°ν λ³κ²½ μ¬ν:
- μ€μ μμ λ€λ₯Έ λ‘μΌμΌμ΄ μ§μ λμ§ μλ ν κΈ°λ³Έμ μΌλ‘ C.UTF-8 λ‘μΌμΌμ΄ μ¬μ©λλλ‘ νμ΅λλ€.
- μ΅μ΄ λΆν μ μ 체 μλΉμ€ μ¬μ μ€μ ("systemctl preset")μ μννλ κΈ°λ₯μ ꡬννμ΅λλ€. λΆν μ μ¬μ μ€μ μ νμ±ννλ €λ©΄ "-Dfirst-boot-full-preset" μ΅μ μ μ¬μ©νμ¬ λΉλν΄μΌ νμ§λ§, ν₯ν 릴리μ€μμλ κΈ°λ³Έμ μΌλ‘ νμ±νλ μμ μ λλ€.
- μ¬μ©μ κ΄λ¦¬ λ¨μλ CPU 리μμ€ μ»¨νΈλ‘€λ¬λ₯Ό μ¬μ©νλ©°, μ΄λ₯Ό ν΅ν΄ CPUWeight μ€μ μ μμ€ν λΆν μ μ¬μ©λλ λͺ¨λ μ¬λΌμ΄μ€ λ¨μ(app.slice, background.slice, session.slice)μ μ μ©νμ¬ CPU 리μμ€λ₯Ό λκ³ κ²½μνλ μ¬λ¬ μ¬μ©μ μλΉμ€ κ°μ 리μμ€λ₯Ό λΆλ¦¬ν μ μμ΅λλ€. CPUWeightλ μ μ ν 리μμ€ νλ‘λΉμ λ λͺ¨λλ₯Ό νμ±ννκΈ° μν΄ "idle" κ°λ μ§μν©λλ€.
- μμ μ₯μΉμ systemd-repart μ νΈλ¦¬ν°μμλ /etc/systemd/system/name.d/ λλ ν 리μ λλ‘μΈ νμΌμ λ§λ€μ΄μ μ€μ μ μ¬μ μν μ μμ΅λλ€.
- μ΄μ μμ€ν μ΄λ―Έμ§λ /etc/os-release νμΌμ μλ‘μ΄ 'SUPPORT_END=' λ§€κ°λ³μ κ°μ λ°λΌ 'μ§μ μ’ λ£'λ‘ νμλ©λλ€.
- νΉμ μ격 μ¦λͺ μ΄ μμ€ν μ μλ κ²½μ° λ¨μλ₯Ό 무μνκ±°λ μ€λ¨νλ λ° μ¬μ©ν μ μλ "ConditionCredential=" λ° "AssertCredential=" μ€μ μ΄ μΆκ°λμμ΅λλ€.
- system.confμ user.confμ "DefaultSmackProcessLabel=" λ° "DefaultDeviceTimeoutSec=" μ€μ μ μΆκ°νμ¬ κΈ°λ³Έ SMACK 보μ μμ€κ³Ό μ₯μΉ νμ±ν μκ° μ΄κ³Όλ₯Ό μ μνμ΅λλ€.
- "ConditionFirmware=" λ° "AssertFirmware=" μ€μ μ κ°λ³ SMBIOS νλλ₯Ό μ§μ νλ κΈ°λ₯μ΄ μΆκ°λμμ΅λλ€. μλ₯Ό λ€μ΄, /sys/class/dmi/id/board_name νλμ "Custom Board" κ°μ΄ ν¬ν¨λ κ²½μ°μλ§ μ₯μΉλ₯Ό μ€ννλ €λ©΄ "ConditionFirmware=smbios-field(board_name = "Custom Board")"λ₯Ό μ§μ νλ©΄ λ©λλ€.
- μ΄μ μ΄κΈ°ν νλ‘μΈμ€(PID 1)λ qemu_fwcfgλ₯Ό ν΅ν΄ μ격 μ¦λͺ μ μ μνλ κ² μΈμλ SMBIOS νλ(μ ν 11, "OEM 곡κΈμ 체 λ¬Έμμ΄")μμ μ격 μ¦λͺ μ κ°μ Έμ¬ μ μμΌλ―λ‘ μ격 μ¦λͺ μ μ 곡νκΈ°κ° λ μ¬μμ‘μ΅λλ€. κ°μ λ¨Έμ λν cloud-init λ° ignitionκ³Ό κ°μ νμ¬ λκ΅¬κ° νμνμ§ μκ² λ©λλ€.
- μ’ λ£νλ λμ κ°μ FS(proc, sys)λ₯Ό λ§μ΄νΈ ν΄μ νλ λ‘μ§μ΄ λ³κ²½λμμΌλ©°, νμΌ μμ€ν μ λ§μ΄νΈ ν΄μ λ₯Ό μ°¨λ¨νλ νλ‘μΈμ€μ λν μ λ³΄κ° λ‘κ·Έμ μ μ₯λμμ΅λλ€.
- SystemCallFilterλ κΈ°λ³Έμ μΌλ‘ riscv_flush_icache μμ€ν νΈμΆμ λν μ‘μΈμ€λ₯Ό νμ©ν©λλ€.
- μ΄μ sd-boot λΆνΈλ‘λλ 64λΉνΈ 컀λμ΄ ν¬ν¨λ νΌν© λͺ¨λλ‘ λΆν ν μ μμ΅λλ€. Linux 32λΉνΈ UEFI νμ¨μ΄μμ μ€νλ©λλ€. ESP(EFI μμ€ν νν°μ )μμ μ°Ύμ νμΌμμ SecureBoot ν€λ₯Ό μλμΌλ‘ μ μ©νλ μ€νμ μΈ κΈ°λ₯μ΄ μΆκ°λμμ΅λλ€.
- bootctl μ νΈλ¦¬ν°μ μλ‘μ΄ μ΅μ μ΄ μΆκ°λμμ΅λλ€. "--all-architectures"λ μ§μλλ λͺ¨λ EFI μν€ν μ²μ λν λ°μ΄λ리λ₯Ό μ€μΉνκ³ , "--root=" λ° "--image="λ λλ ν 리λ λμ€ν¬ μ΄λ―Έμ§μ ν¨κ» μλνκ³ , "--install-source="λ μ€μΉ μμ€λ₯Ό μ§μ νκ³ , "--efi-boot-option-description="μ λΆν νλͺ©μ μ΄λ¦μ μ μ΄ν©λλ€.
- systemctl μ νΈλ¦¬ν°μ μ΄μ μλμΌλ‘ λ§μ΄νΈλ λλ ν°λ¦¬ λͺ©λ‘μ νμνλ 'list-automounts' λͺ λ Ήκ³Ό μ§μ λ λμ€ν¬ μ΄λ―Έμ§μ λͺ λ Ήμ μ€ννλ '--image=' μ΅μ μ΄ μΆκ°λμμ΅λλ€. 'show' λ° 'status' λͺ λ Ήμ μ΄μ '--state=' λ° '--type=' μ΅μ μ΄ μΆκ°λμμ΅λλ€.
- systemd-networkdμ λ€μ μ΅μ μ΄ μΆκ°λμμ΅λλ€. TCP νΌμ‘ μ μ΄ μκ³ λ¦¬μ¦μ μ ννλ "TCPCongestionControlAlgorithm=", TUN/TAP μΈν°νμ΄μ€μ νμΌ λμ€ν¬λ¦½ν°λ₯Ό μ μ₯νλ "KeepFileDescriptor=", NetLabel λ μ΄λΈμ μ€μ νλ "NetLabel=", DHCPv6(RFC 3315)λ₯Ό ν΅ν κ΅¬μ± κ°μνλ₯Ό μν "RapidCommit=". μ΄μ "RouteTable=" λ§€κ°λ³μλ₯Ό μ¬μ©νμ¬ λΌμ°ν ν μ΄λΈ μ΄λ¦μ μ§μ ν μ μμ΅λλ€.
- systemd-nspawnμμλ "--bind=" λ° "--overlay=" μ΅μ μμ μλ νμΌ κ²½λ‘λ₯Ό μ¬μ©ν μ μμ΅λλ€. νΈμ€νΈ μμ€ν μ λ§μ΄νΈλ λλ ν 리μ μμ μμ 컨ν μ΄λμ λ£¨νΈ μ¬μ©μ IDλ₯Ό λ°μΈλ©νκΈ° μν΄ "--bind=" μ΅μ μ 'rootidmap' λ§€κ°λ³μμ λν μ§μμ΄ μΆκ°λμμ΅λλ€.
- systemd-resolvedλ κΈ°λ³Έ μνΈν λ°±μλλ‘ OpenSSLμ μ¬μ©ν©λλ€(gnutls μ§μμ μ΅μ μΌλ‘ μ μ§λ©λλ€). μ§μλμ§ μλ DNSSEC μκ³ λ¦¬μ¦μ μ΄μ μ€λ₯(SERVFAIL)λ₯Ό λ°ννλ λμ μμ νμ§ μμ κ²μΌλ‘ μ²λ¦¬λ©λλ€.
- systemd-sysusers, systemd-tmpfiles λ° systemd-sysctlμ μ격 μ¦λͺ μ μ₯ λ©μ»€λμ¦μ ν΅ν΄ μ€μ μ μ λ¬νλ κΈ°λ₯μ ꡬνν©λλ€.
- systemd-analyze μ νΈλ¦¬ν°μ λ²μ λ²νΈκ° μλ λ¬Έμμ΄μ λΉκ΅νλ 'compare-versions' λͺ λ Ήμ΄ μΆκ°λμμ΅λλ€('rpmdev-vercmp' λ° 'dpkg --compare-versions'μ μ μ¬). 'systemd-analyze dump' λͺ λ Ήμ λ§μ€ν¬ κΈ°μ€μΌλ‘ μ λμ νν°λ§νλ κΈ°λ₯μ΄ μΆκ°λμμ΅λλ€.
- λ€λ¨κ³ μ μ λͺ¨λ(μΌμ μ€μ§-μ΅λ μ μ λͺ¨λ)λ₯Ό μ νν κ²½μ°, μΌμ μ€μ§ λͺ¨λμ 머무λ₯΄λ μκ°μ μ΄μ μμ λ¨μ λ°°ν°λ¦¬ μλͺ μ λ°λΌ κ²°μ λ©λλ€. λ°°ν°λ¦¬ μλμ΄ 5% λ―Έλ§μ΄λ©΄ μ¦μ μ μ λͺ¨λκ° μ€νλ©λλ€.
- 'journalctl'μ μλ‘μ΄ μΆλ ₯ λͺ¨λ "-o short-delta"κ° μΆκ°λμ΄ μλ‘ λ€λ₯Έ λ‘κ·Έ λ©μμ§ κ°μ μκ° μ°¨μ΄λ₯Ό νμν©λλ€.
- μ΄μ systemd-repartλ λμ§νΈ μλͺ μ΄ μλ νν°μ μ ν¬ν¨νμ¬ Squashfs FSλ₯Ό μ¬μ©ν νν°μ κ³Ό dm-verityλ₯Ό ββμ¬μ©ν νν°μ μμ±μ μ§μν©λλ€.
- μ§μ λ μκ° μ΄κ³Ό ν μ ν΄ μΈμ μ μ’ λ£νκΈ° μν΄ systemd-logindμ "StopIdleSessionSec=" μ€μ μ μΆκ°νμ΅λλ€.
- systemd-cryptenrollμ "--unlock-key-file=" μ΅μ μ μΆκ°νμ¬ μ¬μ©μμκ² λ¬»μ§ μκ³ λ νμΌμμ 볡νΈν ν€λ₯Ό μΆμΆν μ μμ΅λλ€.
- udevκ° μλ νκ²½μμ systemd-growfs μ νΈλ¦¬ν°λ₯Ό μ€νν μ μλ κΈ°λ₯μ΄ λ³΄μ₯λμμ΅λλ€.
- systemd-backlightλ μ¬λ¬ κ°μ κ·Έλν½ μΉ΄λκ° μλ μμ€ν μ λν μ§μμ κ°μ νμ΅λλ€.
- μ€λͺ μμ μ 곡λ μ½λ μνμ λΌμ΄μΌμ€κ° CC0μμ MIT-0μΌλ‘ λ³κ²½λμμ΅λλ€.
νΈνμ±μ μμνλ λ³κ²½ μ¬ν:
- ConditionKernelVersion μ§μμ΄λ₯Ό μ¬μ©νμ¬ μ»€λ λ²μ λ²νΈλ₯Ό νμΈν λ, '=' λ° '!=' μ°μ°μλ μ΄μ κ°λ¨ν λ¬Έμμ΄ λΉκ΅λ₯Ό μ¬μ©ν©λλ€. λΉκ΅ μ°μ°μκ° μ§μ λμ§ μμ κ²½μ°, '*', '?' λ° '[', ']' λ¬Έμλ₯Ό μ¬μ©νμ¬ κΈλ‘λ² λ§μ€ν¬ λΉκ΅λ₯Ό μ¬μ©ν μ μμ΅λλ€. stverscmp() μ€νμΌμ λ²μ λΉκ΅μλ '<', '>', '<=' λ° '>=' μ°μ°μλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
- SE λΌλ²¨Linuxμ λ νμΌμ μ κ·Ό κΆνμ νμΈνλ λ° μ¬μ©λλ ν΄λΉ μ 보λ μ΄μ μ κ·Ό κΆν νμΈ λ¨κ³κ° μλ νμΌ λ‘λ© λ¨κ³μμ μ½νλλ€.
- "ConditionFirstBoot" 쑰건μ μ΄μ λΆν λ¨κ³ μ체 λμλ§ μμ€ν μ μ²μ λΆν ν λ μ€νλκ³ λΆν μ΄ μλ£λ ν λ¨μλ₯Ό νΈμΆνλ©΄ "false"λ₯Ό λ°νν©λλ€.
- systemdλ 2024λ μ systemd 1 λ²μ μμ μ§μμ΄ μ€λ¨λ cgroup v248 리μμ€ μ ν λ©μ»€λμ¦μ λν μ§μμ μ€λ¨ν κ³νμ λλ€. κ΄λ¦¬μλ cgroup v2μ μ¬μ©νλ μλΉμ€λ₯Ό cgroup v1λ‘ λ―Έλ¦¬ λ§μ΄κ·Έλ μ΄μ νλ κ²μ κ³ λ €ν΄ λ³΄λ κ²μ΄ μ’μ΅λλ€. cgroup v2μ v1μ μ£Όμ μ°¨μ΄μ μ CPU 리μμ€ ν λΉ, λ©λͺ¨λ¦¬ μ ν λ° I/Oμ λ³λμ κ³μΈ΅ ꡬ쑰λ₯Ό μ¬μ©νλ λμ , λͺ¨λ μ νμ 리μμ€μ 곡ν΅λ cgroup κ³μΈ΅ ꡬ쑰λ₯Ό μ¬μ©νλ€λ κ²μ λλ€. λ³λμ κ³μΈ΅ ꡬ쑰λ νΈλ€λ¬ κ° μνΈ μμ©μ ꡬμ±νλ λ° μ΄λ €μμ μ΄λνκ³ , μλ‘ λ€λ₯Έ κ³μΈ΅ ꡬ쑰μμ μ°Έμ‘°λλ νλ‘μΈμ€μ κ·μΉμ μ μ©ν λ μΆκ°μ μΈ μ»€λ 리μμ€λ₯Ό λ°μμν΅λλ€.
- /usrμ΄ λ£¨νΈμ λ³λλ‘ λ§μ΄νΈλκ±°λ /binκ³Ό /usr/bin, /libκ³Ό /usr/libκ° λΆλ¦¬λλ λ³λμ λλ ν 리 κ³μΈ΅μ λν μ§μμ 2023λ νλ°κΈ°μ μ κ±°λ μμ μ λλ€.
μΆμ² : opennet.ru
