incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "P. Taylor Goetz" <ptgo...@gmail.com>
Subject Re: [DISCUSS] Mynewt Incubation Proposal
Date Thu, 08 Oct 2015 19:54:29 GMT
Hi Sterling,

This looks really interesting.

If you’re interested in adding another mentor, I’d be happy to volunteer.

-Taylor

> On Oct 8, 2015, at 12:20 PM, Sterling Hughes <sterling@apache.org> wrote:
> 
> 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