Linuxexpert? Vi vill bli fler!

Vi vill bli fler och söker just nu till vårt Solnakontor:

South Pole är relativt litet företag där varje anställd har mycket att säga till om och aktivt kan vara med och påverka verksamheten. De som jobbar här är bland de bästa i Sverige inom sitt Linuxområde och alla har ett stort Linux och teknikintresse.

Välkommen med din ansökan till jobb@southpole.se!

Nya medarbetare på South Pole

South Pole växer och senaste året har vi fått tre nya medarbetare som vi stolt vill berätta lite mer om!

Valter Engvall
Valter har arbetat med forskning och utveckling av elektroniska enheter sedan 1985. De senaste tio åren har han arbetat med inbyggda Linux system för IP-baserade produkter såsom IP-baserade Set Top Boxes (STB) och residential gateways. Han har arbetat som systemarkitekt, teknisk projektledare, ledare, utvecklingschef, produktchef och med hårdvara och mjukvaruutveckling. Han har också arbetat med produktion och test av elektroniska produkter, främst mot ODM och OEM tillverkare i Europa och Asien. Elektroniska apparater har alltid varit ett stort intresse, började designa och bygga elektroniska vid 14 års ålder.

Giuseppe Scrivano
Vårt italienska nytillskott Giuseppe är vår första internationella rekrytering! Giuseppe har en stark bakgrund inom Open Source, aktiv inom Free Software utveckling och lågnivå programmering. Han har också varit huvudutvecklare i flera GNU projekt som exempelvis GNU Wget. Giuseppe har även varit mentor i Google Summer of Code. Giuseppe är en utbildad dataingenjör med en kandidatexamen från Università degli Studi della Calabria.

Benjamin Larsson
Utvecklaren Benjamin har ett djupt rotat intresse för Linux, inbäddade system och audio / video codecs. Han arbetar mycket med digitala medier och har bl.a. utvecklat på kärnan i ett media content system som ska hantera media arkivet för BBC samt tagit fram fjärrkontroller och media spelare för Android plattformen. Han har också under flera år varit handledare/admin i Google Summer of Code. Benjamin är också president i FFmtech stiftelsen och har varit en FFmpeg/Libav kärn-utvecklare i många år. Han har i grunden en elektronikingengör utbildning från Luleå tekniska universitet.

South Pole har också knutit till sig en marknadsresurs i form av Sanna Tupala och vi kommer i samband med det att kommunicera mer kring vad vi gör i form av nyheter på webb, blogg och andra plattformar.

South Pole håller koll på utvecklingen!

South Pole bolagen har under senaste året deltagit i flera utvecklarkonferenser runt om i världen. Här är ett urval:

ELCE 2010 (Embedded Linux Conference in Europe) Cambridge, England (okt)
GStreamer Conference 2010 Cambridge, England (okt)
I oktober åkte sex personer till Cambridge för att närvara på ELCE där vi bland annat träffade våra kunder (Amino och Arm) och fick i oss en del matnyttigt gällande hårdvarunära Linuxprogramering samt kärnutveckling för Linux. Dagen före deltog vi i Gstreamer Conference 2011. Gstreamer är ett open source multimedia ramverk som vi på den senaste tiden använt mycket i våra olika konsultuppdrag.

FOSDEM 2011 (The Free and Open source Software Developers’ European Meeting) Bryssel, Belgien (feb)
Fem personer från South Pole bolagen var på plats på FOSDEM, som är en av de större open source konferenserna, för att lyssna på spännande föreläsningar om allt från systemd, LLVM till användnigen av open source i satelliter. Dessutom var det många trevliga sociala event där vi nätverkade med open source människor från hela världen.

FOSS Stockholm
2011 (Free Open Source Software) Stockholm, Sverige (maj)
Jonas Bonn från South Pole föreläste om OpenRISC.

Google I/O 2011 San Fransisco, USA (maj)
Vi närvarade och tog del de senaste nyheterna och trenderna gällande Android plattformen, särskilt intressant var det att ta del av möjligheterna med ADK (Android Open Accessory Development Kit). Vi tog också med oss en utvecklingsplattform hem för vidare förkovring.

ISC Conference 2011 (International Supercomputing Conference) Hamburg, Tyskland (juni)
South Pole AB deltog och tittade bland annat på produktlanseringar från våra leverantörer, exempelvis AMD, Intel, Supermicro, Mellanox m.fl.

En hel del konferenser är inplanerade för i höst!

Mjukvara på mjuk CPU

Att utveckla mjukvara på ett inbyggda system innebär utmaningar i form av korskompilering, begränsade verktyg och lite minne, både RAM och filsystem.  Är plattformen dessutom en SoC (system-on-chip) inprogrammerad i en FPGA har man en mjuk CPU.  Några exempel är NIOS II, Microblaze och OpenRISC. De två första är skapade av Altera respektive Xilinx och körs på FPGA-chip från samma tillverkare.  OpenRISC är en öppen design och kan programmeras i vilken FPGA som helst som är tillräckligt stor.  Linux är förstås portad till alla tre.

Senaste nyheter om Linux på OpenRISC finns på http://openrisc.net/.

En av de saker som skiljer mellan att programmera för en traditionell SoC-platform med PPC eller ARM jämfört med OpenRISC är att hittar du ett fel i hårdvaran i den traditionella plattformen, måste du antingen jobba runt det i mjukvara, eller välja ett annat chip.  Har du tur finns det en annan revision av samma chip utan just “din” bugg. Med en mjuk CPU kan du övertyga dina kollegor med Verilog-/VHDL-koden att syntetisera en ny FPGA-image att köra på. Skillnaden är alltså att ladda på en FPGA-image på några minuter och att ställa om tillverkningen av fysiska chip i en fab.

Write portable programs using GNU Gnulib

Portability is a desired feature when software is developed.  Many strategies exist to address this problem.  The one I am going to describe is the way GNU Gnulib intends to help developers to write portable programs.

Gnulib is a source repository shared by different projects, it provides a complete framework to write portable programs and help with some tedious tasks (add support for automake/autoconf, i18l, …).

The principal Gnulib goal is to provide a POSIX systems, providing workarounds where it is not completely supported, under these conditions a program can be written transparently from the underlying particular system.  Gnulib components are shared at the source level, in other words, a program chooses which modules to use and those are imported in the program source tree.

To give an example, let’s say a program is using printf(3) with all its fancy format  directives and some of them are not available everywhere; the program can import the `printf-posix’ module and be sure to work in the same way almost everywhere.  The Gnulib include path must be used before any other path, in this way it can fix problems  with functions from the standard library, something like:

gcc -c -I gnulib printf_example.c -o printf_example.o
gcc printf_example.o gnulib/libgnu.a -o printf_example

In the previous example, gnulib modules were imported in the gnulib directory and compiled in the gnulib/libgnu.a static library.

Usually programs using Gnulib provides a `bootstrap’ script which takes care to fetch the specified Gnulib modules.

I have noticed some Gnulib modules are not yet working properly on uClibc and they fail in some cases.  Once these problems are fixed, many programs using Gnulib will be magically available for the OpenRISC platform.

 

Konferensresa till Portugal

I april 2011 lämnade Southpole Sverige för en fyra dagars resa till soliga Abufeira i Portugal. Förutom en givande konferens, där en många spännande idéer dök upp, hann vi också med en fisketur och sköna promenader på de vackra stränderna. Vi passade också på att vidareutveckla oss genom föredrag som personalen höll om olika intressanta tekniker som bl.a. OpenRISC, Android och videostandarder.

South Pole i Portogal

South Pole säljer Sveriges kraftfullaste dator

South Pole har sålt Sveriges kraftfullaste dator till Parallelldatorcentrum vid KTH. Datorn kommer att ha en kapacitet på över 300 Teraflop och ordervärdet är på närmare 80 miljoner kronor.

Pressmeddelande:

Stororder till South Pole – säljer superdator till KTH.

Svenska företaget South Pole AB säljer Sveriges kraftfullaste dator till
Parallelldatorcentrum vid Kungliga tekniska högskolan, KTH.
- En affär på närmare 80 miljoner kronor.

Datorn är en Cray XE6 och kommer i sin slutgiltiga version att ha en kapacitet
om över 300 Teraflop*, mer än dubbelt så mycket som Sveriges nuvarande
kraftfullaste datorresurs**. Datorn kommer inte bara att vara den snabbaste i
Sverige utan kommer även att utmärka sig internationellt som ett av världens
kraftfullaste datorsystem.

Det är South Poles  hittills största order med ett totalt ordervärde på strax
över 78 miljoner kr. En första del är redan levererad och slutleverans av hela
systemet beräknas ske före årsskiftet.

- Vi är mycket stolta över att få förtroendet att leverera detta stora system.
Vår långa erfarenhet av beräkningslösningar och goda kundrelationer gör oss
mycket väl lämpade för detta uppdrag, säger Jakob Sandgren, VD, South Pole.

South Pole inledde under hösten 2009 ett samarbete med den amerikanska
superdatortillverkaren Cray som tillsammans  med  South Pole nu gör sin första
leverans till Sverige på tio år.

* ”1 FLOP” kan enkelt förklaras som en matematisk beräkning per sekund. En dator
med kapaciteten 300 Teraflop kan alltså utföra 300 000 miljarder matematiska
beräkningar varje sekund.

**  Sveriges nuvarande kraftfullaste datorresurs är enligt www.top500.org
Försvarets radioanstalts  (FRA) dator med en kapacitet om 146 Teraflops

How to Choose a Linux Distribution for Embedded Development

There are a plethora of Linux distributions to choose from today. For the uninitiated, the process of selecting a “distro” can become a nightmare of trying to disentangle the distinguishing features from the web of names and market-speak. This article takes a look at the process of selecting a distribution for an embedded device; presents in the context of some of the more mainstream distributions; and considers the benefits and drawbacks of each given a typical set of project constraints.

Important to keep in mind when selecting a distribution is that, despite what the marketing material may say, they are all more similar than they are different. They all run Linux as the operating system kernel and, thus, all require the same skill set to get the software running on a new device. If your device requires a new hardware driver, that driver will be the same no matter which distribution you choose. If you are running on top of hardware that is already well-supported in the Linux kernel, then any distribution using a sufficiently up-to-date kernel will be equally capable of running on your device.

On top of the Linux kernel, distributions provide a system layer in which reside the usual requisite system libraries and the necessary utilities for configuration of system features such as network interfaces. Most distributions provide here the familiar set of utilities from the GNU stack. Exceptions, however, do exist; the Android distribution, for example, provides a system layer sufficient for the requirements of its Java runtime environment and chooses not to target generic applications.

Finally, the application layer of each distribution is where you will find the most variation, but also here variation is not something to fear as most probably an embedded device will be fitted with custom application software in any case. The variation at this level is more easily overcome than that of the lower-level distribution plumbing.

Selecting a distribution
When selecting a distribution, it is important to begin with a clear idea of what is to be achieved therewith. After all, the distribution is a just a small piece of the puzzle that is your product and will in most cases not even be visible to the user when the finished product is released. A set of fundamental questions should be put to yourself and your development team and the answers kept in mind when weighing the pros and cons of each distribution against each other. These answers constitute the fundamental criteria upon which your decision should be based.

Is your hardware already supported by the Linux kernel? Is standard hardware being used? New and non-standard hardware present a significant set of challenges that require a very specific skill-set to overcome. The contracting of professional assistance for the bring-up stage of your project should be taken into consideration as this can save you man-months of work and future headaches. Wind River offers such assistance for their own distribution, and consultancies such as South Pole can provide assistance for the distribution of your choice.

What are the strengths of your developers? An application programmer may not feel comfortable debugging a kernel or packaging system libraries. A Java programmer may not feel comfortable working within the differing set of constraints presented by lower-level languages such as C and C++. Select a distribution that allows your development team to play to its strengths, while leaving the dirty work to the distribution developers.

Do you have an existing application that will require certain platform characteristics in order to run? A typical POSIX application, for example, will expect a set of standard libraries to be present on the system; more specialized environments, like that offered by the Android distribution, do not provide all the components of a generic distribution and may fail to meet the requirements of your application.

What level of long-term support will you require from the distribution provider? Some distributions move quickly and provide short periods of support; some distributions provide no support at all. Support always comes at a cost, so the benefits of paid-for support needs to be weighed against the costs of possibly having to create and provide security updates yourself.

Given this set of criteria, one can begin evaluating the set of available distributions. This article will present three mainstream Linux distributions for embedded devices, considered from the point of view of the aforementioned criteria.

Android
Android is quickly becoming the distribution of choice for smartphone-type devices. This
distribution has been designed from the ground up to appeal to mobile telephone manufacturers; packaging, security model, and licensing decisions have all been based on the needs of this market segment. As such, Android is by no means a standard Linux distribution. Apart from the Linux kernel that it runs atop of, Android bears little resemblance to other Linux distributions.

Android’s strength lies primarily in two key attributes: the components of the underlying system are well defined and do not vary from device to device; the Java-based application layer presents a well-defined and limited view of the platform, presenting the application developer with only one way of doing things. The distribution is supported with security fixes from Google and the Android community.

On the downside, Android requires a set of patches to be applied to the Linux kernel. If your device already uses a non-standard kernel, these patches may not cleanly apply. Furthermore, applications are intended to run in a virtual machine and many common system libraries are not included, largely limiting application development to being done in Java (at least for the time being). If you have an existing application, it likely will require a lot of work to make it run on Android, including possibly requiring a rewrite in Java.

Why choose Android? You want the ease of application development that comes with Android’s Java API; you want access to the multitude of Android applications already available today; you are using hardware that is already supported by the Android Linux kernel.

Wind River Linux
Wind River Linux (WRL) is a commercial distribution for embedded development. This is a fully-fledged distribution that presents few constraints to the application developer: a large number of architectures and platforms are supported; a complete set of system libraries is provided; and the distribution is fully modularized allowing the slimmest possible build for minimal hardware requirements.

WRL comes with all the advantages of a fully paid-for development environment. Security audits are continuously performed by competent staffers and patches are promptly made available when vulnerabilities are discovered. Full integration with the Eclipse IDE is provided, complete with second-to-none profiling and debugging tools that should make the developer more productive. When all else fails, professional support is available in several forms ranging from email assistance to taking full charge of the development of your device.

Why choose WRL? You value the professional support and assistance in bringing up your device that a paid-for distribution can provide. Your customers put a premium on the security that comes with running a brand-name software stack. You are comfortable working with Eclipse and covet high-quality development tools for profiling and debugging.

OpenEmbedded and MontaVista Linux
OpenEmbedded is in many ways comparable to Wind River’s offering: it targets a multitude of devices on a multitude of architectures. What sets OpenEmbedded’s offering apart is that it is community developed and aligns closely with Open Source software development ideals. For the experienced developer, OpenEmbedded’s unofficial support via mailing lists and IRC is fully sufficient; the strength of Open Source software lies in the community and OpenEmbedded’s aim is to leverage it fully.

OpenEmbedded is a full Linux distribution, providing the standard set of system libraries that one expects in a Linux system. Components ranging from low-level utilities to full-blown desktop technologies are readily available, and components can easily be added for the case where you want to include your own proprietary offerings. Hardware support is extensive, especially for popular commodity hardware; however, be prepared to bring in a local kernel developer to help you get your specialized device running.

For those wary of “community” projects, comfort can be had in the fact that MontaVista Linux 6 is a derivative of OpenEmbedded. Added value is provided in the form of “recipes” for building typical configurations; pre-built binaries and toolchains; and mirrored source code repositories to ensure extended availability. MontaVista Linux fills a niche for when your customers want “brand-name” and you want “community.”

Why choose OpenEmbedded? You want a “free” distribution, both in terms of license and cost; you enjoy working with the community; and you value having a full Linux distribution at your disposal. OpenEmbedded can give you the feeling of “do-it-yourself” without having to sacrifice support in the form of a community to fall back on.

The selection of a distribution will not make or break your project; yet, the decision is one with which you will have to live for the lifetime of the product. The happiness of your developers, the support requirements of your organization, and the extensibility of your product are the parameters at stake in the decision. A professional assessment of your project may assist you in making the best decision that takes into account the interests and values of all implicated parties. This is where the services of consultancies such as South Pole find their niche in the distribution ecosystem!

South Pole levererar energieffektivt kluster till KTH

South Pole levererar ett mycket kompakt och energieffektivt kluster till Parallelldatorcentrum vid KTH. Klustret består av 18 specialdesignade bladsystem med vardera tio blad och 240 processorkärnor i endast 7 rackenheter. Varje blad har fyra AMD processorer med sex processorkärnor. Klustret, som är det första av sitt slag i världen, ska användas för utvärdering av framtida plattformar inom det europeiska superdatorprojektet PRACE.