"Disposable template" terminology

I’m struggling to have a clear picture of how we ended up with the “disposable template” term.

Things might have started with the introduction of multiple disposable templates support in Qubes 4.0… There is a somewhat related issue:

“DisposableVM-Template(VM)” was proposed, and the discussion seems to be about how to combine “disposable” and “template”, with or without “VM”. Is it something that might be reconsidered?

Some other terms have been considered for “disposables” (see Clarify DispVM related terminology and properties · Issue #4935 · QubesOS/qubes-issues · GitHub ) but I can’t find anyone making a proposal to use a new term like “model”, “base” or something else, instead of “disposable template”. If I’m correct, some participants were against the idea of introducing a new term. But still, I think that the current disposable workflow is quite different from the template-app qubes one, having a new term for “disposable template” might help.

Everyone seemed to think at that time that this term would not be confusing. That’s not in line with my personal experience and discussions here on the forum.

From that discussion, it seems that -dvm was attached to the name of the unique disposable, in versions prior to Qubes 4.0. It doesn’t make much sense anymore IMO. -dvmt has been considered but it is still ugly and inconsistent.

Am I missing something here?

2 Likes

Just want to contribute my experience with DVM-Ts as a “new” user.

I confirm that DVM-Ts have been fairly confusing for me. The distinction between templates and VMs is fairly straightforward, but DVM-Ts are (to me) messy.

  • DVM-Ts are neither templates nor VMs (or rather, they’re both?).
    • They’re not templates… simply by definition, they fall into the “AppVM” category but simply have a disposable template property.
    • They’re not supposed to be used as appVMs either… but they don’t default to prohibit start=True neither to netvm=None.
  • They don’t have their own categories, meaning that they’ll pollute a bunch of menus where you select among all AppVMs.
  • For users (like me) who like to have one template per VM, they’re just an extra unnecessary step in the Template -> DVM-T > DVM chain (see Pros and cons of using standalones as disposable templates)

I’m actually somewhat interested in how people actually use DVM-Ts: “like a template”, e.g. “setup once and forget - never use as a VM” (in which case merging with the Template category at least would for me make sense), or are there other widespread use cases ?

Nb: this actually raises a more generic terminology issue in QubesOS, where we conflate “Template” and “root+private volume”, and “AppVM” with “private volume only”, which is technically the case, but the terminology itself if orthogonal to that (we could perfectly have “Templates” over only some volumes, or “Usable VMs” that only have a root filesystem).

3 Likes

And since 4.3 you can make an AppVM non persistent except a list of directories.

3 Likes

Every disposable template is also an app qube.

About that, see:

2 Likes

If I remember rightly, Andrew characterised this as the worst part of
bikeshedding, and Nina thought it important for users to be able to have
a good mental model.
Once we decided on “disposable” “disposable template” followed
naturally.

Why would we want to reconsider this use? Does this Qubes term cause
widespread general confusion? I’m the one missing something.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

1 Like

I think we see this quite common confusion here on the forum (so I can’t say it’s widespread). It is sometimes between the “disposable” and the “disposable template”, sometimes between the “disposable template” and the “template”.

1 Like

I don’t like “dvm” term but I do like “disposable template” term.

I also understand that I had to use “not a disposable in itself” to explain disposable template:

Disposable template is not a disposable in itself, but a special template that can create different disposable types, named disposable and unnamed disposables.

But I don’t think that substituting “template” for another term fixes the issue. The documentation was lacking for a long time, it is better now, I hope people point users to the documentation rather than attempting to explain the things their own way.

I also added this to the glossary:

disposable template

Any app qube on which disposable are based. A disposable template shares its user directories (and, indirectly, the root filesystem of the regular template on which it is based) with all disposable based on it.

  • Not to be confused with the concept of a regular template that is itself disposable, which does not exist in Qubes OS.

The only reason change the term “template” is this. But I am not sure it is a good idea, it is not like adding “base” or something else would facilitate understanding that it is a template, as disposables are created out of it, but not a TemplateVM class, as it doesn’t derive app qubes out of it.

  • Disposable templates must be app qubes. They cannot be regular template.
  • Every disposable is based on a disposable template, which is in turn based on a regular template.
  • Unlike disposable, disposable templates have the persistence properties of normal app qube.
  • Previously known as: DisposableVM Template, DVM Template, DVM. It is advised against the use of the DVM terms as it can be interpreted by some users as an abbreviation of DispVM, which a DVM is not.
4 Likes

I think that the distinction is clear in the docs, changing the term won’t change how it works. To me, the problem arises during communication. Some exchanges here are already difficult, especially when English is not your native tongue, and the use of “disposable” and/or “template” is not always as clear as the docs.

1 Like

I feel there are two points of confusion with the terminology:

  • Without context of Qubes experience, “disposable template” is ambiguous; it’s a template that is disposable? (no) it’s a template for disposables? (yes.) This is overcome pretty quickly, but it’s an uncertainty that every user of Qubes has to resolve to themselves.
  • The -dvm suffix is (IMHO) misapplied. I read dvm as disposable VM, meaning default-dvm and whonix-workstation-18-dvm are disposable VMs, but no, they are disposable templates (wait what is a disposable template again? and then what are “named disposables”, are they these qubes with -dvm in their names? …)

But I’m not confident I could think of something clearer. The English language seems to come up short for this abstraction.

Mentally I’ve come to translate “template” and “disposable template” to “first order template” and “second order template”, and that works for me, because I know what I mean.

1 Like

Also, the inconsistencies in the Qubes tools are a bit annoying:

  • in Qubes OS Global Config, when you choose the Default disposable template, you read something about “the template”
  • in Create New Qube: “disposable qube template”, then “the template”

That’s not really confusing as reading the sentence one more time is sufficient to understand what is going on.

1 Like

Actually it was intended to be clear, by analogy with things like
“letter template”, “report template”

I loathe the suffix, but use it widely none the less. In the KDE Menu I
have them grouped under “Disposable Templates”.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

1 Like

They are annoying and unclear. I do not think that “disposable qube template” is
used anywhere else, and seems to have come from nowhere.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

1 Like

I often see confusion around the VM that has template_for_dispvms = True, so I’d like to propose a clearer mental model and terminology that helped me.

The VM with template_for_dispvms = True (e.g. debian-13-xfce-dvm) is:

  • a normal AppVM
  • fully persistent (/rw survives reboots)
  • not disposable
  • the source from which DisposableVM instances are cloned

I prefer the term:

SeedVM

Why “SeedVM”?

Because it behaves exactly like a seed:

  • It is persistent.
  • It defines the baseline state for future DispVMs.
  • It is not modified by running DispVM instances.
  • It “grows” disposable instances on demand, without being consumed.

So the layering becomes conceptually clean:

TemplateVM
→ SeedVM (AppVM with template_for_dispvms = True)
→ DisposableVM instance (ephemeral)

This helps separate responsibilities clearly:

  • TemplateVM = defines the operating system
  • SeedVM = defines the disposable runtime profile (tools, settings, UX tweaks in /rw)
  • Disposable instance = one-time execution environment, destroyed on shutdown

Most confusion I’ve seen comes from implicitly thinking the SeedVM is itself disposable. It isn’t. It’s just the persistent cloning source.

For documentation and threat modeling, distinguishing between OS template and disposable seed makes things much clearer.

3 Likes

I think we have slowly and inconsistently been moving away from *VM
How will these “seeds” appear in the Menu, and why?

I do not share your experience - people do not mistakenly think that a
disposable template is disposable, but sometimes they do not grasp this:
template->disposable template ->disposable
In most cases, this is internalised very quickly.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

1 Like

For you this is clear, but for Qube beginners it’s still confusing while the second “layer” is a “disposable template” but at the same time an AppVM!

Looking back is always easy, for me it is clear as well after struggling with it.

Question is, is there a better, more “intuitive” way of expressing this 3-fold?
I think "seedVM is a good term.

2 Likes

Many of my non-technical friends always get confused by this terminology.

Every time they ask the same question: Is it a disposableVM or is it a templateVM?

This seed thing sounds good to me.

2 Likes

The original idea behind this topic was to understand the origin of the “disposable template” term. It wasn’t really about changing it, just to know if it is something that could change. I don’t think it is a good idea for this to become a topic about which term would be better.

4 Likes

Then I’m sorry if I went beyond the intended scope. As a scientist, I’m used to working with well-defined terms. Of course, that has been the case here as well. Things usually work fine as long as everyone knows what is being discussed.

My intention was to lower the entry barrier for beginners when it comes to the topic of disposables.

2 Likes

I think people may have been misled by your suggestion that it might be
reconsidered, and your comment that you couldnt find anyone proposing
alternatives.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

2 Likes

I’m sorry I was not clear.

I am not speaking of my own experience, but of my experience of working
with many new Qubes users. Where it is necessary to explain the
plumbing that underpins disposables, (and for may users this is not
necessary), most users, whatever their prior computing experience,
understand the basics relatively quickly.

So for these users it is not confusing. I find it hard to think that
they are so different from the users of this Forum.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

1 Like