# Overview

X(cross) Development System (XDS) is set of tools that provides
multi-platform cross development with
[near-zero](https://en.wikipedia.org/wiki/Zero_Install)
installation.

This guide is available in two forms: the online version and a PDF
version:

- Online: [http://docs.automotivelinux.org/docs/en/master/devguides/#xcross-development-system-user's-guide](../../../#xcross-development-system-user's-guide)

- PDF: [http://iot.bzh/download/public/XDS/docs/XDS_UsersGuide.pdf](http://iot.bzh/download/public/XDS/docs/XDS_UsersGuide.pdf)

XDS has two goals:

1. Provide a multi-platform, cross development
tool with near-zero installation.

2. Keep application source files local to the user's machine, which
   makes XDS compatible with existing IT policies
   (e.g. corporate backup or SCM), and lets users continue to work
   using their favorite editors all while keeping performance during
   editing and browsing activities.

The following illustration shows XDS as two functional blocks:
the client part and the server part.

The client part consists of several tools some essential and some
required.
The client part must have `xds-agent` and can optionally have `xds-cli`
and `xds-gdb`.
The client part runs on the user's machine (Development Host).

The server part (`xds-server`) can run anywhere in a container,
which includes a standalone machine, a server machine connected
through a local network, or a server machine connected through the Cloud.

![](./pictures/xds-block-diagram.png){:: style="width:98%;"}

<!-- pagebreak -->

The client part is portable and can run on the following platforms:

- Linux
- Windows
- MacOS

The following figure shows the three supported configurations for the client part:

- standalone (i.e. local)
- On-Premise, which uses a local network
- [Software as a Service](https://en.wikipedia.org/wiki/Software_as_a_service)
  (SaaS), which is Cloud-based

![](./pictures/xds-conf.png){:: style="width:98%;"}