incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré ...@nanthrax.net>
Subject Re: [DISCUSS] Mynewt Incubation Proposal
Date Thu, 08 Oct 2015 19:37:11 GMT
+1 to start a vote.

Regards
JB

On 10/08/2015 06:20 PM, Sterling Hughes 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
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

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


Mime
View raw message