diff --git a/.gitignore b/.gitignore index b796a3e..59b81f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ website/public website/.hugo_build.lock website/resources/_gen +public/ diff --git a/README.md b/README.md index d41b54a..1737ccc 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ This section clarifies on terms and abbreviations used in specs and other docume - [*DPS*](specs/discoverable_partitions_specification.md) - Discovery Partition Specification - [*sysext*](specs/extension_image.md) – System Extension Image (type of DDI that is overlayed on top of `/usr/` and `/opt/` via overlayfs and can extend the underlying OS vendor resources in a composable, immutable fashion) -- [*UKI*](specs/unified_kernel_image.md) - Unified Kernel Images (UEFI boot stub + kernel + initrd + more) +- [*UKI*](specs/unified_kernel_image.md) – Unified Kernel Images (UEFI boot stub + kernel + initrd + more) - [*VMClock*](specs/vmclock.md) – Virtual Machine Clock (efficient time synchronisation for virtual machines) - [*VMGenID*](specs/vmgenid.md) – Virtual Machine Generation ID (mechanism for detecting VM rollback events) - [*VOA*](specs/file_hierarchy_for_the_verification_of_os_artifacts.md) – Verification of OS Artifacts diff --git a/specs/boot_loader_specification.md b/specs/boot_loader_specification.md index 8020ef0..a843852 100644 --- a/specs/boot_loader_specification.md +++ b/specs/boot_loader_specification.md @@ -12,8 +12,8 @@ aliases: # UAPI.1 The Boot Loader Specification -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | This document defines a set of file formats and naming conventions that allow diff --git a/specs/configuration_files_specification.md b/specs/configuration_files_specification.md index 7ca0eda..cb764e9 100644 --- a/specs/configuration_files_specification.md +++ b/specs/configuration_files_specification.md @@ -10,8 +10,8 @@ aliases: # UAPI.6 Configuration Files Specification -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | ## Introduction diff --git a/specs/discoverable_disk_image.md b/specs/discoverable_disk_image.md index d9e9caa..5e0633c 100644 --- a/specs/discoverable_disk_image.md +++ b/specs/discoverable_disk_image.md @@ -11,8 +11,8 @@ aliases: --- # UAPI.3 Discoverable Disk Images (DDI) -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | DDIs (Discoverable Disk Images) are self-describing file system images that follow the DPS ([Discoverable diff --git a/specs/discoverable_partitions_specification.md b/specs/discoverable_partitions_specification.md index 8593e03..35ddf3e 100644 --- a/specs/discoverable_partitions_specification.md +++ b/specs/discoverable_partitions_specification.md @@ -11,8 +11,8 @@ aliases: --- # UAPI.2 The Discoverable Partitions Specification (DPS) -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | _TL;DR: Let's automatically discover, mount and enable the root partition, diff --git a/specs/elf_dlopen_metadata.md b/specs/elf_dlopen_metadata.md index bd0708f..6ffdc12 100644 --- a/specs/elf_dlopen_metadata.md +++ b/specs/elf_dlopen_metadata.md @@ -12,8 +12,8 @@ aliases: # UAPI.12 `dlopen()` Metadata for ELF Files -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | ## Target Audience diff --git a/specs/extension_image.md b/specs/extension_image.md index 3b5e377..fc4cd25 100644 --- a/specs/extension_image.md +++ b/specs/extension_image.md @@ -11,8 +11,8 @@ aliases: --- # UAPI.4 Extension Images -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | Extension Images are DDIs ([Discoverable Disk Images](discoverable_disk_image.md)) that are @@ -207,39 +207,39 @@ incompatible host from loading it. Valid values: -|Architecture| -|------------| -|x86| -|x86-64| -|alpha| -|arc| -|arc-be| -|arm| -|arm-be| -|arm64| -|arm64-be| -|cris| -|ia64| -|loongarch64| -|m68k| -|mips| -|mips-le| -|mips64| -|mips64-le| -|parisc| -|parisc64| -|ppc| -|ppc-le| -|ppc64| -|ppc64-le| -|riscv32| -|riscv64| -|s390| -|s390x| -|sh| -|sh64| -|sparc64| -|sparc| -|tilegx| -|native| -|any| +| Architecture | +|--------------| +| x86 | +| x86-64 | +| alpha | +| arc | +| arc-be | +| arm | +| arm-be | +| arm64 | +| arm64-be | +| cris | +| ia64 | +| loongarch64 | +| m68k | +| mips | +| mips-le | +| mips64 | +| mips64-le | +| parisc | +| parisc64 | +| ppc | +| ppc-le | +| ppc64 | +| ppc64-le | +| riscv32 | +| riscv64 | +| s390 | +| s390x | +| sh | +| sh64 | +| sparc64 | +| sparc | +| tilegx | +| native | +| any | diff --git a/specs/file_hierarchy_for_the_verification_of_os_artifacts.md b/specs/file_hierarchy_for_the_verification_of_os_artifacts.md index fa87a9d..d35d830 100644 --- a/specs/file_hierarchy_for_the_verification_of_os_artifacts.md +++ b/specs/file_hierarchy_for_the_verification_of_os_artifacts.md @@ -12,8 +12,8 @@ aliases: # UAPI.11 File Hierarchy for the Verification of OS Artifacts (VOA) -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|------------------| | 0.1 | Work in progress | ## Motivation diff --git a/specs/linux_file_system_hierarchy.md b/specs/linux_file_system_hierarchy.md index c7a57a6..8bea2db 100644 --- a/specs/linux_file_system_hierarchy.md +++ b/specs/linux_file_system_hierarchy.md @@ -12,8 +12,8 @@ aliases: # UAPI.9 Linux File System Hierarchy -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|------------------| | 0.1 | Work in progress | ## Description diff --git a/specs/linux_tpm_pcr_registry.md b/specs/linux_tpm_pcr_registry.md index 4de6ad0..d7e9ad2 100644 --- a/specs/linux_tpm_pcr_registry.md +++ b/specs/linux_tpm_pcr_registry.md @@ -10,8 +10,8 @@ aliases: # 🔏 UAPI.7 Linux TPM PCR Registry 🗒️ -| Version | Changes | -|---------|---------| +| Version | Changes | +|---------|-----------------| | 1.0 | Initial Release | _TPM PCRs are a scarce resource, there are only 24 of them in typical standards compliant TPMs. @@ -73,12 +73,12 @@ In both cases it is important that data measured into the PCRs is carefully chos
PCR# |
- Used by | -From Location | -Measured Objects | -Log | -Use Reported By | +PCR# |
+ Used by | +From Location | +Measured Objects | +Log | +Use Reported By | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Offset | +Field | +Description | +
|---|---|---|
| 0x00 | +uint32_t magic |
+ Magic value 0x4b4c4356 (“VCLK”) |
+
| 0x04 | +uint32_t size |
+ Size of region containing this structure (typically a full page at + the granularity at which the hypervisor maps memory to the guest) | +
| 0x08 | +uint16_t version |
+ This standard defines version 1. Since the flags field
+ allows for extensions to the data structure without breaking backward
+ compatibility, it is not anticipated that the version field
+ will ever need to change. |
+
| 0x0a | +uint8_t counter_id |
+ The hardware counter used as the basis for clock readings. The
+ values of this field correspond to the
+ VIRTIO_RTC_COUNTER_xxx values:
+
|
+
| 0x0b | +uint8_t time_type |
+ Indicates the type of clock exposed through this interface. The
+ values of this field correspond to the VIRTIO_RTC_CLOCK_xxx
+ values, except that smearing of clocks is not supported as it is
+ antithetical to precision:
+
|
+
| 0x0c | +uint32_t seq_count |
+ This field is used to provide a sequence-based read/write lock for
+ the non-constant fields which follow. To perform an update, the device
+ will:
+
|
+
| 0x10 | +uint64_t disruption_marker |
+ This field is changed each time there may be a disruption to the
+ hardware counter referenced by counter_id, for example
+ through live migration to a new hypervisor host. |
+
| 0x18 | +uint64_t flags |
+ Feature flags (see below) | +
| 0x20 | +uint16_t pad |
+ Unused | +
| 0x22 | +uint8_t clock_status |
+ Synchronisation status of the clock (see below) | +
| 0x23 | +uint8_t leap_second_smearing_hint |
+ Smearing hint for guest OS (see below) | +
| 0x24 | +int16_t tai_offset_sec |
+ Signed offset from TAI to UTC at the reference time specified in
+ time_sec and time_frac_sec, in seconds. Valid
+ if the corresponding bit in the flags field is set. Implementations
+ SHOULD populate this field; the value at time of writing is 37. |
+
| 0x26 | +uint8_t leap_indicator |
+ Indicates the presence and direction of a leap second occurring in + the near future or recent past (see below) | +
| 0x27 | +uint8_t counter_period_shift |
+ Additional shift applied to all the
+ counter_period*_frac_sec fixed-point fields. |
+
| 0x28 | +uint64_t counter_value |
+ Value of the hardware counter at the time represented by
+ time_sec + time_frac_sec. |
+
| 0x30 | +uint64_t counter_period_frac_sec |
+ Period of a single counter tick, in units of 1 >> (64 +
+ counter_period_shift) |
+
| 0x38 | +uint64_t counter_period_esterror_rate_frac_sec |
+ Estimated ± error of counter_period_frac_sec in the
+ same units. |
+
| 0x40 | +uint64_t counter_period_maxerror_rate_frac_sec |
+ Maximum ± error of counter_period_frac_sec in the same
+ units. |
+
| 0x48 | +uint64_t time_sec |
+ Reference time point, seconds since epoch defined by
+ time_type field. |
+
| 0x50 | +uint64_t time_frac_sec |
+ Fractional part of reference time, in units of second / 2⁶⁴. | +
| 0x58 | +uint64_t time_esterror_nanosec |
+ Estimated ± error of the time given in time_sec +
+ time_frac_sec, in nanoseconds |
+
| 0x60 | +uint64_t time_maxerror_nanosec |
+ Maximum ± error of the time given in time_sec +
+ time_frac_sec, in nanoseconds |
+
| 0x64 | +uint64_t vm_generation_count |
+ A change in this field indicates that the guest has been cloned or + loaded from a snapshot (see below). | +
| 0x68 | +… | +The size of the memory region containing this structure is given in
+ the size field, which will typically be a full 4KiB page.
+ New fields may be added here, advertised by newly-defined bits in the
+ flags field, without changing the version
+ field. |
+