I understand that a configuration file is in:
/etc/selinux/config
But how is it processed at boot? How does SELinux start, is it a daemon? Which startup script starts SELinux?
SELinux policy is loaded by init in early boot. Init checks that SELinux is enabeld, after which it loads the policy and re-executes itself in correct security context.
Sources: RHEL4 documentation, Ubuntu Hardy, systemd
selinux_init_load_policy
provided in SELinux C API – sebasth Oct 03 '18 at 09:51