incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: [DISCUSS] Mynewt Incubation Proposal
Date Mon, 05 Oct 2015 17:54:48 GMT
+1.

And I also volunteer to Mentor is another is desired or required.

> On Oct 5, 2015, at 12:39 PM, 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
> 


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


Mime
View raw message