ข้อมูลสำหรับนักพัฒนา
Endless OS เป็นระบบปฏิบัติการที่ออกแบบมาเพื่อตอบสนองต่อความต้องการของผู้ใช้งานด้อยโอกาสในประเทศกำลังพัฒนา สำหรับผู้ใช้งานของเราส่วนใหญ่ Endless จะเป็นคอมพิวเตอร์เครื่องแรกที่พวกเขามีโอกาสได้เป็นเจ้าของ ในระหว่างการพัฒนา Endless OS การวิจัยเชิงบุกเบิกช่วยให้เราได้มาซึ่งข้อมูลในด้านการออกแบบ นำไปสู่ข้อสรุปที่ว่า ความเรียบง่ายที่สุดเป็นกุญแจสำคัญ และวลีนี้ได้กลายมาเป็นหัวใจสำคัญของลักษณะการออกแบบของเรา

ข้อจำกัดของการออกแบบ Endless OS
ผู้ใช้งานส่วนใหญ่ของเราอาศัยอยู่ในพื้นที่ที่การเข้าถึงข้อมูลมีความจำกัด และคอมพิวเตอร์มีราคาแพง อุตสาหกรรมเทคโนโลยีแทบจะไม่พิจารณาถึงโซลูชั่นใหม่ ๆ เพื่อตอบสนองต่อความต้องการของตลาดส่วนนี้เลย ลองนึกภาพการออกแบบเครื่องเล่นเพลงสำหรับคนที่ไม่ทราบว่ารูปสามเหลี่ยมชี้ขวาหมายถึงการเล่นเพลง หรือไม่รู้ว่า 'เพลย์ลิส' คืออะไร บางทีอุปกรณ์ฟังเพลงเพียงอย่างเดียวที่คน ๆ นั้นเป็นเจ้าของคือวิทยุเครื่องเดียว หรืออาจจะไม่มีอะไรเลย
เรามุ่งมั่นที่จะแก้ไขปัญหาเหล่านี้ผ่าน Endless OS

Endless OS
ไม่ใช่แค่ลินุกซ์ดิสทริบิวชันทั่วไปของคุณ:
เราไม่ใช้ rpm, apt หรือระบบแพ็คเกจอื่น ๆ แต่เราใช้ระบบรู้ทไฟล์แบบอ่านอย่างเดียวที่จัดการโดย OSTree โดยมีกลุ่มแอปพลิเคชัน (Application bundle) ซ้อนด้านบน
เรามีกลุ่มผู้ใช้งานเป้าหมายที่แตกต่าง ลินุกซ์ดิสทริบิวชันสำหรับเดสก์ทอปส่วนใหญ่จะเน้นที่ผู้ใช้งานที่มีความเชี่ยวชาญด้านเทคโนโลยีและนักพัฒนา
ความเรียบง่ายคือกุญแจสำคัญ ดังนั้นเราจึงคัดสรรและเลือกแอปพลิเคชันที่ดีที่สุดอย่างพิถีพิถัน เพื่อผู้ใช้งานของเรา
เทคโนโลยีหลักหลายประเภทสามารถรองรับระบบปฏิบัติการของเราได้ โดยเฉพาะอย่างยิ่ง Linux kernel, OSTree, Flatpak, systemd, GNU, X, GNOME, และ Xapian

ปรัชญาโอเพ่นซอร์ส
เรานำเอาหลักการของซอฟต์แวร์แบบโอเพ่นซอร์สและซอฟต์แวร์เสรีมาประยุกต์ใช้ เราตระหนักถึงคุณประโยชน์อันยิ่งใหญ่ของหลักการดังกล่าวที่มีส่วนช่วยในการสร้าง Endless OS ดังนั้น เมื่อไหร่ก็ตามที่เรามีโอกาส เราจึงทำงานแบบต้นน้ำ (Upstream) และคืนคุณประโยชน์นั้นกลับสู่โอเพ่นซอร์ส ถึงแม้ว่าทุกอย่างที่เราสร้างอาจไม่ใช่โอเพ่นซอร์สทั้งหมด แต่เราเผยแพร่องค์ประกอบเกือบทั้งหมดของระบบของเราภายใต้ใบอนุญาตซอฟต์แวร์เสรี สมาชิกในทีมงานหลักของเราหลายคนมีประสบการณ์ในการทำงานเกี่ยวกับโครงการโอเพ่นซอร์สมายาวนานและจะยังคงเป็นส่วนหนึ่งของทีมที่มุ่งมั่นของโครงการเหล่านั้นต่อไป
คุณอาจจะเห็นว่า เรามีการจัดการแพ็คเกจต้นน้ำ (Upstream package) ในหลาย ๆ สาขา ส่วนใหญ่แล้วเป็นเพราะเราส่งวิธีการแก้ไข (Patch) เข้าสู่ต้นน้ำ (Upstream) และย้ายกลับไปยังเวอร์ชันที่เสถียรที่เราให้บริการ
ซอฟแวร์ของเรา
Endless OS รวมซอฟต์แวร์เข้าไว้ด้วยกันมากมาย มีการสร้างโครงการจำนวนมาก และเผยแพร่ให้ใช้งานได้ภายใต้ใบอนุญาตเปิดและเสรี นอกจากนี้ เรายังได้ทำการเปลี่ยนแปลงต่าง ๆ ในโครงการต้นน้ำ (Upstream projects)
อีกด้วย ดูที่ GitHub page ของเราสำหรับรายการแบบสมบูรณ์Hardware
- Linux Kernel — The Linux kernel shipped on the Endless computer.
- Linux for Amlogic Meson — We host a community effort around the Linux kernel on Amlogic Meson SoCs. This is the chipset used on the ODROID-C1. The code includes the GitHub projects linux-meson and u-boot-meson.
- Epson Inkjet Printer — Collection of various Epson printer drivers in one source tree.
- Composite Mode — Adjusts settings when connected to a composite TV.
Metrics Kit
- 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.
- Phone Home — Anonymous user counter.
Installing and Updating
- Installer — Installs dual boot Endless OS on a Windows system.
- 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).
- Customer Support — Support scripts to assist users of Endless OS.
- Google Chrome Helper — Downloads and installs the Google Chrome browser.
- Google Chrome App — Launches Google Chrome once it’s downloaded.
- Chrome Plugin Updater — Downloads and installs Google Chrome Flash and DRM plugins.
- Gates — Detects unsupported Windows software and Debian/RPM packages.
Endless OS Infrastructure
- License Service — Collects and displays the licensing information of open-source software on our system.
- Boot Helper — Boot utilities for Endless hardware.
- Node Modules Installer — Packager for NPM modules used on our system.
Applications
- SDK — Base for writing applications for Endless OS.
- Photos — Photo editing and sharing application.
- Khan Academy Lite — Learning application, comprising a few components: ka-lite-source eos-ka-system-helper ka-lite-app
Offline Content System
- Knowledge Library — Components for building offline content apps.
- Knowledge Services — System services used by offline content apps.
- Xapian GLib — GObject bindings for the Xapian database library.
- Xapian Bridge — Lightweight HTTP server for accessing Xapian databases.
- Endless NDN — Data distribution based on NDN.
- Shard — Packed data format for offline content.
Developer Tools
- GH Fetch — Downloader, archiver, and updater for your GitHub repos. Like BackHub, only free!
- XDelta3 Dir Patcher — Tool for generating XDelta3 diff packages and applying them.
- XDelta3 for Ruby — Ruby bindings for the XDelta3 tool.
- Coding Shell Extensions — Various GNOME Shell extensions for developers.
- Difflint — Linter that will examine only new changes as you commit them.
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.
- Exploration Center Content — Content for the Exploration Center.
- Speedwagon — Splash screen shown when launching applications.
- Shell Content and GNOME Software Data — Contains data about applications in the App Center and links in the Exploration Center.
- Meta — Controls what packages are part of Endless OS.
- Social Bar — Facebook as a sidebar on the desktop.
- Media — Sample media included with Endless OS.
- Keyring — Keys used for verifying OSTree updates.
Old App Store
This software was used for the app store on Endless OS 2.6 and earlier. It’s now replaced by GNOME Software
Other open-source software
We maintain some repositories with build instructions for making popular Linux software into Flatpak packages:
- Android Studio
- Arduino IDE
- Code::Blocks
- Eclipse
- Electron apps (electron-flatpak-base-app, flatpak-bundler, electron-installer-flatpak, grunt-electron-installer-flatpak)
- Processing.js
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 arcanist base-files base-passwd chromium-browser debhelper dh-waf dpkg emeus flatpak flocker-openssl flocker-rest-client gdm gjs glib gnome-bluetooth gnome-builder gnome-control-center gnome-desktop gnome-initial-setup gnome-session gnome-settings-daemon gnome-software graphene grub gtk jruby-pgp libgsystem libphutil linux marathon-lb megaglest mesos-deb-packaging ModemManager mutter nautilus ndn-cxx NFD open-build-service ostree phabricator plymouth pulseaudio rufus shim snipe-it systemd system-config-printer totem u-boot WebKit xapian-core xdg-user-dirs xdg-user-dirs-gtk xf86-video-armsoc xf86-video-intel
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 eos3 core endless"
| 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.