From 19f4685ae61880681399259b0a824ab22901fb15 Mon Sep 17 00:00:00 2001 From: parulin <161326115+parulin@users.noreply.github.com> Date: Sat, 26 Jul 2025 11:19:46 -0400 Subject: [PATCH] Create a real Sphinx glossary --- developer/system/architecture.rst | 2 +- introduction/getting-started.rst | 6 +- introduction/intro.rst | 10 +- .../disposable-customization.rst | 4 +- user/advanced-topics/standalones-and-hvms.rst | 8 +- .../installation-guide.rst | 2 +- .../upgrade/4_0.rst | 2 +- user/how-to-guides/how-to-copy-from-dom0.rst | 2 +- .../how-to-guides/how-to-install-software.rst | 4 +- user/how-to-guides/how-to-update.rst | 8 +- user/how-to-guides/how-to-use-disposables.rst | 8 +- user/reference/glossary.rst | 214 +++++++----------- user/templates/templates.rst | 16 +- 13 files changed, 114 insertions(+), 172 deletions(-) diff --git a/developer/system/architecture.rst b/developer/system/architecture.rst index 6ba7a8aa..fc6c14c4 100644 --- a/developer/system/architecture.rst +++ b/developer/system/architecture.rst @@ -7,7 +7,7 @@ Qubes implements a security-by-compartmentalization approach. To do this, Qubes |qubes-schema-v2.png| -Qubes lets the user define many secure compartments known as :ref:`qubes `, which are implemented as lightweight :ref:`virtual machines (VMs) `. For example, the user can have “personal,” “work,” “shopping,” “bank,” and “random” app qubes and can use the applications within those qubes just as if they were executing on the local machine. At the same time, however, these applications are well isolated from each other. Qubes also supports secure copy-and-paste and file sharing between qubes, of course. +Qubes lets the user define many secure compartments known as :term:`qubes `, which are implemented as lightweight :term:`virtual machines (VMs) `. For example, the user can have “personal,” “work,” “shopping,” “bank,” and “random” app qubes and can use the applications within those qubes just as if they were executing on the local machine. At the same time, however, these applications are well isolated from each other. Qubes also supports secure copy-and-paste and file sharing between qubes, of course. Key architecture features ------------------------- diff --git a/introduction/getting-started.rst b/introduction/getting-started.rst index 86cd2284..905a5805 100644 --- a/introduction/getting-started.rst +++ b/introduction/getting-started.rst @@ -9,13 +9,13 @@ The Basics ---------- -Qubes OS is an operating system built out of securely-isolated compartments, or :ref:`qubes `. You can have a work qube, a personal qube, a banking qube, a web browsing qube, a standalone Windows qube and so on. You can have as many qubes as you want! Most of the time, you’ll be using an :ref:`app qube `, a qube for running software programs like web browsers, email clients, and word processors. Each app qube is based on another type of qube called a :ref:`template `. The same template can be a base for various qubes. Importantly, a qube cannot modify its template in any way. This means that, if a qube is ever compromised, its template and any other qubes based on that template will remain safe. This is what makes Qubes OS so secure. Even if an attack is successful, the damage is limited to a single qube. +Qubes OS is an operating system built out of securely-isolated compartments, or :term:`qubes `. You can have a work qube, a personal qube, a banking qube, a web browsing qube, a standalone Windows qube and so on. You can have as many qubes as you want! Most of the time, you’ll be using an :term:`app qube`, a qube for running software programs like web browsers, email clients, and word processors. Each app qube is based on another type of qube called a :term:`template`. The same template can be a base for various qubes. Importantly, a qube cannot modify its template in any way. This means that, if a qube is ever compromised, its template and any other qubes based on that template will remain safe. This is what makes Qubes OS so secure. Even if an attack is successful, the damage is limited to a single qube. Suppose you want to use your favorite web browser in several different qubes. You’d install the web browser in a template, then every qube based on that template would be able to run the web browser software (while still being forbidden from modifying the template and any other qubes). This way, you only have to install the web browser a single time, and updating the template updates all the qubes based on it. This elegant design saves time and space while enhancing security. -There are also some “helper” qubes in your system. Each qube that connects to the Internet does so through a network-providing :ref:`service qube `. If you need to access USB devices, another service qube will do that. There’s also a :ref:`management qube ` that automatically handles a lot of background housekeeping. For the most part, you won’t have to worry about it, but it’s nice to know that it’s there. As with app qubes, service qubes and management qubes are also based on templates. Templates are usually named after their operating system (often a `Linux distribution `__) and corresponding version number. There are many ready-to-use :doc:`templates ` to choose from, and you can download and have as many as you like. +There are also some “helper” qubes in your system. Each qube that connects to the Internet does so through a network-providing :term:`service qube`. If you need to access USB devices, another service qube will do that. There’s also a :term:`management qube` that automatically handles a lot of background housekeeping. For the most part, you won’t have to worry about it, but it’s nice to know that it’s there. As with app qubes, service qubes and management qubes are also based on templates. Templates are usually named after their operating system (often a `Linux distribution `__) and corresponding version number. There are many ready-to-use :doc:`templates ` to choose from, and you can download and have as many as you like. -Last but not least, there’s a very special :ref:`admin qube ` used to administer your entire system. There’s only one admin qube, and it’s called :ref:`dom0 `. You can think of it as the master qube, holding ultimate power over everything that happens in Qubes OS. Dom0 is the most trusted one of all qubes. If dom0 were ever to be compromised, it would be “game over”- an effective compromise of the entire system. That’s why everything in Qubes OS is specifically designed to protect dom0 and ensure that doesn’t happen. Due to its overarching importance, dom0 has no network connectivity and is used only for running the `desktop environment `__ and `window manager `__. Dom0 should never be used for anything else. In particular, you should never run user applications in dom0. (That’s what your app qubes are for!) In short, be very careful when interacting with dom0. +Last but not least, there’s a very special :term:`admin qube` used to administer your entire system. There’s only one admin qube, and it’s called :term:`dom0`. You can think of it as the master qube, holding ultimate power over everything that happens in Qubes OS. Dom0 is the most trusted one of all qubes. If dom0 were ever to be compromised, it would be “game over”- an effective compromise of the entire system. That’s why everything in Qubes OS is specifically designed to protect dom0 and ensure that doesn’t happen. Due to its overarching importance, dom0 has no network connectivity and is used only for running the `desktop environment `__ and `window manager `__. Dom0 should never be used for anything else. In particular, you should never run user applications in dom0. (That’s what your app qubes are for!) In short, be very careful when interacting with dom0. Color & Security ^^^^^^^^^^^^^^^^ diff --git a/introduction/intro.rst b/introduction/intro.rst index adbf4f26..12575be3 100644 --- a/introduction/intro.rst +++ b/introduction/intro.rst @@ -6,10 +6,10 @@ What is Qubes OS? ----------------- Qubes OS is a free and open-source, security-oriented operating system for -single-user desktop computing. Qubes OS `leverages Xen-based virtualization `__ to allow for the creation and management of isolated compartments called :ref:`qubes `. +single-user desktop computing. Qubes OS `leverages Xen-based virtualization `__ to allow for the creation and management of isolated compartments called :term:`qubes `. -These qubes, which are implemented as :ref:`virtual machines (VMs)`, have specific: +These qubes, which are implemented as :term:`virtual machines (VMs) `, have specific: - **Purposes:** with a predefined set of one or many isolated applications, for personal or professional projects, to manage the @@ -39,7 +39,7 @@ Features - **Strong isolation** Isolate different pieces of software as if they were installed on separate physical machines using advanced virtualization techniques. -- **Template system** Use :ref:`app qubes ` to +- **Template system** Use :term:`app qubes ` to share a root file system without sacrificing security using the innovative :doc:`Template system `. @@ -189,7 +189,7 @@ presentation. - If you’re a current or potential Qubes user, you may want to check out the :doc:`documentation ` and the :ref:`user FAQ `. -- If you’re a developer, there’s dedicated :ref:`developer documentation ` and a :ref:`developer FAQ ` just for you. -- Ready to give Qubes a try? Head on over to the `downloads page `__, and read the :doc:`installation guide `. +- If you’re a developer, there’s dedicated :ref:`index:Developer Documentation` and a :ref:`developer FAQ ` just for you. +- Ready to give Qubes a try? Head on over to the `downloads page `__, and read the :ref:`Installation guide`. - Need help, or just want to join the conversation? Learn more about :doc:`help, support, the mailing lists, and the forum `. diff --git a/user/advanced-topics/disposable-customization.rst b/user/advanced-topics/disposable-customization.rst index f3559700..548b67d8 100644 --- a/user/advanced-topics/disposable-customization.rst +++ b/user/advanced-topics/disposable-customization.rst @@ -10,7 +10,7 @@ Introduction ------------ -A :doc:`disposable ` can be based on any :ref:`app qube `. You can also choose to use different :ref:`disposable templates ` for different disposables. To prepare an app qube to be a disposable template, you need to set the ``template_for_dispvms`` property: +A :doc:`disposable ` can be based on any :term:`app qube`. You can also choose to use different :term:`disposable templates ` for different disposables. To prepare an app qube to be a disposable template, you need to set the ``template_for_dispvms`` property: .. code:: bash @@ -89,7 +89,7 @@ Using named disposables for service qubes ----------------------------------------- -You can use a :ref:`named disposable ` for service qubes (such as those with the ``sys-*`` naming scheme) as long as they are stateless. For example, a ``sys-net`` using DHCP or ``sys-usb`` will work. In most cases ``sys-firewall`` will also work, even if you have configured app qube firewall rules. The only exception is if you require something like VM to VM communication and have manually edited ``iptables`` or other items directly inside the firewall app qube. +You can use a :term:`named disposable` for service qubes (such as those with the ``sys-*`` naming scheme) as long as they are stateless. For example, a ``sys-net`` using DHCP or ``sys-usb`` will work. In most cases ``sys-firewall`` will also work, even if you have configured app qube firewall rules. The only exception is if you require something like VM to VM communication and have manually edited ``iptables`` or other items directly inside the firewall app qube. To create one that has no PCI devices attached, such as for ``sys-firewall``: diff --git a/user/advanced-topics/standalones-and-hvms.rst b/user/advanced-topics/standalones-and-hvms.rst index e79c7578..d785e454 100644 --- a/user/advanced-topics/standalones-and-hvms.rst +++ b/user/advanced-topics/standalones-and-hvms.rst @@ -6,7 +6,7 @@ Standalones and HVMs This page is intended for advanced users. -A :ref:`standalone ` is a type of qube that is created by cloning a :ref:`template `. Unlike templates, however, standalones do not supply their root filesystems to other qubes. Examples of situations in which standalones can be useful include: +A :term:`standalone` is a type of qube that is created by cloning a :term:`template`. Unlike templates, however, standalones do not supply their root filesystems to other qubes. Examples of situations in which standalones can be useful include: - Qubes used for development (dev environments often require a lot of specific packages and tools) @@ -14,7 +14,7 @@ A :ref:`standalone ` is a type of qube that -Meanwhile, a :ref:`Hardware-assisted Virtual Machine (HVM) `, also known as a “Fully-Virtualized Virtual Machine,” utilizes the virtualization extensions of the host CPU. These are typically contrasted with Paravirtualized (PV) VMs. +Meanwhile, a :term:`Hardware-assisted Virtual Machine (HVM) `, also known as a “Fully-Virtualized Virtual Machine,” utilizes the virtualization extensions of the host CPU. These are typically contrasted with Paravirtualized (PV) VMs. HVMs allow you to create qubes based on any OS for which you have an installation ISO, so you can easily have qubes running Windows, ``*BSD``, or any Linux distribution. You can also use HVMs to run “live” distros. @@ -86,7 +86,7 @@ Command line ^^^^^^^^^^^^ -Qubes are template-based (i.e., :ref:`app qubes ` by default, so you must set the ``--class StandaloneVM`` option to create a standalone. The name and label color used below are for illustration purposes. +Qubes are template-based (i.e., :term:`app qubes ` by default, so you must set the ``--class StandaloneVM`` option to create a standalone. The name and label color used below are for illustration purposes. .. code:: bash @@ -148,7 +148,7 @@ Just like standard app qubes, an HVM gets a fixed IP addresses centrally assigne A generic HVM such as a standard Windows or Ubuntu installation, however, has no Qubes agent scripts running inside it initially and thus requires manual configuration of networking so that it matches the values assigned by Qubes. -Even though we do have a small DHCP server that runs inside the HVM’s untrusted stub domain to make the manual network configuration unnecessary for many qubes, this won’t work for most modern Linux distributions, which contain Xen networking PV drivers (but not Qubes tools), which bypass the stub-domain networking. (Their net frontends connect directly to the net backend in the :ref:`net qube `.) In this instance, our DHCP server is not useful. +Even though we do have a small DHCP server that runs inside the HVM’s untrusted stub domain to make the manual network configuration unnecessary for many qubes, this won’t work for most modern Linux distributions, which contain Xen networking PV drivers (but not Qubes tools), which bypass the stub-domain networking. (Their net frontends connect directly to the net backend in the :term:`net qube `.) In this instance, our DHCP server is not useful. In order to manually configure networking in a qube, one should first find out the IP/netmask/gateway assigned to the particular qube by Qubes. This can be seen, e.g., in the Qube Manager in the qube’s properties: diff --git a/user/downloading-installing-upgrading/installation-guide.rst b/user/downloading-installing-upgrading/installation-guide.rst index c3b6061a..98aeb611 100644 --- a/user/downloading-installing-upgrading/installation-guide.rst +++ b/user/downloading-installing-upgrading/installation-guide.rst @@ -262,7 +262,7 @@ Let’s briefly go over the options: - **Templates Configuration:** Here you can decide which :doc:`templates ` you want to have installed, and which will be the default template. -- **Create default system qubes:** These are the core components of the system, required for things like internet access. You can opt to have some created as :ref:`disposables `. +- **Create default system qubes:** These are the core components of the system, required for things like internet access. You can opt to have some created as :term:`disposables `. - **Create default application qubes:** These are how you compartmentalize your digital life. There’s nothing special about the ones the installer creates. They’re just suggestions that apply to most people. If you decide you don’t want them, you can always delete them later, and you can always create your own. diff --git a/user/downloading-installing-upgrading/upgrade/4_0.rst b/user/downloading-installing-upgrading/upgrade/4_0.rst index c2c5f0af..6657ae91 100644 --- a/user/downloading-installing-upgrading/upgrade/4_0.rst +++ b/user/downloading-installing-upgrading/upgrade/4_0.rst @@ -73,7 +73,7 @@ Restore from your backup 4. Go to **Qubes menu -> System Tools -> Qubes Manager** to start it. -5. Follow the **Restoring from a Backup** section in the :doc:`Backup, Restoration, and Migration ` guide. We recommend that you restore only your :ref:`app qubes ` and :ref:`standalones ` from R3.2. Using :doc:`templates ` and :ref:`service qubes ` from R3.2 is not fully supported (see `#3514 `__). Instead, we recommend using the templates that were created specifically for R4.0, which you can :doc:`customize ` according to your needs. For the template OS versions supported in R4.0, see :ref:`supported releases `. If the restore tool complains about missing templates, you can select the option to restore the app qubes anyway, then change them afterward to use one of the default R4.0 templates. +5. Follow the **Restoring from a Backup** section in the :doc:`Backup, Restoration, and Migration ` guide. We recommend that you restore only your :term:`app qubes ` and :term:`standalones ` from R3.2. Using :doc:`templates ` and :term:`service qubes ` from R3.2 is not fully supported (see `#3514 `__). Instead, we recommend using the templates that were created specifically for R4.0, which you can :doc:`customize ` according to your needs. For the template OS versions supported in R4.0, see :ref:`supported releases `. If the restore tool complains about missing templates, you can select the option to restore the app qubes anyway, then change them afterward to use one of the default R4.0 templates. diff --git a/user/how-to-guides/how-to-copy-from-dom0.rst b/user/how-to-guides/how-to-copy-from-dom0.rst index fcf15e80..bf54d9e3 100644 --- a/user/how-to-guides/how-to-copy-from-dom0.rst +++ b/user/how-to-guides/how-to-copy-from-dom0.rst @@ -3,7 +3,7 @@ How to copy from dom0 ===================== -This page covers copying files and clipboard text between :ref:`dom0 ` and :ref:`domUs `. Since dom0 is special, the processes are different from :doc:`copying and pasting text between qubes ` and :doc:`copying and moving files between qubes `. +This page covers copying files and clipboard text between :term:`dom0` and :term:`domUs `. Since dom0 is special, the processes are different from :doc:`copying and pasting text between qubes ` and :doc:`copying and moving files between qubes `. Copying *from* dom0 ------------------- diff --git a/user/how-to-guides/how-to-install-software.rst b/user/how-to-guides/how-to-install-software.rst index cb41b3e0..1a77da85 100644 --- a/user/how-to-guides/how-to-install-software.rst +++ b/user/how-to-guides/how-to-install-software.rst @@ -3,7 +3,7 @@ How to install software ======================= -When you wish to install software in Qubes OS, you should generally install it in a :ref:`template `. For installing templates themselves, see :ref:`how to install a template `. Advanced users may also be interested in learning how to install software in :doc:`standalones ` and :doc:`dom0 `. +When you wish to install software in Qubes OS, you should generally install it in a :term:`template`. For installing templates themselves, see :ref:`how to install a template `. Advanced users may also be interested in learning how to install software in :doc:`standalones ` and :doc:`dom0 `. Qubes OS is effectively a “meta” operating system (OS) that can run almost any arbitrary OS inside of itself. For example, the way software is normally installed in a Linux distribution (“distro”) is quite different from the way software is normally installed in Windows. This isn’t up to Qubes. Qubes is just the framework in which you’re running these other OSes. Therefore, if you want to install software in a Linux template, for example, you should do so in whatever way is normal for that Linux distro. Most Linux software is distributed via `packages `__, which are stored in `software repositories `__ (“repos”). `Package managers `__ handle downloading, installing, updating, and removing packages. (Again, none of this is Qubes-specific.) If you’re not familiar with how software is normally installed in Linux distros via package managers or the software you want doesn’t seem to be available in your distro’s repos (or you’re in another situation not covered on this page), please read this `community guide to installing software in Qubes `__. @@ -185,7 +185,7 @@ Standalones ^^^^^^^^^^^ -The process for installing and updating software in :ref:`standalones ` is the same as described above for templates, except no qubes are based on standalones, so there are no other qubes to restart. +The process for installing and updating software in :term:`standalones ` is the same as described above for templates, except no qubes are based on standalones, so there are no other qubes to restart. RPMFusion for Fedora templates ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/user/how-to-guides/how-to-update.rst b/user/how-to-guides/how-to-update.rst index 2deed43b..8b48ee33 100644 --- a/user/how-to-guides/how-to-update.rst +++ b/user/how-to-guides/how-to-update.rst @@ -9,13 +9,13 @@ It is important to keep your Qubes OS system up-to-date to ensure you have the l Fully updating your Qubes OS system means updating: -- :ref:`dom0 ` +- :term:`dom0` -- :ref:`templates ` +- :term:`templates