|
|
Log in / Subscribe / Register

Distributions

News and Editorials

A tale of two shells: bash or dash

By Rebecca Sobol
July 29, 2009

A reoccurring topic on Debian lists is the use of dash (Debian Almquist Shell) as opposed to bash (GNU Bourne-Again Shell). Currently /bin/sh defaults to bash on a Debian system, but some would like the default to be dash.

Ubuntu made this switch three years ago, with the release of Ubuntu 6.10. Note that the default login shell remains bash, only the default /bin/sh used in shell scripts has been changed. Why did Ubuntu make this change?

The major reason to switch the default shell was efficiency. bash is an excellent full-featured shell appropriate for interactive use; indeed, it is still the default login shell. However, it is rather large and slow to start up and operate by comparison with dash. A large number of shell instances are started as part of the Ubuntu boot process. Rather than change each of them individually to run explicitly under /bin/dash, a change which would require significant ongoing maintenance and which would be liable to regress if not paid close attention, the Ubuntu core development team felt that it was best simply to change the default shell. The boot speed improvements in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is a fine platform for future development of the init system but in Ubuntu 6.10 was primarily running in System V compatibility mode with only small behavioural changes. These improvements were in fact largely due to the changed /bin/sh.

The Debian EeePC project also notes that dash provides faster boot times. So why hasn't Debian already made this switch? In fact this was a release goal for Lenny.

Part of the problem is "bashisms" - use of non-standard bash features - in shell scripts. There is a lengthy list of bugs tagged with goal-dash that contain bashisms. These are being worked on, package by package. While some users report that they have already made the switch without problems, others will find many of their user scripts will have bashisms.

One can use checkbashisms (man page) to look for bashisms, but for users with lots of scripts using /bin/sh this could be a long and painful process.

Here's a sample of checkbashisms output for the package apertium:
checkbashisms' output:
> possible bashism in ./usr/bin/apertium-preprocess-corpus-lextor line 47
> ('((' should be '$(('): if ((length(w)>0) && (index(w,"^")>0)) {
> possible bashism in ./usr/bin/apertium line 9 ('function' is useless):
> function message

Examples of bashisms include use of $RANDOM, the select, let, and source keywords, shell arithmetic, the -e option to echo, and many other things.

Debian policy looks at SUSv3 Shell Command Language and states:

If a shell script requires non-SUSv3 features from the shell interpreter other than those listed above, the appropriate shell must be specified in the first line of the script (e.g., #!/bin/bash) and the package must depend on the package providing the shell (unless the shell package is marked "Essential" [policy 3.6], as in the case of bash).

You may wish to restrict your script to SUSv3 features plus the above set when possible so that it may use /bin/sh as its interpreter. If your script works with dash (originally called ash), it probably complies with the above requirements, but if you are in doubt, use /bin/bash.

This raises the issue of whether dash should be "essential" [see Debian policy section 3.8]. bash is "essential" meaning that it must be installed on every Debian system. If dash does not become "essential" then every script with /bin/sh as its interpreter must depend on dash to insure that it is installed and usable by /bin/sh (once the change is made).

That this change will be made is mostly not under debate, it is more a matter of when it will be fully implemented. Those that oppose the move simply want a choice, which exists using dpkg-reconfigure dash. Meanwhile users should be looking at their own scripts to see if they will break once /bin/sh defaults to dash.

Comments (23 posted)

New Releases

Announcing NetBSD 5.0.1

NetBSD 5.0.1 has been released. "NetBSD 5.0.1 is the first security/critical update of the NetBSD 5.0 release branch. It represents a selected subset of fixes deemed critical in nature for security or stability reasons. All users are encouraged to upgrade."

Full Story (comments: none)

Mandriva Linux 2010 alpha 2 is available

The second alpha of Mandriva Linux 2010 is available for testing. "For this second release you will still find only Free DVD isos, 32 and 64 bits."

Full Story (comments: none)

KDE Four Live 1.3.0

"KDE Four Live" 1.3.0 is an installable Live-CD with openSUSE 11.1 and KDE 4.3.0.

Full Story (comments: none)

Distribution News

Debian GNU/Linux

Some backpedaling on Debian freeze dates

Buried deep within a "bits from the release team" posting to the Debian development community is this text: "Based on feedback of the community on the plan to freeze in December 2009 and the ambitious Release Goals we set for ourselves, we are revisiting the decision to freeze December 2009. We'll be consulting all key teams within Debian to see how their plans and schedules can fit into a new timeline. Before the end of August we hope to have finished this process of consultation and be able to present the new plan to you." The message also reiterates the idea of regular December freezes, though; it will be interesting to see where this consultation goes.

Full Story (comments: 9)

Shuttleworth: On cadence and collaboration

Mark Shuttleworth has joined into the discussion on Debian release cycles; it's a rather lengthy attempt to make peace. "We're already seeing a growing trend towards cadence in free software, which I think is a wonderful move. Here, we are talking about elevating that to something that the world has never seen in proprietary software (and never will) - an entire industry collaborating. Collaboration is the primary tool we have in our battle with proprietary software, we should take the opportunities that present themselves to make that collaboration easier and more effective."

Full Story (comments: 30)

news.debian.net launches

The announcement has gone out for a new Debian-oriented news service located at news.debian.net. "For a long time, debian-devel-announce and debian-announce were enough but they are reserved to the very important stuff (at least they are supposed to) that is mandatory for developers to know. With the project growing over the years, every day we generate interesting bits about our project that are nice to know, but it is not always so important that it justifies an email to announce."

Comments (5 posted)

Fedora

Fedora Board Recap

Click below for a brief recap of the July 30, 2009 meeting of the Fedora Advisory Board. The main topic was website redesign.

Full Story (comments: none)

Recent Fedora IRC Classes

The Fedora IRC Classroom has had a number of Classes recently. You can find the logs on the Classroom wiki page. Recent topics include An intro to rsync, Introduction to Koji (build system) and Bodhi (updates system) in Fedora infrastructure, A tour of the Xfce desktop, and Using preupgrade.

Full Story (comments: none)

Ubuntu family

Ubuntu Patent Policy

The Ubuntu Technical Board has discussed and agreed on the project's policy with regard to software patents. "The Ubuntu project strives to deliver a free and complete Operating System fit for general use. Over the years the topic of software patents and their impact on Open Source have been controversial in some parts of the world. This policy outlines the agreed set of of standards and procedures surrounding software patents and Ubuntu." Click below for the entire text of the patent policy.

Full Story (comments: 1)

Other distributions

Bootable Yellow Dog Linux USB drive for PLAYSTATION3

Fixstars has announced the availability of "YDL on a Stick," a USB flash drive containing a bootable version of Yellow Dog Linux v6.2 for the Sony PS3. ""YDL on a Stick" comes with a customized version of YDL v6.2 on a 16GB OCZ Diesel Flash drive. Chosen for being high quality and durable, the Diesel flash drive has achieved 31.18 MB read performance and 30.78 MB write performance in recent DiskBench performance benchmarks."

Full Story (comments: 1)

Distribution Newsletters

Arch Linux Newsletter

Arch Linux Newsletter for July 2009 is out. "This issue contains an interview with Andrea Scarpino, the KDE maintainer for the i686 architecture. Also, we are bringing all our kernel enthusiasts a tips and tricks section that should be of special interest. Finally, even though we went without a mention in the media this month, we provide an analysis as to why Arch Linux has been so prevalent in media coverage the last few months. And so, without further ado, the Newsletter Team proudly presents the July 2009 issue of the Arch Linux Newsletter. Please, enjoy!"

Comments (none posted)

DistroWatch Weekly, Issue 314

The DistroWatch Weekly for August 3, 2009 is out. "The most controversial news of the week was the open letter written by several developers of CentOS, one of the distributions on the DistroWatch's top ten list, to the project's co-founder, pleading for the resolution of a number of key issues. This was taken to the public as a way of getting attention after failing to resolve the issues internally. It turned out to be a good solution; by the end of the week all has seemingly returned to normal in the CentOS land. Another piece of news that stirred much interest on the Internet was the Debian announcement about its planned switch to a time-based freeze model. This was often incorrectly misinterpreted as a switch to a time-based release model, but as many Debian developers were quick to point out, nothing has changed in the "released when ready" Debian release strategy. As for our feature article this week, it is a quick look at the "Core" edition of Slax, a minimalist distribution in 50 MB, which can be a surprisingly good rescue and educational tool. Finally, we are pleased to announce that the recipients of the DistroWatch.com June and July 2009 donations are LiVES and Osmo. Happy reading!"

Comments (none posted)

Fedora Weekly News 187

The Fedora Weekly News for August 2, 2009 is out. "This week's issue kicks off with updated details on the Fedora 12 (Constantine) schedule, including an update on feature set scheduled for this week. From the Fedora Planet, tips on how to create your own system branding when building Fedora, lots of detail on debugging random screen blanking in Fedora, and thoughts on why to hate quick software benchmarking. From the Quality Assurance team, details from a discussion around Phoronix's Linux distribution benchmarking in relation to Fedora, fixes to the Test Day live image, and many updates on the weekly meetings related to QA. In Ambassador news, a report from the Congress of Free Software in Caracas, Venezuela and the Venezuela Fedora Team's presence there. In translation news, several updates to translation.fedoraproject.org, details on the Fedora 12 Translation schedule, and new translations for the Quick Start Guide in eighteen different languages. From the Art team, updates on theming Fedora 12 Alpha and details on cutting the Fedora logo on a steel plate. This week issue comes to a finale with news on virtualization, including discussion of how to distribute I/O load across guests, and details on new releases of virt-manager, virtinst, and virt-viewer. These are just a few highlights of this week's FWN. Enjoy!"

Full Story (comments: none)

The Mint Newsletter - issue 90

This issue of the Mint Newsletter covers the release of Mint 7 KDE and more.

Comments (none posted)

OpenSUSE Weekly News/82

This issue of the openSUSE Weekly News covers Milestone 4 released, Hackweek IV Results, Vincent Danen: System monitoring with Conky, Joe Brockmeier: Does openSUSE need a default desktop?, openSUSE Forums: Firefox and _64 Java Issue, and more.

Comments (none posted)

Ubuntu Weekly Newsletter #153

The Ubuntu Weekly Newsletter for August 1, 2009 is out. "In this issue we cover: Canonical to Offer Ubuntu Desktop Support & Services, Free Books for Approved LoCo teams, DC LoCo Bug Jam, Atlanta Linux Fest & Mini Ubucon, Ubuntu Pennsylvania & FreeGeekPenn, Sharing translations between different releases, Open Mind & Launchpad, More power to the release manager, Writing code for Launchpad, Exporting translations to a Bazaar branch, New layout for kubuntu-de.org, Ubuntu Podcast Quickie #10, Ubuntu Teams Meeting Summary for July, and much, much more!"

Full Story (comments: none)

Interviews

Interview Gentoo Developer Robin H. Johnson

David Abbott has interviewed Robin H. Johnson (robbat2), Gentoo Developer, Gentoo Trustee board member, head of the infrastructure team, and more. "Could you give me an overview of the Gentoo infrastructure? Nearly 50 percent of the infrastructure hardware is taken up by web applications, because we have a lot of separation between web applications that have a high security exposure. Admittedly some of the web services are a very big deal for Gentoo, like our Bugzilla service, running on 4 machines sponsored by the Dutch social network, Hyves. Very recently we've gotten new hardware for Forums, sponsored by Gossamer Threads. The next largest slice after that is the machines that provides rsync.gentoo.org service. Only then do we get down to individual machines for purposes. There's some cases where having more hardware as fail-over in case we lose a machine would be nice, but I think the place that'd we would benefit the most presently would be a newer mail server infrastructure, so that we can deploy heavier spam filtering."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Development>>


Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds