Open webOS
The Beta of Open webOS 1.0 has been released. The Beta includes two build systems, aimed at enabling developers in two ways:
- Our OpenEmbedded-based Build System
- Our Linux Desktop Build
- Powerd
- Sleepd
- Storaged
- https://github.com/openwebos/powerd
- https://github.com/openwebos/sleepd
- https://github.com/openwebos/storaged
OpenEmbedded is specially targeted at managing porting to multiple platform architectures, and is an ideal base for contributors interested in bringing Open webOS to new hardware. The Beta release opens our ongoing development branch targeting an ARM emulator.
Develop on your own desktop, where you have access to all of your own tools and code. This is the ideal, productive environment for OS developers to enhance the user experience and integrate other best-of-breed open source technologies. The desktop build supports running System Manager as an application on your desktop, and the Core Applications running within System Manager.
In addition to the key system components already released which are listed below, the Beta opens a host of other components. These are visible in the github repos.
Previously released components of Open webOS
Browser and Browser ServerOpen webOS uses a version of QtWebKit to render web pages and apps. Code-named "Isis Project", it uses a client-server model that separates the rendering process from the user interface. This architectural approach delivers smooth scrolling and a responsive user experience. The Isis Browser uses the highly portable Qt framework with the goal of delivering a cross-platform browser in the future. The code may be found in the Isis Project repository on GitHub.
As we evolve Open webOS, we have chosen class-leading components to give our developers the ability to provide their applications with the most immersive and robust graphics and audio. We are expanding our QtWebKit framework to incorporate OpenAL Soft audio, OpenGL ES and WebGL graphics, and Gstreamer to handle streaming media.
Platform Portability Layer
The Open webOS platform portability layer (PPL), code-named "Nyx Project", is used to isolate the upper layers of webOS from dependencies on the hardware and the core OS upon which it is running. It is implemented as a shared library that exposes a uniform client API and that expects to call into a series of platform-dependent modules that implement the API for a particular device. The code may be found in the Open webOS repositoryon GitHub.
Platform Portability Layer Module
Open webOS is intended to be built on the Linux Standard Kernel 3.3, with the platform portability layer providing any necessary platform abstraction.
System Policy
Examples of policy and features implemented on top of the Platform Portability Layer:
The repos can be found here:
DB8
DB8 is the database service provider for all webOS components. The initial release provides a partial implementation on top of the LevelDB database engine. Future releases will provide a complete implementation based on LevelDB.The repo for DB8 can be found here. Access to DB8 is provided via the API documented here.
Luna-service2
Luna-service2 provides a bus-based IPC mechanism used between components in Open webOS. Luna-service2 is composed of a client library and a central hub daemon. The client library provides API support to register on the bus and communicate with other components. The hub provides a central clearinghouse for all communication. Utilities for monitoring and debugging the bus are included
The repo for Luna-service2 is here.
Node.js
Node.js is an open source project which can be found at http://nodejs.org. The Node.js release in Open webOS provides minimal extensions to enable access to the webOS system bus and to enable extended system access for Node.js services. This includes the node_spawner tool used to launch Node.js services within webOS.
The repo for Node.js is here.
Novacom
Novacom and Novacomd provide a generic communication toolset to allow communication between a host and an embedded device using sockets over USB. New devices can be supported by adding a new vendor ID in the USB device stack.
The repo for Novacom can be found here. The repo for Novacomd can be found here.
System Manager
System Manager (also known as luna-sysmgr) is responsible for rendering webOS Card View, Launcher, Lock Screen, Status Bar and Status Menus, in addition to other system management features that are viewable in the System Manager User Interface. System Manager is also responsible for hosting a QtWebKit shared library, WebApp Manager, for rendering of Enyo applications.
The repo is available here.
Core Applications
Core-apps includes the following Enyo 1.0 applications: accounts, calculator, calendar, clock, contacts, email, and memos.
The repo is available here.
License
Open webOS is available under the Apache License, Version 2.0.
Key Principles
• Open webOS will accept contributions via a signoff process inspired by Linux Certificate of Origin.
• Open webOS will made available under the Apache license, Version 2.0.
• Open webOS will use the contributor committal model in use on most open source projects.
• Open webOS will be segmented into multiple projects to give developers ample opportunity to join and remain active in the development effort.
• The Open webOS project website will host a wiki, a source code repository, a mailing list, and a bug tracking system.
• We will use Github or an equivalent tool to as the code repository.
• We will use JIRA or an equivalent tool to track issues.
• Our plan is to allow multiple committers to branch and merge code in the open to allow multiple development branches to occur at once.
Organization
Open webOS includes several projects: Enyo (a JavaScript framework), WebKit/Isis, the Linux Standard Kernel, and the webOS System Manager. Each project has a Project Management Committee (PMC), comprised of committers elected within the project's community to provide oversight for the project. The PMC also decides on the project's release strategy and is responsible for releasing distributions into the community.
PMC members are expected to act individually, making decisions in the best interests of the project, when acting on PMC or development lists. Each PMC is responsible for ensuring their project follows certain core requirements set by the board or other corporate officers of Open webOS. Examples include following legal, branding, and infrastructure related requirements, and ensuring their community operates in a manner similar to that outlined by the Apache Way.
PMC members nominate new contributors to the project as committers, and PMC members cast votes on electing new committers to the project. PMC members also have binding votes on any project matters.
Contributions
In the beginning, all committers (distinct from public users and contributors) will come from HP. The PMCs will use a system of meritocracy as a guide for adding contributors as the project progresses. The path of progressing from public user to contributor to committer is based largely upon user involvement in the community (see below). At any given moment we would expect relatively few committers.
(As an example, Linux has thousands of users, of whom only 2.5% are developers or contributors and fewer than 100 are committers. So, the project may have many, many users, but it's the PMC and the committers who determine the project's baseline.)
All committers report to the PMC of the component they represent. The PMC uses a consensus-based decision making process to determine whether or not to take a contribution from the community and commit it to the code tree.
Meritocracy criteria include:
• Community involvement
• Consensus decision-making
• Open and transparent communications
• Responsible oversight with deference to the community
Project Leaders
Steve Winston
Open webOS
Kent Ohlund & Keith Weng
No comments:
Post a Comment