From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on atuin X-Spam-Level: X-Spam-Status: No, score=-1.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from [127.0.1.1] (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 2C76FA8D4; Wed, 16 Oct 2019 20:29:03 +0000 (UTC) Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by atuin.qyliss.net (Postfix) with ESMTPS id 8B4DEA873 for ; Wed, 16 Oct 2019 20:28:57 +0000 (UTC) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 2D71D1483; Wed, 16 Oct 2019 16:28:54 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 16 Oct 2019 16:28:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; s=fm1; bh=SvIZFb/YA4F0ifjCFZoGe1LrTJ 5H3fWHh52MMFqU1hg=; b=qD3QJZYXmycNt/f4V3Xc6Bx1PtV74sTNUmAnvkec9h lXbES3jaxpICyvpcPwTtzopVrRolyJg9ivNPOOFVgALPQ6wfe4CxHUM6g/to2XQy qG1aa1C5TstfaJ/P3uNw5+QcrMMiwAlBrsGpz/RW2waZ99K3lkN5eiX+1BG9F5fA B23MzX1JEWFHogURArZKchIyk0dOkg7VcMlLri5c5DWQ19Z+dvVbzKdsIAZaGssv OW6tw4OTvPCh9DgaBX9MVf73c/Pz01tCW2s9vwLNz3yQQNk5J6E4NGVtmqGZFc5K 7rmVjqoLGaQxO58xWirjt+ibXVR/UY3LeC6EJYgOXRbw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=SvIZFb/YA4F0ifjCF ZoGe1LrTJ5H3fWHh52MMFqU1hg=; b=QH+V/9mFJe4JfQXyJ+8H2SM6BEWWyJYSn ZKZpzdUbXJhGRRCo10TghzBuo91mnEXu+CPB/lHiBm2BsxbG5kfKcziVQAsVVm1N obpFzTk4MZK4nV45+tp5ZHHS2an7A5/7ka8SWIo1QuN42OZTV5FxFslzuXNqgB6u 6gZOxWincyQlUFCNOiF64I/mWVW2xsfsudTfWd3L3Q0w5d4tpfikpOkUAu4bbyd9 W8inQnrUYxnbs1SEDsRpAid+ByD0S7nWifTaBtgnJsH0xjPYApEk535GkpSbWFes 7qKaHToaDbBCskyH3OxyLBIPwgJifOIDweUyHIUmGATI4AIgnxSpg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrjeehgdduheefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmne cujfgurhephffvufffkffoggfgsedtkeertdertddtnecuhfhrohhmpeetlhihshhsrgcu tfhoshhsuceohhhisegrlhihshhsrgdrihhsqeenucffohhmrghinhepshhpvggtthhruh hmqdhoshdrohhrghdpnhhigihoshdrohhrghenucfkphepkeegrddukeegrddvvdegrddu hedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehqhihlihhsshesgidvvddtrdhqhihlih hsshdrnhgvthenucevlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from x220.qyliss.net (p54b8e096.dip0.t-ipconnect.de [84.184.224.150]) by mail.messagingengine.com (Postfix) with ESMTPA id 937AAD6006A; Wed, 16 Oct 2019 16:28:52 -0400 (EDT) Received: by x220.qyliss.net (Postfix, from userid 1000) id 2758E140086; Wed, 16 Oct 2019 20:28:50 +0000 (UTC) From: Alyssa Ross To: devel@spectrum-os.org Date: Wed, 16 Oct 2019 20:28:45 +0000 Message-Id: <20191016202845.21132-1-hi@alyssa.is> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: QJS6RLOEGQIFBE5QQ4PERMVHBYGCFMPA X-Message-ID-Hash: QJS6RLOEGQIFBE5QQ4PERMVHBYGCFMPA X-MailFrom: qyliss@x220.qyliss.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Alyssa Ross , Jean-Philippe Ouellet , Michael Raskin <7c6f434c@mail.ru> X-Mailman-Version: 3.2.2 Precedence: list Subject: [spectrum-devel] [PATCH www] design: state subdirectories, not block devices List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Conversation on IRC has convinced me that this is the right thing to do after all: --- Jean-Phillipe, I'd be curious to hear your thoughts on the above discussion, since you recommended block devices to me when we talked. design.html | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/design.html b/design.html index 4b96a41..dc14cfe 100644 --- a/design.html +++ b/design.html @@ -43,23 +43,22 @@ one per application. Each virtual machine will be generated by a Nix derivation, and will have a completely immutable root file system. Persistent storage will be -provided by virtual block devices, that arbitrary paths on the system -can be mapped to from the host. There may be other writable mount -points inside the virtual machine, but these will not persist between -reboots of the VM. Using Nix to generate virtual machines allows them -to be reproducibly built, rolled back, edited, and migrated as source -code, rather than large, opaque virtual machine images. +provided by mounting subdirectories of the global state directory into +virtual machines. There may be other writable mount points inside the +virtual machine, but these will not persist between reboots of the VM. +Using Nix to generate virtual machines allows them to be reproducibly +built, rolled back, edited, and migrated as source code, rather than +large, opaque virtual machine images.

-Virtual block devices will also be defined in Nix, and block devices -and applications will be m:n. Some virtual -machines may have no persistent storage, or even write access to a -disk, at all. In other cases, it might be desirable for multiple -applications to be able to access the same device, such as a local -mail store being shared by two mail clients. Other resources and -permissions, such as network cards and USB controllers, will similarly -be defined in Nix. There are three logical sections for the Nix -configuration -- applications, which are just packages, resources +State directories and applications will be m:n. +Some virtual machines may have no persistent storage, or even write +access to a disk, at all. In other cases, it might be desirable for +multiple applications to be able to access the same device, such as a +local mail store being shared by two mail clients. Other resources +and permissions, such as network cards and USB controllers, will +similarly be defined in Nix. There are three logical sections for the +Nix configuration -- applications, which are just packages, resources (virtual or physical devices), and application instances, which are mappings between applications and accessible resources. This structure allows users to have multiple instances of the same -- 2.23.0