-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Marek Marczykowski-Górecki, 2026-07-15 16:57 +02:00:
> On Wed, Jul 15, 2026 at 03:10:35PM +0100, 'unman' via qubes-devel wrote:
>> On Wed, Jul 15, 2026 at 03:05:09PM +0200, Simon Gaiser wrote:
>> <snip>
>>> We are talking about [3], right? It seems you misunderstood my point
>>> above. I'm not talking about a special name for a qube with Admin API
>>> access that happens to allow everything. I'm talking about a
>>> non-Xen-specific term for the VM/domain/compartment that inherently has
>>> full access [4]. Under Xen that's dom0, under KVM that would be the host
>>> kernel+userspace (so the place where the Admin API calls are actually
>>> executed).
>>>
>>> That blog post used AdminVM for this meaning. And management/GUI VM for
>>> the example cases of qubes that call the Admin API (which is what you
>>> would like admin qube to mean).
>>>
>>> While "user facing" documentation certainly can skip some details or
>>> simplify things, I think we should avoid contradictory terms. Since
>>> effectively VM == qube, I think having AdminVM (the class) and @adminvm
>>> (the policy keyword) meaning something quite different is problematic.
>
>> I dont think I did misunderstand your point, and I understand what was
>> in the blog post.
In the snip-ed quote you wrote
[...] there is no requirement that an admin qube (or whatever term
is used) has FULL administrative control over EVERYTHING.
but for the "dom0(-equivalent)" usage of the term, this doesn't make
sense. That's what I was responding to here.
>> What I am talking about is how the terms have developed
>> and what we should do with them now.
>> Unlike you, I am unconcerned by what you describe as "contradictory
>> terms". It takes a few seconds to explain what is an "admin qube", and
>> perhaps a klass called AdminVM, and a term @adminvm used in policies. If
>> you want to say these are contradictory terms, fine, but in use they
>> are not contradictory. That is, users can just rub along with them as
>> they are.
So if we have a policy like:
admin.vm.List * test-mon @anyvm allow target=@adminvm
You would need so say something like: "This allows the test-mon admin
qube to call the admin.vm.List qubes-rpc for any qubes and redirects it
to the admin qube, since Admin API calls are executed by it." Where the
first "admin qube" means "a qube that uses the Admin API" and the second
"admin qube" means "dom0(-equivalent)".
>> Very often in Qubes, we seem to be concerned with HOW things are done,
>> the plumbing, when users are concerned with the outcome. I find admin
>> qube a natural term to use, and the people I work with seem to be able
>> to use it also without confusion.
Yes, I think the terminology should also work to describe the
"plumbing". There is no clear user/dev split. Depending on what a users
wants to do and what experience they have, they will quickly come into
contact with the "plumbing". (And people messing with the Admin API are
certainly in the advanced user category.)
Similarly when writing QSBs the technical details are also relevant, so
there too we need terminology that also works when describing the
"plumbing".
>>> If we would just introduce a new term without that existing usage, I
>>> would agree that "admin qube" is a natural choice.
>
>> Agreed.
>
> I think I'm with unman on this one. I have an impression the term "admin
> qube" is already quite often confused as a qube that can do
> administrative actions via Admin API. So, adjusting this term may even
> reduce confusion.
Ok, we can of course actively drop the previous meaning. But that's a
bit different than my impression of unman's first email in this thread,
that didn't even mentioned the dom0(-equivalent) meaning that was the
original use of "AdminVM" (and since that was before "VM" -> " qube",
implicitly also "admin qube").
> But yes, it would in practice be the first instance where we break
> with direct translation VM -> qube, because I suppose AdminVM would
> (at least at the code level) still mean dom0.
I'm in general fine with intentionally changing the meaning, it's this
part that I dislike.
I think then we should seriously consider to also change the "AdminVM"
class and the "@adminvm" keyword (with some compatibility alias where
needed).
> In practice, the adjustment isn't that big, because non-dom0 admin
> qubes are still rare, so dom0 is both AdminVM and (the only) admin
> qube in most systems. Now we can "simply" clarify the distinction.
>
> Even in our glossary, "admin qube" is defined[1] as:
>
> A type of qube used for administering Qubes OS. In the default
> install, the only admin qube is dom0.
>
> Which already suggests there may be more of them.
Yes, as I acknowledged in my initial mail we also have got the "Admin
API user" meaning used in some cases, by now. So the problem is already
there anyway.
> Eventually dom0 could gain some new term, maybe something like "host qube"
> (borrowing from KVM, and already used in few places like qubes builder)?
>
> There is also one case where I have a vague idea for @adminvm policy
> term to reference "admin qube" - specifically for remote qube. A policy
> like "admin.something * some-local-admin-qube some-remote-qube allow
> target=@adminvm" could mean redirecting to a _remote_ admin qube that
> can manage that qube. This idea is very vague for now (together with
> anything related to managing remote qubes), and maybe completely wrong,
> but kinda related to evolution of the term AdminVM/Admin qube.
But in that case the call gets logically redirected to the remote dom0
("host qube" or on whatever we settle on). Sure internally it is
relayed/proxied, but not sure "@adminvm" is a good description assuming
we drop the dom0 meaning of "admin qube". "@hostqube" that automatically
means the remote one for remote VMs or an explicit "@remotehostqube" (or
"@remote:hostqube", ...) sounds more fitting. But yeah, since this is,
at this point, speculative, a bit hard to say what exactly will fit the
implementation later.
> Anyway, (kinda) changing meaning of an existing term is a risky thing
> to do. Personally, I think this one may clarify things in the long run,
> but maybe others have better ideas?
I might not have expressed this clearly before, so to be clear: I'm not
per-se objecting to change the meaning, but my concerns is that we then
properly need to consider the previous use and ideally clean up things.
> [1]
https://doc.qubes-os.org/en/latest/user/reference/glossary.html#term-admin-qube
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE3E8ezGzG3N1CTQ//kO9xfO/xly8FAmpXr08ACgkQkO9xfO/x
ly9VehAApszaQfbIFthJg05LYIssOyf45Y+oeCCk9XOtCUfMzFOK9KnMaGZqekN6
kFR2wtG3109Sg3W+oDkPDr5tvsK1/GJmBXFB2IohdEjiYe+yPRyoihwdkCSdOSCD
CSDBnbrIPUwTexTLAIxoW3q6cSILTtQhJGqdcyTeUUT8k8+Bn4pshnDunGhfSfCZ
HsiODOMAaNPjop5NrPWbFksAdqNacIpw0nSRxZDQ9RiRaNhsffuSUqDocDSQCiqx
3e+eyNOMkVcII1HwelOI/rB3oEJff5Qg0JqeqgyX3xfz3zhyxXZLk6OPilGW8utv
cEu4+Osh/fp/lvQkYrhLwXIgJRIxnCPIhIfrg36GDJY3o9RdW2RkeUuw4N12m7zA
AU/LNnn65+TEfdNExsByMGuOrL2R/qKYtSadaNmmfE2jnxx6rZPc3zv0JXFINVGE
8bO9thJsYle24sVeIgrkyb4eRZdy/+qMX/IELpg39Qnx1taaeGzTjnrQ6KO2v/mh
EST8hhVHeKBQFJk7fr50x9n9dDEu4L/uocQsIFkHYvuoHnaeNvOkr0ff2ZxGStrM
6FHwnIuy6HfnvbY0Keqak6HLa3X0ButwX7ZtODHAjb3q39kiLqccRQy7vCmzU7up
+/TlKjYDWoxKz4nps+K4nvUDIIn/8oggHGNq7no+886gb6OcoAY=
=UgTq
-----END PGP SIGNATURE-----