Category: Development

  • You probably saw the announcement on October 10, 2016 that the Open Connectivity Foundation and the AllSeen Alliance will merge and create a ‘best of both’ IoT framework. To recap briefly, the Board of Directors from both organizations have agreed to consolidate operations under the Open Connectivity Foundation (OCF), while the open source projects will continue to be hosted at the Linux Foundation. I’ve noticed some confusion about what exactly happened, so I thought I would clarify some things in this article. To start, OCF and the AllSeen Alliance are each non-profit entities that are responsible for the business operations of each project. In addition, OCF hosts development of the specification. Each organization has their own bylaws, membership agreement, IPR policy, and charter. By law they must be governed by a board of directors, which consists of representatives from member organizations. One of the major differences between the two is that […]

    Read More
  • October 6, 2016 - Javier Martinez Canillas

    Samsung OSG Contributions to Linux Kernel 4.8

    Linux 4.8 was released on September 25, and in this release the Samsung Open Source Group (OSG) contributed 432 patches that modified 110,741 lines of code. Although 4 engineers contributed to different Kernel subsystems, almost all of these changes comes from Mauro Carvalho Chehab’s work to improve the media subsystem documentation. One noteworthy news item in this release is that another OSG member has been honored with a maintainer role, now that Luis de Bethencourt is taking maintainership of the BeFS filesystem. Javier Martinez Canillas is now listed as a reviewer for the Samsung Exynos ARM architecture. The following list is all of the OSG engineers that contributed to this release and the number of changesets and lines of code, as reported by Jonathan Corbet and Greg Kroah-Hartman’s gitdm tool. OSG developers by changesets Mauro Carvalho Chehab 347 80.3% Javier Martinez Canillas 69 16.0% Shuah Khan 11 2.5% Luis de Bethencourt […]

    Read More
  • BUG_ON() has been discouraged for debugging kernel problems for a very long time. However, there are still several BUG_ON() usages in the Linux Kernel. A late commit to Kernel 4.8 is one such case, and is now causing a lot of headaches with the release that came out on October 2nd, 2016. This BUG_ON() is triggered when CONFIG_DEBUG_VM is enabled. Some distributions such as the standard Fedora Kernel config enable it by default. Linus Torvalds has discovered that once this BUG_ON() triggers, the machine will have problems handling kernel paging requests and report that a reboot is required to fix a recursive fault from which the machine will never recover! Here’s his direct quote The reason the machine *dies* from that thing is that we end up then immediately having a

    and then a

    and the machine will never recover. Fixing this bug is number one priority for Linus […]

    Read More
  • This article is a part of a series that covers improvements that are being made to the Linux Kernel documentation; this article will begin to explain how we handled the conversion of the Linux Media subsystem documentation. The Linux Media Subsystem The Linux Media subsystem is actually a set of subsystems; each subsystem has its own particularities: Video4Linux –  API and core provide functions for video stream capture and output. It also provides support for video codecs, analog TV, AM/FM radio receivers and transmitters and for software digital radio (SDR) receivers and transmitters. Linux DVB – provides support for digital TV. Despite its name, it supports worldwide standards, including DVB, ATSC, ISDB, and CDDB, as well remote controllers and infra-red devices. Media Controller – provides pipeline control and reconfiguration inside the hardware. HDMI CEC – provides support for the HDMI Consumers Electronic Control (CEC): a system to pass remote controller […]

    Read More
  • September 29, 2016 - Stephen Houston

    A Venture Into Enlightenment’s Gadget API

    In my last post, I mentioned that my internship would revolve around creating gadgets using the new Enlightenment gadget API. After several conversations with Mike Blumenkrantz, the creator of the gadget API and my mentor for this internship, we determined the Pager module is in a state that requires minimal work to be converted to the new gadget API. Therefore, converting Pager to the new API would allow me to focus on learning how the new gadget system works better than writing a gadget from the ground up. Mentors are a Great Resource for Learning Something New Before I continue with details about the Pager API conversion, I think it would be prudent to explain how this internship works behind the scenes. Mike and I have known each other for quite a while as we’ve both worked on Enlightenment and EFL for years. In fact, when Mike joined the project, […]

    Read More
  • Embedded data structures are a common occurrence in Linux Kernel code. Use-after-free errors can easily creep in when they include multiple ref-counted objects with different lifetimes if the data structure is released prematurely. This article will explore some of the problems commonly encountered with lifetime management of embedded data structures when writing Kernel code, and it will cover some essential steps you can follow to prevent these issues from creeping into your own code. What Makes Embedded Structure Lifetime so Complicated? Let’s look at  a few examples of embedded structures. Structure A embeds structure B, structure B embeds structure C, and structure C embeds structures D and E. There is no problem as long as all these structures have identical lifespans and the structure memory can be released all at once. If structure D has a different lifespan overall or in some scenarios, then when structure A goes away, structure […]

    Read More
  • September 20, 2016 - Bryce Harrington

    What’s New in Wayland and Weston 1.12?

    The 1.12 release of the Wayland core protocol and its reference compositor Weston will be later today; this post will give an overview of the major changes since the last release. New Features and Improvements to Wayland The Wayland core protocol documentation has received numerous refinements to improve its clarity and consistency. Along with this, many blank areas of the protocol documentation have been fleshed out. A new wl_display_add_protocol logger API provides a new, interactive way to debug requests; along with this are new APIs for examining clients and their resources. This is analogous to using WAYLAND_DEBUG=1, but more powerful since it allows run time review of log data such as through a UI view. There have been improvements to how the protocol XML scanner handles version identification in protocol headers. This enables better detection and fallback handling when compositors and clients support differt versions of their protocols. New Features […]

    Read More
  • September 19, 2016 - Stephen Houston

    Introducing Stephen Houston: Our Newest Intern

    As the newest developer to have the privilege of taking part in Samsung’s Open Source Group internship program, I would like to give a brief introduction of myself, my experience, and my focus with Samsung. I am a software developer and analyst who holds a bachelor’s degree in Computer Information Systems, and I’m currently working towards a Master of Business Administration. I’ve been an open source developer since I was 16 (a long time ago), and I have spent the majority of my time writing code related to the Enlightenment project. When I first stumbled across Enlightenment 17 in the early 2000’s, there was a widget library at the time called Ewl. The creator of Ewl, Nathan Ingersoll, took me under his wing and began teaching me C and how to use Ewl and other Enlightenment Foundation Libraries (EFL). I used this knowledge to create and develop Ephoto: an EFL […]

    Read More
  • September 16, 2016 - Mike Blumenkrantz

    Announcing the Samsung Open Source Group Internship Program

    Today, I’m switching gears from my usual technical posts to introduce a new initiative that we’re rolling out at the Open Source Group: the OSG Internship Program. Since the start of our team in 2013 we’ve been involved in a number of projects in different areas of the open source ecosystem. In the process we’ve come across a number of great community members, but we’ve also realized that our team isn’t large enough to tackle all of the technical challenges that we’re facing in the open source projects we work on. At Samsung, we greatly appreciate the collaborative nature of our relationship with these communities, and all the more so since many long-term contributors are hobbyists and students. Our appreciation runs deep for contributors who are working in these communities on their own time, particularly those who work collaboratively with us as we are preparing for future products. From time […]

    Read More
  • September 8, 2016 - Mike Blumenkrantz

    How to Create an Enlightenment Module

    This article is part of a series of tutorials about Enlightenment: a compositing and stacking window manager. Module writing is one of the primary ways to expand the functionality of Enlightenment. By dynamically loading modules, the compositor is able to import code that has access to most Enlightenment internals. This allows developers to modify the desktop environment in nearly any way they can imagine, from new gadgets to compositor effects. This article will take a look at the basics of creating an Enlightenment module. The first part of creating a module is setting up a .desktop file for it. This allows the module to be visible for users within the module configuration dialog. An example file looks something like this:

    The ‘Name’ is the user-visible name of your module, and the ‘Icon’ is the filename of the .edj file which accompanies the module. The ‘Comment’ field provides supplementary information […]

    Read More
1 4 5 6 7 8 17