\chapter{Development}
[AI-generated note: This chapter should detail the development process of the proposed VDI solution. It should be divided into subchapters for each key component of the system.]

\section{Xorg}
[AI-generated note: This section should briefly discuss Xorg and why it was not chosen for the project, highlighting its limitations in the context of modern remote desktop solutions.]

\section{Wayland}
[AI-generated note: This section should explain the choice of Wayland as the display server protocol. It should discuss the advantages of Wayland over Xorg, such as better security and performance. It could also have a subsection on the initial choice of Weston and the final decision to use Gnome with its remote desktop feature.]

\subsection{Weston and Gnome Remote Desktop}
[AI-generated note: This subsection should detail the initial exploration of Weston as a Wayland compositor and the reasons for moving to Gnome's integrated remote desktop solution. It should discuss the features and readiness of Gnome's solution.]

\section{RDP}
[AI-generated note: This section should focus on the Remote Desktop Protocol (RDP). It should explain why RDP was chosen, its features, and how it is used in the project. It should also clarify that RDP sessions are not the same as VDI sessions.]

\section{Container as sessions}
[AI-generated note: This section should describe the core innovation of the project: using containers for VDI sessions.]

\subsection{Container Description}
[AI-generated note: This subsection should explain what containers are, their benefits (isolation, lightweight, etc.), and why they are a good fit for VDI sessions.]

\subsection{Structure}
[AI-generated note: This subsection should describe the architecture of the container-based session system. It should explain how containers are created, managed, and how they interact with the other components of the VDI solution.]

\subsection{Implementation}
[AI-generated note: This subsection should provide the implementation details of the container-based session system. It can include code snippets, diagrams, and configuration examples.]

\subsection{User Management and Authentication}
[AI-generated note: User management and authentication are critical components of the VDI system, ensuring that only authorized users can access the resources. The implementation of these features is based on the Pluggable Authentication Modules (PAM) framework, which provides a flexible and robust mechanism for integrating different authentication methods. By using PAM, the system can be easily configured to work with various authentication schemes, such as local passwords, LDAP, or Kerberos, without requiring any changes to the core application logic. This approach not only enhances security but also simplifies the administration of user accounts.]

\subsection{Dynamic Resource Management}
[AI-generated note: The VDI system incorporates a dynamic resource management mechanism that allows for the efficient allocation of computational resources to user sessions. This is achieved through a YAML configuration file, which defines the resource limits for each session, such as CPU and memory. The system leverages the innate capabilities of Podman, which uses the cgroup2 interface of the Linux kernel to enforce these limits. This approach enables fine-grained control over resource allocation, ensuring that each user session receives the necessary resources while preventing any single session from monopolizing the system. The use of a YAML file for configuration also provides a simple and intuitive way for administrators to manage resource allocation policies.]

