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 B9111B908; Fri, 31 Jul 2026 22:00:28 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 0DC63B872; Fri, 31 Jul 2026 22:00:26 +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,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com [IPv6:2607:f8b0:4864:20::1129]) by atuin.qyliss.net (Postfix) with ESMTPS id E03A1B86E for ; Fri, 31 Jul 2026 22:00:24 +0000 (UTC) Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-81e9d8f3289so21625127b3.1 for ; Fri, 31 Jul 2026 15:00:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785535222; x=1786140022; 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=eSLbqXePhVzhWZndPGNhfJAlEZhDKFjfjQ1mjIbAYVt5eFuM4+Ocw5/2eY1iXT/4iF B9ujeQZg6EC09Wx2EK4cYbbzlT+wk53r5s98BRnk/i78Lv1v0TjsiZYdw1GmaDRpDIim YhDIkxz8H4qHue4qKojZQKNIpF04gmO1WqtbknwRfkGbJM2m/iAJDWq8sOBCxQc5ZOGE pEBuWkmJubT+QUCVHE6JAF40mgwYTHTT3DZJUHe0icL5XquKsIxkqKQM8c7BDl2Kcv8J UyoZcoEZg9mnqKYGTinZLbXF+c/JyHjytcEQsZZ8tlrDtrc6xOq8fVFWjNwoWCaaNYUv qXfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785535222; x=1786140022; 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=raT3u6m69C9hMzpqnlexTPfkwp2imx4auH0Rdu2l3Fbdt2z9eMIzfPV3Mnx9bh0f/M Cq5INOy6PimD9pXqfGHRI5SV43GD/dnQLOwcqFKi3J5uN8mjHtEl872zfslwtgNSIWd/ JDQq4XQeTMprlkiETClhxfHOOX5dbwK/dIK61ISzOiwjOA929nRxWzKTuPNDXc1QL1vb YMmaUX171Hb5zbViOEhn52fMDkGUGPW84ZXzEz0MycXPwyg82eL65liHNBPUMJFH+pKD Te7F84DVPfbGwanNWweyCYEG+R+jxViDvCtg47jQD/GSndUFhFYjwjT8ylXS6z8o87VP F91A== X-Gm-Message-State: AOJu0YzsT99jLsxfayhTQ/tXPKXrtoSJX6dvOzDpup+6JZqrhtyDjYOg luUDriAIUwuGy8JRLXP+ZrfuMDya4GB3310at9XexsRsbuVcMokAUmZkLVzN5A== X-Gm-Gg: AR+sD10fwkS8dBPvT899YzLMi3A21Yyp5OMNg1OqL8RseM0s6iCBrgdMCaOa4XVpVS5 qeiEpwr75mptxNTYoXmvEaS3ZLtKtyuH5Qzbfik7UySxQvE/cTMkSs0GjlSNsMFPqr+mMZJoWKT 6AQP7E4vj70hCn0zPkGueb/OkdS2o3Ijb+EVgkdfvfax13SC9FEpruzuGbtPWJ3HOaEPVHJ0Jww ppkJNMItG8s5hYNVqygqTbwVAigJaIQoWYU3LZqish0+U7M2mFjSEY7pTjHjewD3kbi9ROjFmbv BUtrK18GCDk0tkZ1dDI5UdKB3MRVpeuRnFdDlWUKfZO/YAhkqYtAj9hBkN7XnHUytFxXR2FWzqw IY95Vg5V3uFfy+6N+RPMKZFm/tYoK56/cCl6pbO19GLhwokcugA2fF0dvcGRP333QWp9tdYoFZA 2e1LGgbLEXe4lGs62XcwWZnJkw/ukD+SEef9btdkvtFDnvMarg+iux0+l3oRZpbQPALZTPe2e+S m10llGlIzsi X-Received: by 2002:a05:690c:30f:b0:81f:64e8:9362 with SMTP id 00721157ae682-81fd4b1bf7fmr22186077b3.16.1785535222024; Fri, 31 Jul 2026 15:00:22 -0700 (PDT) Received: from localhost.localdomain ([185.98.168.14]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-81fccf63130sm14763827b3.16.2026.07.31.15.00.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jul 2026 15:00:21 -0700 (PDT) From: Demi Marie Obenour Date: Fri, 31 Jul 2026 17:54:41 -0400 Subject: [PATCH v5 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: <20260731-cgroups-v5-1-b325bac9d34f@gmail.com> References: <20260731-cgroups-v5-0-b325bac9d34f@gmail.com> In-Reply-To: <20260731-cgroups-v5-0-b325bac9d34f@gmail.com> To: Spectrum OS Development X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1785534880; l=2434; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=jmfORfexXZaFkOAhN/ymO1GFsl+nYbqIaE6Q7oh6rYo=; b=ZdGzQppaZOFkcFQFmEuam7T/wgpVHgpN7mDKHWPW341az+j3IPOB9gEcwMW/gEjLKyilGVlT1 zB+Xxm2SvvvAnRfc3iK4/P8yDn2P0ec57AGxje61BzDj8L1lBzP1VdM X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: ILS5ZORHPDVSG6F7YT3EG5HDX6IE33TB X-Message-ID-Hash: ILS5ZORHPDVSG6F7YT3EG5HDX6IE33TB 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