incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sterling Hughes <sterl...@apache.org>
Subject Re: [DISCUSS] Mynewt Incubation Proposal
Date Thu, 08 Oct 2015 16:20:22 GMT
Hi All,

All feedback thus far has been positive, so unless anyone objects, I
plan to move to a VOTE either tomorrow or Monday.

Thanks,

Sterling


On Mon, Oct 5, 2015 at 9:39 AM, Sterling Hughes <sterling@apache.org> wrote:
> Hi!
>
> We would like to start a discussion on accepting Mynewt, a RTOS (real-time
> operating system) for Internet of Things devices, into the Apache Incubator.
> Please take a look at the proposal and let us know any comments or feedback
> you have.  We think this project could be a pretty exciting way to expand the ASF
> into the Internet of Things and embedded software.  We would love to hear from
> anyone who is interested in joining the project and helping out!
>
> The proposal is available online at:
> https://wiki.apache.org/incubator/MynewtProposal
>
> We are also looking for additional mentors to help us, as we go through the
> incubator.  If you’re interested, please let us know.
>
> Thank you and Best,
>
> Sterling
>
> = Mynewt Proposal =
>
> == Abstract ==
>
> Mynewt is a real-time operating system for constrained embedded systems
> like wearables, lightbulbs, locks and doorbells. It works on a variety of
> 32-bit MCUs (microcontrollers), including ARM Cortex-M and MIPS
> architectures.
>
> == Proposal ==
>
> The goal of this proposal is to bring the Mynewt codebase (developed by
> Runtime, Inc.) into the Apache Software Foundation. Mynewt is designed to
> run constrained Internet of Things devices, where a small, real-time
> operating system is required.
>
> It includes the following components:
>
>  * Real-time operating system kernel (Scheduler, Mutexes, Semaphores, etc.)
>
>  * Command line package management and build system
>
>  * Hardware Abstraction Layer unifying common MCU features (e.g. GPIOs,
>  High Resolution Timers, PWM interfaces, UARTs, ADCs, etc.)
>
>  * Board Support Infrastructure, that defines the framework for building
>  software for various board architectures.
>
> Should this project be accepted into the incubator, Runtime, Inc. will
> assign the ASF a license to all source code developed to date and begin
> the development of an open source community around the project.
>
> == Background ==
>
> Mynewt has been developed solely by Runtime to date. We are a team of 5
> software engineers, that really love writing embedded systems.
>
> == Rationale ==
>
> With the momentum behind the Internet of Things, there is an increasing
> need for standard open source software to help developers create connected
> devices. One area where there is a large need is an open-source, liberally
> licensed, community-driven RTOS (real-time operating system.)
>
> Today, there are many RTOSes, the majority of which are provided by
> proprietary vendors and many of which are not permissively licensed or
> controlled by a single company. These restrictions create fragmentation,
> because either not everyone can afford to purchase the operating system or
> restrictions put on the OS's use (e.g. restricted to vendor-specific
> platforms), means that people using other processors cannot adopt it.
>
> The lack of a standardized operating system creates fragmentation around
> everything above it. Because there is not a well adopted community driven
> operating system, people don't have a place to contribute back new
> drivers, or networking stacks. Additionally, there is constant work to
> port and maintain software across a myriad of different operating systems,
> all with slightly different APIs and interfaces.
>
> In order for the industry to accelerate and keep up with the increasing
> complexity in these devices, it's important that an open-source community
> form and provide a RTOS effort that:
>
>  * Accepts community contributions and encourages code reuse
>  * Natively supports source package management, to allow for efficient
>  redistribution and reuse of software across a broad swath of use cases (from
>  wearables to industrial equipment)
>  * Supports all of the "new" protocol stacks required for IoT (e.g. Bluetooth, IPv6,
>  etc.)
>  * Has drivers for all new chipsets, sensors, and other devices
>
> The core of Mynewt has been designed to accommodate these requirements. It
> contains a small, pre-emptive RTOS core, that works on native (OS X,
> Linux) and Cortex platforms (and is easily portable to others), and
> standardized HAL and BSP interfaces.
>
> It also provides a build and package management tool that allows
> developers to install, develop, and redistribute source packages. This
> tool allows developers to start with the core of the OS and its
> interfaces, and then download only the source packages that are needed to
> run their embedded project. This will allow the community to grow beyond
> just porting the core of the Mynewt system and extend to all of the
> necessary protocol stacks, drivers and sensor interfaces that a modern
> embedded developer will need.
>
> In addition to the Mynewt core, there is active development around a set
> of commonly needed functionality when developing small embedded systems,
> including:
>
>  * A Flash Filesystem designed for small flashes, with large block sizes
>  (very common in single chip designs)
>  * An Open Bluetooth stack with native support for prevalent modules
>
> == Initial Goals ==
>
> The core of the Mynewt Operating System is functional.
>
> The goal is to have an initial release February, 2016. Between now and
> then, a number of things need to be finished:
>
>  * Improved HAL (Hardware Abstraction Layer)
>  * Regression Testing Framework
>  * Power Management Support in the OS
>  * Instrumentation Framework
>    * Statistics
>    * Log files
>  * Debugger Support for Embedded Platforms
>  * Coredumps
>  * Support for more platforms (e.g. TI, Broadcom) and Cortex M* series
>  processors.
>
> Additionally, there are a number of other core services that need to be
> developed around the core operating system.
>
>  * Bluetooth LE and Wireless IP stacks
>  * Log structured flash filesystem
>  * Flash circular buffer stores
>  * Drivers for Sensors and Actuators
>  * Services to control motors, pumps, read accelerometers, heart rate
>  sensors, etc.
>  * Core services for location and time
>
> == Current Status ==
>
> === Meritocracy ===
>
> Initial development has been done at Runtime, however, Mynewt was
> intended to be released as an open source project from its inception.
>
> Our goal during incubation is to develop a community around Mynewt. We
> fully intend this to be a community run and led effort. We believe that
> decisions should be made on the mailing list, and that core contributors
> (regardless of corporate affiliation) should be the ones who decide the
> future of the project.
>
> We will work during the incubator to foster new contributors and grow the
> community beyond our company.
>
> === Community ===
>
> Right now, Mynewt is used by Runtime. Our goal is to expand this community
> as we develop, and release the operating system. There are a number of
> companies currently working to test and incorporate Mynewt into their
> products.
>
> === Core Developers ===
>
> The core developers of Mynewt are at Runtime. The goal of the incubator is
> to grow that community beyond our company.
>
> === Alignment ===
>
> While there is not much software for constrained embedded environments
> within the ASF today, we believe that this is an important and growing
> area.
>
> The ASF has advantages for projects in this space:
>
>  * The GPL (and LGPL) are profoundly impactful for physical products, as
>  most constrained devices are linked into a single executable, meaning any
>  proprietary device that includes GPL'd source code must release their
>  software.
>     * This often contains information about proprietary hardware
>  designs as well as software designs.
>  * Most projects are either not wholly community driven and/or lack a clean IP
>  trail.
>
> The permissive licensing enables more groups (both open and proprietary) to
> participate in development, to grow the community/ecosystem, and to remix Mynewt
> components into new hardware and software designs.
>
> == Known Risks ==
>
> === Orphaned Products ===
>
> Mynewt is a new real-time operating system without much adoption. At Runtime,
> we are committed to its development and our goal during the incubator is to grow
> the community and adoption around Mynewt.
>
> === Inexperience with Open Source ===
>
> One of the members of the Runtime team is an emeritus member of the Apache
> Software Foundation. Another member has contributed extensively to Linux
> and FreeBSD. The other three members do not have experience with open
> source, but are curious.
>
> === Reliance on Salaried Developers ===
>
> Today, Mynewt relies mostly on salaried developers for its existence. This
> is an issue we will look to address during the incubation period: we want
> to develop a strong community around Mynewt.
>
> === An Excessive Fascination with the Apache Brand ===
>
> We like the Apache brand (it's a good brand!) However, we want to enter
> the ASF because:
>
>  * In order for an OS to be ultimately successful, it needs to be
>  community driven
>  * We believe strongly in a community which is a meritocracy and think that
>  the ASF has a proven, successful framework for managing such communities.
>  * The ASF has a strong track record in developing healthy communities that
>  co-exist with commercial entities.
>
> == Documentation ==
>
> Documentation is available here: https://github.com/mynewt/documentation
>
> We are actively working on documentation and expect it to improve
> dramatically within the next couple of weeks.
>
> == Initial Source ==
>
> All source code is currently hosted by Runtime, Inc. on Github.
>
> The source code can be found here:
>
> https://github.com/mynewt/
>
> The "tadpole" repository contains the Core of the Operating System and
> file layout. The "larva" repository contains the Core OS and all packages
> developed around that core. The "newt" repository has the build and
> package management tool that is used to stitch together and build new OS
> projects.
>
> == External Dependencies ==
>
> No external dependencies currently exist in the core OS; all code has been
> written by Runtime.
>
> The board and microcontroller-specific support packages contain code from
> the various MCU vendors. This code has been ensured to be under either an
> Apache or BSD license.
>
> == Cryptography ==
>
> None
>
> == Required Resources ==
>
> === Mailing lists ===
>
>  * dev@mynewt.incubator.apache.org
>  * commits@mynewt.incubator.apache.org
>  * notifications@mynewt.incubator.apache.org
>
> === Git Directory ===
>
> We'd like to host the source code using Git.
>
> === Issue Tracking ===
>
>  * JIRA Project Mynewt (MYNEWT)
>
> == Initial Committers ==
>
>  * Sterling Hughes (sterling at apache.org)
>  * William San Filippo (will at runtime.io)
>  * Christopher Collins (chris at runtime.io)
>  * Aditi Hilbert (aditi at runtime.io)
>  * Marko Kiiskila (marko at runtime.io)
>  * Justin Mclean (jmclean at apache.org)
>  * Jan Iversen (jani at apache.org)
>
> == Affiliations ==
>
>  * Runtime: Sterling Hughes, William San Filippo, Christopher Collins, Aditi Hilbert,
Marko Kiiskila.
>  * Class Software: Justin Mclean
>  * Unaffiliated: Jan Iversen
>
> == Sponsors ==
>
> === Champion ===
>
>  * Marvin Humphrey
>
> === Mentors ===
>
>  * Sterling Hughes
>  * Justin Mclean
>  * Greg Stein
>
> === Sponsoring Entity ===
>
>  * The Incubator PMC.
>

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Mime
View raw message