This is the multi-page printable view of this section. Click here to print.
Blog
- News
- Hardware Detection and Configuration in Ditana
- Announcing Ditana GNU/Linux - A New Era of Linux Customization and Security
- Releases
News
Hardware Detection and Configuration in Ditana
Ditana GNU/Linux distinguishes itself from other distributions by providing a clean, JSON-driven configuration approach and a modern installer written in Raku. We’re actively seeking developers and contributors who want to help shape Ditana’s future!
Hardware Detection in JSON
Instead of scattering detection logic across multiple scripts, Ditana manages everything in JSON files. Each entry describes a specific hardware or system feature, along with the Raku code that runs at install time. For example:
{
"name": "uefi",
"detect": "'/sys/firmware/efi'.IO.e",
"required-by-chroot": true
},
{
"name": "total-ram-gib",
"detect": "('/proc/meminfo'.IO.lines.grep(/MemTotal/).first.words[1] / 1024 / 1024).ceiling"
},
{
"name": "avx2-available",
"detect": "'/proc/cpuinfo'.IO.lines.first(*.contains('flags')).contains('avx2').so"
}
The detect
property contains Raku expressions that run at install time, making the logic straightforward and modular.
Advanced Configuration with settings.json
Beyond hardware detection, settings.json also handles user-configurable options like filesystems or kernel selections. Here’s an example entry for ZFS:
{
"name": "zfs-filesystem",
"dialog-name": "File System",
"short-description": "ZFS - Snapshots, Self-Healing Storage & RAID-Z Support",
"long-description": "ZFS: Supports atomic snapshots with a pre-configured snapshot solution instead of Timeshift. Designed for high data integrity with automatic self-healing. The installer will switch to the recommended Long-Term Support Kernel automatically, because ZFS requires DKMS modules (see Expert Settings → Kernel Selection menu available for selection later).",
"arch-packages": [
"zfs-utils"
],
"spdx-identifiers": "CDDL",
"required-by-chroot": true,
"available": "`install-standard-lts-kernel OR install-standard-stable-kernel OR install-zen-kernel`",
"default-value": "`install-standard-lts-kernel`"
}
Tristate
Ditana utilizes a custom Tristate class—capable of True, False, and Any (undefined)—to manage values that are unknown or not yet defined. This flexibility is crucial for Ditana’s highly adaptable installer, which responds to both hardware attributes (like BIOS or UEFI, or drivers that may restrict kernel choice) and a wide range of user preferences.
Tristate Logic Explained Through Its Unit Test
In Raku, you can embed unit tests directly in the class, and they’ll run at compile time without requiring a dedicated test framework. For example:
CHECK
my $t = Tristate.new(True);
my $f = Tristate.new(False);
my $u = Tristate.new(Any);
my @tests = (
[$f AND $u, 'False', 'False and Any'],
[$u AND $f, 'False', 'Any and False'],
[$t AND $u, '(Any)', 'True and Any'],
[$u AND $t, '(Any)', 'Any and True'],
[$t OR $u, 'True', 'True or Any'],
[$u OR $t, 'True', 'Any or True'],
[$f OR $u, '(Any)', 'False or Any'],
[$u OR $f, '(Any)', 'Any or False'],
[NOT $u, '(Any)', 'not Any'],
[NOT ($u OR $u OR $t or $u), 'False', 'not (Any or Any or True or Any)']
);
for @tests -> [$result, $expected, $description] {
unless $result.Str eq $expected {
die "Test '$description' failed:\n Expected: $expected\n Got: $result.Str()";
}
}
This demonstrates how Tristate gracefully handles undefined conditions.
Why This is Relevant for Ditana
Ditana’s flexible configuration possibilities require a way to resolve dependencies between settings. For example, with ZFS, the right boot manager (GRUB or ZFSBootMenu), kernel, and optional encryption settings all need to align. Things can get especially complex if you require special drivers or rely on a legacy BIOS. Thanks to this JSON-based configuration and the Tristate logic, Ditana ensures that any combination of user choices leads to a valid, bootable system. If something isn’t available, the installer won’t let you pick it—and it will explain why.
CPU Vulnerability Mitigation Options
In line with Ditana’s design philosophy, our distribution enables CPU vulnerability mitigations in High Security Mode by default. During installation, Ditana’s installer allows you to configure each detected CPU vulnerability individually, offering the option to maintain these enhanced security settings or revert to the default kernel configurations.
Default Kernel Settings vs. Ditana’s Mitigations
The default kernel settings provided by the Linux kernel developers aim to balance security and performance. However, certain security vulnerabilities remain if you rely solely on these defaults. Ditana prioritises robust security by enabling mitigations that address these vulnerabilities via the officially documented kernel parameters. For most users, the performance implications of Ditana’s mitigations are negligible, while the security benefits are substantial.
Customization and Flexibility
We understand that some users may prefer to optimize their systems for maximum performance, even if it means accepting potential security trade-offs. Ditana’s installer framework therefore empowers you to adjust CPU vulnerability mitigation settings according to your preferences. Comprehensive explanations for each mitigation option are available through the installer’s Help button and detailed in the documentation.
Hardware-Specific Configuration
Ditana’s hardware detection system ensures that mitigation options are only presented for the specific vulnerabilities your CPU actually faces—and only for those where the Linux kernel itself does not use the maximum possible mitigation by default. For more details on which vulnerabilities are detected and which are not, see our documentation.
By choosing Ditana’s default mitigation settings, you ensure that your system maintains a high level of security against known CPU vulnerabilities. We recommend keeping these settings enabled unless you have specific requirements that justify loosening them for performance considerations.
{
"name": "is-spectre-v2-vulnerable",
"detect": "given '/sys/devices/system/cpu/vulnerabilities/spectre_v2'.IO { .e && .slurp.chomp ne 'Not affected' }"
}
Example from settings.json
to detect whether your CPU is vulnerable to Spectre V2.
Above: A preview of Ditana’s installation summary dialogue, showing the High Security Mitigations that would be configured in this example. You can decide to adopt Ditana’s mitigations or stick to the Linux kernel defaults.
Dynamic NVIDIA Driver Detection
When it comes to NVIDIA graphics cards, Ditana employs a novel approach to identify whether a legacy driver is needed or if the current proprietary driver is more appropriate. During installation, the installer downloads and parses the official NVIDIA legacy GPU page at https://www.nvidia.com/en-us/drivers/unix/legacy-gpu. If this page is unavailable or the parser requires updates (we run tests to validate the downloaded data), a cached and filtered version from our repository is used instead. By comparing the detected GPU against the data in this page, the installer can determine if the user’s GPU necessitates a legacy driver. In cases where the required driver version is older than 470, the open-source Nouveau driver is recommended.
The default installation always uses the proprietary DKMS version of the NVIDIA driver, and the user can override the driver selection in the installer, for example to use the NVIDIA open-source driver. However, impossible combinations are automatically disallowed. Ultimately, this system ensures that each NVIDIA card is matched with the safest and most compatible option available, while still preserving user choice where it makes sense.
A Raku-Based Installer
The Ditana installer is written in Raku, combining the succinct feel of shell scripting with modern error handling and concurrency features. Together with JSON-based detection and user-configurable settings, this approach keeps the code organized yet powerful—proving that advanced installation logic doesn’t require massive shell scripts.
Give Ditana a Spin!
If you’re looking for an Arch-based distro that dares to think differently, Ditana might be your new best friend. From hardware detection to advanced filesystem setups, it even offers a local or cloud-based AI assistant that can execute commands after confirmation (computer use). For ZFS, an optional auto-snapshot mechanism for easier maintenance is provided. Overall, currently there are 21 packages we developed for Ditana in its dedicated Arch repository (either mandatory or optional).
And if you’re interested in shaping Ditana’s future, we’d love your help! Whether you’re a developer, documentation enthusiast, or just passionate about Linux, your contribution will be greatly appreciated. The project is split into multiple Arch packages, allowing you to pick the components you want. Plus, we have thorough documentation (both inside the installer and on the website) so you’ll always understand the why behind each setting.
Questions or Feedback? You are welcome to drop a comment below! Ditana is constantly evolving, and we’re eager to hear your thoughts on improving our JSON-based detection, Tristate logic, or Raku-driven installer. We’re actively seeking collaborators who share our vision—come join us on this journey!
Join the conversation on our dedicated Ditana Discord Server, where we discuss features, share updates, and brainstorm ideas together.
Announcing Ditana GNU/Linux - A New Era of Linux Customization and Security
Today marks an exciting milestone in the world of Linux distributions as we proudly announce the launch of Ditana GNU/Linux. Born from a vision to bridge the gap between user-friendly systems and highly customizable environments, Ditana aims to empower Linux enthusiasts with unprecedented control over their computing experience while maintaining a strong focus on security and performance.
The Genesis of Ditana
As a long-time Linux user and developer, I’ve often found myself caught between the simplicity of user-friendly distributions and the flexibility of more advanced systems. This dilemma sparked the idea for Ditana - a distribution that offers the best of both worlds, with an added emphasis on security and system optimization.
The name “Ditana” draws inspiration from Ammi-Ditana, a king of ancient Babylon known for his long and peaceful reign, during which he focused on enriching and expanding the temples of his kingdom. This historical connection reflects our philosophy in several ways:
-
Stability and Longevity: Just as Ammi-Ditana’s reign lasted for over four decades, we aim to create a Linux distribution that provides long-term stability and support.
-
Continuous Improvement: Ammi-Ditana’s focus on enriching existing structures mirrors our commitment to building upon the solid foundation of Arch Linux, continuously improving and optimizing the user experience.
-
Cultural Heritage and Innovation: Like the ancient king who balanced tradition with progress, Ditana GNU/Linux combines the time-tested principles of Linux with modern innovations in security and customization.
-
Detailed Documentation: Ammi-Ditana was known for his literary works, which aligns with our emphasis on comprehensive documentation and transparency in system operations.
Our logo, inspired by the cuneiform tablet associated with Ammi-Ditana, symbolizes the blend of ancient wisdom and modern technology that Ditana GNU/Linux represents.
What Sets Ditana Apart?
-
Unified ISO: One image, endless possibilities. Choose between a headless server or a full desktop environment during installation.
-
Guided Customization: Our unique installer walks you through complex decisions, explaining each option in detail, including security implications.
-
Optimized XFCE Desktop: For those choosing a GUI, we offer a carefully curated XFCE environment, pre-configured for both aesthetics and functionality.
-
Modular Design: We’ve packaged various aspects of Ditana as separate Arch packages, allowing for easy updates and customizations.
-
Hardware-Aware: Ditana adapts to your system, offering optimized settings for various hardware configurations, including NVIDIA GPUs and SSDs.
-
Transparency: We believe in demystifying Linux. Every decision in Ditana is documented and explained, empowering users to understand their system deeply.
-
Security-Focused: From kernel parameter optimizations to pre-installed firewalls, Ditana prioritizes your system’s security without sacrificing usability.
-
Performance Tuning: Intelligent optimizations like automatic TRIM scheduling for SSDs and smart RAM management ensure your system runs at peak performance.
Security and Performance: Our Core Principles
We believe that security and performance should not be afterthoughts. That’s why we’ve integrated numerous features to enhance both:
- Advanced Security Options: During installation, you can choose to enable features like system partition encryption, firewall pre-configuration, and kernel hardening options.
- Intelligent Performance Tweaks: From optimizing mirror selection for faster package downloads to smart SSD management, Ditana works behind the scenes to keep your system running smoothly.
- Transparent Choices: We provide clear explanations for security and performance options, allowing you to make informed decisions about your system’s configuration.
Join the Ditana Community
Ditana is more than just a distribution; it’s a community of like-minded enthusiasts. We invite you to join us on this exciting journey:
- Contribute: Visit our GitHub repository to contribute code, report issues, or suggest features.
- Connect: Join our Discord server to discuss ideas, get support, and connect with other Ditana users.
- Spread the Word: If you believe in our vision, help us reach more Linux enthusiasts by sharing Ditana with your network.
Looking Ahead
This launch is just the beginning. We have ambitious plans for Ditana, including expanded hardware support, additional desktop environments, and even more customization and security options. Your feedback and contributions will be crucial in shaping the future of Ditana.
We’re thrilled to embark on this journey with you. Whether you’re a seasoned Linux veteran looking for a system you can truly call your own, or a curious newcomer wanting to dive deeper into the world of Linux, Ditana is here to provide you with a unique, tailored, and secure Linux experience.
Welcome to the Ditana community. Let’s redefine what it means to truly own your operating system.
Ready to get started? Download Ditana GNU/Linux and join us in this new era of Linux customization and security!
Releases
Release of Ditana GNU/Linux 0.9-Beta
We are excited to announce the release of Ditana GNU/Linux 0.9-Beta - a distribution aimed at bridging the gap between user-friendliness and advanced customization, while prioritizing security and system performance.
What is Ditana GNU/Linux?
Ditana is an Arch-based Linux distribution targeting educated enthusiasts interested in optimizing their workflows, exploring Linux itself, and maintaining a secure computing environment. With a single ISO image, Ditana offers the choice between desktop and headless installations.
Key Features:
-
Flexible Installer: A series of dialogs guides you through the installation process, considering complex dependencies based on your hardware and preferences.
-
Extensive Customization: From selecting kernel parameters to configuring the desktop environment - Ditana gives you control over your system.
-
XFCE Desktop Environment: For desktop installations, Ditana provides an optimized XFCE environment with pre-installed enhancements like the “Docklike Taskbar”.
-
Modular Structure: Many aspects of Ditana have been separated into individual Arch packages, allowing for easy maintenance and customization.
-
Comprehensive Documentation: Each step is explained through detailed help pages, enabling you to make informed decisions.
-
Hardware Optimization: Ditana automatically detects your hardware and adapts accordingly, including support for NVIDIA graphics cards and automatic font DPI settings.
-
Enhanced Security: Ditana comes with pre-configured security features such as a firewall, system partition encryption options, and kernel settings that prioritize security without compromising performance.
-
Performance Tuning: Intelligent system optimizations like SSD TRIM scheduling, smart RAM usage, and fastest mirror selection ensure your system runs at peak performance.
Why Ditana?
Ditana fills the gap between user-friendly distributions and highly customizable systems. It offers you the opportunity to dive deep into your system’s configuration without dealing with the complexities of a fully manual installation. With Ditana, you get:
- A system optimized for performance out of the box
- Advanced security features with clear explanations
- The flexibility to customize every aspect of your system
- Transparent decision-making processes during installation
Getting Started
- Download the ISO image from our official website.
- Create a bootable USB drive with the image.
- Boot your computer from the USB drive and follow the installation assistant.
Community and Support
Ditana is an open-source project, and we warmly invite you to get involved! Visit our GitHub repository to contribute to the project or report issues.
For support and discussions, join our Discord server.
We look forward to seeing how you use and customize Ditana GNU/Linux. Enjoy discovering, optimizing, and securing your new Linux system!