Endless OS is an operating system designed to fulfill the demands of underserved users in the developing world. For many of our users, Endless will be the first computer they will ever own. While developing the OS, ground research informed every choice we made in the design. Our research led us to the conclusion that extreme simplicity is key, and that mantra has become the basis of our design ethos.
Most of our users live in places where access to information is restricted, and computers are prohibitively expensive. The technology industry rarely considers new solutions to address this market’s needs. Imagine designing a music player for someone who doesn’t know that a right-pointing triangle means Play, nor know what a ‘playlist’ is. Perhaps the only music-playing equipment that person has ever owned is a radio. Or nothing at all.
We aim to solve these challenges throughout Endless OS.
Not your typical Linux distribution. We don’t use rpm, apt, or any other packaging system. We use a read-only root file system managed by OSTree with application bundles overlaid on top. We have a different target user. Most desktop Linux distributions are oriented towards tech-savvy users and developers.
Simplicity is the key, so we carefully pick and choose the best applications available for our users.
A number of core technologies underlie our OS, in particular the Linux kernel, OSTree, systemd, GNU, X, GNOME, and Xapian.
Open source philosophy
We embrace the principles of free and open-source software and acknowledge a great debt to it in creating Endless OS. Whenever we can, we work upstream and contribute back to open source. Although not everything we create can be open source, we release most components of our system under free software licenses. Many members of our core team have a long history with open source projects, and continue to be an active part of those communities.
You might notice that we maintain forks of many upstream packages. In most cases, this is because we submit our patches upstream and backport them to the stable versions that we ship.
Endless OS incorporates a lot of software. We have created a number of projects and released them under free and open licenses. We have also made a number of changes to upstream projects.Check our GitHub page for a complete list ›
- Metrics API — Lightweight API for recording user metrics from apps and system services.
- Event Recorder Daemon — Saves recorded user metrics and transmits them in small batches when there’s an internet connection.
- Metrics Instrumentation Daemon — Records information about the system, such as performance info.
Installing and Updating
- System Updater — Driver for updates to our OSTree-based core system.
- Config Printer — Automatically downloads and installs printer drivers from trusted sources (e.g. OpenPrinting.org).
- Flash Plugin Updater — Downloads and installs the Adobe Flash plugin.
- Google Talk Plugin Updater — Downloads and installs the Google Talk plugin.
- Pepper Flash Plugin Updater — Downloads and installs Google’s Pepper Flash plugin.
- Gates — Detects unsupported Windows software and Debian/RPM packages.
Endless OS Infrastructure
Core Endless OS
For our core user experience, we use a lot of GNOME technologies. Since we are targeting a different set of users than the upstream GNOME Project, we have made some fairly fundamental changes to the experience, and so we maintain permanent forks of these.
- Desktop — A heavily customized version of the GNOME desktop (GNOME Shell) powers the Endless OS desktop experience.
- Help Center — Our user documentation is based on the GNOME desktop’s documentation and help viewer Yelp. You can find the code in these four GitHub projects: yelp yelp-xsl gnome-user-docs gnome-getting-started-docs.
- Desktop theme — The desktop theme is a heavily modified version of Adwaita, the GNOME desktop theme.
Other open-source software
Here are links to all the other open-source packages we’ve customized, ranging from the Linux kernel to games. These customizations are not as far-reaching as above, and the majority of these patches already exist upstream. We backport them to the stable releases that we use, and so we maintain these custom forks to show what exactly goes into our system.
accountsservice base-files base-passwd debhelper dpkg gdm gjs glib gnome-bluetooth gnome-control-center gnome-desktop gnome-initial-setup gnome-session gnome-settings-daemon gtk jasmine jruby-pgp libgsystem libsoup linux megaglest ModemManager mutter nautilus ostree plymouth pulseaudio systemd system-config-printer u-boot xdg-user-dirs xdg-user-dirs-gtk xf86-video-armsoc
For almost all other packages and any customizations we may have applied to them, you can download their sources from our repository:
$ wget http://sources.endlessm.com/debian/keys/endless-sources-key.pub.asc
$ sudo apt-key add endless-sources-key.pub.asc
$ echo "deb-src http://sources.endlessm.com/debian eos2 extra core extra-apps" \
| sudo tee /etc/apt/sources.list.d/pub-sources.list
$ sudo apt-get update
$ sudo apt-get source
The signature key ID for the repository listed above should be DC063E08.
All trademarks are the property of their respective owners.