From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 8E57E52B2; Fri, 21 Aug 2026 06:53:36 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id B208C5297; Fri, 21 Aug 2026 06:53:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_PASS,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail-yx1-xb12d.google.com (mail-yx1-xb12d.google.com [IPv6:2607:f8b0:4864:20::b12d]) by atuin.qyliss.net (Postfix) with ESMTPS id 935FD5292 for ; Fri, 21 Aug 2026 06:53:32 +0000 (UTC) Received: by mail-yx1-xb12d.google.com with SMTP id 956f58d0204a3-66b32bb75beso1030977d50.2 for ; Thu, 20 Aug 2026 23:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787295211; x=1787900011; darn=spectrum-os.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=AlsWchy1ww9vJmQAMAaHAwnFkel/E7/G5BKAuAGHdUA=; b=AP528s49COmIJygCwxMazkHzKZAaB84g3cdOlaigim4IKn99UbC4DZ/cfVeQzAc05z 3wMfC7YyCLsbprb2gjmXRYLhHk11L/96vfBaQq894qcTV3/7coRMefV/xwls5d5axtjd eDBkKwV7mmG7XBMTvvmaTSlthPF4jsaGKstt8WKNK77CMxCY6110FVRX3Ry7/Cp+g/va I/aQuVSlyKRePQr8bqdGhJOQl2sCWPrhM3QKqHg9XQQYiz2GMV/haZmRlmSDD6LgzLtM 9b8SV6n8PFmwOuEmm5kxKy9r8hzBhANG1/Fge0gL2RuVBbYzSLIXJPgo8DHC7mIuglqc 0JvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787295211; x=1787900011; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=AlsWchy1ww9vJmQAMAaHAwnFkel/E7/G5BKAuAGHdUA=; b=OOFVElYKeOqrQ0beQa2+GML7EQwsP1cPV1P7uBCK/Xi4fo4om7ZScxcfw08TFnh3Dd a0Gd+TTdpEA9+3+iWpNrxJ/D6gEHM3+eVuOw9odkS9loPqtS3pi2Hln4f6WPgLFnDuqj ve4PN4pC+Pcd5UbFD9lAekX76KOqO1ovb8oQZRlaF16G+4YEBWgA2JgU5xjmeGTnbD1k MdI1ahc/xwE6L+KGcc+vrGuEUT0TITY3GmbV61pp3NhLLWParZhj7QIrmjOdg1rRcyFH 8vpj8SgR7Eu7aPpv8sKmSKu3WW68qfzEZK1O5z3Gn7SGEQFIIvNSRi93Ig/zGWnebIYg GDwA== X-Gm-Message-State: AFuF++l+hCdvTwVLWxjjtuitHS5B0a0+IcY8iJmnqZrrA2e/9iMQzAzP 6jHpFmpOEuNZZW6kh1Wwl45qx+ephyG4WZbyPjA9SLS+wVLrx49mZJ0715cNeTCY X-Gm-Gg: AR+sD12OGPxfDSR8bYHVFY/eFxUbOH5NX7/UoIqgxig7Ccyp5NoJy7XH8ftJZ/CjXHq brLFYrmhvpxrn7J8To3qvKWtev+Pt1C5cGiAJ50NTO4/yIIHErZpWReIzla0RLCWYAKyZMaZp2r Gg1DwzqdFbBtlQjDw27kMjz/yZ3iaJSr8NBNrfFyacSRg4klO3wgE0WlQIj/50dgDsqzxjDfKnT Bsu7VxazvXjJg8CHY6pKFgxOc7/GjLshFMmvgb8MncTCTC+a82x39JVMU65+t92vGIFVtxVCOqU TFXu0rF/7ckkRFED1Re2omV/yp0td+ojnTaLF/z1wS+a5nOwGCdrOhx4MR9QyE1h09q9XV0ku9X +Sr9HpY8/4dPfAx6LOLXBy+SIAdLVcUINGTGfLTxUEtuiRQ2GYO7SH49+szQJsPbtONA/gOq9sx DdrD9mytpOu7KbxpaSiqlhvP61NkD7pQE+TjJvv4si/cTGjlY5UlfuHgZ2eM1tezyDWVAYunnSy /gonwY= X-Received: by 2002:a05:690e:1189:b0:668:9758:3627 with SMTP id 956f58d0204a3-66ce4a9521amr1724170d50.23.1787295210970; Thu, 20 Aug 2026 23:53:30 -0700 (PDT) Received: from localhost.localdomain ([185.98.168.14]) by smtp.gmail.com with UTF8SMTPSA id 956f58d0204a3-66ccb172f15sm3885293d50.14.2026.08.20.23.53.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 23:53:29 -0700 (PDT) From: Demi Marie Obenour Date: Fri, 21 Aug 2026 02:51:44 -0400 Subject: [PATCH v7 01/19] host/rootfs: Mount filesystems before s6-rc-init MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260821-cgroups-v7-1-7f1870dedefc@gmail.com> References: <20260821-cgroups-v7-0-7f1870dedefc@gmail.com> In-Reply-To: <20260821-cgroups-v7-0-7f1870dedefc@gmail.com> To: Spectrum OS Development X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787295104; l=2434; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=jmfORfexXZaFkOAhN/ymO1GFsl+nYbqIaE6Q7oh6rYo=; b=u4gLukzKIWr0kksQUKklcgcQ/803rQVUbHowwf0ySRvXxX+sJKrOUhF+uYmUDth0ECGjyobcM T14vYcRfgSuDfuQ3ThDz0g4kdG6sqb1By3gaTdU0ALLqVlgQ2LSId0N X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: 6B6ZSPJSZSN6A2WRYEXDKYDTUBFFKUGM X-Message-ID-Hash: 6B6ZSPJSZSN6A2WRYEXDKYDTUBFFKUGM X-MailFrom: demiobenour@gmail.com X-Mailman-Rule-Hits: member-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; emergency CC: Demi Marie Obenour , Alyssa Ross X-Mailman-Version: 3.3.10 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: cgroup-setup, a tool which will be introduced in a later patch, is written in Rust and uses the Rust standard library. It also relies on cgroupfs being mounted at /sys/fs/cgroup. Furthermore, it runs very, *very* early on, since it sets up the cgroups in which s6-svscan and s6-supervise processes run. This allows setting up sub-cgroups without having to worry about name collisions. While it would be possible to only mount the bare minimum necessary, it's simpler to just mount everything before starting any services. These mounts are all pseudo-filesystems or tmpfs instances, and none have any dependencies. Signed-off-by: Demi Marie Obenour Reviewed-by: Alyssa Ross --- host/rootfs/image/etc/init | 11 ++++++++++- host/rootfs/image/etc/s6-linux-init/scripts/rc.init | 7 ------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/host/rootfs/image/etc/init b/host/rootfs/image/etc/init index db8a6d9c747e3d212c21b6c983c8f7e299822abe..8ec7859ab00e24007a93d4000c8f34e353de50ae 100755 --- a/host/rootfs/image/etc/init +++ b/host/rootfs/image/etc/init @@ -1,6 +1,15 @@ #!/bin/execlineb -Ws0 # SPDX-License-Identifier: EUPL-1.2+ -# SPDX-FileCopyrightText: 2022 Alyssa Ross +# SPDX-FileCopyrightText: 2020-2022, 2024 Alyssa Ross /bin/setpriv --no-new-privs -- + +if { /bin/ln -s /proc/self/fd /dev } +if { /bin/ln -s /proc/self/fd/0 /dev/stdin } +if { /bin/ln -s /proc/self/fd/1 /dev/stdout } +if { /bin/ln -s /proc/self/fd/2 /dev/stderr } + +if { /bin/mount --make-shared / } +if { /bin/mount -a --mkdir } + /bin/s6-linux-init -c /etc/s6-linux-init -s /run/param -- $@ diff --git a/host/rootfs/image/etc/s6-linux-init/scripts/rc.init b/host/rootfs/image/etc/s6-linux-init/scripts/rc.init index f638e373589884acb959c868462fdf532380a851..db766ba0ca0a11982f5b55497c17eaf5e95afb2c 100755 --- a/host/rootfs/image/etc/s6-linux-init/scripts/rc.init +++ b/host/rootfs/image/etc/s6-linux-init/scripts/rc.init @@ -4,13 +4,6 @@ if { s6-rc-init -c /etc/s6-rc /run/service } -if { ln -s /proc/self/fd /dev } -if { ln -s /proc/self/fd/0 /dev/stdin } -if { ln -s /proc/self/fd/1 /dev/stdout } -if { ln -s /proc/self/fd/2 /dev/stderr } - -if { mount --make-shared / } if { mount --make-shared /run } -if { mount -a --mkdir } s6-rc change ok-all -- 2.55.0