eyeOS
eyeOS is an open-source web-based desktop environment designed for cloud computing, providing users with a virtual operating system accessible via any standard web browser to enable seamless collaboration, file management, and application use across devices without local installations.[1] Primarily developed in PHP, JavaScript, and XML, it features a graphical user interface with draggable windows, a taskbar, and built-in applications such as a word processor, spreadsheet, email client, calendar, contacts manager, and RSS reader.[2][3] Founded in 2005 in Barcelona, Spain, by entrepreneur Pau Garcia-Mila at the age of 17, along with a team of developers, eyeOS emerged as one of the earliest projects to pioneer the concept of a fully functional web operating system, predating the widespread adoption of modern cloud desktops.[4][5] The platform's initial releases focused on creating an accessible, browser-based alternative to traditional operating systems, allowing users to upload, download, and manage files while supporting multitasking and context menus for enhanced usability.[3] By 2006, eyeOS had gained recognition for its innovative windowed application environment, which supported z-ordering, overlapping windows, and full-screen modes, making it suitable for both personal and collaborative cloud setups.[5] Development progressed through multiple versions, with eyeOS 1.9 serving as a stable release noted for its reliability over several years, though later iterations like the 2.x series introduced performance optimizations alongside some reported issues.[3] The final open-source edition, version 2.5, was released in 2011, after which the project shifted toward proprietary enhancements while maintaining its core emphasis on integrating SaaS applications and virtualizing Windows and Linux software within the browser.[2] In April 2014, Telefónica acquired eyeOS, a Spanish cloud computing startup, to bolster its desktop-as-a-service offerings and mobile cloud strategy; eyeOS was later absorbed into Telefónica via merger in 2017.[6][7][8] This acquisition built on a prior collaboration between Telefónica and eyeOS since 2010, enabling the platform to centralize workplace management, extend the utility of legacy applications, and compete in the growing cloud virtualization market alongside providers like Amazon and Google.[9]Overview
Description
eyeOS is an open-source web desktop environment that simulates a traditional operating system interface within a web browser, enabling file management, application execution, and user collaboration without requiring local installation.[3] This design allows users to run a complete desktop experience directly in the browser, mimicking familiar elements like windows and menus while operating entirely on remote servers.[1] The primary purpose of eyeOS is to facilitate cloud computing by providing access to a virtual desktop from any internet-connected device using only a web browser, thereby promoting device-agnostic collaboration and data sharing.[10] By centralizing resources on a server, it eliminates the need for software installation or hardware dependencies, making it suitable for distributed teams and remote work environments.[11] At its core, eyeOS is built using PHP for server-side logic, XML for configuration and data structuring, JavaScript for client-side interactions, and web standards such as AJAX to enable dynamic updates without full page reloads.[12] Launched in 2005, it emerged as one of the first open-source web operating system projects, contributing to the foundational trends in cloud computing and browser-based virtualization.[13] In operation, users authenticate via a web browser to connect to a centralized server that hosts the eyeOS instance, which then renders a fully interactive desktop featuring icons, windows, and menus for seamless navigation and task management.[14]Key Features
eyeOS simulates a traditional desktop environment through a web-based interface, featuring draggable and resizable windows with z-ordering management, a taskbar for quick access, and icon-based navigation for files and applications, closely mimicking the user experience of conventional operating systems like Windows or Linux desktops.[3] This design allows users to interact with a familiar graphical user interface entirely within a web browser, enabling seamless organization of open applications and system resources.[15] The platform includes a built-in suite of web applications that run server-side and render client-side, such as a text editor, calendar, contacts manager, file explorer, and basic office tools including a word processor and spreadsheet application.[16] These applications provide essential productivity features without requiring local installations, supporting tasks like document creation, scheduling, and data organization directly in the browser.[17] Collaboration is supported through shared file access and a message board (eyeBoard) for user communication.[14] This enables distributed teams to share documents, with a simple messaging system for coordination.[18] eyeOS ensures cross-platform accessibility with a browser-agnostic architecture that supports major web browsers like Firefox and Chrome, as well as various devices, relying solely on standard web technologies without additional plugins.[16] Users can access their desktop from desktops, laptops, or mobile devices, maintaining consistency across operating systems such as Windows, Linux, and macOS.[18] Security features include user authentication via database systems and integration hooks for external services like email servers or cloud storage providers.[16] These mechanisms allow administrators to enforce access controls and ensure secure data handling in multi-user environments.[1] Performance is optimized by hosting all execution on the server, which offloads resource demands from client devices, combined with caching strategies to reduce load times and improve responsiveness during interactions.[16] This server-centric approach minimizes latency for web-based operations while supporting efficient handling of multiple concurrent users.[14]History
Founding and Early Development
eyeOS was founded in 2005 in Barcelona, Spain, by entrepreneur Pau Garcia-Mila, then 17 years old, and his collaborator Marc Cercos, in response to the rising interest in cloud computing and the potential for browser-based alternatives to traditional operating systems.[19][20] The project originated from Garcia-Mila's prior experiments with software ideas, driven by open-source principles to develop a free, web-accessible desktop environment that would support user collaboration and communication without reliance on local installations.[19][13] Development commenced in January 2005 as a PHP-based system, utilizing XML for defining applications and structures, with initial prototypes emphasizing a fundamental desktop layout and basic file management functionalities to simulate a complete operating system experience in the browser.[13][2] The inaugural public beta release, version 0.6.0, arrived on August 1, 2005, featuring the essential desktop interface and a handful of integrated applications such as a text editor and calendar; it was distributed under the GNU General Public License (GPL) to invite community involvement in enhancements and translations.[13] Among its primary objectives was to facilitate remote access for work and effortless data sharing across devices, free from hardware constraints, establishing eyeOS as an early innovator in web operating systems alongside projects like YouOS.[13][19] Early efforts encountered hurdles from the constrained capabilities of mid-2000s web browsers, including slow JavaScript execution and lack of native support for dynamic updates, necessitating heavy use of AJAX to enable responsive interactions without constant page refreshes.[10][13]Major Releases and Evolution
The 1.x series of eyeOS, spanning 2007 to 2009, focused on stabilizing the platform for community adoption through iterative releases that expanded core functionality and user interface options. Key updates included the addition of productivity applications such as an email client for managing correspondence and an image viewer for handling common formats like BMP, PNG, and JPEG.[21][22] Version 1.8 "Lars," released on January 7, 2009, introduced a rewritten file manager for improved navigation and a new sound API to support media-rich applications, while subsequent patches like 1.8.5 on April 1, 2009, incorporated UI themes for customization, such as Crystal and Executive styles, enhancing visual appeal and stability for everyday use.[23][24] In 2010, eyeOS underwent a significant transition with the 2.x series, marking a complete rewrite to prioritize modularity and scalability for broader deployment. Released on March 3, 2010, version 2.0 restructured the underlying architecture, shifting to an AJAX-heavy frontend that enabled dynamic interactions and better performance across devices, while emphasizing professional usability through integrated APIs for third-party extensions.[25] This evolution was driven by community feedback, which prompted ongoing bug fixes and feature additions, transforming the initial web desktop concept into a more robust cloud operating system capable of handling collaborative workflows.[26] The 2.5 release on May 17, 2011, served as the final milestone in the open-source era, building on prior advancements with enhancements for real-time collaboration, including syncing features for shared file editing and chatting.[26] It also introduced mobile responsiveness to support access from various devices and bundled over 50 applications, ranging from office tools to utilities, solidifying its role as a comprehensive cloud platform.[27] By 2011, eyeOS had seen thousands of downloads and deployments, particularly in educational and enterprise settings where its lightweight, browser-based nature facilitated resource sharing without local hardware dependencies.[28][29] Open-source development halted after 2.5 as the project pivoted toward commercialization, archiving the codebase on platforms like GitHub for continued community access.[26]Acquisition and Current Status
In April 2014, Telefónica, a major Spanish telecommunications company, acquired eyeOS, a Barcelona-based cloud computing startup, for an undisclosed amount.[7][6] The acquisition was aimed at integrating eyeOS's open-source web desktop technology into Telefónica's cloud portfolio to enhance enterprise virtualization services, building on a prior collaboration that began in 2010.[30][31] Following the acquisition, eyeOS shifted from open-source development to a proprietary model, reorienting its platform as a virtual desktop solution for businesses that enables browser-based access to Windows and Linux applications.[32] In 2017, eyeOS was merged by absorption into Telefónica Investigación y Desarrollo, S.A.U., dissolving the standalone entity while incorporating its technology into Telefónica's broader R&D operations.[8] This move positioned eyeOS as an acqui-hired asset, with its Barcelona headquarters serving as a hub for SaaS integration and virtual application development within Telefónica's ecosystem.[33] Following the 2017 merger, eyeOS's technology was integrated into Telefónica's offerings, but the company was declared out of business on April 19, 2024.[20] As of 2025, no active development or separate eyeOS branding exists within Telefónica Tech's cloud services. The original eyeOS branding has largely diminished, but core features such as browser-based application streaming may persist in Telefónica's virtual desktop infrastructure (VDI) offerings.[34]Technical Structure
Architecture
eyeOS employs a client-server architecture in which the web browser serves as a thin client, communicating with the server over HTTP or HTTPS protocols, while all computational processing and application logic occur on the server side to promote device independence.[12] This design ensures that the system remains accessible from any standard browser without requiring client-side installations or heavy resource usage.[12] At its core, eyeOS utilizes an XML-based application registry to define and manage applications, including their structure, icons, and menus, which facilitates modular organization and easy extension.[12] A JavaScript engine on the client side handles the rendering of desktop elements and user events, while server-side PHP processes these interactions via AJAX messages for seamless responsiveness.[12] The file system in eyeOS is implemented as a virtual file system (VFS) that abstracts server directories, incorporating XML metadata to handle permissions, sharing, and access controls.[12] This VFS supports integration with external data sources while maintaining a unified interface for file operations.[12] Session management relies on persistent sessions maintained through cookies and server-side sessions, backed by server-side sessions via the eyeSessions library to support multi-user environments and store user-specific data like widgets and variables.[12] Security features include role-based access control enforced through the VFS and optional enforcement of SSL for encrypted communications, with the SEC service disabling insecure PHP configurations like magic_quotes.[12] The above describes the architecture of the open-source editions up to version 2.5 (2012). Following the 2014 acquisition by Telefónica, the platform evolved into a proprietary solution emphasizing desktop virtualization of Windows and Linux software within the browser and SaaS integration, though specific architectural details remain undisclosed.[6]API and Extensibility
eyeOS provides a dual-sided application programming interface (API) consisting of a JavaScript-based client API for user interface manipulation and a PHP-based server API for backend operations. In the 2.x series, the client API leverages frameworks like Qooxdoo, enabling developers to create and manage UI elements such as windows and event handlers; for instance, a new window can be instantiated usingnew Window(array('name'=>'Window1', 'father'=>'eyeApps', 'cent'=>1)).[10] On the server side, the PHP API utilizes service calls like service('vfs','delete',array('file.txt')) for file input/output operations through the Virtual File System (VFS) service, alongside other services such as User Manager (UM) and Process Manager (PROC).[12]
Application development in eyeOS relies on XML descriptors to define app structures and behaviors, with files organized in directories like apps.eyecode for initialization and events.eyecode for handling user interactions in earlier versions, or apps/ directories in 2.x. Developers integrate third-party web applications via hooks in the extern module, which supports embedding external resources, while custom widgets are built using JavaScript classes from the eyeOS Toolkit, such as those for buttons or forms that trigger AJAX messages to the server via methods like eyeos.callMessage. For example, a simple server-time application might use a JavaScript button to call a PHP function like getTimeFromServer() via the eyeos.callMessage API.[10][12]
Extensibility is achieved through a modular plugin architecture, particularly in the Message Map (MMAP) component, which allows plugins to handle requests for application execution or external integrations. Modules can extend core functionality, such as adding virtual file system backends or implementing service extensions for themes and authentication. Themes and authentication mechanisms are customizable through service extensions, though specific integrations like OAuth are not natively detailed in core documentation.[10]
The eyeOS developer toolkit and libraries include examples for building applications and supports primarily PHP and JavaScript, with XML for data serialization via functions like array2xml(). Documentation is provided in official manuals, recommending tools such as Eclipse PDT for PHP development and Firebug for JavaScript debugging, while Subversion repositories at svn.eyeos.org facilitate code access. External access occurs through service endpoints, though not explicitly RESTful in early versions.[12]
Limitations of the API include its restriction to web standards like HTML, CSS, and JavaScript, with no support for native code execution to ensure browser compatibility and security via sandboxed extensions. Full-screen modes require manual JavaScript workarounds, and permissions for group folders in VFS lack advanced real-time methods. Developers have created examples like custom file managers using VFS API calls or embedded services through the extern plugin, demonstrating practical extensibility within these constraints.[10]