By Jonathan Corbet
September 12, 2012
Avid science fiction readers will have run across the "robot takeover"
concept more than once. In short, the human race succeeds in building
robots that are smart and powerful enough to take charge; the results are rarely
presented as being pleasant or desirable. Science fiction occasionally has a
habit of becoming reality; while it may be a bit early to proclaim the
robot apocalypse, recent events make it clear that some concern is not out
of place.
Ironically, one of those events involved a science fiction convention —
arguably the most important one on the genre's annual calendar. As Neil
Gaiman took the stage to accept a Hugo award at WorldCon, an automated
copyright enforcement system at UStream disconnected the network feed,
claiming that copyrights were being infringed. That turns out not to be
the case; the offending Dr. Who segments had been provided by the studio
for the purpose of being run before the talk, but the robot involved was
not interested in such details. Remote fans who wanted to watch the live stream
were denied the privilege in the name of protecting copyright.
Shortly after that, the national convention of the US Democratic party
was hit by a similar episode; Mars lander footage has also been denounced
by the robots in the past. Perhaps more importantly, there is a growing
list of people who lack the prominence of a major author, politician, or
interplanetary probe who have run into similar difficulties. Needless to say,
these lower-profile publishers tend to have a harder time drawing attention
to the problem or getting it fixed. Increasingly, the right to publish is
subject to the will of anonymous, semi-autonomous software that is given
veto power over any material it does not like. This does not seem like a
viable path toward greater freedom.
The free software community, arguably, does not pay as much attention to
copyright issues as it should. Copyright infringement is relatively easy
to avoid while developing software, and, as the SCO Group so kindly made
clear to the world, we are quite good at avoiding infringement. Related
issues, like ever-lengthening copyright terms, are mostly of academic
interest; whether coverage lasts for 50 or 70 years (or longer), it is hard
to imagine that today's software will be of much interest when it finally
makes its way into the public domain. So it is natural for us to worry
about things that look like more immediate threats: software patents or
new init systems, for example.
But the rise of autonomous enforcement bots raises a whole new set of
threats. If there is anything that is clear about the "intellectual
property" industry, it is that industry's willingness to use every tool and
technique available — and to try to force others into doing the same.
UStream almost certainly did not set out to be a copyright enforcer as part
of its business plan; that role was forced upon it by the entertainment
industry. There has been great pressure on internet service providers to
do the same. It is not hard to imagine aggressive enforcement bots moving
outward from the source of traffic (UStream or YouTube, say) into the
transmission path and, eventually, into the endpoints where content is
consumed.
It is also not hard to imagine that, as these bots spread across the
network, their mission will expand as well. Why be satisfied with
interfering with video distribution when there is so much more that could
be done? Certainly these bots could be charged with stopping anything that
looks like a "circumvention tool" — jailbreak kits or alternative images
for locked-down phone handsets, for example. Software that has been deemed
to infringe somebody's patents — Android, say — could be blocked.
Electronic book readers already phone home with their users' reading
habits; it would not be hard at all to block access to reading material
that lacks a commercial paper trail or that offends whatever powers
are in charge in any given area.
Much of the infrastructure for this kind of regime already exists. There is
monitoring software for central nodes, and DRM-enforcement systems for the
end nodes. And if your particular system lacks the appropriate hooks,
there are companies like FinFisher
that are happy to put monitoring and control software in place without concern
for niceties like whether the user actually wants it.
In other words, there is little that is new about what is going on except,
perhaps, the increasing role of autonomous software agents. These bots
have little concern for issues like authorized use, much less fringe
details like fair use or inappropriate copyright claims. Their use is on
the increase; more stories of ridiculous bot-driven shutdowns in the future
seem certain. It may not be the robot apocalypse, but it sure
looks like the beginning of a large amount of robot-driven obnoxiousness at
the very least.
Naturally, free software can help. We need not implement interfaces for
the use of our robot overlords in our software; indeed, we have shown
little interest in doing that in the past. When combined with true control
over our hardware, free software can, at least, give us some assurance that
our endpoints are not acting against our interests. Control over the
hardware is far from guaranteed, but the situation could have been far
worse than it actually is at the present. With luck and continued
attention and pressure, we may be able to avoid a completely locked-down
world.
Fixing the rest of the system will be harder. It is time to pay more
attention to the copyright maximalist agenda and push back. Fair use
rights must be asserted where they exist and created where they don't. The
business concerns of the entertainment industry should not drive the design
of our systems, our networks, and our international agreements. Perhaps
there should be penalties for false assertions of copyright. And so on.
The free software community interacts deeply with the copyright system. We
make full use of it in our software licenses; even permissive licenses have
requirements that are backed up by copyright law. But the system we use to
ensure the freedom of our software can also take away our freedom on other
fronts if we do not pay attention. A world where our right to express
ourselves is moderated by somebody else's software — usually very
proprietary software — is not what we have been working for.
Comments (22 posted)
By Nathan Willis
September 12, 2012
Open hardware platforms like the Arduino have turned device
development into a hobbyist enterprise in recent years, but the $20
price tag of a microcontroller board seems a lot less tantalizing when
one adds in the costs of testing and debugging it. At LinuxCon 2012
in San Diego, David Anders addressed this issue and offered some
guidance on finding and selecting tools for open hardware development,
the majority of which are open hardware themselves.
Openness and tools
"Open hardware" can mean a variety of things, from expensive
commercial products with published schematics and chip designs all the
way down to one-off experiments and home-brewed devices built from
cheap parts like the Arduino microcontroller board. What the various
definitions have in common, however, is the sharing of information,
which in turn lowers the barrier to entry for participants in the
community. But despite the "maker" movement's popularity of late, the
tools problem that accompanies it is rarely discussed. Reality is
that the hardware to build rapid-prototyping and one-off projects may
be cheap and plentiful — but the tools required to test and
debug that hardware is expensive, specialized, and proprietary.
For example, bench-top oscilloscopes start at $250 and can
go up well into the hundreds of thousands of dollars. Logic analyzers
start at around $1000. Even sticking with the low end, Anders said,
buying a tool that costs ten or one hundred times the price of the
device you are building takes some of the shine off of the process,
particularly for someone who only needs to make hardware on infrequent
occasions. Furthermore, the commercial versions of tools like the
oscilloscope are designed for use by people like electrical engineers,
and have a difficult learning curve.
On the subject of occasional use, Anders noted that although the maker
and open hardware movements are often associated with non-professional
settings (such as teaching young people about electronics or
scratching one's own project-itch), they are proving to be
a disruptive force in software circles as well. He spoke mostly about
Arduinos and similar microcontroller boards, since they are the most
popular flavor of amateur hardware development, but he made it clear
that the same issues apply to most other projects, from sensors to
embedded systems. Furthermore, he said, even if open hardware devices
are not the issue at hand, most Linux and open source software
developers will find themselves needing to build or debug a hardware
device at some point.
Despite the high sticker prices of these devices in the commercial
world, Anders said, science in general has a long history of
developing and sharing open tools — dating at least as far back
as Robert Bunsen's 1854 invention of the Bunsen burner, which he
licensed for others to make as long as they adhered to his guidelines.
Scientists have often documented their tools because their experiments
require specialized equipment, he said, and sharing that part of the
process is important for peer review and the ability to reproduce others' results.
In some ways, he said, open source software is a continuation of the
same principle: developers build and share the tools needed to get
work done. As open hardware has become more popular, a number of
projects have started to develop the tools needed to analyze and debug
devices — even if most of them are still under the radar.
Oscilloscopes
The first tool Anders looked at was the oscilloscope. The
earliest versions of the tool drew graphs on paper tape, until
CRT-based oscilloscopes took over in the 1950s — and the tool remained
essentially unchanged for the next 50 years. It reads analog voltage
signals, and displays the result as time-series data for analysis.
Recent innovations have introduced updates, he said, like LCD screens,
better portability, and built-in storage and analytics. But the core
feature set remains the primary selling point; more expensive
oscilloscopes justify their higher prices by supporting multiple
inputs, higher sample rates, higher sample resolution, and larger
frequency ranges.
With those factors in mind, Anders described three tiers of open
hardware oscilloscopes to consider. The mid-range are based on PIC
microcontrollers. There
are about ten vendors on the market, he said, with the cheapest
selling kits for $60. A typical example from Sparkfun offers 8-bit sample resolution, 1MHz
bandwidth, and memory to store 256 samples. The device can grab
screen captures of the signals it reads, and export them as bitmap
images.
An even cheaper option is Atmel AVR-based oscilloscopes, which can be had
for less than $30. Some AVR-based designs are assembled from
off-the-shelf components, and are intended to be plugged directly into
a breadboard. Consequently, at that price point they do not contain
storage memory or an attached display, but both could be added. At
the high end of the spectrum is the Nano-DSO, for around $100. The
Nano-DSO is a commercial project, but it has open source firmware that can be
modified and re-flashed. It offers a higher sampling resolution
(12-bit) than the PIC-based units, but a narrower bandwidth (200KHz).
However, it also includes a color LCD display, battery power, and a
built-in signal generator.
Dedicated hardware is not the only option, however. Anders showed two
open source software oscilloscopes, xoscillo and OsciPrime. Xoscillo
runs on Linux, Windows, and Mac OS X, and can use commercial USB
oscilloscope dongles or an Arduino (which has analog input pins
built-in) to read signals. OsciPrime is an Android application, and
can read signals from probes connected to the Android device's
microphone port.
Logic analyzers
The logic analyzer is a tool that evolved from the oscilloscope, Anders
said. Its purpose is not to monitor the shape of signals, but to
analyze their timing — particularly to capture and decode
digital signals. For that usage, they typically offer far more probes
than an oscilloscope, which increases the cost. Commercial models
cost thousands of dollars, an amount most people cannot see investing
in their home projects.
The most do-it-yourself friendly option is the Open
Bench Logic Sniffer,
which can read 32 simultaneous input channels at up to 70MHz. The
Open Bench Logic Sniffer can be found for around $50. The same
company also offers the Logic
Shrimp, a more modest model with four input channels and a 20MHz
maximum sampling speed. The lower specifications make the Logic
Shrimp a $35 tool, Anders said, but it is more than adequate for
sampling I2C, SPI, RS-232, and other low-speed connections. Both are
USB peripherals designed to be compatible with the open source SUMP analyzer
software.
There are also several open hardware logic analyzer boards based on
microcontrollers, including FX2-based models ranging in price from $20
to $150, MSP430-based models ranging from $25 to $35, and AVR-based
models ranging from $35 to $50. Some of these latter options include
built-in displays, but for the most part the open hardware logic
analyzer community relies on PC-based software to display the signals
and to decode the protocols within them.
The major player in open source logic analysis software is Sigrok, Anders said. It supports a wide
range of hardware devices and is growing by leaps and bounds, he said,
so it is worth keeping on the radar even if your hardware is not
supported at the moment. One of Sigrok's major selling points is that
it is easily extended. It provides an API for writing protocol
decoders in Python, and the project maintains a lengthy list of protocols
it understands. Even those protocols for which there is no decoder
can still be captured as raw signals, of course.
In addition to Sigrok, the Logic
Sniffer application is the other major open source software
option. It was written to support the Open Bench Logic Sniffer
(extending SUMP's feature set), but has expanded to cover additional
hardware devices.
Other tools
Anders concluded the talk with a question-and-answer session that
covered several other hardware tool topics. The Bus Pirate,
for example, is a device designed to provide a serial port interface
to a variety of chips, and even program serial ROMs. Anders said that
he omitted the Bus Pirate from his main discussion because it is not
primarily designed to perform oscilloscope or logic analyzer
functions. It can be used to perform some of the same tasks, but it
makes those tasks more difficult than do the other tools.
Similarly, when another audience member asked about JTAG tools, Anders
observed that the are several open tools on the market. In addition,
the Bus Pirate hardware can even be re-flashed with different firmware
so that it functions as a JTAG interface.
Anders also alluded to support for automotive communication buses as a
feature of Sigrok. Another member of the audience asked whether that
support included Controller Area
Network (CAN) bus, one of the leading automotive buses, and one
for which PC interfaces are expensive. CAN bus uses differential
logic, Anders explained, which requires a transceiver module to
convert the signal into generic GPIO. However, the actual parts
involved are not expensive, he said, so amateurs can build an
interface that allows them to read CAN bus traffic with Sigrok.
Ultimately, Anders's talk only had enough time to conduct a survey of
the available options for hardware development tools, rather than
provide in-depth comparisons. But it was still a valuable session;
most of the attendees at an event like LinuxCon come from the software
realm — but as Anders said, most of them will (at one time or
another) need to build or debug a hardware device. Having an
alternative to the high prices of professional equipment is nice, but
having an alternative that respects the same ideals as Linux and open
source software is even better.
Comments (9 posted)
September 12, 2012
This article was contributed by Josh Berkus
PostgreSQL version 9.2
was released on September 10th, with many enhancements that web application developers—and companies who host web applications—are excited about. One of the most excited is Ruby on Rails and PHP application host Engine Yard, who recently switched its default database option from MySQL to PostgreSQL. Combined with recent data on database migrations, Engine Yard's switch of databases signifies a sea change in the long rivalry between PostgreSQL and MySQL, as well as in Ruby on Rails development.
For coverage of the PostgreSQL 9.2 features, see the LWN article on PostgreSQL 9.2 Beta.
For information about the switch, I interviewed Engine Yard Lead Data
Engineer Ines Sombra. But first, some background. Readers who are already
familiar with Rails, MySQL, and PostgreSQL can skip down to the interview.
Ruby on Rails and MySQL
Ruby on Rails is a full-stack web
framework, based on automated code generation. Rails is implemented in Ruby, a programming language which
existed for ten years before Rails was introduced in 2004. It's "full
stack" because it handles all parts of a web application above the database
and operating system level, including querying the database, generating HTML pages, and responding to HTTP requests.
Rails has become one of the top five web development platforms because of
its rapid and beginner-friendly web application building. The
centerpiece of this is a code-generation engine, which creates the initial
"scaffolding" for the web application developer, using the
Model-View-Controller (MVC) design pattern, saving the developer a lot of
time by handling many of the repetitive tasks that are normally required. The simplest Rails applications perform what is known as CRUD, for Create, Read, Update, and Destroy records in a database.
Early Rails supported only the MySQL database system, since it was regarded
as the simplest, most developer-friendly SQL database available. That
allowed developers to focus on keeping all of the application logic inside Rails. While there were early attempts to introduce PostgreSQL support, none of them really caught on until Rails 3.0 was released, so the vast majority of Rails developers used only MySQL through 2010.
Rails hosting, Engine Yard, and Heroku
While Rails made creating and developing a web application much easier than
before, it did nothing to reduce the difficulty of hosting a web
application. If anything, the highly dynamic nature of Rails makes it one
of the most resource-consumptive web frameworks, requiring skill and
experience in deployment, scaling, and uptime maintenance. Recognizing
this dichotomy in 2006, Tom Mornini, Lance Walley, and Ezra Zygmuntowicz
founded Engine Yard, a "fully managed web host" or "cloud host" for Rails projects. Engine Yard allowed the developer to just write code, and leave installation, scaling, and uptime to others — for a monthly hosting fee.
Initially, Engine Yard supported only MySQL for data storage, and
hired a large, expert MySQL team to manage thousands of
MySQL databases. Engine Yard built a sophisticated "database as a service" infrastructure on MySQL to support its customers. As the number one Rails hosting option, this meant that the majority of hosted Rails applications were not just on MySQL, but on Engine Yard's MySQL.
However, a year after Engine Yard launched, another team of
entrepreneurs founded
a competing Rails hosting service: Heroku.com. Heroku introduced a Git-centric
model of application deployment that appealed to startups practicing agile
development, and by 2010 it had grown into a strong competitor to
Engine Yard for Rails users. Unlike Engine Yard, Heroku used PostgreSQL as
its default—originally its only—database for customers. Heroku began
promoting PostgreSQL among Rails developers and its user base,
culminating with the introduction of a
PostgreSQL cloud hosting service this year.
Today, both Engine Yard and Heroku support additional platforms, such
as PHP, Python, and Java, in addition to Rails.
Migrations from MySQL to PostgreSQL
In April of this year, Engine
Yard introduced PostgreSQL 9.1 as an option for its users. In August,
Engine Yard announced that, with the release of PostgreSQL 9.2, it would become the default database option for new applications.
Engine Yard's users are not alone in migrating from MySQL to PostgreSQL.
451 Research recently released a subscription-only study, called "MYSQL
VS. NOSQL AND NEWSQL: 2011-2015", that looked at
tech sector MySQL users and their plans two years after the Oracle
acquisition. For the one out of six MySQL users planning to migrate away
from MySQL, the most popular option is PostgreSQL. In the Rails community, Planet Argon found that 60% of Rails developers now preferred PostgreSQL, up from 14% just three years ago.
Interview with Ines Sombra
To fill us in on the details of Engine Yard's move from MySQL to
PostgreSQL, I interviewed Ines Sombra. Ines, who was born in Argentina,
became a Rails developer and enthusiast while working at Engine Yard.
Josh: What's your role at Engine Yard?
As the Lead Data Engineer, I'm fortunate to work with a
fantastic cross-functional team of engineers and DBAs [database administrators] to formulate Engine Yard's data storage strategy. We help customers meet their data needs and develop products to bring emerging data storage technologies into our platform. Our work also includes maintenance of all supported databases.
Josh: What was the primary motivation for Engine Yard to offer PostgreSQL support?
Our primary motivation is to provide an extensive and robust stack and give our customers a wide array of excellently supported choices. MySQL had traditionally been our only supported database on Engine Yard Cloud but we decided to expand our stack with PostgreSQL to provide:
- Feature parity with Engine Yard Managed where PostgreSQL has always been supported.
- Access to flexible and reliable replication modes: Streaming replication and hot standby in major version 9.0 were huge. Hot standby, in particular, was one of the final points of oft-asked-for, and needed, feature parity with MySQL.
- Rails 3.1 came out with significant performance enhancements using PostgreSQL's prepared statements.
- Versatility of natively supported features like full-text search, geolocation, and foreign data wrappers reducing the need for third party tools in our clients' deployments.
- Outstanding third party support options for our customers, both commercially and from the PostgreSQL community.
PostgreSQL also was internally loved, since the majority of our internal applications are already running on Postgres. We truly believe that PostgreSQL is the future of relational open-source databases and we are happy to provide our customers with great support for it.
Josh: Do you expect Engine Yard customers currently using MySQL to migrate to the new PostgreSQL databases?
We do, a few of our largest customers (with established MySQL applications) have already inquired about the feasibility of migrating to PostgreSQL. We are working with them to address their needs and find ways to better perform these types of migrations.
While we will always support customers using MySQL, we expect the number
of new PostgreSQL applications to grow as the new default makes it
easier than ever to get started.
Josh: What was the timeline of this change? How long did it take?
It took us a little over a year to roll out our new PostgreSQL infrastructure. We started in Q2 2011 and our release schedule included both 9.0 and 9.1 versions ...
Our early PostgreSQL 9.0 release was amongst the most popular we've ever had. Customers started using it in production applications immediately, so we accelerated our engineering processes to better serve their requirements. Within 4 months after 9.1 became available in our platform we were able to make it our new default database.
Josh: What were the biggest technical obstacles you encountered in deploying a PostgreSQL infrastructure, and how did you solve them?
We didn't encounter major technical obstacles per se, but rolling out PostgreSQL support helped us restructure and enhance some of our existing architecture and processes. Here are a few of the notable changes:
Redefined Assumptions: We have traditionally been a MySQL shop and our product made assumptions based on the existence of a MySQL database. Our tests and continuous integration suite assumed that every new environment would have a MySQL database associated with it. Defaulting to PostgreSQL in our codebase allowed us to introduce the concept of a new default. We were able to break away from dependencies by refactoring tests and redefining what we expect from customer environments.
Allowed Extensions: PostgreSQL has a rich extension ecosystem and we want to encourage our customers to explore it. Engine Yard Cloud customers have dedicated instances that can be further customized by applying custom Chef recipes. We provide a way to enable over 30 available extensions on PostgreSQL environments. We curate this repository for all supported versions of PostgreSQL and continually add new extensions based on customer requests. PostGIS and hstore have been the most popular extensions installed.
Standardized Architecture: Engine Yard Cloud sits on top of AWS [Amazon Web
Services] and we rely
on EBS [Elastic Block Storage] volumes for database persistence. Unfortunately, snapshots taken on
32-bit [PostgreSQL] instances cannot be used on volumes mounted in 64-bit architectures. Customers with PostgreSQL databases had to dump and restore their data in order to vertically scale to bigger instance sizes. We solved this problem by rolling out 64-bit instance types for small and medium sizes and defaulting all databases to use a 64-bit architecture.
Ease of Upgrades and DR [disaster recovery]: At the moment we are working to make the process of transitioning between database versions easier and more automated. We are looking at tools (like repmgr) that would allow us to replicate across versions and environments. One of our high priority items is to roll out PostgreSQL 9.2 support based on best practices we've learned along the way and allow customers to upgrade with minimal impact.
Josh: Which 9.2 features are Engine Yard users most interested in, and why?
We are very excited about the features that are included in the PostgreSQL 9.2 release. We think our customers will be particularly interested in native JSON support, covering indexes, replication and performance enhancements.
Over the last year, we have seen an increase in the use of document-oriented databases like MongoDB. With native JSON support, developers have access to the schema flexibility of NoSQL databases while continuing to enjoy the ACID guarantees, operational simplicity, and transactional efficiency of PostgreSQL.
JSON validation in the database helps simplify application logic and ensures that any client that connects to the database will have a consistent way to manipulate and save this type of data. We think this feature alone will be a great upgrade motivator and are looking forward to seeing it live.
[Josh Berkus is a member of the PostgreSQL Core Team.]
Comments (14 posted)
Page editor: Jonathan Corbet
Security
Matthew Garrett gave the opening keynote at the 2012 Linux Security Summit
on his new "favorite" topic: UEFI Secure Boot. Up until about a year ago,
he was working on power management for the Linux kernel, but at LinuxCon in
Vancouver he found out about the requirement that systems shipping with the
Windows 8 logo would be required to have Secure Boot enabled. He "ended up
drinking quite a lot that week", he said, but things are not quite as bad
as he had thought at first. Contrary to his initial fears, users will be
able to boot Linux on hardware certified for Windows 8.
UEFI Overview
Garrett began with an overview of UEFI, noting that it is a replacement for
the legacy PC BIOS. Its role is to initialize the hardware and to provide
services to the bootloader for tasks like discovering hardware. It is the
"least relevant 16MB of code you will ever encounter", he said. The code
is mostly open and available from Intel under a BSD license. There is also
some
proprietary, machine-specific code to program memory controllers. The
firmware vendors add their own code for "3D UIs"; those vendors also "add
bugs of course". There is a surprisingly good compatibility suite and
there are regular plugfests to ensure that the UEFI implementations
can boot a variety of operating systems.
There are some relevant differences between UEFI and BIOS. To start with,
UEFI firmware can read
filesystems. The standard only requires VFAT support—and Microsoft
grants a
patent license for UEFI implementations. The bootloader is now an
executable in PE/COFF format like Windows binaries. There is also
non-volatile flash storage available where things like the location of the
bootloader and parameters to pass to it can be stored.
When a computer is turned on, the firmware runs first, followed by a
bootloader, which loads the operating system (OS). Traditionally, malware has
targeted the OS, but vendors, particularly Microsoft, have gotten very
aggressive at cutting down the OS as a target. Windows 8, for example,
will load a virus checker very early on, before even some of the drivers
are loaded, Garrett said.
Given that, we are seeing malware move away from the OS. Instead of
"rootkits" we are starting to see "bootkits". For BIOS-based systems, the
easiest way to install boot-time malware is to replace the master boot
record (MBR). Once that's done, the bootloader can no longer be trusted
(as the MBR will point to a malicious version), and the bootloader can
change the OS when it loads it. The malware can then intercept attempts to
verify the MBR by returning a "clean" copy, making it difficult to detect
the compromise.
The key thing to note, Garrett said, is that if you are running untrusted
code at any level, you can't trust the code at a higher level. UEFI Secure
Boot is an attempt to fix the problem of bootkits. A header section is
added to bootloaders (or other binaries) to contain signed hashes of the
contents.
The firmware will only launch binaries with a valid hash signed by a
trusted key. It uses the same cryptographic algorithms that are used by
Secure Sockets Layer (SSL), so there is no reason to believe that Secure
Boot is insecure, other than the fact that it will be implemented by
firmware vendors, he said.
Key management
For managing the keys, there are four databases in the firmware's flash.
With UEFI, it will no longer be possible to write to that flash directly,
instructions from x86 system management mode (SMM) will need to be used
instead. The first database, "dbx", will contain keys and hashes that will
always be rejected by the firmware. If a binary's hash is in dbx or if
the key used to sign that hash is present, the firmware will not run it.
The "db" database contains keys and hashes that will be accepted,
but entries in dbx override those in db. After the October launch of
Windows 8, standard systems will contain the manufacturer's key and
Microsoft's key in db.
Vendors will want to enable Secure Boot so that
they can access marketing money from Microsoft for promoting the hardware
as "Windows 8 compatible". The margins on a laptop are "pennies", Garrett
said, so the marketing money makes a big difference.
Being able to blacklist keys is an important part of the design of Secure
Boot. Keys that have been used to sign malware or to sign other,
non-malicious software
that can be exploited can be disabled.
The other two databases are the "kek" (key exchange key), which stores keys that can be used
to sign updates to db or dbx, and the "pk" (platform key) which can sign
kek updates. Installing a pk causes the transition from "setup mode" to
Secure Boot mode. Normally, the pk will be a hardware vendor key, which
will be used to sign the update to the kek, which is where the Microsoft
key will reside. This protects the vendor from Microsoft losing control of
its key, because they could (in some unspecified way) have their customers
update the kek using their key. If the private half of the key in the pk
leaks, Secure Boot is no longer secure on those systems.
The UEFI specification defines the technical details of Secure Boot, but
does not specify any particular policy with regard to how it is used. But
Microsoft has specified policies for systems that want to get
Windows 8 certification. For those, Secure Boot must be enabled by
default, and the Microsoft key must be present. In January, Microsoft
added the requirement that a physically present user must be able to
disable Secure Boot and install their own keys—but only for x86-based
systems, not those that are ARM-based.
An audience member asked if there was "any hope" of that requirement
changing for ARM. Right now, Garrett said, ARM systems with Windows 8
certification must not allow disabling Secure Boot or adding
user-specified keys. Whether ARM-based system vendors will actually pursue
that certification is an open question since the Windows on ARM market "doesn't
exist" at this point.
Linux on Secure Boot
To boot Linux on a Secure Boot system, there needs to be a signed
bootloader. "Distasteful though it might be", the only sensible way to do
that is to get Microsoft to sign it. One can set up an account with
Verisign, pay some money, and get access to the Microsoft signing system.
From there, you upload a binary, and a get a signed object back a day
later. Because of the way headers are added with the signatures, you can
still verify that it is your binary, rather than something that has been
modified by Microsoft.
Once that signed bootloader has been run, it could do anything. But there
are or could be consequences if it does.
The signed bootloader stops malware from being inserted between the
firmware and the bootloader. But, there is no way for code to determine if
it is really running in Secure Boot mode. That is one difference
between Secure Boot and Trusted Boot; the latter adds attestations that can
prove the running code is what it says it is. In Secure Boot, one can ask
the firmware if it is enabled, but there is no way to trust the answer unless
the code at each level can be trusted.
In order to be able to extend trust to the higher-levels, those pieces
(e.g. kernel, drivers) must be signed as well. But there is more to it
than that, whatever signed kernel that runs must not be usable to run unsigned privileged
code.
One of the problem areas is kexec(), which allows replacing a
running kernel with a new kernel. It is like booting the new kernel, but
without going through the hardware initialization (thus Secure Boot) step.
But, kexec() could
be used to boot Windows instead, which would allow an attacker to create a
malicious Windows that boots on Secure Boot hardware. It would use the
signed Linux bootloader and kernel, but kexec() into the mal-Windows. If that were
to happen, Garrett said, Microsoft would blacklist the bootloader.
"Apparently, our management was not enthusiastic" about that possibility,
he said.
So, signed kernels require some changes to support Secure Boot. That means
doing things like disallowing kexec() and restricting the ability
of user space programs to cause hardware devices to perform
direct memory access (DMA). The latter mostly affects graphics
hardware that does not have support for kernel mode setting (KMS).
In the past, there was this idea of a separation between regular users and
root. The idea was to prevent people from elevating their privileges to
those of the root user, and protecting the kernel from root was not
particularly important. That is no longer the case in the Secure Boot
world. Root is no longer trusted, only the physically present user, who
may not be the same as root, is trusted.
There are other things that will need to be handled to avoid signed kernels
from "attacking" Windows. Garrett said that Kees Cook mentioned
hibernation images recently as a vector for attack. When a user resumes
from a suspend-to-disk, memory contents are read from disk. A crafted
hibernation image could subvert the protections, so unless some other
solution is found, hibernation will need to be disabled. That's fine,
"because it doesn't really work in Linux anyway", he said.
Plan of attack
The plan is to create a trusted first-stage "shim" bootloader that will be
signed with the Microsoft key. Because free software tends to change
frequently, and it is desirable to avoid getting things signed all the
time, having the shim, which should change infrequently, makes sense. The
full bootloader is then signed with a distribution-specific key. Kernels
and modules would also be signed with that key, or with a key already in
the firmware key databases. If a user wants to sign their own kernels or
modules, they can put their own key in the firmware.
Instead of adding keys to the four databases established by UEFI, SUSE came
up with a way to add keys from the bootloader (which cannot access the key
databases) to a secure location in the firmware. There are UEFI boot
services variables that are only available to the boot environment. Using
those to store keys will allow the bootloader to update them, when prompted
by physically present users. Doing so from the bootloader avoids the
problem of having to try to figure out and document how to add keys using
the vendor-specific UEFI firmware set up tools. So far, that code does not
exist, but SUSE is working on it, he said.
The management of thousands of systems requiring physically present users
is "not a solved problem", he said in response to a question. There is the
belief that those who are buying many systems will be able to convince
vendors to ship their hardware in setup mode (with no keys) or to put
custom keys into the firmware.
There are still some outstanding questions, including how to handle
third-party module signing (e.g. for NVIDIA drivers). There could be some
kind of Linux certificate authority (CA), but no one has stepped up to run
such a thing. It would cost "at least millions" to set up and run, plus
probably more than a year to get going, so "no one is jumping up and down
to do this", he said. There is the possibility that third parties could
have their modules signed by Microsoft or there could be some way to have
the bootloader
prompt for the installation of third party keys. Red Hat and other vendors are
not inclined to sign third-party modules because of licensing issues and
that it could be seen as an endorsement of binary-only modules.
Early on in the process of sorting out Secure Boot issues, there was
concern that GPLv3 (which is the license for the GRUB2 bootloader) would
require the signing keys to be disclosed. Garrett
said that he and others had worked with the FSF on that problem. The
conclusion that was reached is that the signing keys are not required to be
disclosed as long as users can install their own keys, which they will be
able to do.
In the final analysis, Secure Boot is "much less bad than it could be",
Garrett said. It will increase the security of Linux "somewhat", but is
mostly for increasing the security of Windows. As long as we are careful
not to get our keys blacklisted (by allowing signed kernels to attack
Windows), it won't seriously impede Linux in the future.
Comments (92 posted)
Brief items
"Never again." It is as simplistic as it is absurd. It is as vague as it is damaging. No two words have provided so little meaning or context; no catchphrase has so warped policy discussions that it has permanently confused the public's understanding of homeland security. It convinced us that invulnerability was a possibility.
The notion that policies should focus almost exclusively on preventing the next attack has also masked an ideological battle within homeland-security policy circles between "never again" and its antithesis, commonly referred to as "shit happens" but in polite company known as "resiliency." The debate isn't often discussed this way, and not simply because of the bad language. Time has not only eased the pain of that day, but there have also been no significant attacks. "Never again" has so infiltrated public discourse that to even acknowledge a trend away from prevention is considered risky, un-American. Americans don't do "Keep Calm and Carry On." But if they really want security, the kind of security that is sustainable and realistic, then they are going to have to.
--
Juliette Kayyem
The Sept. 11 memorial’s designers hoped the plaza would be “a living part”
of the city—integrated into its fabric and usable “on a daily basis.” I
thought that sounded nice, so I asked [Bruce] Schneier one last question. Let’s say we dismantled all the security and let the Sept. 11 memorial be a memorial like any other: a place where citizens and travelers could visit spontaneously, on their own contemplative terms, day or night, subject only to capacity limits until the site is complete. What single measure would most guarantee their safety? I was thinking about cameras and a high-tech control center, “flower pot”-style vehicle barriers, maybe even snipers poised on nearby roofs. Schneier’s answer? Seat belts. On the drive to New York, or in your taxi downtown, buckle up, he warned. It’s dangerous out there.
--
Mark Vanhoenacker
The combination of expansive content rights with automated content analysis systems -- unable to really deal appropriately with public domain materials and fair use -- has created a tightening noose that could ultimately squeeze much of the life out of ordinary user-created video content. Even if we stipulate that the current apparent skewing of these systems toward the powerful content giants is the result of practical and technical considerations, rather than any particular policy imperatives, such a viewpoint doesn't help us escape from this rapidly coagulating, stultifying dilemma.
--
Lauren Weinstein
Comments (8 posted)
Julien Tinnes
describes
the new sandbox mechanism for the Chrome browser under Linux.
"
In a similar, but very limited, fashion, this is what we have now in
Chrome: we stacked the seccomp-bpf sandbox on top of the setuid
sandbox. The setuid sandbox gives a few easy to understand semantic
properties: no file system access, no process access outside of the
sandbox, no network access. It makes it much easier to layer a seccomp-bpf
sandbox on top."
Comments (5 posted)
New vulnerabilities
beaker: information disclosure
| Package(s): | beaker |
CVE #(s): | CVE-2012-3458
|
| Created: | September 10, 2012 |
Updated: | September 12, 2012 |
| Description: |
From the Debian advisory:
It was discovered that Beaker, a cache and session library for Python,
when using the python-crypto backend, is vulnerable to information
disclosure due to a cryptographic weakness related to the use of the
AES cipher in ECB mode.
Systems that have the python-pycryptopp package should not be
vulnerable, as this backend is preferred over python-crypto. |
| Alerts: |
|
Comments (none posted)
dnsmasq: DNS proxy is wrongly created
| Package(s): | dnsmasq |
CVE #(s): | CVE-2012-3411
|
| Created: | September 12, 2012 |
Updated: | March 11, 2013 |
| Description: |
David Woodhouse reports:
It seems that your dnsmasq instance is listening on that address, but *not* correctly discarding packets which come from a different interface. Even though the --bind-interface option is set. See the Red Hat bugzilla for more information. |
| Alerts: |
|
Comments (none posted)
freeradius: code execution
| Package(s): | freeradius |
CVE #(s): | CVE-2012-3547
|
| Created: | September 12, 2012 |
Updated: | January 14, 2013 |
| Description: |
From the Debian advisory:
Timo Warns discovered that the EAP-TLS handling of freeradius, a
high-performance and highly configurable RADIUS server, is not properly
performing length checks on user-supplied input before copying to a local
stack buffer. As a result, an unauthenticated attacker can exploit this
flaw to crash the daemon or execute arbitrary code via crafted
certificates. |
| Alerts: |
|
Comments (none posted)
ghostscript: code execution
| Package(s): | ghostscript |
CVE #(s): | CVE-2012-4405
|
| Created: | September 12, 2012 |
Updated: | April 10, 2013 |
| Description: |
From the Red Hat advisory:
An integer overflow flaw, leading to a heap-based buffer overflow, was
found in Ghostscript's International Color Consortium Format library
(icclib). An attacker could create a specially-crafted PostScript or PDF
file with embedded images that would cause Ghostscript to crash or,
potentially, execute arbitrary code with the privileges of the user running
Ghostscript. |
| Alerts: |
|
Comments (none posted)
GraphicsMagick: denial of service
| Package(s): | GraphicsMagick |
CVE #(s): | CVE-2012-3438
|
| Created: | September 7, 2012 |
Updated: | March 26, 2013 |
| Description: |
From the Red Hat advisory:
"As this function stands, it invisibly does the wrong thing for any request
over 4GB. On big-endian architectures it very possibly will do the wrong
thing even for requests less than that. So the reason why the hard-wired 4GB
limit prevents a core dump is that it masks the ABI mismatch here."
So basically we have memory allocations problems that can probably lead to a
denial of service. |
| Alerts: |
|
Comments (none posted)
mahara: cross-site scripting
| Package(s): | mahara |
CVE #(s): | CVE-2012-2237
|
| Created: | September 10, 2012 |
Updated: | September 12, 2012 |
| Description: |
From the Debian advisory:
Emanuel Bronshtein discovered that Mahara, an electronic portfolio,
weblog, and resume builder, contains multiple cross-site scripting
vulnerabilities due to missing sanitization and insufficient encoding
of user-supplied data. |
| Alerts: |
|
Comments (none posted)
pnp4nagios: information disclosure
| Package(s): | pnp4nagios |
CVE #(s): | CVE-2012-3457
|
| Created: | September 12, 2012 |
Updated: | September 12, 2012 |
| Description: |
From the CVE entry:
PNP4Nagios 0.6 through 0.6.16 uses world-readable permissions for process_perfdata.cfg, which allows local users to obtain the Gearman shared secret by reading the file. |
| Alerts: |
|
Comments (none posted)
rpmdevtools: symlink attack
| Package(s): | rpmdevtools |
CVE #(s): | CVE-2012-3500
|
| Created: | September 12, 2012 |
Updated: | April 10, 2013 |
| Description: |
From the Red Hat bugzilla:
A TOCTOU race condition was found in the way 'annotate-output' (used to execute a program annotating the output linewise with time and stream) tool of rpmdevtools, a suite of scripts and (X)Emacs support files to aid in development of RPM packages, performed management of its temporary files used for standard output and standard error output. A local attacker could use this flaw to conduct symbolic link attacks, possibly leading to their ability in an unauthorized way to alter files belonging to the user running the 'annotate-output' tool. |
| Alerts: |
|
Comments (none posted)
trousers: denial of service
| Package(s): | trousers |
CVE #(s): | CVE-2012-0698
|
| Created: | September 7, 2012 |
Updated: | November 23, 2012 |
| Description: |
From the Red Hat advisory:
This update closes a small security issue where a remote user could crash tscd if it were enabled for networking. This update also has improved init scripts which should make it load quicker. |
| Alerts: |
|
Comments (none posted)
ubiquity-slideshow-ubuntu: code injection
| Package(s): | ubiquity-slideshow-ubuntu |
CVE #(s): | CVE-2012-0956
|
| Created: | September 10, 2012 |
Updated: | September 12, 2012 |
| Description: |
From the Ubuntu advisory:
Paul Mutton discovered that ubiquity-slideshow-ubuntu incorrectly handled
the Twitter feed displayed during system installation. A remote attacker
could use this flaw to inject code into the Twitter feed and read arbitrary
files off the filesystem during system installation. This flaw has been
resolved in the Ubuntu 12.04.1 LTS installation images by disabling the
Twitter feed. |
| Alerts: |
|
Comments (none posted)
Xen: multiple vulnerabilities
| Package(s): | Xen |
CVE #(s): | CVE-2012-3494
CVE-2012-3495
CVE-2012-3496
CVE-2012-3498
CVE-2012-3516
|
| Created: | September 7, 2012 |
Updated: | September 18, 2012 |
| Description: |
From the SUSE advisory:
A malicious guest could cause a crash on the host which leads to a Denial of Service (CVE-2012-3494).
A memory corruption related to PHYSDEVOP_get_free_pirq function could lead to
a Denial of Service of the host or potentially to execution of arbitrary code (CVE-2012-3495).
A BUG can be triggered via calling functions with invalid flags which causes
a Denial of Service (host crash) (CVE-2012-3496).
A malicious guest kernel could crash the host or potentially read hypervisor
or guest memory (CVE-2012-3498).
Unspecified vulnerability (CVE-2012-3516). |
| Alerts: |
|
Comments (none posted)
xen-qemu: privilege escalation
| Package(s): | xen-qemu-dm-4.0 |
CVE #(s): | CVE-2012-4411
|
| Created: | September 10, 2012 |
Updated: | November 20, 2012 |
| Description: |
From the Debian advisory:
The qemu monitor was enabled by default, allowing administrators of
a guest to access resources of the host, possibly escalate privileges
or access resources belonging to another guest. |
| Alerts: |
|
Comments (none posted)
Page editor: Jake Edge
Kernel development
Brief items
The current development kernel is 3.6-rc5,
released on September 8. "
So
3.6-rc5 is out there, and everything is looking fairly calm. Too calm, in
fact, I'm waiting for the other shoe to drop, when Greg finally crawls his
way out from under his mailbox after the kernel summit and kayaking. I
suspect a few other developers may also have been quiet because of the
kernel summit and related travel."
Stable updates: 3.2.29 was released
on September 12 with the usual set of important fixes.
Comments (none posted)
This is not the linux-kernel mailing list; you do not get to be
rude just because you feel grumpy, disagree with someone else's
reasoning, or drank decaf by accident.
—
Bryan O'Sullivan
The legal rights to kernel code of course belong to the kernel
developers, who are actively working to undermine
enforcement. That's not in question here; as frustrating as it is,
this is their legal right.
The moral rights to the code, on the other hand, belong to every
member of the public who, if the GPL were being properly enforced
on the kernel, would have the right to obtain and use this code to
enable them to use previously-unsupported hardware with Linux.
—
Rich Felker
Comments (none posted)
Kernel development news
Trond Myklebust led a discussion on day one of the 2012 Kernel Summit on how
to improve the kernel maintainer model. He started with a comment from
Thomas Gleixner that for 21 years the kernel development community has
focused on scaling Linus, but has been rather slower in scaling the
subsystem maintainer role. By this time, Linux is no longer a hobbyist
project, and after 21 years it's probably time to focus more on scaling the
maintainer role.
Trond noted that the kernel maintainer role is a mishmash that includes
software architect, developer, reviewer, patch monkey, and software
maintainer. In the context of a corporate project, these roles are
typically held by multiple people. Trond noted that the maintainer role is
to some extent already informally split, since we have reviewers, bug
fixers, developers, and so on. However, he was interested to know whether
it makes sense to give maintainers greater freedom to (formally) split out
some of these roles, and if so, he requested that there should be a
mechanism for formally recognizing this in the community (for example, via
suitable annotation in the MAINTAINERS file).
One of the participants asked: what barriers keep somebody from taking on some of a maintainer's work? In response, Ted Ts'o indicated that there is no simple answer to that question, noting that kernel developers tend to set a higher bar for people with whom they have no history, whereas they set a lower bar (in terms of the kinds of changes that they permit) for people who have demonstrated a longer-term commitment to the code. "It's a human nature thing."
The conversation meandered over various topics. Along the way, Paul
Gortmaker noted that the Documentation/SubmittingDrivers file
could do with an update to align with current practices. Dave Jones noted
that, likewise, REPORTING-BUGS could do with an update. In amongst
the other discussion Linus noted that code that needs to go into two
subsystems should be placed in a tree of its own that both subsystems can
pull from, since the alternative (placing the code in one of the trees)
create confusion when dealing with patches.
The discussion did not reach any definite conclusions about the
maintainer role. However, it's clear that several maintainers are
conscious that just as there was a need to improve Linus's scalability
several years ago, the ever-increasing scale of the Linux kernel project
means that now the subsystem-maintainer role could do with some scalability
improvements of its own.
Comments (none posted)
In a short session toward the close of day one of the 2012 Kernel Summit,
Greg Kroah-Hartman, the maintainer of the stable kernel series, relayed one
of his concerns about the stable kernel and sought questions and feedback
from those present.
Greg stated that he had just one thing to complain about: subsystems
that are not marking patches for stable. Here, Greg mentioned a few of
those subsystems, and at the same time singled Dave Miller out for praise,
noting that Dave was doing a lot of "heavy lifting" for networking. Greg
then opened the session for feedback from others about stable kernel
management.
Ted Ts'o noted "I'd love to be able to mark some less urgent
patches as 'stable-deferred', so that if people discover regressions, I
have a chance to pull them back." Greg said that that he would
try to implement this functionality, as it is a good idea.
A few people wanted to understand more clearly the criteria that
determine whether a patch should be sent for the stable series, and others
noted that there seemed to be some latitude as to what Greg considered to
be an acceptable patch. Greg acknowledged the latter point, with the
statement that he trusted subsystem maintainers to make the call about what
patches should be sent to stable@vger.kernel.org. As far as
choosing which patches should be sent into stable, people were of
course reminded of Documentation/stable_kernel_rules.txt
and the summary rationale for stable: if the patch would be of
interest for distributions aiming to produce a stable kernel for a
distribution release, then that patch should be submitted to
stable.
James Bottomley stated that he got a lot of patches for SCSI that don't
apply to the stable kernel, so he strips the stable tag from them. He
asked: "what should be done in that case?" Greg answered that
he should leave that tag on, and then respond to the automated email he
will get when the patch fails to apply to the stable kernel tree with the
correct patch for that older kernel tree.
Greg concluded by asking whether the current release pace of the stable
series was okay. There was general agreement that the pace—a release
every one to two weeks—was good, and many people expressed
appreciation for the excellent job Greg is doing on the stable kernel.
Comments (none posted)
Day one of the 2012 Kernel Summit saw a discussion on improving kernel
tracing and debugging, led by Jason Wessel and Steven Rostedt. Jason's
particular interest was how to get better tracing information from users
who send in reports for kernel crashes.
Most of the session focused on Jason's proposal for kernel changes
that would allow source line numbers to be displayed as part of the
backtrace that is provided in the event of a kernel crash, so as to allow
easier diagnosis of the source of the crash. The proposed technique is
implemented by including ELF tables with the necessary symbol information
in the compiled kernel. With Jason's patches, use of this feature is
straightforward: the kernel is configured with
CONFIG_KALLSYMS_LINE_LOCATIONS enabled and built with debugging
information included. Once that is done, then events such as kernel panics
will generate a call trace that includes source
file names and line numbers:
Call to panic() with the patch set
----------------------------------
Call Trace:
[<ffffffff815f3003>] panic+0xbd/0x14 panic.c:111
[<ffffffff815f31f4>] ? printk+0x68/0xd printk.c:765
[<ffffffffa0000175>] panic_write+0x25/0x30 [test_panic] test_panic.c:189
[<ffffffff8118aa96>] proc_file_write+0x76/0x21 generic.c:226
[<ffffffff8118aa20>] ? __proc_create+0x130/0x21 generic.c:211
[<ffffffff81185678>] proc_reg_write+0x88/0x21 inode.c:218
[<ffffffff81125718>] vfs_write+0xc8/0x20 read_write.c:435
[<ffffffff811258d1>] sys_write+0x51/0x19 read_write.c:457
[<ffffffff815f84d9>] ia32_do_call+0x13/0xc ia32entry.S:427
The improved call-tracing information that is provided by these patches
would undoubtedly make life somewhat easier for diagnosing the causes of
some kernel crashes. However, there is a cost: the memory footprint of the
resulting kernel is much larger. During the session, a figure of 20 MB was
mentioned, although in a mail that he later sent
to the kernel summit discussion list, Jason clarified that the figure
was more like 10 MB.
The large increase in kernel memory footprint that results from Jason's
technique immediately generated some skepticism on its usefulness. As
someone pointed out, such a large increase in kernel size would be
unwelcome by users running kernels in cloud-based virtual machines such as
Amazon EC2, where the available memory might be limited to (for example)
0.5 GB. Others suggested that it's probably possible to achieve the same
result via a suitably built kernel that is loaded by kexec() in
the event of a kernel crash. (However, there was some questioning of that
idea also, since that technique might also carry a significant memory
overhead.)
Linus then weighed in to argue against the proposal altogether. In his
view, kernel panics are a small enough part of user bug reports that the
cost of this approach is unwarranted; an overhead of something like 1 MB
for the increase in memory footprint would be more reasonable, he
thought. Linus further opined that one can, with some effort, obtain
similar traceback information by loading the kernel into GDB.
Although Jason's proposed patches provide some helpful debugging
functionality, the approach met enough negative response that it seems
unlikely to be merged in anything like its current form. However, Jason may
not be ready to completely give up on the idea yet. In his mail sent soon
after the session, he hypothesized about some modifications to his approach
that might bring the memory footprint of his feature down to something on
the order of 5MB, as well as other approaches that could be employed so
that the end user had greater control over when and if this feature was
deployed for a running kernel. Thus, it may be that we'll see this idea
reappear in a different form at a later date.
Comments (6 posted)
The final session of day one of the 2012 Kernel Summit considered
the linux-next tree and a possible complementary tree.
Steven Rostedt stated that he'd like to have a "linux-devel" tree,
which would serve a similar purpose to that once served by Andrew Morton's
"-mm" tree: it would be a place where reasonably stable code sits for a
while for longer testing. He noted that such a tree might be useful for an
API that hasn't yet stabilized, for example. Steven asked whether others
would also be interested in something like this.
Chris Mason questioned whether such a tree could work in
practice. "When your work and my work are together, people blame me
for your bugs and vice versa." Based on experience with a similar
approach in another project, Ben Herrenschmidt noted another problem: people
started developing against that code base instead of the designated
development base (i.e., the creation of a "linux-devel" might cause some
people to develop against that tree instead of linux-next). Tony
Luck noted that the value of a "linux-devel" tree would depend greatly on
how much testing it received, and the sense was that such a tree would
likely see less testing than linux-next, which itself could do
with more testers.
Of course, even if a "linux-devel" tree was considered
worthwhile, the tree would need a maintainer. In response to the question
of how much work was required to maintain linux-next, the
maintainer, Stephen Rothwell, said it required between four and ten hours
per day, depending on the stage in the kernel-release cycle.
In the end, as Steven Rostedt himself noted, the overall response to the
proposal of a "linux-devel" tree was unenthusiastic.
Attention then briefly turned to the linux-next tree. Ted Ts'o
asked: are people happy with how the tree was working? The overall
consensus seemed to be that it was working well. H. Peter Anvin seemed
to sum up the mood, in stating his overall contentment with
linux-next while noting that "the imperfections of
linux-next are reflections of the fact that it is a real-world
creation".
Ted asked in a tone that seemed to expect a negative
answer, "does anyone run linux-next in anger on their
development system?", and was a little surprised to see that quite a
number of kernel developers indicated that they do eat their own dog
food, living pretty much continuously on linux-next as the booted kernel
on the work system that they use on a daily basis.
After more than three years, it's clear that
linux-next is by now an essential part of the kernel-development
model.
Comments (2 posted)
Ted Ts'o led the final session of this year's Kernel Summit (KS), which was
targeted at discussing the
summit itself. Over the years, there have been various changes to the
format and this year was no exception. The summit was co-located with and
overlapped one day of the Linux Plumbers Conference (LPC); the minisummits were
moved into the middle of the summit as well. Ts'o and others wondered how
well that worked and looked for input on how the meetings should be
structured in the future.
Putting the minisummits on day two (Tuesday August 28) turned that day into
an "all-day hallway track" for those who weren't participating, Ts'o said.
That had
both good and bad points, but was in general well-received. The all-day
hallway track and minisummits both got a boost from the early arrival of LPC
attendees.
The topic choices for day one were good, according to H. Peter Anvin and
others. A little more notice of the schedule would have been useful, Anvin
said, so that participants could prepare for the discussions. Mel Gorman
said that the summit was "sedate" overall, though he thought the topics
were well selected. It was not very "entertaining", though, because there
wasn't any fighting. Christoph Hellwig noted that the people "we fight
with" weren't invited.
James Bottomley wondered if it would have been better to have a "cage
fight" on the first day over the two competing NUMA scheduling approaches.
Linus Torvalds noted that some may have avoided the memcg minisummit (where that
discussion took place), even though they were interested in NUMA
scheduling, so they "didn't have to hear about memcg". But Gorman said
that particular problem may have been best handled "relatively privately"
in the smaller
memory-management-focused group at the memcg minisummit. Opening the
discussion up to larger participation might have "made a bad situation a
hell of lot worse".
Torvalds had his own complaint about the minisummits: their
schedules. He would rather have had shorter sessions, rather than all-day
meetings, because it made it harder to switch between them. He sat in on
the PCI minisummit but felt like he would have been coming into the middle
of the ARM minisummit by switching to attend the AArch64 discussion. He would rather see
two-hour pre-announced BoF-like sessions.
Ts'o said some of the minisummit schedules came out quite late, which left
no time to negotiate changes to reduce conflicts. Hellwig said
that what Torvalds was suggesting, perhaps, was the elimination of the
minisummits and instead to roll those discussions into longer LPC
sessions. That might mean that KS and LPC should always be combined,
Bottomley said. But, Arnd Bergmann was not convinced that the influx of LPC
attendees
was helpful for the ARM minisummit, which was already too big, he said, and
got overrun with the additional people.
Others saw few problems in the overlap with LPC, to the point where
juxtaposing KS and LPC each year was discussed. One problem with that is
that LPC is a North American conference, whereas KS
moves around the
globe. Next year, LPC will be co-located with LinuxCon in New Orleans,
while KS will either be in Edinburgh with LinuxCon Europe or somewhere in
Asia, possibly Hong Kong. But, it doesn't matter what the conference is
called, Hellwig said, but that the format remains and the same types of
attendees are present.
Anvin cautioned against tying LPC to KS, noting that it can be
bad for the other conference in the long run, citing the KS/Ottawa Linux
Symposium
combination as an example.
It might be possible to see if LPC had any interest in moving to locations
outside of North America, or setting up meetings like LPC wherever KS is
being held. Chris Mason noted that KS can be a draw for plumbing layer
developers no
matter where it is held. Dirk Hohndel thought that the same kind of KS/LPC
meetings could be set up anywhere and draw in developers from afar as well
as those nearby, noting that Korea or Japan would be good candidates. Ts'o
agreed that these kinds of meetings bring new people into the community. He
said that Hong Kong is under consideration to draw in more Chinese
developers, for example.
While the co-location with LPC was seen to be mostly beneficial, the
addition of LinuxCon and CloudOpen was a bit much. Those conferences started on
Wednesday, which resulted in a large influx of people. That led to some
confusion: the rooms where meetings
had been held the previous two days were no longer available, it was
unclear where to get
the lunch available for KS attendees (and there was confusion over who was
allowed to
eat), and so on. Most in the room were not in favor of doing quite that
much overlap in the future. Hohndel noted that the Linux Foundation staff
were going "insane" trying to make it all work, so it is unlikely something
like that will happen again.
In answer to a question from Bottomley,
most present were in favor of moving the KS location each year,
and there were suggestions of other possible venues down the road. Some
were less likely (e.g. Cuba), while others seem quite possible (e.g. South
America, Korea,
or Japan again). Changing the usual (northern hemisphere) summer to fall
dates for KS was discussed, but the logistics of moving to spring were
considered difficult. It would have to be done in stages so that the
distance between summits was kept to roughly a year. That also means, for
example, that co-locating with linux.conf.au sometime (which was suggested)
would be hard to do because it is held in January.
The largely minor complaints aside, the general sense from the discussion
was that this year's summit had served its purpose. It got kernel hackers
together to discuss areas where the kernel development process could be
improved. There will undoubtedly be more tweaks to the format over the
years, but the summit itself—like the kernel development
process—is working pretty well.
Comments (none posted)
September 12, 2012
This article was contributed by Darren Hart
Thomas Gleixner (Linutronix) led the
2012 Linux Plumbers Realtime
Microconference in San Diego this year. This session went from 9:00 AM until
noon on Friday morning and continued the highly civilized tone prevalent across
the sessions of the various co-located conferences this year.
Thomas took a moment while opening the session to reflect on the passing of Dr.
Doug Niehaus and his contributions to real-time operating systems.
Paul E. McKenney (IBM) kicked things off with his presentation on "Getting RCU
Further Out of the Way" (reducing the overhead of RCU). Introducing no-callbacks
CPUs (no-CBs) allows the RCU callbacks as well as the grace period processing to
be offloaded to other CPUs. The callbacks are queued to new lists which require
atomic operations and memory barriers to allow for concurrent access (as they
are no longer created and executed on the same CPU). The prototype is limited by
requiring at least one CPU to handle RCU callbacks in order to wait for the grace
period and ensure the callbacks are run. It supports both polling mode as well
explicit wake-up by call_rcu(). Peter Zijlstra suggested offloading only the
callback processing by leaving the grace period processing on each CPU and
moving the callbacks to the atomic list. Paul acknowledged it to be a good
intermediate step, but also indicated that offloading the grace period
processing should not be overly difficult. Several people indicated interest in
the improvements.
Steven Rostedt (Red Hat) presented on the challenges of working PREEMPT_RT into
mainline in his presentation, "The Banes of Mainline for RT". He discussed
interrupt handling in the PREEMPT_RT kernel, which has periodically swung back
and forth between more and fewer threads in an attempt to balance lowest latency
with lowest overhead as well as maintainability and upstream acceptance.
Per-device interrupt handlers are considered ideal as they allow for finer
control of priorities for handlers on all-too-common shared interrupt
lines.
He
also spent some time discussing common livelock scenarios from mainline that the
PREEMPT_RT kernel has to work around. Firstly, the use of a nested trylock
defeats priority boosting. The solution is to drop the conflicting locks,
acquire the lock and immediately release it, then attempt the lock sequence
again. This approach ensures the priority boosting takes place and the possible
inversion becomes bounded. The practice of __do_softirq() raising its own
softirq in the event of a failed spin_trylock() can lead to a livelock in
PREEMPT_RT where ksoftirqd is run at realtime priority and all
softirqs are run
as preemptable threads. The solution here is to simply acquire the spinlock for
PREEMPT_RT, where the spinlock is converted into a mutex, allowing the lock
holder to be scheduled and complete its critical section. Steven threatened
getting rid of softirqs entirely.
Peter Zijlstra (Red Hat) briefly discussed the SCHED_DEADLINE scheduler,
including a request for would-be users to provide details of their use cases
which he can use to justify the inclusion of the code upstream. While he is in
favor of pushing the patches, apparently even Peter Zijlstra has to provide
convincing evidence before pushing yet another scheduling policy into the
mainline Linux kernel. It was reiterated that many media applications for Mac
OSX use the Mac EDF scheduler. Juri Lelli noted that Scuola Superiore Sant'Anna
has "toy" media players that use SCHED_DEADLINE. Contacting the JACK
community was suggested as well. As SCHED_DEADLINE requires the application to
specify its periodicity and duration, adoption may be slow. Fortunately, there
are straightforward methods of determining these parameters.
Frank Rowand (Sony) prepared some material on the usage of PREEMPT_RT with an
emphasis on the stable trees. He also presented some wishlist items collected
from users. While Thomas produces patch tarballs for the development PREEMPT_RT
tree, Steven currently releases stable PREEMPT_RT as a git branch. While
interest remains for the git branches, Steven has agreed to also release the
stable trees as patch tarballs (including previous releases). Some confusion was
noted regarding the development process for the stable trees, such as which
mailing lists to use, as well as the difference between Steven's stable branches
and the "OSADL Latest Stable" releases. It was agreed to add this information in
a README, and include that in-tree along with the PREEMPT_RT releases.
Some sort of issue tracker was requested. Darren Hart (Intel) and Clark Williams
(Red Hat) agreed to work with bugzilla.kernel.org to get one setup for the
PREEMPT_RT tree.
Frank continued to lead a lengthy discussion on the stable real-time release
process. The two areas of concern were the amount of testing these trees receive
and which versions to continue supporting (including the number of concurrent
trees). While Steven's stable trees are widely used by numerous organizations,
they do not receive much testing outside his machines before they are released.
It should be noted, however, that any patches to his stable trees must have
first spent some time in Thomas's development tree, and have therefore seen some
testing before they are pulled in.
Carsten Emde's (OSADL) long-term load
systems, on the other hand, perform sequential long-running cyclictest runs, one
of which recently completed one year of uptime without violating real-time
constraints in 160 billion cycles. Carsten, who was not present, defines the
OSADL Latest Stable criteria as: "all our development systems in the QA Farm
must be running this kernel for at least a month under all appropriate load
scenarios without any problem." Thomas has agreed to add Steven's trees to his
automated testing to help improve the level of testing of the stable releases.
As for the longevity of the long-term stable releases (3.0, 3.2, 3.4, ...)
Steven drops support for a stable release when Greg Kroah-Hartman does. Ben
Hutchings's
stable tree appears to be the sole exception. Steven will continue to support
one Hutchings stable tree at a time, so long as time permits.
Darren brought up longer term support and alignment with the Long-Term Support
Initiative as the Yocto
Project supports both PREEMPT_RT as well as LTSI, and alignment here
significantly reduces the support effort. If an LTSI PREEMPT_RT tree is to be
maintained, someone will need to volunteer for the task. Darren indicated the
Yocto Project is likely to do so.
Following Frank, Luis Claudio Goncalves (Red Hat) discussed the joys of working
with customers on real-world use-cases. Customers often push the boundaries of
what has been tested by running on much larger systems than you might expect.
They also frequently run into performance issues or livelocks with programming
mechanisms that more or less work in mainline, but definitely do not when
running with real-time priority. CPU-bound threads, including busy loops to
avoid latency via polling, can starve the system when run as a high-priority
realtime threads, resulting in large latency spikes or system freezes. Running
a single process with 1000 threads leads to heavy contention on
mmap_sem; large
changes would be required for PREEMPT_RT to deal with this scenario well.
The
concept of CPU isolation has its own pitfalls. An "isolated" CPU still runs
several kernel threads and requires housekeeping, while users may expect the CPU
to run only the isolated application. In these scenarios, the application is
commonly set to SCHED_FIFO at priority 99, resulting in severe latencies and
system freezes as the lower priority kernel threads are prevented from running. A
list of the current work that must be performed by the kernel on an isolated CPU
is documented in Gilad
Ben-Yossef's Linux wiki. Some of the issues listed
there have been fixed or at least minimized. Paul's presentation addressed two
of them. Additionally, Luis has volunteered to work on some best practices
documentation, but has asked for people to help review.
In closing, Thomas noted that there would not be a 3.5-rt release, but that he
would be looking at 3.6 for the next PREEMPT_RT release. The further refinement
of IRQ handling was mentioned as one of the most noteworthy changes planned for
the 3.6-rt release.
Thanks to all the presenters, participants, and reviewers, as well as Paul E.
McKenney, whose notes helped to show that two note-takers are better than one.
Comments (1 posted)
Patches and updates
Kernel trees
Core kernel code
Development tools
Device drivers
Filesystems and block I/O
Memory management
Architecture-specific
Security-related
Miscellaneous
- Lucas De Marchi: kmod 10 .
(September 7, 2012)
Page editor: Jonathan Corbet
Distributions
By Jonathan Corbet
September 12, 2012
The Linux ecosystem does not lack for distributions; there are hundreds of
them catering to almost any need that one might think of. But where does
that leave the poor user who is unable to decide between the virtues of two
or more different distributions? Distribution choice tends to be
all-or-nothing: there is no easy way to obtain the benefits from multiple
distributions at the same time on a single machine. That is a situation
that the folks at
Bedrock Linux are
trying to change — but the result is unlikely to be suitable for everybody.
The design goal of Bedrock Linux is to allow users to mix and match pieces
from multiple distributions at will. If one wants something that looks mostly like
openSUSE, but with the ability to source-install a bleeding-edge
LibreOffice from Gentoo next to tried-and-stable PostgreSQL server from
CentOS, Bedrock Linux will make that possible. If one wants to fall back
to Emacs from Debian stable because the latest Rawhide update broke it
again, one can. As the project web site says:
"Packages feel disposable, like toothpicks. No need to fret over one
breaking; just use another." The end result should be a world where
users never have to commit to a specific distribution because all
distributions of interest to them will be available simultaneously.
The Bedrock Linux core exists mostly to boot the system and facilitate the
running of applications from multiple "client" distributions. As such, it
is a bit of a strange and minimal beast. The syslinux bootloader is used
to keep things as simple as possible. The kernel is Linux, of course; the
Bedrock user space is based on Busybox, so there is not a lot to it. It is
all intended to be robust and to function even if an important client
distribution breaks; to that end, the core Bedrock binaries are all statically linked.
Static linking is also needed to ensure that those utilities
will work regardless of the client distribution context they might be run in.
The client distributions are installed under /var/chroot, so
/var/chroot/fedora would host a Fedora installation. Users can
run a command out of any distribution, but the work that must be done under
the hood to make that happen is significant. As might be guessed from the
directory names, Bedrock Linux uses the chroot() system call to
run programs in the distribution context they expect. The brc
command makes all this happen; typing:
brc fedora firefox
would use chroot() to restrict the process's view to
/var/chroot/fedora, then run the firefox binary from there.
The idea is conceptually simple, but it quickly runs into complications.
What if that firefox binary wants to run a helper program from a different
distribution? That requires the ability to break out of the restricted
root, somehow. Bedrock makes this happen with a combination of setuid
binaries and bind mounts. From the outside, it looks like it might have
been better to make use of namespaces to reshape each process's view of the
filesystem, but that is not the direction Bedrock took.
The result is that everything that must be visible to any
distribution-specific program must be bind-mounted into the restricted
root. That is, to begin with, how commands get access to the user's home
directory. Regardless of which distribution context a process is running
in, /home will be properly mounted to be visible there. In the
current alpha release (1.0alpha2, known as "Momo"),
every process has all of the directories for all distributions bind-mounted
into it. This mounting is done on the fly as commands are run, leading to
some complex topologies.
That complexity turns out to be a bit of a problem; as the Bedrock
developers say in the notes for the upcoming
1.0alpha3 release:
Real-world use of Momo can easily result in hundreds of thousands
of mount points. Since it is not possible to predict how deep the
tree will go, Momo cannot set up all of these mounts at
boot. Rather, it attempts to create these mounts just before they
are necessary on-the-fly. This has a number of down sides.
Performance is at the top of the list of "down sides," but it's clear that
a system configured like this can be unwieldy in a number of ways. So it
will be replaced in 1.0alpha3 with a new version of the brc
command that, when a distribution boundary is to be crossed, will simply
break out of the restricted root and enter a new one for the new
distribution. That eliminates the need to set up lots of new bind mounts
at every command invocation, at the cost of needing to run a setuid
breakout program instead.
Given that initialization systems have been a hot topic recently, one might
well wonder what Bedrock does in this area. Can one easily switch from,
say, OpenRC to systemd? The answer is that Bedrock literally does
nothing:
The Bedrock Linux developer has been unable to think of any sane
way of determining which init script to run when the clients
conflict (which CUPS daemon should run, if multiple are
available?). Additionally, an automated way to determine the launch
order from all of the possible systems it will run into seems far
too challenging of a project. Thus, Bedrock Linux requires manually
setting which programs from which client's init is launched when.
Setting up Bedrock, thus, is not a task for users wanting a one-click
installation experience. Especially since Bedrock does not really have an
installer of its own at all. The FAQ
entry on why there is no installer is amusing reading, to say the
least. Suffice to say that Bedrock, for now, is for users who want to do a
lot of their own setup and tweaking. It may be especially well suited for
those users who have gotten frustrated with the way distributions like
Gentoo do everything for them.
It is also not for users who want something in a hurry; 1.0alpha3 is
planned for release by "end-of-summer 2013." And that will still be an
alpha release.
Whether Bedrock Linux will ever get past the alpha stage is anybody's
guess. It has the look of an ambitious project with a relatively small
amount of developer time available to it. It also looks a little bit
insane. But, then, what is free software for if somebody can't take an
insane idea and run with it? Some interesting ideas may well come out of
the Bedrock Linux project; it will be fun to watch.
Comments (7 posted)
Brief items
If Ubuntu wants to hit the mass market, it needs to find ways to be better, not
ways to be the same, but cheaper. Personally, while I know that application
developers get grumpy about it, I think that the stable model with periodic
upgrades if desired is something most users would like better than what they
experience with other O/S's. It's still good to find ways to make the flow of
fixing actual bugs work better, but I don't think there's a huge market for
getting every single application update and working through new sets of
issues.
--
Scott Kitterman
So yeah, I do acknowledge that both modes of working make sense, I just
believe the default approach should be one where focus is on stabilizing
things, not on developing new stuff all the time.
--
Lennart Poettering (Thanks to Matthew Miller)
Comments (8 posted)
The first beta release of Ubuntu 12.10 "Quantal Quetzal" is now available. Desktop, Server, Cloud, and Core images are available, but this release does do away with the separate CD, DVD, and "alternate" desktop images provided for previous releases, in favor of a single consolidated ISO. Updated packages include xserver 1.13, Python 3, and KDE 4.9.
Full Story (comments: 10)
Distribution News
Debian GNU/Linux
Debian Project Leader Stefano Zacchiroli reports on his August activities.
Topics include trademark policy, DebConf infrastructure, a vacancy on the
technical committee, new hardware, and more.
Full Story (comments: none)
Debian's FTPTeam presents a few bits, including a team introduction, a call
for volunteers, some expected archive outages during the sprint (September
14-21), and a wrap up of this year's GSoC project.
Full Story (comments: none)
Newsletters and articles of interest
Comments (none posted)
Page editor: Rebecca Sobol
Development
By Jonathan Corbet
September 11, 2012
The
Bazaar (or "bzr") version
control system lacks the visibility of systems like Git or even Mercurial.
That is not to say that it is an insignificant project: it has a dedicated
following of its own, it is the system used
internally at Canonical, and it has been designated as an official GNU
project (meaning that other GNU projects are expected to use it). So one
would not think that Bazaar was a project in danger of running out of steam
and grinding to a halt. But that, it seems, is exactly the scenario that
some of its users are worried about.
Stefan Monnier kicked off the discussion by
noting that the number of commits to Bazaar has been dropping and that
bugs are not getting fixed. The departure of
lead developer Martin Pool from Canonical (and from the Bazaar project)
has certainly not helped the situation. So, Stefan said:
[A]s unfixed bugs accumulate, I'm beginning to feel a bit like in the
bad CVS days where you just had to get used to circumventing its
limitations, for lack of actual development.
Some participants questioned whether there was a problem, noting that
commits continue to flow into the Bazaar repository. But Matthew Fuller ran the numbers and came to a fairly clear
conclusion:
From even a casual glance, falloff in bzr.dev landings is pretty
obvious. Through most of the history (looking at the month level),
bzr.dev averages at least a rev a day, not uncommonly twice that.
But the last 5 months put together don't even reach the single
month average. It's no proof of development stopping by any means,
but it sure is a red flag likely to lead people to that
conclusion.
This slowdown has happened despite the fact that a new major release (2.6)
was expected in August. When that release does happen, the list
of new features seems unlikely to knock the socks off many users.
Bazaar, as a project, may not be dead, but it shows signs of going into a
sort of maintenance mode.
What is going on?
Once one accepts that development on Bazaar is slowing, it is natural to
wonder why that is and what can be done about it. One possibility is that
the distributed version control problem has been solved and that there is
little need for more
development. After all, significant projects like bash and make have not
shown blistering rates of development; there simply is no need at this
point. In the distributed version control system area, though, it would be
hard to say that there are no challenges remaining. Projects like Git and
Mercurial continue to evolve at a high rate. So, in a general sense, it
would be hard to say that Bazaar is slowing down because there's nothing
more to do.
That doesn't mean that Canonical, which has sponsored most of the work on
Bazaar, sees more that needs to be done. Indeed, according to John Arbash Meinel (Martin Pool's
replacement as Bazaar lead developer), Canonical is
happy with the current state of affairs:
I think fundamentally Bazaar does most of what Canonical needs, and
the team has been focusing more on other bits around Bazaar
(Launchpad, package-importer, bzr-svn integration, etc). Also,
Launchpad and Bazaar have never really been meant as products in
their own right, but more as facilities to build Ubuntu. And while
not perfect, they do a pretty darn good job of it, and it makes
sense to focus more on other areas of development.
He added that Bazaar wasn't in danger of disappearing anytime soon.
"It is still being actively maintained, though a little less actively
than last year." That statement was seen by some as an oblique way
of saying that Bazaar is now in maintenance mode — a prospect that was not seen
as particularly reassuring by Bazaar users.
Of course, Bazaar is free software, licensed under the GPL, so anybody is
free to step up and carry it forward. Thus far, though, that has not
happened. Once again, it is worthwhile to think about why that might be.
Possibly Bazaar users got comfortable with Canonical carrying the load of
Bazaar development and have not, yet, felt the need to help out. Over
time, some of these users might decide that it is time to pick up some of
that load going forward. Or they might just switch to another system with
a more active community.
One possibility, raised by Ben Finney, is
that Canonical's much-maligned contributor agreement is a
part of the
problem. This reasoning says that, since Canonical reserves the right to
release contributions to
Bazaar under proprietary licenses, many potential contributors have voted
with their feet and gone elsewhere. It's far from clear that the
contributor agreement is really part of the problem, though. If there were
really a community of developers who would contribute if only the terms
were more fair, an agreement-less Bazaar fork would almost certainly have
emerged by now. The fact that nobody has even attempted such a fork
suggests that Canonical's agreement is not really holding things back.
Stephen Turnbull had an interesting alternative
explanation for what is going on. Bazaar, he says, is a tool aimed at
users who want their version control system to "just work" without them
having to think about it much. Git, he says, is a different matter:
Many of those who chose git also made a deliberate, informed
choice, knowing that use of git requires both an investment in
learning about the tool and, often, day-to-day thought about
workflow. My suggestion is that such people are on average more
likely to contribute to git than the average bzr user is to
contribute to Bazaar.
Some participants saw this suggestion as a sort of insult against Bazaar
users, saying that they lacked the ability or the drive to improve the tool. But that
is not what Stephen was saying; his point is that, by appealing to users who
don't want to have to think about their version control system, Bazaar has
created a user community that is relatively unlikely to want to put their
time into making the system better.
There is an alternative that nobody has mentioned in this discussion:
perhaps Bazaar has simply lost out to competing projects which have managed
to advance further and faster. For sheer functionality, Git is hard to
compete with. For those who are put off by the complexity of Git,
Mercurial offers a gentler alternative without compromising on features.
Perhaps most potential users just do not see anything in Bazaar that is
sufficiently shiny to attract them away from the other tools.
If that is the case, it is hard to imagine what can be done to improve the
situation from the point of view of Bazaar users, especially given that
Canonical has lost interest in adding
features to Bazaar. Perhaps, as Ben suggested, another corporate sponsor could be
found to take up the Bazaar banner. Failing that, Bazaar seems likely to
stay in maintenance mode indefinitely; it will remain a capable tool, but
will find itself increasingly left behind by the other free alternatives.
Comments (118 posted)
Brief items
Distributed version control is so much harder to use when your central server is down. #Github
—
Greg Raiz
Every time I've been involved in a project without a schedule, we've had a
long period of (probably highly satisfying for developers) of 'undirected
hacking' followed by crisis, followed by a rush to 'get it out before people
forget who we are' which inevitably had some fallout (I'm thinking of the
period leading up to KDE 4.0 here ;).
—
Will Stephenson
Comments (none posted)
A new version of the
GNU Source Release Collection (GSRC) is available. GSRC is a utility to "
fetch, build and install the latest GNU software from source via a BSD Ports-like system." This release supports 271 GNU project packages.
Full Story (comments: none)
The PostgreSQL 9.2 release is available. "
Since the beta release was announced in May, developers and
vendors have praised it as a leap forward in performance, scalability
and flexibility. Users are expected to switch to this version in
record numbers." LWN ran
a detailed
look at this release in May.
Full Story (comments: 14)
Version 2.7 of the GNU patch utility — the first release in almost three
years — is out. It offers various improvements to the accepted patch
format including nearly full support for the "
diff --git"
format, a number of security-related fixes, nanosecond-precision timestamp
support, and more.
Full Story (comments: 3)
The Mozilla Hacks blog
announces
that the Opus codec is now an official IETF standard; it is
RFC6716. "
Opus is the
first state of the art, free audio codec to be standardized. We think this
will help us achieve wider adoption than prior royalty-free codecs like
Speex and Vorbis. This spells the beginning of the end for proprietary
formats, and we are now working on doing the same thing for video."
Comments (24 posted)
Version 1.3 of the SyncEvolution data synchronization framework is available. This release adds support for syncing with KDE's Akonadi or Microsoft's ActiveSync, and for synchronizing CalDAV tasks and memos. The project has also moved its infrastructure from meego.com to freedesktop.org.
Full Story (comments: none)
Newsletters and articles
Comments (none posted)
The H takes a look at a report from the US Congressional Research Service about patent trolling and potential fixes to the system. "According to the researchers, it is worth considering whether to generally shorten the periods of protection for software patents because the trolls file most of their litigation claims in the last three years of the 20-year term. A patent could also be invalidated if it hasn't been practised for a number of years, they added."
Comments (23 posted)
On his blog, Juan "Nushio" Rodriguez has been systematically reviewing all of the entries in the OpenGameArt project's
Liberated Pixel Cup (LPC) free software game contest in recent weeks. Reviews of
all 48 games are now available. Note that these are personal assessments, not the results of LPC's official judges. Note also that Rodriguez is an LPC contestant, so he had someone else review his own entry, presumably to add a bit more suspense.
Comments (none posted)
Libre Graphics World
reports
on the release of version 4.4 of the venerable Cinelerra video editing
system. "
The amount of changes is quite modest, and half of them are
in the audio department. the developer claims better live audio processing,
as well as audio gaps removal effect and audio oscilloscope. Apart from
that, you are likely to experience faster startup, more responsive
interface, better recording from webcams, and you definitely get a new
Bright UI theme."
Comments (none posted)
Here's
a
lengthy posting from Michael Meeks on the state of the desktop market. "
The
economics of an excessively cheap product are a difficult fit for the
consumer market, and drain money from the ecosystem necessary to invest in
development. The relentless drive to a zero cost-point to gain market share
in Linux Desktop pre-loading helps to further sterilize the space."
He suggests that the business desktop may be a better target for a
Linux-based solution.
Comments (92 posted)
Page editor: Nathan Willis
Announcements
Brief items
The European Parliament's Legal Affairs committee will be discussing a
proposal for an EU-wide patent. The Free Software Foundation Europe (FSFE)
will be following the discussion which takes place September 17-18, 2012.
Full Story (comments: none)
The Linux Foundation has announced the winners of its 2012 Linux Training
Scholarship Program. "
More than 500 submissions were received during
the second year of this program, which is more than double the number of
submissions reviewed in 2011. The Linux Training Scholarship Program awards
five scholarships to computer science students and Linux developers or
systems administrators who show incredible promise for helping to shape the
future of Linux but do not otherwise have the ability to attend Linux
Foundation training courses."
Full Story (comments: none)
Calls for Presentations
The call for papers is out for the System Administration miniconf at the
2013 linux.conf.au (LCA). "
Topics for presentations could include (but are not limited to):
Systems Administration, Backups, Security, Dealing with "Bring Your Own
Device", Troubleshooting, Buying Decisions, Virtualisation and Cloud
Computing, DevOps, Enterprise Monitoring and Management, Identity
Management, Two Factor Authentication, Web and Email management, Wiki,
Clustering and High Availability, Log Management, Spam and Virus
Filtering, VOIP, Ticketing systems, Bootstrapping and automated
installation, Configuration Management, Packaging and Provisioning,
Keeping legacy systems functioning." The deadline for early
submissions is October 1, 2012. November 1 is a hard deadline for all
submissions. LCA2013 will take place January 28-February 2 in Canberra,
Australia.
Full Story (comments: none)
The call for papers for the Southern California Linux Expo SCALE 11x is
open until December 10, 2012. SCALE 11x will be held February 22-24, 2013
in Los Angeles, California.
Full Story (comments: none)
Upcoming Events
The schedule for the PostgreSQL Conference (October 23-26 in Prague, Czech
Republic) is available. "
In addition to [Joe] Celko's keynote, other
luminaries of the open source community and the business and public sectors
including Bruce Momjian, co-founder of the PostgreSQL Global Development
Group, EnterpriseDB, Magnus Hagander, Redpill Linpro, and Josh Berkus,
PGExperts, all members of the PostgreSQL Core Team, as well as Simon Riggs,
CTO of 2ndQuadrant and Guillaume Lelarge, CTO of Dalibo, both long-time
contributors to the PostgreSQL community, will address topics ranging
from database internals to end-user case studies for small companies,
large multinational corporations and government organisations. The
conference offers multiple parallel tracks and sessions in English and
Czech. There will be PostgreSQL training sessions on October 23, the
day prior to the opening day, with half and full day sessions on a
range of topics."
Full Story (comments: none)
The program for PyCon DE is available
online and
registration is open. Registration is
also
open for the barcamp, code retreat, and sprints. PyCon DE will take
place October 29-November 3, 2012 in Leipzig, Germany.
Full Story (comments: none)
Registration is open for the 19th Annual Tcl/Tk Conference (Tcl'2012),
which will take place November 12-16 in Chicago, Illinois.
Full Story (comments: none)
Events: September 13, 2012 to November 12, 2012
The following event listing is taken from the
LWN.net Calendar.
| Date(s) | Event | Location |
September 10 September 13 |
International Conference on Open Source Systems |
Hammamet, Tunisia |
September 14 September 16 |
Debian Bug Squashing Party |
Berlin, Germany |
September 14 September 16 |
KPLI Meeting Indonesia Linux Conference 2012 |
Malang, Indonesia |
September 14 September 21 |
Debian FTPMaster sprint |
Fulda, Germany |
September 15 September 16 |
PyTexas 2012 |
College Station, TX, USA |
September 15 September 16 |
Bitcoin Conference |
London, UK |
September 17 September 19 |
Postgres Open |
Chicago, IL, USA |
September 17 September 20 |
SNIA Storage Developers' Conference |
Santa Clara, CA, USA |
September 18 September 21 |
SUSECon |
Orlando, Florida, US |
September 19 September 20 |
Automotive Linux Summit 2012 |
Gaydon/Warwickshire, UK |
September 19 September 21 |
2012 X.Org Developer Conference |
Nürnberg, Germany |
| September 21 |
Kernel Recipes |
Paris, France |
September 21 September 23 |
openSUSE Summit |
Orlando, FL, USA |
September 24 September 25 |
OpenCms Days |
Cologne, Germany |
September 24 September 27 |
GNU Radio Conference |
Atlanta, USA |
September 27 September 28 |
PuppetConf |
San Francisco, US |
September 27 September 29 |
YAPC::Asia |
Tokyo, Japan |
| September 28 |
LPI Forum |
Warsaw, Poland |
September 28 September 30 |
PyCon India 2012 |
Bengaluru, India |
September 28 September 30 |
Ohio LinuxFest 2012 |
Columbus, OH, USA |
September 28 October 1 |
PyCon UK 2012 |
Coventry, West Midlands, UK |
October 2 October 4 |
Velocity Europe |
London, England |
October 4 October 5 |
PyCon South Africa 2012 |
Cape Town, South Africa |
October 5 October 6 |
T3CON12 |
Stuttgart, Germany |
October 6 October 8 |
GNOME Boston Summit 2012 |
Cambridge, MA, USA |
October 11 October 12 |
Korea Linux Forum 2012 |
Seoul, South Korea |
October 12 October 13 |
Open Source Developer's Conference / France |
Paris, France |
| October 13 |
2012 Columbus Code Camp |
Columbus, OH, USA |
October 13 October 14 |
Debian Bug Squashing Party in Utrecht |
Utrecht, Netherlands |
October 13 October 14 |
Debian BSP in Alcester (Warwickshire, UK) |
Alcester, Warwickshire, UK |
October 13 October 14 |
PyCon Ireland 2012 |
Dublin, Ireland |
October 13 October 15 |
FUDCon:Paris 2012 |
Paris, France |
October 15 October 18 |
Linux Driver Verification Workshop |
Amirandes,Heraklion, Crete |
October 15 October 18 |
OpenStack Summit |
San Diego, CA, USA |
October 17 October 19 |
MonkeySpace |
Boston, MA, USA |
October 17 October 19 |
LibreOffice Conference |
Berlin, Germany |
October 18 October 20 |
14th Real Time Linux Workshop |
Chapel Hill, NC, USA |
October 20 October 21 |
PyCarolinas 2012 |
Chapel Hill, NC, USA |
October 20 October 21 |
PyCon Ukraine 2012 |
Kyiv, Ukraine |
October 20 October 21 |
Gentoo miniconf |
Prague, Czech Republic |
October 20 October 21 |
LinuxDays |
Prague, Czech Republic |
October 20 October 23 |
openSUSE Conference 2012 |
Prague, Czech Republic |
October 22 October 23 |
PyCon Finland 2012 |
Espoo, Finland |
October 23 October 25 |
Hack.lu |
Dommeldange, Luxembourg |
October 23 October 26 |
PostgreSQL Conference Europe |
Prague, Czech Republic |
October 25 October 26 |
Droidcon London |
London, UK |
October 26 October 27 |
Firebird Conference 2012 |
Luxembourg, Luxembourg |
October 26 October 28 |
PyData NYC 2012 |
New York City, NY, USA |
| October 27 |
pyArkansas 2012 |
Conway, AR, USA |
| October 27 |
Central PA Open Source Conference |
Harrisburg, PA, USA |
| October 27 |
Linux Day 2012 |
Hundreds of cities, Italy |
October 27 October 28 |
Technical Dutch Open Source Event |
Eindhoven, Netherlands |
October 29 November 1 |
Ubuntu Developer Summit - R |
Copenhagen, Denmark |
October 29 November 2 |
Linaro Connect |
Copenhagen, Denmark |
October 29 November 3 |
PyCon DE 2012 |
Leipzig, Germany |
| October 30 |
Ubuntu Enterprise Summit |
Copenhagen, Denmark |
November 3 November 4 |
MeetBSD California 2012 |
Sunnyvale, California, USA |
November 3 November 4 |
OpenFest 2012 |
Sofia, Bulgaria |
November 5 November 7 |
LinuxCon Europe |
Barcelona, Spain |
November 5 November 7 |
Embedded Linux Conference Europe |
Barcelona, Spain |
November 5 November 8 |
ApacheCon Europe 2012 |
Sinsheim, Germany |
November 5 November 9 |
Apache OpenOffice Conference-Within-a-Conference |
Sinsheim, Germany |
November 7 November 8 |
LLVM Developers' Meeting |
San Jose, CA, USA |
November 7 November 9 |
KVM Forum and oVirt Workshop Europe 2012 |
Barcelona, Spain |
| November 8 |
NLUUG Fall Conference 2012 |
ReeHorst in Ede, Netherlands |
November 9 November 11 |
Python Conference - Canada |
Toronto, ON, Canada |
November 9 November 11 |
Mozilla Festival |
London, England |
November 9 November 11 |
Free Society Conference and Nordic Summit |
Göteborg, Sweden |
November 10 November 16 |
SC12 |
Salt Lake City, UT, USA |
If your event does not appear here, please
tell us about it.
Page editor: Rebecca Sobol