Skip to main content

Skip over site navigation to main content

developerWorks  >   Linux  >   Technical library  >  

Technical library view  RSS for Linux

developerWorks
 Related links:    Redbooks |  Forums

Filter your search and/or enter a keyword. If you don't filter your search or enter a keyword, the search results will default to all results.

 
 
 
  1 - 949 of 961 results    Next   Show All   Hide Summaries
Title   Type   Date  

Table that contains the results that meet the search criteria.

Cultured Perl: Practical Twitter with Perl
Learn how to access the features of the Twitter API using the CPAN Net::Twitter module. You'll also see some solid business uses for Twitter, including automated posting and analyzing Twitter search results.
Articles 08 Dec 2009  
 
Git for Subversion users, Part 2: Taking control
Git offers Linux developers a number of advantages over Subversion for software version control, so developers working collaboratively owe it to themselves get familiar with the basic concepts behind it. In this installment, Ted dissects branching and merging in both Git and Subversion, introduces "git bisect" for bisecting changes, and shows how to resolve merge conflicts.
Articles 25 Nov 2009  
 
Charming Python: Easy Web data collection with mechanize and Beautiful Soup
For collecting data from Web pages, the mechanize library automates scraping and interaction with Web sites. Mechanize lets you fill in forms and set and save cookies, and it offers miscellaneous other tools to make a Python script look like a genuine Web browser to an interactive Web site. A frequently used companion tool called Beautiful Soup helps a Python program makes sense of the messy "almost-HTML" that Web sites tend to contain.
Articles 24 Nov 2009  
 
Cultured Perl: Flickr, a business's bst frnd
Flickr isn't just for photo sharing and social networking; it's a legitimate business tool. Learn how Perl programmers can use the CPAN Chart modules to create charts and graphs, and the Flickr::Upload module to upload the charts to Flickr.
Articles 24 Nov 2009  
 
Linux introspection and SystemTap
Modern operating system kernels provide the means for introspection, the ability to peer dynamically within the kernel to understand its behaviors. These behaviors can indicate problems in the kernel as well as performance bottlenecks. With this knowledge, you can tune or modify the kernel to avoid failure conditions. Discover an open source infrastructure called SystemTap that provides this dynamic introspection for the Linux kernel.
Articles 09 Nov 2009  
 
Next-generation Linux file systems: NiLFS(2) and exofs
Linux continues to innovate in the area of file systems. It supports the largest variety of file systems of any operating system. It also provides cutting-edge file system technology. Two new file systems that are making their way into Linux include the NiLFS(2) log-structured file system and the exofs object-based storage system. Discover the purpose behind these two new file systems and the advantages that they bring.
Articles 31 Oct 2009  
 
Virtual appliances and the Open Virtualization Format
Not only has virtualization advanced the state of the art in maximizing server efficiency, it has also opened the door to new technologies that were not possible before. One of these technologies is the virtual appliance, which fundamentally changes the way software is delivered, configured, and managed. But the power behind virtual appliances lies in the ability to freely share them among different hypervisors. Learn the ideas and benefits behind virtual appliances, and discover a standard solution for virtual appliance interoperability called the Open Virtualization Format.
Articles 20 Oct 2009  
 
Learn Linux, 101: Streams, pipes, and redirects
If you think streams and pipes make a Linux expert sound like a plumber, here's your chance to learn about them and how to redirect and split them. You even learn how to turn a stream into command arguments. You can use this material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.
Articles 14 Oct 2009  
 
Linux virtualization and PCI passthrough
Processors have evolved to improve performance for virtualized environments, but what about I/O aspects? Discover one such I/O performance enhancement called device (or PCI) passthrough. This innovation improves performance of PCI devices using hardware support from Intel (VT-d) or AMD (IOMMU).
Articles 13 Oct 2009  
 
Learn Linux, 101: A roadmap for LPIC-1
Use this roadmap to find IBM developerWorks articles that will help you learn and review basic Linux tasks. And if you're also pursuing professional certification as a Linux system administrator, these articles can help you study for the Linux Professional Institute Certification (LPIC) exam 101 and exam 102. This roadmap is organized according to the 43 objectives in the 101 and 102 exams, which you are required to pass for LPI level 1 certification.
Articles 08 Oct 2009  
 
Reduce Linux power consumption, Part 3: Tuning results
This three-part series is your starting point for tuning your system for power efficiency. In Part 3, the author compares the performance of the five in-kernel governors in both tuned and untuned states to show you how to optimize a Linux-based System x server.
Articles 07 Oct 2009  
 
Cloud computing with Linux and Apache Hadoop
Many companies like IBM, Google, VMWare, and Amazon have provided products and strategies for Cloud computing. This article shows you how to use Apache Hadoop to build a MapReduce framework to make a Hadoop Cluster and how to create a sample MapReduce application which runs on Hadoop. You will also learn how to set up a time/disk-consuming task on the cloud.
Articles 06 Oct 2009  
 
Learn Linux, 101: File and directory management
You've probably heard that everything in Linux is a file, so start on the right path with a solid grounding in file and directory management -- finding, listing, moving, copying, and archiving. You can use this material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.
Articles 06 Oct 2009  
 
Linux Professional Institute (LPI) exam prep
Before you take the Linux Professional Institute (LPI) exams, review these developerWorks tutorials, designed as self-study guides for each topic in the four exams.
01 Oct 2009  
 
Monitor home energy with AMEE
Electricity is invisible. To understand how people use it, you need to make it visible. This tutorial will show you how easy it is to build a Web-based energy monitoring system yourself, using a Current Cost real-time energy monitor and AMEE, a neutral Web-based API for energy data, combined with some XML, Ruby, Rails, and Ajax.
Tutorial 29 Sep 2009  
 
Enable multipath SAN booting with DS8000 and DMMP
Booting servers from storage area networks with multiple paths can provide significant benefits for the complex, modern data center environment -- benefits such as improving availability and increasing your reach when it comes to easier management and maintainance and in providing reliability. To boot your Linux system from a SAN device, you'll need to set up a SAN boot operating system to your storage with multipath driver support; that's where this article comes in. The author will walk you through setting up a SAN-boot Linux system on the IBM System Storage DS8000 with the multipath function supported by the Device-Mapper MultiPath (DMMP) feature.
Articles 23 Sep 2009  
 
Reduce Linux power consumption, Part 2: General and governor-specific settings
This three-part series is your starting point for tuning your system for power efficiency. In Part 2, follow a step-by-step guide on the general settings of the Linux CPUfreq subsystem and get more details on the five in-kernel governors -- performance, powersave, userspace, ondemand, and conservative -- and their settings.
Articles 23 Sep 2009  
 
Reduce Linux power consumption, Part 1: The CPUfreq subsystem
This three-part series is your starting point for tuning your system for power efficiency. In Part 1, get up to speed on the components and concepts you need to fine-tune a Linux-based System x server for power efficiency. Learn how to enable the Linux CPUfreq subsystem, get instruction on C and P states, and determine which of the five in-kernel governors you need to boost power efficiency on your system.
Articles 15 Sep 2009  
 
Linux on POWER: Distribution migration and binary compatibility considerations
Learn about binary compatibility as it relates to the different operating environments that run on Linux on POWER. Examine the two Linux on POWER distributions supported by IBM, Red Hat Enterprise Linux (RHEL) and SUSE LINUX Enterprise Server (SLES), with regard to the binary compatibility between their respective releases. In general, a smooth transition from the 2.6.9 kernel-based RHEL4 to the 2.6.18 kernel-based RHEL5 is made possible by the stable Application Binary Interface (ABI) maintained between the releases. The same can be said when moving from the 2.6.5 kernel-based SLES9 to the 2.6.16 kernel-based SLES10. Learn about new technologies that can provide performance enhancements for a Linux on POWER application, and follow steps to ensure binary compatibility across multiple distributions in the future. [Additional items have been added to the Resources section. -Ed.]
Articles 09 Sep 2009  
 
Guide to porting from Solaris to Linux on POWER
Accelerate your porting efforts by following this six-step guide. Learn the differences between Solaris and Linux on POWER that you commonly encounter during a port. Get an introduction to the development environment for Linux running on IBM POWER processor-based systems, and see how Sun's compiler/linker switches compare with those of GNU GCC and the IBM native compiler. Finally, learn about tools for performance analysis and software packaging for Linux on POWER. [This article has been updated to reflect the latest product versions. -Ed.]
Articles 08 Sep 2009  
 
Anatomy of the Linux virtual file system switch
Linux is the very definition of flexibility and extensibility. Take the virtual file system switch (VFS). You can create file systems on a variety of devices, from traditional disk, USB flash drives, memory, and other storage devices. You can even embed a file system within the context of another file system. Discover what makes the VFS so powerful, and learn its major interfaces and processes.
Articles 31 Aug 2009  
 
Learn Linux, 101: The Linux command line
GUIs are fine, but to unlock the real power of Linux, there's no substitute for the command line. In this article, Ian Shields introduces you to some of the major features of the bash shell, with an emphasis on the features that are important for LPI certification. By the end of this article, you will be comfortable using basic Linux commands like echo and exit, setting environment variables, and gathering system information. [The first two notes following Listing 8 have been updated to correct the process IDs (PIDs). -Ed.]
Articles 31 Aug 2009  
 
Learn Linux, 101: Text streams and filters
There's a lot more to text manipulation than cut and paste, particularly when you aren't using a GUI. Study for the Linux Professional Institute Certification (LPIC) 101 exam, or learn for fun. In this article, Ian Shields introduces you to text manipulation on Linux using filters from the GNU textutils package. By the end of this article, you will be manipulating text like an expert.
Articles 26 Aug 2009  
 
Git changes the game of distributed Web development
Version control systems are a core component of most development projects, regardless of whether you're developing an application, a Web site, or an operating system. Most projects involve multiple developers, often working at widely separated physical locations. Distributed version control systems are nothing new, but the Git version control system provides unique support for collaboration and interaction among developers.
Articles 25 Aug 2009  
 
Three ways to recycle commodity hardware with Linux
Outdated computer hardware may be too old to rely on, but it represents a value to your organization -- whether in an office or at home. Discover how you can realize that value by repurposing older machines with Linux.
Articles 22 Aug 2009  
 
Boot Linux on the Beagle Board
The Beagle Board is an open-hardware single-board computer that is both inexpensive and capable of running Linux at a reasonable speed. Get to know the Beagle Board, and learn how to get a Linux development environment together on the cheap.
Articles 18 Aug 2009  
 
Thoughts from OSCON 2009: Open government, concurrency
The O'Reilly Open Source Convention (OSCON) is nothing if not a place to collect one's deeper thoughts around software development. The 2009 convention offered more than its share of inspiration, but David Mertz whittled the schedule down and focused on two very different but important areas: open government and concurrency.
Articles 12 Aug 2009  
 
Git for Subversion users, Part 1: Getting started
Distributed version control systems (DVCSs) offer a number of advantages over centralized VCSs, and for Subversion users looking to explore this model, Git is a great place to start. Using Subversion as a baseline, this first of two articles shows how to install Git, set up a remote repository, and begin using basic Git commands.
Articles 04 Aug 2009  
 
Make the most of large drives with GPT and Linux
Once a faraway problem, an important barrier in disk storage is fast becoming a reality: the venerable master boot record (MBR) partitioning scheme can't fully handle disks larger than 2TB. With 1TB-hard disks now common and 2TB-disks becoming available, forward-looking individuals are thinking about alternatives to the MBR partitioning scheme. The heir apparent is the GUID Partition Table (GPT). Learn how to make sure your Linux system is fully prepared for the future of disk storage.
Articles 28 Jul 2009  
 
Linux tip: Creating a pixel ruler from the command line
Learn how to use the Linux command line and some basic Bash scripting techniques to draw lines and text on images using ImageMagick. And create a pixel ruler along the way.
Articles 23 Jul 2009  
 
Build virtual appliances using the OVF Toolkit
The Open Virtualization Format (OVF) is an open standard for packaging and distributing virtual appliances (or software) that is to be run in virtual machines. The standard describes an "open, secure, portable, efficient and extensible format for the packaging and distribution of software to be run in virtual machines"; the standard is designed so that it is not tied to any particular hypervisor or processor architecture. In this article, the authors describe the OVF standard and the OVF Toolkit developed by IBM.
Articles 16 Jul 2009  
 
Create an ooRexx build environment on Linux KVM
Construct an on-demand software build service using ooRexx that uses the Linux Kernel Virtual Machine (KVM) for better performance. KVM acts as the host for the guest operating systems that build the target software for the user. The Apache Web server controls the builds and stores the results for later retrieval by the user. Learn how to set up the build server and create guests, customize build requests, and organize and access build results.
Articles 14 Jul 2009  
 
Avoid common errors in UNIX and Linux
Discover the most common errors in UNIX and Linux -- and how to avoid them.
Articles 14 Jul 2009  
 
Scripting the Vim editor, Part 2: User-defined functions
User-defined functions are an essential tool for decomposing an application into correct and maintainable components, in order to manage the complexity of real-world programming tasks. This article (the second in a series) explains how to create and deploy new functions in the Vimscript language, giving several practical examples of why you might want to.
Articles 07 Jul 2009  
 
Producing documentation and reusing information in XML, Part 1: Document publishing using XML
XML provides a way to identify data items and subcomponents within any structured data set, but has its roots in documentation development and production. Robust, open standards for XML document markup and a rich set of freely available tools for XML document parsing and format conversion make it easy to install and configure a complete documentation development and formatting environment on any UNIX or Linux system.
Articles 07 Jul 2009  
 
SolarNetOne: Solar-powered networking for anyone
In many parts of the world, the power grid is shoddy, computers are scarce, and connectivity is even rarer. Thus, as with many other modern practices and technologies, populations are increasingly split into the "computing haves" and the "computing have-nots." But many are addressing the divide. SolarNetOne is a turnkey Internet hotspot -- power, computers, and satellite uplink -- that you can install virtually anywhere, for less than the cost of a subcompact car.
Articles 30 Jun 2009  
 
IBM Lotus Domino, Linux, virtualization, scalability: No longer mutually exclusive terms
Tired of having to force fit IBM® Lotus® Domino® into your infrastructure? With the latest release of 64-bit Lotus Domino on Linux® and virtualization, you now can implement large-scale enterprise environments with Lotus Domino on Linux in a single footprint. This article documents the benchmarks that have been done and the results of early adopters of this solution, showing you how your infrastructure can fit and grow with Lotus Domino.
Articles 29 Jun 2009  
 
Cultured Perl: Perl and the Amazon cloud, Part 5
This five-part series walks you through building a simple photo-sharing Web site using Perl and Apache to access Amazon's Simple Storage Service (S3) and SimpleDB. In this final installment, examine the full mod_perl site's templates, including one for indexing, three for uploading (general, S3 forms, and URL additions), one for image and comment browsing, and one to browse comments recursively for an image (or threading down).
Articles 23 Jun 2009  
 
Introducing KDE 4 plasmoids
KDE 4 includes many exciting new technologies, including Plasma, a feature that forms the desktop shell of KDE 4. See how to write simple Plasma applets (known as "plasmoids") to greatly improve the desktop experience and how to turn a plasmoid into a simple memory monitor.
Articles 14 Jun 2009  
 
Cultured Perl: Perl and the Amazon cloud, Part 4
This five-part series walks you through building a simple photo-sharing Web site using Perl and Apache to access Amazon's Simple Storage Service (S3) and SimpleDB. In this installment, examine the full mod_perl site's code base, including how to configure the top level, what to do with the handlers, and how to set up external dependencies.
Articles 14 Jun 2009  
 
Cultured Perl: Perl and the Amazon cloud, Part 3
This five-part series walks you through building a simple photo-sharing Web site using Perl and Apache to access Amazon's Simple Storage Service (S3) and SimpleDB. In this installment, follow your site's interaction with SimpleDB by learning how the URL creates a SimpleDB record for the uploaded file. Also learn how to create, edit, and delete comments as SimpleDB records on a photo for a particular user.
Articles 14 Jun 2009  
 
Protein modeling with Blue Gene/L
The Blue Gene/L supercomputer provides scientists with the cutting-edge computing power and complex data-visualization tools they need to stay at the forefront of their disciplines. Learn how this technology lets computational molecular biologists create protein folding and misfolding simulations to better understand these complex molecules.
Articles 09 Jun 2009  
 
Anatomy of a Linux hypervisor
One of the most important modern innovations of Linux is its transformation into a hypervisor (or, an operating system for other operating systems). A number of hypervisor solutions have appeared that use Linux as the core. This article explores the ideas behind the hypervisor and two particular hypervisors that use Linux as the platform (KVM and Lguest).
Articles 31 May 2009  
 
Linux: Lean, clean, and green
Green IT is one of the hottest of today's technology trends, and the GNU/Linux community has risen to the challenge. Along with several corporate partners, the GNU/Linux operating system provides solutions for dealing with power consumption, carbon emissions, and e-waste.
Articles 26 May 2009  
 
Install the GNU ARM toolchain under Linux
Many tools are available for programming various versions of ARM cores, but one particularly popular set is the GNU ARM toolchain. Learn more about embedded development using the ARM core, as well as how to install the GNU tools and begin using them.
Articles 20 May 2009  
 
Scripting the Vim editor, Part 1: Variables, values, and expressions
Vimscript is a mechanism for reshaping and extending the Vim editor. Scripting allows you to create new tools, simplify common tasks, and even redesign and replace existing editor features. This article (the first in a series) introduces the fundamental components of the Vimscript programming language: values, variables, expressions, statements, functions, and commands. These features are demonstrated and explained through a series of simple examples.
Articles 06 May 2009  
 
Cloud computing with Linux thin clients
Explore cloud computing from a Linux perspective and discover some of the most innovative and popular Linux-based solutions -- with a particular view toward environmentally beneficial options.
Articles 28 Apr 2009  
 
Thanks for the memory
Running out of Java heap isn't the only cause of a java.lang.OutOfMemoryError. If native memory runs out, OutOfMemoryErrors that your normal debugging techniques won't be able to solve can occur. This article explains what native memory is, how the Java runtime uses it, what running out of it looks like, and how to debug a native OutOfMemoryError on Windows and Linux. A companion article covers the same topics for AIX systems.
Articles 21 Apr 2009  
 
Migrate to a virtual Linux environment with Clonezilla
$@!LessThan!@$!--In this article, l--$@!GreaterThan!@$Learn how to use the open source Clonezilla Live cloning software to convert your physical server to a virtual one. Specifically, see how to perform a physical-to-virtual system migration using an image-based method.
Articles 21 Apr 2009  
 
Agile planning in real life
Are you part of a team that wants to get on the agile planning bandwagon? Are you using iterative development and still stuck doing "waterations"? In this article, the author puts his experience assisting and teaching IBM product teams into a roadmap that answers the question: "How do I start developing releases with agile planning?" He covers the basics of agile planning and shares his insights into what works and what doesn't. Editor's note: Figures 1 and 4 were updated and other corrections were added at the author's request.
Articles 15 Apr 2009  
 
Cultured Perl: Perl and the Amazon cloud, Part 2
This five-part series walks you through building a simple photo-sharing Web site using Perl and Apache to access Amazon's Simple Storage Service (S3) and SimpleDB. In this installment, learn how to upload a file into S3 from a Web page through an HTML form to minimize the load on the server, while maintaining a tight security policy.
Articles 08 Apr 2009  
 
Charming Python: Distributing computing with RPyC
RPyC is a seamless library for integrating $@!LessThan!@$!--000 and interacting--$@!GreaterThan!@$ Python processes on many machines/processes. This article looks at the advantages or drawbacks RPyC has over other distributed Python frameworks such as XML-RPC and Pyro. A few simple examples of using RPyC are included to give you a feel for the library.
Articles 31 Mar 2009  
 
Cultured Perl: Perl and the Amazon cloud, Part 1
This five-part series walks you through building a simple photo-sharing Web site using Perl and Apache to access Amazon's Simple Storage Service (S3) and SimpleDB. In this installment, get a feel for the benefits and drawbacks of S3 and SimpleDB by taking a tour of their architectures and starting to design your photo-sharing site.
Articles 31 Mar 2009  
 
Ganglia and Nagios, Part 2: Monitor enterprise clusters with Nagios
This is the second article in a two-part series that looks at a hands-on approach to monitoring a data center using the open source tools Ganglia and Nagios. In Part 2, learn how to install and configure Nagios, the popular open source computer system and network monitoring application software that watches hosts and services, alerting users when things go wrong. The article also shows you how to unite Nagios with Ganglia (from Part 1) and add two other features to Nagios for standard clusters, grids, and clouds to help with monitoring network switches and the resource manager.
Articles 25 Mar 2009  
 
Linux kernel advances
Life's certainties include death and taxes but also the advancement of the GNU/Linux operating system, and the last two kernel releases did not disappoint. The 2.6.28 and 2.6.29 releases contain an amazing amount of new functionality, such as a cutting-edge enterprise storage protocol, two new file systems, WiMAX broadband networking support, and storage integrity checking. Discover why it's time to upgrade.
Articles 24 Mar 2009  
 
Speaking UNIX: The Squirrel portable shell and scripting language
If you don't want to commit to the idiosyncrasies of a specific shell running on a particular platform, try the Squirrel Shell. The Squirrel Shell provides an advanced, object-oriented scripting language that works equally well on UNIX, Linux, Mac OS X, and Windows systems. Write a script once, and run it anywhere.
Articles 17 Mar 2009  
 
Linux tip: Finding rootfs during boot
As a Linux administrator, you may encounter rootfs errors like"cannot mount rootfs" and "kernel panic" when you try to reboot a server after attaching volumes from external storage or even after installing a new Linux operating system. This article outlines the Linux booting process on an x86 platform, shows why this problem happens, and offers four tips to avoid it or fix it.
Articles 11 Mar 2009  
 
Understanding and configuring PAM
The Pluggable Authentication Module (PAM) API exposes a set of functions that application programmers use for security-related functions like user authentication, data encryption, LDAP, and more. In this article, get a basic guide to the PAM model on Linux, see how to configure PAM, and learn how to design a sample PAM login application in 10 easy steps.
Articles 10 Mar 2009  
 
Ganglia and Nagios, Part 1: Monitor enterprise clusters with Ganglia
This is the first article in a two-part series that looks at a hands-on approach to monitoring a data center using the open source tools Ganglia and Nagios. In Part 1, see how to install and configure Ganglia, the scalable, distributed monitoring system for high-performance clusters based on a hierarchical design. Also learn how to add more monitoring capability by writing Ganglia plug-ins and by enabling external-source spoofing.
Articles 04 Mar 2009  
 
Automate VM deployment
Sometimes you need to create an configure a bundle of virtual machines at the same time, but manually cloning and configuring the lot promises to be an unhappy task. In this article, see how to develop an automatic VM deployment solution so you can launch and activate batches of self-configuring VMs quickly. And as a bonus, you'll discover an approach that lets you run customized applications separately for each deployed virtual machine after system start.
Articles 04 Mar 2009  
 
Tour the Linux generic SCSI driver
Computers control and transfer data to SCSI devices via SCSI commands. In this article, the author introduces some of the SCSI commands and methods of executing SCSI commands when using SCSI API in Linux. He provides background on the SCSI client/server model and the storage SCSI command. Next, he explains the Linux generic SCSI driver API and offers an example of using a system that focuses on executing the inquiry command using the generic driver.
Articles 25 Feb 2009  
 
Develop a GPS-aware application for the Nokia N810, Part 3: Finish the job
This series of articles shows how to build a global positioning system (GPS)-aware application using the Linux-based Nokia N810 Internet Tablet and its built-in GPS receiver. In this last of three installments, you'll put the final touches to the GPS trip tracker and get it ready for release.
Articles 18 Feb 2009  
 
Anatomy of ext4
The fourth extended file system, or ext4, is the next generation of journaling file systems, retaining backward compatibility with the previous file system, ext3. Although ext4 is not currently the standard, it will be the next default file system for most Linux distributions. Get to know ext4, and discover why it will be your new favorite file system.
Articles 17 Feb 2009  
 
Cloud computing with Linux
Cloud computing and storage convert physical resources (like processors and storage) into scalable and shareable resources over the Internet (computing and storage "as a service"). Although not a new concept, virtualization makes this much more scalable and efficient through the sharing of physical systems through server virtualization. Cloud computing gives users access to massive computing and storage resources without their having to know where those resources are or how they're configured. As you might expect, Linux plays a huge role. Discover cloud computing, and learn why there's a penguin behind that silver lining. [And see the new Resource links to the latest developerWorks content on cloud computing. -Ed]
Articles 11 Feb 2009  
 
Five network/system tricks for Linux on System z
Bringing up Linux on an IBM System z machine should be fairly easy, but problems can crop up. If you've had problems, try out these workarounds for annoying obstacles to starting Linux on an S/390 system: "route-unknown" messages, bad network service behaviors, file system corruption on shutdown, too-lengthy boot-path-device processes, and Virtual LAN hardware installation. Added bonus: Warnings (and workarounds) for two SUSE bugs.
Articles 11 Feb 2009  
 
Perform uniform mounting with generic NFS
To efficiently achieve uniform mounting in the presence of multiple, simultaneous NFS version exports, you need a generic NFS mount utility. Learn how a generic NFS mount utility can help reduce handling multiple NFS versions and simplify the management of those versions. The article describes the concept of the generic NFS mount, outlines the advantages and applications of the system, and gives some overall design details.
Articles 11 Feb 2009  
 
LXC: Linux container tools
Containers provide lightweight virtualization that lets you isolate processes and resources without the need to provide instruction interpretation mechanisms and other complexities of full virtualization. In this step-by-step tour of the container tools called Linux Containers (LXC), the author introduces you to the tools and shows how to get up and running on them.
Articles 03 Feb 2009  
 
Secure Linux containers cookbook
Lightweight containers, otherwise known as Virtual Private Servers (VPS) or Jails, are often thought of as a security tools designed to confine untrusted applications or users. However, as presently constructed, these containers do not provide adequate security guarantees. By strengthening these containers using SELinux or Smack policy, a much more secure container can be implemented in Linux. This article shows you how to create a more secure Linux-Security-Modules-protected container. Both the SELinux and Smack policy are considered works in progress, to be improved upon with help from their respective communities.
Articles 03 Feb 2009  
 
Python 3 primer, Part 2: Advanced topics
Python 3 is the latest version of Guido van Rossum's powerful general-purpose programming language. It breaks backwards compatibility with the 2.x line but has cleaned up some syntax issues. This second article builds on the previous article. In Part 2 of this two-part series, discover more new Python features and details on more advanced topics such as changes in abstract base classes, metaclasses, and decorators.
Articles 30 Jan 2009  
 
Embed Lua for scriptable apps
The Lua programming language is a small scripting language specifically designed to be embedded in other programs. Lua's C API allows exceptionally clean and simple code both to call Lua from C, and to call C from Lua. This allows developers who want a convenient runtime scripting language to easily implement the basic API elements needed by the scripting language, then use Lua code from their applications. This article introduces the Lua language as a possible tool for simplifying common development tasks, and discusses some of the reasons to embed a scripting language in the first place.
Articles 27 Jan 2009  
 
Scripting with Guile
Scheme is a programming language, but Guile -- an interpreter and library for Scheme -- transforms it into an embedded scripting language, making it ideal for bringing dynamic new life to your static applications. Take a quick tour of Guile, and discover its powerful features for building extensible applications.
Articles 20 Jan 2009  
 
Develop a GPS-aware application for the Nokia N810, Part 2: Consider your options
Discover the details of code design, library selection, unit testing, and user interface choices that make the most sense for you.
Articles 13 Jan 2009  
 
LoP/Cell/B.E.: Buffer overflow vulnerabilities, Part 2: Discovering how buffer overflow mechanisms work for Linux on Power-based systems
Get acquainted with buffer overflow vulnerabilities in Linux running on Power/Cell Broadband Engine Architecture processor-based servers. Buffer overflows occur when a process tries to store data outside of the bounds of a fixed-length buffer. When that happens, all sorts of erratic system behavior can result, and some can be detrimental to your system's security. Part 2 of this article series shows how to overwrite a function pointer in 32- and 64-bit modes and illustrates assembly components through shell, network, and socket code samples. (Part 1 briefly discussed buffer overflows and the Power and Cell/B.E. architectures, and then showed how you can change the process-execution flow in the target systems and overwrite a local variable in 32- and 64-bit modes.)
Articles 13 Jan 2009  
 
Enable high availability for composite applications
This article describes an implementation of high availability for a composite application using Linux-HA. Delivering high availability to composite applications can be challenging. Because composite applications consist of several distinct applications, each with different availability requirements, configuration is complex. In this article, the authors describe how they designed and implemented a high availability prototype for Tivoli Maximo, a composite app. Their configuration script shows how you can provide high availability to a heterogeneous cluster of related applications using a systematic and prioritized failover schedule.
Articles 13 Jan 2009  
 
LoP/Cell/B.E.: Buffer overflow vulnerabilities, Part 1: Understanding buffer overflow issues for Linux on Power-based systems
Get acquainted with buffer overflow vulnerabilities in Linux running on Power/Cell Broadband Engine Architecture processor-based servers. Buffer overflows occur when a process tries to store data outside of the bounds of a fixed-length buffer. When that happens, all sorts of erratic system behavior can result, and some can be detrimental to your system's security. Part 1 of this article series briefly discusses buffer overflows and the Power and Cell/B.E. architectures, and then shows how you can change the process-execution flow in the target systems and overwrite a local variable in 32- and 64-bit modes. (Part 2 will show how to overwrite a function pointer in 32- and 64-bit modes and illustrate assembly components through shell, network, and socket code samples.)
Articles 06 Jan 2009  
 
Install and configure WebSphere Application Server on UNIX and Linux systems
Learn how application servers are used in modern enterprise environments and how to install IBM WebSphere Application Server on UNIX and Linux systems to provide the cornerstone of a robust, well-supported enterprise Web environment. This tutorial also explains how to integrate WebSphere Application Server into the startup and shutdown processes on your UNIX and Linux servers and provides links to many other resources that will help you get up and running quickly with WebSphere Application Server.
Tutorials 22 Dec 2008  
 
Anatomy of Linux process management
The creation and management of user-space processes in Linux have many principles in common with UNIX but also include several unique optimizations specific to Linux. Here, review the life cycle of Linux processes and explore the kernel internals for user process creation, memory management, scheduling, and death.
Articles 20 Dec 2008  
 
Python 3 primer, Part 1: What's new
Python 3 is the latest version of Guido van Rossum's powerful general-purpose programming language. It breaks backwards compatibility with the 2.x line but has cleaned up some syntax issues. This article is the first in a series that talks about the changes that affect the language and backwards compatibility, and it provides examples of new features.
Articles 19 Dec 2008  
 
Hardening the Linux server
Servers -- whether used for testing or production -- are primary targets for attackers. By taking the proper steps, you can turn a vulnerable box into a hardened server and help thwart outside attackers. Learn how to secure SSH sessions, configure firewall rules, and set up intrusion detection to alert you to any possible attacks on your GNU/Linux server. Once you've gained a solid foundation in the basics of securing your server, you can build on this knowledge to further harden your systems.
Tutorials 17 Dec 2008  
 
Develop a GPS-aware application for the Nokia N810, Part 1: Development environment
Learn how to configure a development environment targeted at the Nokia N810 Internet Tablet, including setting up Eclipse on a target development machine for the Python language.
Articles 16 Dec 2008  
 
Blades and external storage: Set up a fault-tolerant environment
To build a highly available Linux server environment with IBM blades, first you need to set up a fault-tolerant environment between the blade and any external storage. This enables you to deliver redundancy and enable multipathing. In this article, learn how to integrate an x86-based IBM BladeCenter server and external IBM BladeCenter Boot Disk System (DS3200) SAS storage, as a critical prerequisite for a reliable blade server environment on Linux. Some Linux Volume Manager "hot-add" features designed to meet the increasing demand on storage systems are covered as well.
Articles 10 Dec 2008  
 
Distributed computing with Linux and Hadoop
Every day people rely on search engines to find specific content in the many terabytes of data that exist on the Internet, but have you ever wondered how this search is actually performed? One approach is Apache's Hadoop, which is a software framework that enables distributed manipulation of vast amounts of data. One application of Hadoop is parallel indexing of Internet Web pages. Hadoop is an Apache project with support from Yahoo!, Google, IBM, and others. This article introduces the Hadoop framework and shows you why it's one of the most important Linux-based distributed computing frameworks.
Articles 09 Dec 2008  
 
Scale your file system with Parallel NFS
The Network File System (NFS) is a stalwart component of most modern local area networks (LANs). But NFS is inadequate for the demanding input- and output-intensive applications commonly found in high-performance computing -- or, at least it was. The newest revision of the NFS standard includes Parallel NFS (pNFS), a parallelized implementation of file sharing that multiplies transfer rates by orders of magnitude. Here's a primer. [Note: The article has been updated with regard to vendor involvement in the origin and development of pNFS -- Ed.]
Articles 26 Nov 2008  
 
Hardening the Linux desktop
Although GNU/Linux has the reputation of being a much more secure operating system than Microsoft Windows, you still need to secure the Linux desktop. This tutorial takes you through the steps of installing and configuring antivirus software, creating a backup-restore plan, and making practical use of a firewall. When you finish, you'll have the knowledge and tools you need to harden your Linux desktop against most attacks and prevent illegitimate access to your computer.
Tutorials 25 Nov 2008  
 
POWER5 Virtualization: How to work with VLANs using the IBM Virtual I/O Server
Learn how to improve security between logical networks. In this article, Nigel Griffiths describes the benefits of working with VLANs using the IBM Virtual I/O Server (VIO Server).
Articles 18 Nov 2008  
 
Comparison of SLES (SUSE) and RHEL (Red Hat) on IBM System p
Most systems administrators planning to install Linux on IBM System p eventually run into an important dillemma: Which Linux distribution should I install? This article compares two distributions from Red Hat and Novell, and weighing the pros and cons of each. We'll discuss Linux on POWER (LoP), the history of both distributions, the relationship IBM has with them, and the factors that should go into your decision-making process. We also compare and contrast what it takes to create logical volumes on SuSE Linux Enterprise Server (SLES) and Red Hat Enterprise Linux (RHEL).
Articles 18 Nov 2008  
 
GCC hacks in the Linux kernel
The Linux kernel uses several special capabilities of the GNU Compiler Collection (GCC) suite. These capabilities range from giving you shortcuts and simplifications to providing the compiler with hints for optimization. Discover some of these special GCC features and learn how to use them in the Linux kernel.
Articles 18 Nov 2008  
 
Comparison of SLES (SUSE) and RHEL (Red Hat) on IBM System p
Most system administrators planning to install Linux on IBM System p eventually run into an important question: Which Linux distribution should I install? This article compares two distributions from Red Hat and Novell, and weighs the pros and cons of each. We'll discuss Linux on POWER (LoP), the history of both distributions, the relationship IBM has with them, and the factors that should go into your decision-making process. We're also going to compare and contrast what it takes to create logical volumes on SuSE Linux Enterprise Server (SLES) and Red Hat Enterprise Linux (RHEL).
Articles 18 Nov 2008  
 
Automating Linux cloud installations
A simplified process for installing operating systems can reduce the amount of time you spend on administration of your cloud computing environment. This article describes how you can automate the installation of SUSE Linux on a new IBM Power System or System p LPAR. You can also use the same techniques to install Red Hat Linux or AIX.
Articles 11 Nov 2008  
 
Linux project publications: Security
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community on the topic of Linux security.
Articles 08 Nov 2008  
 
Update Twitter and FriendFeed from the Linux command line
Learn how to use GNU Wget and cURL to send status updates to Twitter and FriendFeed without the use of a Twitter desktop application, and follow feeds from both Twitter and FriendFeed right from the Linux command line. This article was updated on 31 Oct 2008 to correct a coding error in the wget command under "Adding a tweet using GNU Wget and cURL." --Ed.
Articles 31 Oct 2008  
 
Get to know GCC 4
In the last few years, the GNU Compiler Collection (GCC) has undergone a major transition from GCC version 3 to version 4. With GCC 4 comes a new optimization framework (and new intermediate code representation), new target and language support, and a variety of new attributes and options. Get to know the major new features and their benefits.
Articles 28 Oct 2008  
 
Lazy Linux: 11 secrets for lazy cluster admins
"Cluster" means different things to different people. In the context of this article, cluster is best defined as "scale-out" -- scale-out clusters generally have a lot of the same type of components like Web farms, render farms, and high performance computing (HPC) systems. Administrators will tell you that with scale-out clusters any change, no matter how small, must be repeated up to hundreds of thousands of times; the laziest of admins have mastered techniques of scale-out management so that regardless of the number of nodes, the effort is the same. In this article, the authors peer into the minds of the laziest Linux admins on Earth and divulge their secrets.
Articles 22 Oct 2008  
 
Programmability, Part 1: Exploring different approaches to programming for Cell/B.E. platforms
The programming flexibility available for the Cell Broadband Engine(TM) is a hot topic in the multicore community. This article discusses leveraging your existing skills to program for Cell/B.E.(TM), offers three programming approaches for Cell/B.E. systems, and introduces the various tools, software, and hardware available for the platform.
Articles 14 Oct 2008  
 
Deliver high availability with a Xen virtual server
Get step-by-step details to implement Xen virtual server high availability via the IBM System Director Virtual Availability Manager. The Virtual Availability Manager is included in the IBM System Director Virtualization Manager package, an extension for IBM Director. In this article, the authors walk you through all the steps, from prerequisites and setup to troubleshooting -- everything you need to get started delivering virtual high availability capabilities.
Articles 01 Oct 2008  
 
TASK_KILLABLE: New process state in Linux
Linux kernel 2.6.25 introduced a new process state for putting processes to sleep called TASK_KILLABLE, which offers an alternative to the efficient but potentially unkillable TASK_UNINTERRUPTIBLE and the easy-to-awaken but safer TASK_INTERRUPTIBLE. TASK_KILLABLE is the outcome of an issue raised in 2002 about the OpenAFS file system driver waiting for an event interruptibly after blocking all signals. This new sleeping state echoes TASK_UNINTERRUPTIBLE with the ability to respond to fatal signals. In this article, the author sheds light on this area and, using examples from 2.6.26 and an earlier version, 2.6.18, discusses the related changes to the Linux kernel and the new APIs that resulted from these changes.
Articles 30 Sep 2008  
 
Monitor file system activity with inotify
Inotify is a Linux feature that monitors file system operations, such as read, write, and create. Inotify is reactive, surprisingly simple to use, and far more efficient than, say, busy polling from a cron job. Learn how to integrate inotify into your own applications, and discover a set of command-line tools you can use to further automate system administration.
Articles 16 Sep 2008  
 
Efficient data transfer through zero copy
This article explains how you can improve the performance of I/O-intensive Java applications running on Linux and UNIX platforms through a technique called zero copy. Zero copy lets you avoid redundant data copies between intermediate buffers and reduces the number of context switches between user space and kernel space.
Articles 02 Sep 2008  
 
Anatomy of Linux dynamic libraries
Dynamically linked shared libraries are an important aspect of GNU/Linux. They allow executables to dynamically access external functionality at run time and thereby reduce their overall memory footprint (by bringing functionality in when it's needed). This article investigates the process of creating and using dynamic libraries, provides details on the various tools for exploring them, and explores how these libraries work under the hood.
Articles 20 Aug 2008  
 
Work the CIM event model efficiently
In the Common Information Model (CIM), a client application can subscribe to be notified of CIM events. Normally, an application can create event filters with multiple event handlers through different connection ports, but this consumes lots of network resources and adds much complexity when it comes to maintenance. In this article, see how to register multiple CIM event handlers with a single specific connection port. Also pick up some tips on how to write code with the SBLIM CIM client library.
Articles 20 Aug 2008  
 
Linux on board: Developing for the Nokia N810
The Nokia N810 alarm interface allows developers to efficiently and easily set alarms programmatically. Peter Seebach illustrates how a small command-line program can hook into this API and make good use of it.
Articles 20 Aug 2008  
 
Speaking UNIX: The new and improved Vim editor
If you've worked on IBM AIX, another flavor of UNIX, or Linux, you've more than likely used the vi editor. Since its conception in 1976, vi has become a staple for anyone wanting to edit files. How could someone make a more powerful editing tool than vi, you may ask? The answer is Vim, and this article provides details on the many enhancements that have made Vim a highly used and acceptable editor in the world of UNIX and Linux.
Articles 19 Aug 2008  
 
Developing software on an open source stack
Web developers are enjoying a renaissance. After spending much of the previous decade toiling on server-centric code, programmers are now putting code front-and-center, turning the Web browser into its own computing platform. Much of the renaissance must be attributed to ingenuity. The newest generation of tools and application frameworks automate and simplify the drudgery of building, deploying, and maintaining a Web site. There are also more tools than ever, and all the most innovative tools are open source. This tutorial provides an expansive survey of the free software available to developers to create and deploy Web applications.
Tutorials 19 Aug 2008  
 
Java run-time monitoring, Part 3: Monitoring performance and availability of an application's ecosystem
The third and final installment in this series on run-time monitoring of Java applications focuses on strategies and techniques for monitoring the performance and availability of an application's supporting and dependent services. These include the underlying host operating system, the operational database, and messaging infrastructures. The article concludes with a discussion of performance data management issues and data reporting and visualization.
Articles 12 Aug 2008  
 
Build an embedded Linux distro from scratch
Learn how to build a custom Linux distribution to use in an embedded environment, in this case to drive a Technologic Systems TS-7800 single-board computer. In this tutorial, you learn about cross-compiling, the boot loader, file systems, the root file system, disk images, and the boot process, all with respect to the decisions you make as you're building the system and creating the distribution.
Tutorials 12 Aug 2008  
 
Complex networking using Linux on Power blades
Blades are an excellent choice for many applications and services, especially in the telecommunications service provider industry. But the unique requirements of these provider networks often require configurations that are complex and need up-front focus and planning so all the stringent functional requirements are met. In this article, learn how to plan and set up the necessary network configurations for a POWER6 JS22 blade deployment.
Articles 05 Aug 2008  
 
The Linux operating system as a managed object
Organizations today face two major challenges: deployment of an increasingly rich service mix and managing the associated massive base of computing platforms. In this article, discover a new(ish) means of viewing a key component of the organizational architecture--treating operating systems themselves as individual managed objects.
Articles 29 Jul 2008  
 
Traversing Red Hat Enterprise Linux 5 on System p
So you've been the AIX guru on your team for years now and your bosses have determined that they want to try Linux on System p. You can fight the change, or you can embrace it and learn Linux, if not learn to love it. The purpose of this article is to introduce Linux to AIX administrators. It will show you what you need to know to make the transition to Linux simpler. It will also show you the equivalent commands to perform specific tasks and also discusses process management, filesystem management, how to peruse systems information, install packages, and other important bits of information that you as the systems administrator will need to know. While you will not become an expert at Linux from this article, this should give you a good head start in what you need to know.
Articles 22 Jul 2008  
 
Lazy Linux: 10 essential tricks for admins
Learn these 10 tricks and you'll be the most powerful Linux systems administrator in the universe...well, maybe not the universe, but you will need these tips to play in the big leagues. Learn about SSH tunnels, VNC, password recovery, console spying, and more. Examples accompany each trick, so you can duplicate them on your own systems.
Articles 20 Jul 2008  
 
Anatomy of Linux loadable kernel modules
Linux loadable kernel modules, introduced in version 1.2 of the kernel, are one of the most important innovations in the Linux kernel. They provide a kernel that is both scalable and dynamic. Discover the ideas behind loadable modules, and learn how these independent objects dynamically become part of the Linux kernel.
Articles 16 Jul 2008  
 
Integrate encryption into Google Calendar with Firefox extensions
Today's Web applications provide many benefits for online storage, access, and collaboration. Although some applications offer encryption of user data, most do not. This article provides tools and code needed to add basic encryption support for user data in one of the most popular online calendar applications. Building on the incredible flexibility of Firefox extensions and the Gnu Privacy Guard, this article shows you how to store only encrypted event descriptions in Google's Calendar application, while displaying a plain text version to anyone with the appropriate decryption keys.
Articles 15 Jul 2008  
 
Automate backups on Linux
The loss of critical data can prove devastating. Still, millions of professionals ignore backing up their data. While individual reasons vary, one of the most common explanations is that performing routine backups can be a real chore. Because machines excel at mundane and repetitive tasks, the key to reducing the inherent drudgery and the natural human tendency for procrastination, is to automate the backup process.
Articles 03 Jul 2008  
 
Common threads: Awk by example, Part 1
Awk is a very nice language with a very strange name. In this first article of a three-part series, Daniel Robbins will quickly get your awk programming skills up to speed. As the series progresses, more advanced topics will be covered, culminating with an advanced real-world awk application demo.
Articles 03 Jul 2008  
 
Migrate device control applications from Windows to Linux
Ease the pain of migrating device control applications from Microsoft Windows to Linux by understanding how device control works in both operating systems. The authors outline these differences and give you a C/C++ migration sample.
Articles 24 Jun 2008  
 
Core partners, Part 4: Managing the PlayStation 3 Wi-Fi network
Terra Soft Solutions IT Manager Aaron Johnson shows you, step-by-step, how to configure and encrypt the built-in Wi-Fi network that comes with the Cell Broadband Engine(TM)-based Sony PlayStation 3. And, as a little bonus, get 16 quick steps that explain how to switch from a wireless network back to a wired network on the PS3.
Articles 17 Jun 2008  
 
Anatomy of Linux journaling file systems
In recent history, journaling file systems were viewed as an oddity and thought of primarily in terms of research. But today, a journaling file system (ext3) is the default in Linux. Discover the ideas behind journaling file systems, and learn how they provide better integrity in the face of a power failure or system crash. Learn about the various journaling file systems in use today, and peek into the next generation of journaling file systems.
Articles 04 Jun 2008  
 
Porting applications to Linux for System z
Server consolidation based on Linux for IBM System z offers advantages, but moving existing applications requires some specialized knowledge. In this article, get general advice on how to organize your porting project, including technical details on mainframe virtualization, byte-ordering, and address calculation specific to System z. This article also covers how development tools (compiler, linker, debugger) are supported on System z, and introduces IBM's free-of-charge Migration Kit for Solaris OS to Linux.
Articles 28 May 2008  
 
Anatomy of Linux flash file systems
You've probably heard of Journaling Flash File System (JFFS) and Yet Another Flash File System (YAFFS), but do you know what it means to have a file system that assumes an underlying flash device? This article introduces you to flash file systems for Linux, and explores how they care for their underlying consumable devices (flash parts) through wear leveling, and identifies the various flash file systems available along with their fundamental designs.
Articles 20 May 2008  
 
Manage widget geometry in PyGTK
Several container widgets exist in GTK+, and with the toolkit's API, you can create user-defined containers. This API is also exposed to PyGTK. In this article, learn how to create a "weighted-table" container in PyGTK. The implementation introduces you to the basic model of GTK+ geometry management and gives you a feel for what to consider and expect when implementing container widgets.
Articles 20 May 2008  
 
Install and boot Linux on BladeCenter S from an attached disk
The IBM BladeCenter S chassis is the first IBM BladeCenter to integrate server and storage. In this article, learn how to install SUSE Linux 10 on the blade's attached disk and then how to boot the blade server from the attached disk. The article also covers how to check the storage and blade status, how to map the disk to the blade, how to configure an SAS disk as the boot media, how to install the operating system on the attached disk, and how to handle the most common installation error.
Articles 06 May 2008  
 
Migrating to ext4
Ext4 is the latest in a long line of Linux file systems, and it's likely to be as important and popular as its predecessors. As a Linux system administrator, you should be aware of the advantages, disadvantages, and basic steps for migrating to ext4. This article explains when to adopt ext4, how to adapt traditional file system maintenance tool usage to ext4, and how to get the most out of the file system.
Articles 30 Apr 2008  
 
Anatomy of Security-Enhanced Linux (SELinux)
Linux has been described as one of the most secure operating systems available, but the National Security Agency (NSA) has taken Linux to the next level with the introduction of Security-Enhanced Linux (SELinux). SELinux takes the existing GNU/Linux operating system and extends it with kernel and user-space modifications to make it bullet-proof. If you're running a 2.6 kernel today, you might be surprised to know that you're using SELinux right now! This article explores the ideas behind SELinux and how it's implemented.
Articles 29 Apr 2008  
 
Worry-free Linux power-downs with Anacron
Linux ordinarily uses Cron to automatically perform routine system maintenance, such as rotating log files and updating spam filtering rules. This works well for servers and other systems that are powered on 24/7. If, however, you want to save power by shutting off the computer when it's not in use, as is common for desktop and laptop systems, Cron can't run. Not running Cron routinely can result in monstrously large log files and other problems. The Anacron utility provides a solution, enabling the computer to run regular maintenance jobs whenever the computer is powered on, even if those times are unpredictable.
Articles 21 Apr 2008  
 
Install Apache Geronimo v1.x on Linux
See how easy it is to install Apache Geronimo in a Linux environment. This demo shows how to install Apache Geronimo v1.x, an open source application server available from the Apache Software Foundation, in a Linux x86 environment for use by multiple developers.
Demos 16 Apr 2008  
 
Anatomy of real-time Linux architectures
It's not that Linux isn't fast or efficient, but in some cases fast just isn't good enough. What's needed instead is the ability to deterministically meet scheduling deadlines with specific tolerances. Discover the various real-time Linux alternatives and how they achieve real time -- from the early architectures that mimic virtualization solutions to the options available today in the standard 2.6 kernel.
Articles 15 Apr 2008  
 
LPI exam 301 prep, Topic 306: Capacity planning
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam. In this last in a series of six tutorials, Sean walks you through monitoring your system resources, troubleshooting resource problems, and analyzing system capacity.
Tutorials 15 Apr 2008  
 
Cell/B.E. SDK 3.0 tools, Part 1: Using performance tools
This introductory tutorial, designed as a companion for the IBM SDK for Multicore Acceleration, Version 3.0 (otherwise known as the Cell Broadband Engine(R) SDK), teaches you how to use five performance tools that reside in the SDK 3.0: OProfile, Cell Performance Counter, Performance Debugging Tool, the PDT Trace Reader, and FDPR-Pro. The Visual Performance Analyzer, available separately, is also highlighted.
Tutorials 15 Apr 2008  
 
LPI exam 301 prep, Topic 305: Integration and migration
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam. In this fifth in a series of six tutorials, Sean walks you through integrating LDAP with your system's logins and applications. He also details the procedure to integrate your server into a foreign Microsoft Active Directory.
Tutorials 08 Apr 2008  
 
Linux development on the PlayStation 3, Part 3: Slimming down X11 with tiny tools
The Sony PlayStation 3 (PS3) runs Linux, but getting it to run well requires some tweaking. In the third and final article of this series on PS3 Linux, Peter Seebach talks about ways to get X11 slimmed down to fit on a smaller memory budget.
Articles 08 Apr 2008  
 
Discover tput
One of the strongest assets UNIX has is the ability to make shell scripts to ease users' lives. These scripts can range from simple one-liners to several thousand lines. Many times, shell scripts evolve into menu-based scripts, and the scripter wants to display more to users than simply scrolling text. Other times, a simple line or two of output are displayed to users, and the shell scripter wants to put emphasis on a warning message.
Articles 01 Apr 2008  
 
Linux development on the PlayStation 3, Part 2: Working with memory
The Sony PlayStation 3 (PS3) runs Linux, but getting it to run well requires some tweaking. In this article, the second in a series, Peter Seebach takes a look at where all the memory goes and how to reclaim it.
Articles 31 Mar 2008  
 
Performance tradeoffs of TCP Selective Acknowledgment
Selective acknowledgment (SACK) is an optional feature of TCP that is necessary to effectively use all of the available bandwidth of some networks. While SACK is good for throughput, processing this type of acknowledgment has proven to be CPU intensive for the TCP sender. This weakness can be exploited by a malicious peer even under commodity network conditions. This article presents experimental measurements that characterize the extent of the problem within the Linux TCP stack. SACK is enabled by default on most distributions.
Articles 31 Mar 2008  
 
LPI exam 301 prep, Topic 304: Usage
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam. In this fourth in a series of six tutorials, Sean walks you through searching your LDAP tree and using the command-line tools. You'll also learn how to set up Microsoft Outlook to query your LDAP tree.
Tutorials 25 Mar 2008  
 
Monitor mainframe sessions remotely
Users access z/OS mainframes using a 3270 terminal emulator. In this article, learn how to build a simple shell script for UNIX or Linux that gives you a second terminal emulator to view everything a mainframe user is doing in real time.
Articles 19 Mar 2008  
 
Linux development on the PlayStation 3, Part 1: More than a toy
The Sony PlayStation 3 (PS3) runs Linux, but getting it to run well requires some tweaking. In this article, first in a series, Peter Seebach introduces the features and benefits of PS3 Linux, and explains some of the issues that might benefit from a bit of tweaking.
Articles 18 Mar 2008  
 
Prepare a self-installing drive for blade servers
Follow these nine steps to build a bootable, self-installing hard disk drive for an IBM BladeCenter HS20 blade server running SUSE Linux Enterprise Server 10. (These steps work for other blade servers, as well). When the system boots from this drive for the first time, it automatically begins to install Linux on the disk, which eases the task of preloading the operating system and lightens user workload.
Articles 18 Mar 2008  
 
Changing UIDs and GIDs
It's important to know what happens to file ownership in AIX once you make a UID or GID change. If you don't understand the results of altering a UID or GID, you could cause serious issues to your server and environment.
Articles 04 Mar 2008  
 
LPI exam 301 prep, Topic 303: Configuration
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam. In this third in a series of six tutorials, Sean walks you through configuring a Lightweight Directory Access Protocol (LDAP) server, including access control, security, and performance. By the end of this tutorial, you'll know about LDAP server configuration.
Tutorials 04 Mar 2008  
 
Multipath storage with Xen and DS4800
As the Xen open source hypervisor gains traction in many enterprises for production deployment, you may need to provide fully redundant storage to the Xen environment from the host adapter all the way down to the hard drives. In this article, learn how to use Red Hat Enterprise Linux 5.1 to set up Xen and multipath storage access to the IBM System Storage DS4800.
Articles 04 Mar 2008  
 
Systems Administration Toolkit: Log file basics
A typical UNIX or Linux machine creates many log files during the course of its operation. Some of these contain useful information; others can be used to help you with capacity and resource planning. This article looks at the fundamental information recorded within the different log files, their location, and how that information can be used to your benefit to work out what is going on within your system.
Articles 26 Feb 2008  
 
Desktop development for the OLPC laptop
The XO laptop (of the One-Laptop-Per-Child initiative) is an inexpensive laptop project intended to help educate children around the world. The laptop includes many innovations, such as a novel, inexpensive, and durable hardware design and the use of GNU/Linux as the underlying operating system. The XO also includes an application environment written in Python with a human interface called Sugar, accessible to everyone (including kids). This article is excerpted from the developerWorks tutorial "Application development for the OLPC laptop," which takes a look at the Sugar APIs and shows how to develop and debug a graphical activity in Sugar using Python.
Articles 26 Feb 2008  
 
Improve security with polyinstantiation
If you're concerned about protecting world-writeable shared directories such as /tmp or /var/tmp from abuse, a Linux Pluggable Authentication Module (PAM) can help you. The pam_namespace module creates a separate namespace for users on your system when they login. This separation is enforced by the Linux operating system so that users are protected from several types of security attacks. This article for Linux system administrators lays out the steps to enable namespaces with PAM.
Articles 26 Feb 2008  
 
Building your own memory manager for C/C++ projects
Performance optimization of code is serious business. It's fairly common to see a piece of functionally correct software written in C or C++ that takes way too much memory, time, or, in the worst case, both. As a developer, one of the most powerful tools that C/C++ arms you with to improve processing time and prevent memory corruption is the control over how memory is allocated or deallocated in your code. This tutorial demystifies memory management concepts by telling you how to create your very own memory manager for specific situations.
Tutorials 19 Feb 2008  
 
Role-based access control in SELinux
Role-based access control (RBAC) is a general security model that simplifies administration by assigning roles to users and then assigning permissions to those roles. RBAC in Security-Enhanced Linux (SELinux) acts as a layer of abstraction between the user and the underlying type-enforcement (TE) model, which provides highly granular access control but is not geared for ease of management. Learn how the three pieces of an SELinux context (policy, kernel, and userspace) work together to enforce the RBAC and tie Linux users into the TE policy.
Articles 13 Feb 2008  
 
SNMP-based monitoring for GPFS clusters
New in version 3.2, IBM General Parallel File System (GPFS) on Linux provides Simple Network Management Protocol (SNMP) services that let administrators collect SNMP data about the health of a GPFS cluster so that problems such as disk failure can be quickly identified. The system lets a collector node gather the trap information, which an administrator can then monitor and analyze remotely on a separate management node. This article provides a method for basic verification of SNMP in a GPFS cluster.
Articles 29 Jan 2008  
 
Explore Ubuntu Mobile and Embedded
Ubuntu is a great server and desktop distribution for the GNU/Linux operating system, but did you know that it's also ideal for handheld and mobile embedded devices? Ubuntu's latest release, Gutsy Gibbon, now includes support for the embedded and mobile spaces with the Ubuntu Mobile and Embedded (UME) project. Get to know the UME project, and find out how to get started.
Tutorials 15 Jan 2008  
 
Cell/B.E. container virtualization, Part 2: Implementation issues
This three-part series illustrates a hardware-resource-focused form of software virtualization known as container virtualization (or operating system virtualization), demonstrated through the open source project OpenVZ. The series provides a comprehensive overview of all the components and techniques needed to virtualize the Cell/B.E. processor with software methods. This second article of the series details the implementation of dedicated virtualization and partitioning that was described in Part 1 of the series.
Articles 08 Jan 2008  
 
developerWorks live!: Linux sessions
The Linux 2.6.23 kernel comes with a modular scheduler core and a Completely Fair Scheduler (CFS), which is implemented as a scheduling module. In this article, get acquainted with the major features of the CFS, see how it works, and look ahead to some of the expected changes for the 2.6.24 release.
Articles 08 Jan 2008  
 
Multiprocessing with the Completely Fair Scheduler
The Linux 2.6.23 kernel comes with a modular scheduler core and a Completely Fair Scheduler (CFS), which is implemented as a scheduling module. In this article, get acquainted with the major features of the CFS, see how it works, and look ahead to some of the expected changes for the 2.6.24 release.
Articles 08 Jan 2008  
 
Networking scalability on high-performance servers
The proliferation of high-performance scalable servers has added a new level of complexity to networking and system performance. In this article, learn how to optimize your multi-node, high-performance Linux system as it uses system board gigabit Ethernet adapters from 1 to 4 nodes. Take a look at problematic networking scalability situations and get tips on how to avoid the pitfalls.
Articles 01 Jan 2008  
 
Application development for the OLPC laptop
The XO laptop (of the One-Laptop-Per-Child initiative) is an inexpensive laptop project intended to help educate children around the world. The XO laptop includes many innovations, such as a novel, inexpensive, and durable hardware design and the use of GNU/Linux as the underlying operating system. The XO also includes an application environment written in Python with a human interface called Sugar, accessible to everyone (including kids). Explore the Sugar APIs and learn how to develop and debug a graphical activity in Sugar using Python.
Tutorials 18 Dec 2007  
 
Cell/B.E. container virtualization, Part 1: Concepts, architectures, and tools
This three-part series illustrates a hardware-resource-focused form of software virtualization known as container virtualization (or operating system virtualization), demonstrated through the open source project OpenVZ. The series provides a comprehensive overview of all the components and techniques needed to virtualize the Cell/B.E. processor with software methods. This first article of the series discusses the basic concepts involved, illustrates the salient points of the OpenVZ and Cell/B.E. architectures and how they work together, and describes some of the OpenVZ tools.
Articles 11 Dec 2007  
 
LPI exam 301 prep, Topic 302: Installation and development
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam. In this second in a series of six tutorials, Sean walks you through installing and configuring a Lightweight Directory Access Protocol (LDAP) server, and writing some Perl scripts to access the data. By the end of this tutorial, you'll know about LDAP server installation, configuration, and programming.
Tutorials 04 Dec 2007  
 
Linux on board: Auto-uploading Nokia N800 photos
These three installments of Linux on board show you how to get started building applications for the Nokia N800 by way of a working example: using the camera feature to create a Webcam. In this third and final installment, write an automatic photo-uploading routine for the photos you've taken.
Articles 04 Dec 2007  
 
Linux on board: Accessing the Nokia N800 camera
These three installments of Linux on board show you how to get started building applications by way of a working example: using the camera feature to create a Webcam. In this installment, walk through the start of building a camera application using gstreamer to access the Nokia N800 device's Webcam. (It's not as much work as you might think, especially since we borrow from an existing application.)
Articles 27 Nov 2007  
 
Linux on board: Developing for the Nokia N800
Root around inside the heart of the Nokia N800 phone/Internet tablet/Webcam and take a closer look at the build environment, based on scratchbox.
Articles 20 Nov 2007  
 
Anatomy of the Linux SCSI subsystem
The Small Computer Systems Interface (SCSI) is a collection of standards that define the interface and protocols for communicating with a large number of devices (predominantly storage related). Linux provides a SCSI subsystem to permit communication with these devices. Linux is a great example of a layered architecture that joins high-level drivers, such as disk or CD-ROM drivers, to a physical interface such as Fibre Channel or Serial Attached SCSI (SAS). This article introduces you to the Linux SCSI subsystem and discusses where this subsystem is going in the future.
Articles 14 Nov 2007  
 
Emacs editing environment, Part 7: Let Emacs help you out
Part 7 of this series shows you why Emacs is the self-documenting editor, and the many ways in which you can take advantage of the help and assistance offered in this editor. In this tutorial, learn about describing keystrokes, commands, and functions. You'll also read, browse, and search through a complete Emacs reference manual.
Tutorials 13 Nov 2007  
 
Software development for the OpenMoko Linux phone
The OpenMoko environment provides a completely free development environment for running application and system code on supported phone hardware, eliminating all dependency on proprietary code. This tutorial introduces the OpenEmbedded build environment used to create filesystem images for OpenMoko phones, such as the Neo 1973.
Tutorials 13 Nov 2007  
 
Anatomy of Linux synchronization methods
In your Linux education, you may have learned about concurrency, critical sections, and locking, but how do you use these concepts within the kernel? This article reviews the locking mechanisms available within the 2.6 kernel, including atomic operators, spinlocks, reader/writer locks, and kernel semaphores. It also explores where each mechanism is most applicable for building safe and efficient kernel code.
Articles 31 Oct 2007  
 
Anatomy of the Linux file system
When it comes to file systems, Linux is the Swiss Army knife of operating systems. Linux supports a large number of file systems, from journaling to clustering to cryptographic. Linux is a wonderful platform for using standard and more exotic file systems and also for developing file systems. This article explores the virtual file system (VFS) -- sometimes called the virtual filesystem switch -- in the Linux kernel and then reviews some of the major structures that tie file systems together.
Articles 30 Oct 2007  
 
LPI exam 301 prep, Topic 301: Concepts, architecture, and design
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam. In this first in a series of six tutorials, Sean introduces you to Lightweight Directory Access Protocol (LDAP) concepts, architecture, and design. By the end of this tutorial, you will know about LDAP concepts and architecture, directory design, and schemas.
Tutorial 23 Oct 2007  
 
LPI exam 301 prep, Topic 301: Concepts, architecture, and design
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam 301. In this first in a series of six tutorials, Sean introduces you to Lightweight Directory Access Protocol (LDAP) concepts, architecture, and design. By the end of this tutorial, you will know about LDAP concepts and architecture, directory design, and schemas.
Tutorials 23 Oct 2007  
 
LPI exam 301 prep, Topic 301: Concepts, architecture, and design
In this tutorial, Sean Walberg helps you prepare to take the Linux Professional Institute Senior Level Linux Professional (LPIC-3) exam 301. In this first in a series of six tutorials, Sean introduces you to Lightweight Directory Access Protocol (LDAP) concepts, architecture, and design. By the end of this tutorial, you will know about LDAP concepts and architecture, directory design, and schemas.
Tutorials 23 Oct 2007  
 
Linux assemblers: A comparison of GAS and NASM
This article explains some of the more important syntactic and semantic differences between two of the most popular assemblers for Linux, GNU Assembler (GAS) and Netwide Assembler (NASM), including differences in basic syntax, variables and memory access, macro handling, functions and external routines, stack handling, and techniques for easily repeating blocks of code.
Articles 17 Oct 2007  
 
Minimize recoding impact, Part 2: Removing obstacles to speedy performance
The first article in the series describes how to do a basic port to the Cell Broadband Engine process. This second article goes further in hammering out the details, including removing limitations based on DMA-transfer size, partitioning the program across multiple SPEs, and improving the program's speed even more.
Articles 16 Oct 2007  
 
POSIX file capabilities: Parceling the power of root
Linux has been using capabilities for years, but has recently acquired POSIX file capabilities. POSIX file capabilities split root user powers into smaller privileges, such as the ability to read files or to trace processes owned by another user. By assigning capabilities to a file, you can enable an unprivileged user to execute the file with those specified privileges. In this article, learn how to program using capabilities and how to switch on the ability of your system setuid root binaries to use file capabilities.
Articles 16 Oct 2007  
 
PS3 fab-to-lab, Part 2: Generating and analyzing signals
How do you take the Cell Broadband Engine (Cell/B.E.) processor from an off-the-shelf Sony PLAYSTATION 3 (PS3) and use it to construct a piece of Linux(R)-based laboratory equipment (in essence, take the Cell/B.E. from fab to hab to lab)? In this series, Lewin Edwards shows you how to go from game console to simple audio-bandwidth spectrum analyzer and function generator. In this article, the author shows you how to build on the infrastructure from Part 1 to make the system into a fully operational, if primitive, spectrum analyzer.
Articles 02 Oct 2007  
 
IBM Installation Toolkit: Loading Linux on POWER
The IBM Installation Toolkit for Linux on POWER simplifies the installation of Linux on virtualized and non-virtualized Power machines, gives you a bootable rescue DVD, and provides the software needed to fully exploit the Power platform. Learn to use the toolkit to install Red Hat Enterprise Linux and SUSE Linux Enterprise Server on IBM System p and System i5 machines.
Articles 26 Sep 2007  
 
System emulation with QEMU
QEMU is an open source emulator for complete PC systems. In addition to emulating a processor, QEMU permits emulation of all necessary subsystems, such as networking and video hardware. It also permits emulation of advanced concepts, such as symmetric multiprocessing systems (up to 255 CPUs) and other processor architectures, such as ARM or PowerPC. This article explores QEMU and its architecture and shows how to emulate a guest operating system on a Linux host.
Articles 25 Sep 2007  
 
Metaclass programming in Python, Part 3
Too much cleverness in programming makes designs more complicated, code more fragile, learning curves steeper, and worst of all, it makes debugging harder. Michele and David feel, in part, responsible for some excesses of cleverness that followed the enthusiastic reception of their earlier articles on Python metaclasses. In this article, they attempt to make amends, by helping programmers eschew cleverness.
Articles 25 Sep 2007  
 
Logical volume management
Volume management is not new in the -ix world (UNIX, AIX, and so forth). And logical volume management (LVM) has been around since Linux kernel 2.4v1 and 2.6.9v2. This article reveals the most useful features of LVM2--a relatively new userspace toolset that provides logical volume management facilities--and suggests several ways to simplify your system administration tasks. Based on reader feedback, the author has updated Listings 10, 14, 15, and 16. -Ed.
Articles 20 Sep 2007  
 
Applying mount namespaces
What if you could allow users to craft their own filesystem setup without being constrained by the sysadmin-dictated structure? Users could export part of their own filesystem tree and import other users' exported filesystem trees into their tree. This article provides a step-by-step guide for Linux system administrators to allow users to do just that with mount propagation.
Articles 17 Sep 2007  
 
Cross-platform graphics with cairo
Built from the ground up to create identical output on both printer and screen -- all in a cross-platform way -- cairo is becoming a huge player in the Linux graphics space. Harness the same 2D power used by GNOME, GTK+, Pango, and many others.
Articles 05 Sep 2007  
 
Minimize recoding impact, Part 1: How to make an SPE and existing code work together
Traditional porting requires identifying and abstracting out the architecture-dependent code: making code endian-independent, working through minor API differences, and including the appropriate header files and libraries. While this procedure works for getting code to run on the Cell Broadband Engine (Cell/B.E.) processor, to actually use the extra processing elements, you have to put in extra work, including reworking the code and rethinking the build process. In this series, learn to take advantage of the Synergistic Processor Elements (SPEs) in existing code and only make a minimal impact to the existing code and build process.
Articles 04 Sep 2007  
 
Charming Python: Python elegance and warts, Part 2
In this series of two articles, David discusses the non-obvious features and misfeatures that have been added to the last several Python versions, with the goal of helping part-time Python programmers uncover the gems while avoiding the pitfalls. This installment adds attributes and methods, descriptors, and properties to the discussion.
Articles 29 Aug 2007  
 
Set up a Web server cluster in 5 easy steps
Construct a highly available Apache Web server cluster that spans multiple physical or virtual Linux servers in 5 easy steps with Linux Virtual Server and Heartbeat v2.
Articles 22 Aug 2007  
 
Use gperf for efficient C/C++ command line processing
The GNU tool gperf is a "perfect" hash function that, for a given set of user-provided strings, generates C/C++ code for a hash table, a hash function, and a lookup function. Learn how to use gperf for effective command-line processing in your C/C++ code.
Articles 25 Jul 2007  
 
Industrial-strength Linux lockdown, Part 2: Executing only signed binaries
For technical and non-technical users alike, maintaining a large installed base of Linux machines can be a harrowing experience for an administrator. Technical users take advantage of Linux's extreme configurability to change everything to their liking, while non-technical users running amok within their own file systems. This tutorial is the second in a two-part series on locking your Linux machines down to streamline the associated support and administration processes. In this tutorial, you learn how to configure the Linux kernel to execute only signed binaries.
Tutorials 18 Jul 2007  
 
Changes in libspe: How libspe2 affects Cell Broadband Engine programming
The standard library that Power Processor Element (PPE) programs use to access and manage Synergistic Processor Elements (SPEs), called libspe, has undergone a major revision. The Cell Broadband Engine (Cell/B.E.) SDK 2.1 officially changes the library interface from libspe1 to libspe2. In this article, Jonathan Bartlett introduces the libspe2 concepts and shows how to do basic SPE process management and communication with libspe2.
Articles 17 Jul 2007  
 
LPI exam 102 prep, Topic 111: Administrative tasks
In this tutorial, Ian Shields continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 102. In this sixth in a series of nine tutorials, Ian introduces you to administrative tasks. By the end of this tutorial, you will know how to manage users and groups, set user profiles and environments, use log files, schedule jobs, back up your data, and maintain the system time.
Tutorials 10 Jul 2007  
 
Lightweight Web servers
Recent years have enjoyed a florescence of interesting implementations of Web servers, including lighttpd, litespeed, and mongrel, among others. These Web servers boast different combinations of performance, ease of administration, portability, security, and related values. The following engineering study surveys the field of lightweight Web servers to help you find one likely to meet the technical requirements of your next project.
Articles 10 Jul 2007  
 
The distro jungle
People who are new to Linux are often confused by the large number of distributions to choose from. The good news is that you can safely ignore most of them. This article helps you choose a distribution for getting started with your Linux exploration -- and helps you understand just what it is you've just chosen.
Articles 28 Jun 2007  
 
Anatomy of the Linux networking stack
One of the greatest features of the Linux operating system is its networking stack. It was initially a derivative of the BSD stack and is well organized with a clean set of interfaces. Its interfaces range from the protocol agnostics, such as the common sockets layer interface or the device layer, to the specific interfaces of the individual networking protocols. This article explores the structure of the Linux networking stack from the perspective of its layers and also examines some of its major structures.
Articles 27 Jun 2007  
 
Installing a large Linux cluster, Part 4: Node installation and GPFS cluster configuration
Create a working Linux(R) cluster from many separate pieces of hardware and software, including System x(TM) and IBM TotalStorage(R) systems. Part 4 provides the second half of the instructions you need to set up the storage backend, including installing General Parallel File System (GPFS) code on each node and configuring Qlogic adapters for storage nodes. Finally, this article takes you through the steps to create a GPFS cluster.
Articles 14 Jun 2007  
 
Turbocharge Ruby on Rails with ActiveScaffold
Save time and headaches, and create a more easily maintainable set of pages, with the Ruby on Rails ActiveScaffold plugin. ActiveScaffold handles all your CRUD (create, read, update, delete) user interface needs, leaving you more time to focus on more challenging (and interesting!) problems.
Articles 08 Jun 2007  
 
Tuning LAMP systems, Part 3: Tuning your MySQL server
Applications using the LAMP (Linux, Apache, MySQL, PHP/Perl) architecture are constantly being developed and deployed. But often the server administrator has little control over the application itself because it's written by someone else. This series of three articles discusses many of the server configuration items that can make or break an application's performance. This third article, the last in the series, focuses on tuning the database layer for maximum efficiency.
Articles 07 Jun 2007  
 
Anatomy of the Linux kernel
The Linux kernel is the core of a large and complex operating system, and while it's huge, it is well organized in terms of subsystems and layers. In this article, you explore the general structure of the Linux kernel and get to know its major subsystems and core interfaces. Where possible, you get links to other IBM articles to help you dig deeper.
Articles 06 Jun 2007  
 
Six ways to write more comprehensible code
As a developer, time is your most valuable resource. These six tips on how to write maintainable code are guaranteed to save you time and frustration: one minute spent writing comments can save you an hour of anguish.
Articles 29 May 2007  
 
Industrial-strength Linux lockdown, Part 1: Removing the shell
For technical and non-technical users alike, maintaining a large installed base of Linux machines can be a harrowing experience for an administrator. Technical users take advantage of Linux's extreme configurability to change everything to their liking, while non-technical users running amok within their own file systems. This tutorial is the first in a two-part series that shows you how and why to lock those machines down to streamline the associated support and administration processes. In this tutorial, you learn how to remove the interpreters from the installation base system.
Tutorials 23 May 2007  
 
Linux tip: Bash parameters and parameter expansions
Do you sometimes wonder how to use parameters with your scripts, and how to pass them to internal functions or other scripts? Do you need to do simple validity tests on parameters or options, or perform simple extraction and replacement operations on the parameter strings? This tip helps you with parameter use and the various parameter expansions available in the bash shell.
Articles 16 May 2007  
 
PS3 fab-to-lab, Part 1: Build Linux lab equipment from a Sony PLAYSTATION 3
How do you take the Cell Broadband Engine (Cell/B.E.) processor from an off-the-shelf Sony PLAYSTATION 3 (PS3) and use it to construct a piece of Linux-based laboratory equipment (in essence, taking the Cell/B.E. from fab to hab to lab)? In this series, Lewin Edwards shows you how to go from game console to simple audio-bandwidth spectrum analyzer and function generator. First up, uncover the design intent of the project and then make a close inspection of the details of the user interface implementation as you start a journey to generate and analyze signals on the Cell/B.E. processor.
Articles 15 May 2007  
 
Anatomy of the Linux slab allocator
Good operating system performance depends in part on the operating system's ability to efficiently manage resources. In the old days, heap memory managers were the norm, but performance suffered due to fragmentation and the need for memory reclamation. Today, the Linux kernel uses a method that originated in Solaris but has been used in embedded systems for quite some time, allocating memory as objects based on their size. This article explores the ideas behind the slab allocator and examines its interfaces and their use.
Articles 15 May 2007  
 
Setting up a multicluster environment using General Parallel File System
Learn how to construct and deconstruct a simple multicluster of System x(TM)and System p(TM) computers using the General Parallel File System (GPFS). You can remotely add an existing GPFS cluster to another cluster. See how to mount a file system from the remote cluster using the GPFS secure communication protocol.
Articles 11 May 2007  
 
Installing a large Linux cluster, Part 3: Storage and shared file systems
Create a working Linux(R) cluster from many separate pieces of hardware and software, including System x(TM) and IBM TotalStorage(R) systems. Part 3 provides the first half of the instructions you need to set up the storage backend, including details on storage architecture, needed hardware, and the Storage Area Network.
Articles 04 May 2007  
 
Linux system auditing by example
Think you have a secure Linux system? Following best practices during installation and setup is a must, but if you haven't set up regular system auditing, you're missing half the picture. This article discusses some existing tools and offers a couple of sample scripts to automate the process in a real-world environment.
Articles 30 Apr 2007  
 
Tuning LAMP systems, Part 2: Optimizing Apache and PHP
Applications using the LAMP (Linux, Apache, MySQL, PHP/Perl) architecture are constantly being developed and deployed. But often the server administrator has little control over the application itself because it's written by someone else. This series of three articles discusses many of the server configuration items that can make or break an application's performance. This second article focuses on steps you can take to optimize Apache and PHP.
Articles 30 Apr 2007  
 
Second Life client, Part 3: Adding simple translation to Second Life
In the last part of our exploration of the Second Life software, learn how to plug a simple command-line program into Second Life that provides a language translation function.
Articles 30 Apr 2007  
 
Second Life client, Part 2: Digging into the documentation
The developer documentation in the Second Life client takes the form of a wiki. In Part 2 of our ongoing exploration of the Second Life software, take a look at that documentation, and use it to jump-start some modifications to the client.
Articles 30 Apr 2007  
 
Configuring SUSE Linux on POWER5 to maximize performance
IBM POWER5(TM) and POWER5+(TM) systems provide excellent virtualization capabilities. Understand factors affecting virtualization performance of IBM POWER5 systems using SUSE Linux(R) Enterprise Server (SLES) 10. Learn how to use system tools that can help diagnose and solve performance problems. See examples of how to test for and improve performance.
Articles 26 Apr 2007  
 
Sugar, the XO laptop, and One Laptop per Child
One Laptop per Child (OLPC) is an organization whose mission is to develop a low-cost laptop (USD100) with accompanying software to spread computer literacy to children around the world. Because the device targets children, it must provide a novel user interface and applications that allow children to experiment with tools for expression and learning. The operating system for the OLPC is a port of the Linux kernel but with a unique interface called Sugar. In this article, learn about the Sugar human interface, see how to virtualize an OLPC laptop on a standard PC using QEMU, and take a tour of Sugar and the OLPC capabilities.
Articles 24 Apr 2007  
 
Leverage transparent huge pages on Linux on POWER
Learn more about the libhugetlbfs libraries and how to use them with the GNU Compiler Collection (GCC) or the IBM XL C/C++ and XL Fortran compilers for Linux(R). libhugetlbfs is an open source community project that provides transparent access for customer applications to system huge pages. SUSE Linux Enterprise Server 10 (SLES 10) and Red Hat Enterprise Server Linux 5 (RHEL 5) now support libhugetlbfs. While the libhugetlbfs support is available for a number of hardware platforms that support Linux huge pages, this article focuses on the 16MB huge page support available on IBM POWER processor-based systems.
Articles 20 Apr 2007  
 
Discover the Linux Kernel Virtual Machine
Linux and flexibility go hand in hand, and the options for virtualization are no different. But recently, a change in the Linux virtualization landscape has appeared with the introduction of the Kernel virtual Machine, or KVM. KVM is the first virtualization solution to be part of the mainline Linux kernel (V2.6.20). KVM supports the virtualization of Linux guest operating systems -- even Windows with hardware that is virtualization-aware. Learn about the architecture of the Linux KVM as well as why its tight integration with the kernel may change the way you use Linux.
Articles 18 Apr 2007  
 
SoC drawer: The Cell Broadband Engine chip: High-speed offload for the masses
Cell Broadband Engine (Cell/B.E.) chips are leading the broadband revolution in computing and provide the core silicon DNA for supercomputing, medical image processing, and many emergent applications, as worldwide connectivity and bandwidth continue to change the world we live in. This article explores the performance of application code on the Sony PLAYSTATION 3's Cell Broadband Engine system running Yellow Dog Linux. A simple program demonstrates how multithreaded applications that use the Synergistic Processing Elements to offload work can enjoy tremendous speedup.
Articles 17 Apr 2007  
 
Application development on Linux on POWER
Deploying and developing your application on Linux(R) for the IBM System p(TM) and System i(TM) POWER platforms is similar to deploying and developing on other Linux systems. In this article, the similarities and differences that you need to be aware of for the Linux on POWER systems are discussed. (Updated April 2007.)
Articles 16 Apr 2007  
 
Get started with the Linux key retention service
The Linux key retention service introduced with Linux 2.6 is a great new way to handle authentication, cryptography, cross-domain user mappings, and other security concerns for the Linux platform. Learn the components of the Linux key retention service and get an understanding of its usage with a working sample application.
Articles 11 Apr 2007  
 
Installing Linux servers on IBM Systems, Part 2: Installing multiple Linux servers using the NFS-based network installation method
Learn how to install multiple Linux(R) servers at the same time using network-based installation. In this second article of Harish Chauhan's series, understand how to configure and install using Network File Share (NFS) on System x(TM) with Red Hat Enterprise Linux Version 4.
Articles 06 Apr 2007  
 
The Power Architecture Time Base register in 64-bit Linux
Use the Power Architecture technology's Time Base register to measure time at the nanosecond level in Linux on PowerPC and Cell Broadband Engine (Cell/B.E.) microprocessors. Applications where this is useful include timestamping transactions (typically encrypted or digitally signed single-use messages), profiling code, and implementing small, precise software delays.
Articles 04 Apr 2007  
 
Programming high-performance applications on the Cell/B.E. processor, Part 6: Smart buffer management with DMA transfers
Explore the concepts of double-buffering and multibuffering to improve code speed by parallelizing processing and data transfer, and allowing the SPE's memory flow controller (MFC) to coordinate the best order of operations for loading and storing.
Articles 03 Apr 2007  
 
Virtualization with coLinux
Virtualization with VMware, Xen, and Kernel-based Virtual Machine (KVM) are all the rage these days. But did you know that you can run Linux cooperatively with Microsoft Windows? This article explores Cooperative Linux (coLinux), starting with a quick introduction to virtualization and then looking at the approach taken by coLinux. You'll also see how to get coLinux up and running on Windows.
Articles 31 Mar 2007  
 
Tuning LAMP systems, Part 1: Understanding the LAMP architecture
Applications using the LAMP (Linux, Apache, MySQL, PHP/Perl) architecture are constantly being developed and deployed. But often the server administrator has little control over the application itself because it's written by someone else. This series of three articles discusses many of the server configuration items that can make or break an application's performance. This first article covers the LAMP architecture, some measurement techniques, and some basic Linux kernel, disk, and file system tweaks. Successive articles investigate tuning the Apache, MySQL, and PHP components.
Articles 31 Mar 2007  
 
Charming Python: Python elegance and warts, Part 1
Since the "golden age" of Python 1.5.2 -- for a long time a stable and solid version -- Python has greatly increased its number of syntactic features and built-in functions and types. Each of these additions has reasonable justification, in isolation, but taken as a whole, they make Python no longer a language that experienced programmers can pick up "in an afternoon." Moreover, some of the changes have pitfalls along with benefits.
Articles 28 Mar 2007  
 
Second Life client, Part 1: Hacking Second Life
The open source release of the Second Life viewer program by developer Linden Lab offers a rare opportunity to peer into the comparative strengths of closed and open source development models. This article, the first in a series, gives an overview of some of the differences between these development styles, and talks about what's involved in setting up your own build environment.
Articles 27 Mar 2007  
 
Kernel command using Linux system calls
Linux system calls -- we use them every day. But do you know how a system call is performed from user-space to the kernel? Explore the Linux system call interface (SCI), learn how to add new system calls (and alternatives for doing so), and discover utilities related to the SCI.
Articles 21 Mar 2007  
 
Programming high-performance applications on the Cell BE processor, Part 5: Programming the SPU in C/C++
In Part 5 of the "Programming high-performance applications on the Cell BE processor" series, apply your knowledge of the synergistic processing unit (SPU) to programming the Cell Broadband Engine (Cell BE) processor in C/C++. Learn how to use the vector extensions, direct the compiler to do branch prediction, and perform DMA transfers in C/C++.
Articles 20 Mar 2007  
 
The Heath Robinson Rube Goldberg Computer, Part 4: The battle to make the virtual cabinets work
Nothing is as easy as one might hope. Since the last article was posted, the Heath Robinson Rube Goldberg (HRRG) Computer team has been battling every step of the way to bring the HRRG emulator's virtual cabinets online. On the way, we've re-engineered everything several times, and run across some unanticipated scenarios...
Articles 20 Mar 2007  
 
Linux and symmetric multiprocessing
As evidenced by major central processing unit (CPU) vendors, multi-core processors are poised to dominate the desktop and embedded space. With multiprocessing comes greater performance but also new problems. This article explores the ideas behind multiprocessing and developing applications for Linux that exploit SMP.
Articles 14 Mar 2007  
 
Installing Linux servers on IBM Systems, Part 1: Basic Linux server installation and configuration
Learn how to install and configure Red Hat Enterprise Linux(R) 4 on IBM standalone rack servers. The examples illustrate installation on x86 systems, but the examples can apply to a variety of hardware architectures, including x86_64, IA64, S/390(R), and ppc64.
Articles 09 Mar 2007  
 
Parallelize applications for faster Linux booting
One of the biggest complaints about Linux, particularly from developers, is the speed with which Linux boots. By default, Linux is a general-purpose operating system that can serve as a client desktop or server right out of the box. Because of this flexibility, Linux serves a wide base but is suboptimal for any particular configuration. This article shows you options to increase the speed with which Linux boots, including two options for parallelizing the initialization process. It also shows you how to visualize graphically the performance of the boot process.
Articles 07 Mar 2007  
 
Build a Fedora Live CD
Though Fedora Linux is a popular and mature Linux distribution, and many people have created Live CD distributions based on Fedora, the Fedora project itself didn't released its first official Live CD until December of 2006. Learn how to build your own custom and easy-to-use Live CDs using a rewrite of Pilgrim, the Fedora Live CD creation tool.
Articles 28 Feb 2007  
 
Assembly language for Power Architecture, Part 4: Function calls and the PowerPC 64-bit ABI
The ABI, or Application Binary Interface, is the set of conventions that allow programs written in different languages or compiled by different compilers to call each other's functions. This article, the last in a four-part series, discusses the PowerPC ABI for 64-bit ELF (UNIX-like) systems and how to write and call functions using it. Knowing in detail how the 64-bit PowerPC ABI works will help you write 64-bit programs for the POWER5 and other PowerPC-based processors more effectively, whether you program in assembly language or not. There is also a 32-bit ABI that is not covered in this article.
Articles 28 Feb 2007  
 
Xilinx hijinx, Part 2: Building and loading bitstreams and PowerPC code
Explore both the hardware and software sides of a complete Virtex4 project. In this second and final installment of the Xilinx hijinx series, you add and remove device cores from your project, interconnect project components, build the bitstream, integrate it with C code, and download the entire thing to the FPGA.
Articles 22 Feb 2007  
 
Programming high-performance applications on the Cell BE processor, Part 3: Meet the synergistic processing unit
Continue looking in depth at the Cell Broadband Engine (Cell BE) processor's synergistic processor elements (SPEs) and how they work at the lowest level. This installment explores storage alignment issues and the communication facilities of the SPEs.
Articles 22 Feb 2007  
 
UNIX tips and tricks for a new user, Part 4: Some nifty shell tricks
When writing a shell program, you often come across some special situation that you'd like to handle automatically. This tutorial includes examples of such situations from small Bourne shell scripts. These situations include base conversion from one string to another (decimal to hex, hex to decimal, decimal to octal, and so on), reading the keyboard while in a piped loop, subshell execution, inline input, executing a command once for each file in a directory, and multiple ways to construct a continuous loop. Part 4 of this series wraps up with a collection of shell one-liners that perform useful functions.
Tutorials 20 Feb 2007  
 
Linux tip: Bash test and comparison functions
Are you confused by the plethora of testing and comparison options in the Bash shell? This tip helps you demystify the various types of file, arithmetic, and string tests so you will always know when to use test, [ ], [[ ]], (( )), or if-then-else constructs.
Articles 20 Feb 2007  
 
developerWorks chats: Linux on the desktop
Greg Kelleher discusses why Linux can and should be a contender for end-user computing.
15 Feb 2007  
 
Portland improves Linux desktop portability
Portland is a new open source project that promises to simplify the deployment and commercialization of Linux applications by helping them run on multiple desktop environments, including Gnome and KDE. Although still young, Portland is available today, and it looks to be improving rapidly. Get started using the XdgUtils toolset in Portland 1.0.
Articles 13 Feb 2007  
 
Linux tip: Printing DVI files with CUPS
Have you ever tried to print DVI or other files in Linux and gotten an "unsupported format" message? This tip shows you how to combine existing tools to make a CUPS print filter for printing DVI files.
Articles 07 Feb 2007  
 
Programming high-performance applications on the Cell BE processor, Part 2: Program the synergistic processing elements of the Sony PLAYSTATION 3
Take even greater advantage of the synergistic processing elements (SPEs) of the Sony PLAYSTATION 3 (PS3) in this installment of "Programming high-performance applications on the Cell BE processor." Part 1 showed how to install Linux on the PS3 and explored a short example program. Part 2 looks in depth at the Cell Broadband Engine processor's SPEs and how they work at the lowest level.
Articles 07 Feb 2007  
 
Remote computing with a Linux application server farm
You've heard of Web 2.0, right? Well, here's "utility computing 2.0," a combination of network booting, SSL, VNC, and other familiar concepts and technologies -- all on Linux -- that can yield dramatic returns on investment. See how the University of California set up a server farm environment to provide secure remote desktop application services for students.
Articles 06 Feb 2007  
 
Reduce your Linux memory footprint
A lack of physical memory can severely hamper Linux performance. In this article, learn how to accurately measure the amount of memory your Linux system uses. You also get practical advice on reducing your memory requirements using an Ubuntu system as an example.
Articles 31 Jan 2007  
 
Create uniform namespace using autofs with NFS Version 3 clients and servers
Do you have trouble accessing data exported from multiple file servers? If so, try using open source implementations of autofs and Lightweight Directory Access Protocol (LDAP), with Network File System (NFS) Version 3, to access data under the same global mount point. In this article, study and compare five different methods to create a uniform namespace using autofs. A handy table with a comparative evaluation is available to help you choose the best technique for your scenario.
Articles 30 Jan 2007  
 
LPI exam 102 prep, Topic 109: Shells, scripting, programming, and compiling
In this tutorial, Ian Shields continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 102. In this fifth in a series of nine tutorials, Ian introduces you to the Bash shell, and scripts and programming in the Bash shell. By the end of this tutorial, you will know how to customize your shell environment, use shell programming structures to create functions and scripts, set and unset environment variables, and use the various login scripts.
Tutorials 30 Jan 2007  
 
Xilinx hijinx, Part 1: The ML403 out-of-box experience
Discover reasons you might choose an FPGA-based system over a traditional hard-IP microcontroller, and identify the learning curve traditional programmers face when meeting RAM-based programmable logic for the first time. In this new series, Lewin Edwards unpacks the Xilinx ML403 Embedded Development Kit and sorts out some of its idiosyncrasies.
Articles 30 Jan 2007  
 
Installing a large Linux cluster, Part 2: Management server configuration and node installation
Create a working Linux(R) cluster from many separate pieces of hardware and software, including IBM System x(TM) and IBM TotalStorage(R) systems. This second part in a multipart series describes configuring the management server and installing the nodes in the cluster.
Articles 25 Jan 2007  
 
SSL secures VNC applications
SSL provides a novel mechanism for convenient, secure access of remote desktops with VNC and standard Web browsers.
Articles 24 Jan 2007  
 
Assembly language for Power Architecture, Part 3: Programming with the PowerPC branch processor
The last two articles discussed the outline of how programs on the POWER5 processor work using the 64-bit PowerPC instruction set, how the PowerPC instruction set addresses memory, and how to do position-independent code. This article focuses on the very powerful condition and branch instructions available in the PowerPC instruction set.
Articles 17 Jan 2007  
 
Whistle while you work to run commands on your computer
Use Linux or Microsoft Windows, the open source sndpeek program, and a simple Perl script to read specific sequences of tonal events -- literally whistling, humming, or singing to your computer -- and run commands based on those tones. Give your computer a short low whistle to check your e-mail or unlock your your screensaver with the opening bars of Beethoven's Fifth Symphony. Whistle while you work for higher efficiency.
Articles 09 Jan 2007  
 
Programming high-performance applications on the Cell BE processor, Part 1: An introduction to Linux on the PLAYSTATION 3
The Sony PLAYSTATION 3 (PS3) is the easiest and cheapest way for programmers to get their hands on the new Cell Broadband Engine (Cell BE) processor and take it for a drive. Discover what the fuss is all about, how to install Linux on the PS3, and how to get started developing for the Cell BE processor on the PS3.
Articles 03 Jan 2007  
 
Charming Python: Decorators make magic easy
Python made metaprogramming possible, but each Python version has added slightly different -- and not quite compatible -- wrinkles to the way you accomplish metaprogramming tricks. Playing with first-class function objects has long been around, as have techniques for peaking and poking at magic attributes. With version 2.2, Python grew a custom metaclass mechanism that went a long way, but at the cost of melting users' brains. More recently, with version 2.4, Python has grown "decorators," which are the newest -- and by far the most user-friendly way, so far -- to perform most metaprogramming.
Articles 29 Dec 2006  
 
Virtual Linux
Virtualization means many things to many people. A big focus of virtualization currently is server virtualization, or the hosting of multiple independent operating systems on a single host computer. This article explores the ideas behind virtualization and then discusses some of the many ways to implement virtualization. We also look at some of the other virtualization technologies out there, such as operating system virtualization on Linux.
Articles 29 Dec 2006  
 
Host multiple SSL sites on a single network card with IP aliasing
The interest in using SSL and name-based virtual hosts together is on the increase. Some people will tell you that such a thing is impossible, but you can implement virtual hosts in Apache through IP-based virtual hosts. In this article, John Liao and Jim Miles show you how.
Articles 19 Dec 2006  
 
OpenPower Project
Welcome to the OpenPower Project! Test the latest Linux on POWER servers.
19 Dec 2006  
 
Lazy programming and lazy evaluation
Lazy programming is a general concept of delaying the processing of a function or request until the results are needed. This concept has numerous applications, from the obvious to the obscure. Thinking in terms of lazy programming can help you rid your code of unneeded computation and restructure programs to be more problem-oriented.
Articles 18 Dec 2006  
 
Linux project publications: Kernel
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of kernels.
Articles 14 Dec 2006  
 
Installing a large Linux cluster, Part 1: Introduction and hardware configuration
Create a working Linux(R) cluster from many separate pieces of hardware and software, including IBM(R) System x(TM) and IBM TotalStorage(R) systems. This part in this multipart series covers hardware configuration, including understanding architecture, planning logical network design, setting up terminal servers, and updating firmware.
Articles 06 Dec 2006  
 
How to use IBM XL C/C++ Advanced Edition V8.0 for Linux on POWER
Linux developers using IBM Power Architecture processor-based systems can rapidly migrate from the GNU gcc and g++ compilers (referred to as GCC) to the IBM XL C/C++ Advanced Edition V8.0 for Linux by using the instructions in this article. This article replaces "How to Use IBM XL C/C++ Advanced Edition V7.0 for Linux on POWER: A guide for GCC users," published on developerWorks in December 2004.
Articles 06 Dec 2006  
 
UNIX tips and tricks for a new user, Part 3: Introducing filters and regular expressions
Discover the power of UNIX(R) filters. In this tutorial, you'll learn about the grep family in depth, including the syntax of regular expressions in many UNIX utilities. You'll also find out more about the stream editor, sed, as well as examine the awk pattern scanning language through examples and explanations.
Tutorials 05 Dec 2006  
 
Data visualization tools for Linux
Applications for graphical visualization of data on Linux are varied, from simple 2-D plots to 3-D surfaces, scientific graphics programming, and graphical simulation. Luckily, there are many open source possibilities, including gnuplot, GNU Octave, Scilab, MayaVi, Maxima, OpenDX, and others. Each has its advantages and disadvantages and targets different applications. Explore a variety of open source graphical visualization tools to better decide which is best for your application. [This article has been updated to include coverage of OpenDX - Ed.]
Articles 30 Nov 2006  
 
Improve LAMP security with Apache Proxy's directive (mod_proxy)
In this article, Nick Maynard outlines a method for you to improve the security of a LAMP setup by using Apache's mod_proxy module. This article is specific to Linux; however, you can also apply some of the principles to other operating systems.
Articles 29 Nov 2006  
 
Assembly language for Power Architecture, Part 2: The art of loading and storing on PowerPC
The previous article in this series introduced assembly language programming using the 64-bit PowerPC instruction set on POWER5 and other processors that use these instructions. This article drills down and discusses the specifics of 64-bit PowerPC assembly language programming on Linux and UNIX-like operating systems, focusing on data access methods and position-independent code.
Articles 29 Nov 2006  
 
Linux on board: Linux powers Nokia 770
The Linux-based Nokia 770 Internet tablet is an intriguing gadget for Linux enthusiasts. Though it lacks most of the personal information manager (PIM) apps one would expect from a palmtop-sized device, recent advances in its development environment make it a toybox for hobbyists and professional embedded developers alike.
Articles 22 Nov 2006  
 
A brief history of spam
The Linux-based Nokia 770 Internet tablet is an intriguing gadget for Linux enthusiasts. Though it lacks most of the personal information manager (PIM) apps one would expect from a palmtop-sized device, recent advances in its development environment make it a toybox for hobbyists and professional embedded developers alike.
Articles 22 Nov 2006  
 
vi intro -- the cheat sheet method
This tutorial shows how to use vi, a powerful visual editor. Using an accelerated "cheat sheet" method, this tutorial aims to make you a proficient vi user without requiring a huge time commitment. You'll quickly learn how to move around, edit text, use insert mode, copy and paste text, and use important vim extensions like visual mode and multi-window editing.
Tutorials 15 Nov 2006  
 
Monitor your Linux computer with machine-generated music
Use Perl and FluidSynth to create a real-time musical composition of your system status. Learn how to integrate various system monitoring data into a harmony-producing, MIDI-controlled audio synthesis. Explore audible information methods and configurations to help you monitor and manage your computing environment.
Articles 14 Nov 2006  
 
The GNU Linear Programming Kit, Part 3: Advanced problems and elegant solutions
The GNU Linear Programming Kit (GLPK) is a powerful, proven tool for solving numeric problems with multiple constraints. This article, the third in a three-part series uses GLPK and the glpsol client utility with the GNU MathProg language to solve a perfume production problem and a basketball lineup problem.
Articles 14 Nov 2006  
 
Build a Web spider on Linux
Web spiders are software agents that traverse the Internet gathering, filtering, and potentially aggregating information for a user. Using common scripting languages and their collection of Web modules, you can easily develop Web spiders. This article shows you how to build spiders and scrapers for Linux to crawl a Web site and gather information, stock data, in this case.
Articles 14 Nov 2006  
 
Shake some sense into your Linux ThinkPad
Place your computer on the leading edge of cathartic interfaces by modifying the kernel to reset your Linux laptop automatically when shaken during a kernel panic. Implement a shake-detection algorithm in the kernel and user space to perform automatic shutdowns and restarts when certain kinetic conditions are met.
Articles 07 Nov 2006  
 
Debugging make
Make utilities such as GNU make, System V make, and Berkeley make, are fundamental tools for streamlining the application build process, but each one is just a little different from the others. Learn the structure of the makefile and how to avoid common mistakes in its creation, discover how to fix or work around portability issues, and pick up hints for solving other problems as they crop up.
Articles 24 Oct 2006  
 
Charming Python: Hatch Python eggs with setuptools
David takes a look at the setuptools framework, a side project of the Python Enterprise Application Kit (PEAK). setuptools replaces the standard distutils library and adds versioned package and dependency management to Python. Perl users will be familiar with CPAN, and Ruby users with Gems; the tool ez_setup that bootstraps setuptools and the expanded easy_install that comes with it act in conjunction with "Cheeseshop" (the Python Package Index, also called "PyPI") to achieve the same thing. Moreover, setuptools lets you package your libraries in a single-file archive called an "egg," which is a lot like a Java JAR file, but for Python.
Articles 24 Oct 2006  
 
Port your code around the world with m17n
To make Linux applications usable worldwide, with no inequity between Western dialects and the rest of the world's many languages, you must be able to deliver localized versions that input, store, retrieve, and render any language, no matter how complex. The multilingualization library, or m17n, provides a single internationalization solution for all languages on UNIX-like platforms.
Articles 17 Oct 2006  
 
Version control for Linux
Version control systems, or source management systems, are an important aspect of modern software development. Not using one is like driving a car too fast: it's fun and you might get to your destination faster, but an accident is inevitable. This article provides an overview of Software Configuration Management (SCM) systems and their benefits, including CVS, Subversion, Arch, and Git. It also reviews the most common SCM architectures. Finally, it explores some of the new approaches that are available and how they differ from the earlier methods. [Listing 4 has been updated to reflect improvements to Git's syntax. -Ed.]
Articles 16 Oct 2006  
 
Assembly language for Power Architecture, Part 1: Programming concepts and beginning PowerPC instructions
The POWER5 processor is a 64-bit workhorse used in a variety of settings. Starting with this introduction to assembly language concepts and the PowerPC instruction set, this series of articles introduces assembly language in general and specifically assembly language programming for the POWER5.
Articles 03 Oct 2006  
 
Linux on board: Inside the MediaMVP
As an MP3 and MPEG player, the Hauppauge MediaMVP lets you play digital media through your television set. As a tightly purposed embedded device, it is an excellent example of a compact Linux implementation on minimal hardware.
Articles 28 Sep 2006  
 
Secure programming with the OpenSSL API, Part 3: Providing a secure service
Without secure server applications, the need for secure client applications is nonexistent. With OpenSSL, you can create secure server applications, and, although the documentation makes it look intimidating, it's really not difficult. Learn how to build a secure server app by building on the concepts covered in Part 1 of this series.
Articles 27 Sep 2006  
 
Taking OpenPower for a spin, Part 1: Exploring 64-bit development on POWER5
The OpenPower program offers free remote access to servers running 64-bit Linux on POWER5 processors. In Part 1 of the Taking OpenPower for a spin series, author Peter Seebach introduces the process of getting access to a system and compiling applications for it, both as 32-bit and 64-bit applications. He pays particular attention to issues unique to "guest" software development without root privileges -- something most Linux users have never had to do.
Articles 26 Sep 2006  
 
Taking OpenPower for a spin, Part 3: How to avoid having to port your code
Why is porting even hard? In this last article of the "Taking OpenPower for a spin" series, Peter Seebach looks at what kinds of issues are involved with portability from one architecture to another and contrasts APIs with hardware interfaces.
Articles 26 Sep 2006  
 
Taking OpenPower for a spin, Part 2: Porting issues in targeting 64-bit systems
In Part 2 of the Taking OpenPower for a spin series, Peter Seebach reviews code portability issues when porting to 64-bit systems, looking in particular at code and data portability, with concrete examples of some of the rare kinds of code that require real modification.
Articles 26 Sep 2006  
 
Build cross-platform GUIs using wxWidgets
The wxWidgets toolkit contains powerful, cross-platform tools for graphical user interface (GUI) development. In addition to its native C++, several languages offer wrappers for use with the toolkit. Learn how to use the wxWidgets toolkit to create elegant and highly useful GUIs in your programming language of choice.
Articles 21 Sep 2006  
 
Build cross-platform GUIs using wxWidgets
The wxWidgets toolkit contains powerful, cross-platform tools for graphical user interface (GUI) development. In addition to its native C++, several languages offer wrappers for use with the toolkit. Learn how to use the wxWidgets toolkit to create elegant and highly useful GUIs in your programming language of choice.
Articles 21 Sep 2006  
 
LPI exam 102 prep, Topic 108: Linux documentation
In this tutorial, the fourth of a series of nine tutorials on LPI exam 102 topics, Ian Shields introduces you to Linux documentation. By the end of this tutorial, you will know how to use and manage local documentation, find documentation on the Internet, and use automated logon messages to notify users of system events.
Tutorials 20 Sep 2006  
 
Testing and measuring the TAMS 3011, Part 6: Booting NetBSD on new hardware, the saga begins
Porting an operating system to new hardware can be a fairly easy process, or a fairly difficult one, depending on the issues you encounter. Peter Seebach walks you through his experience getting NetBSD running on a new board using existing hardware.
Articles 19 Sep 2006  
 
NFSv4 delivers seamless network access
Network File System (NFS) has been part of the world of free operating systems and proprietary UNIX flavors since the mid-1980s. But not all administrators know how it works or why there have been new releases. A knowledge of NFS is important simply because the system is vital for seamless access across UNIX networks. Learn how the latest release of NFS, NFSv4, has addressed many criticisms, particularly with regard to security problems, that became apparent in versions 2 and 3.
Articles 12 Sep 2006  
 
The GNU Linear Programming Kit, Part 2: Intermediate problems in linear programming
This article continues the series on using the GNU Linear Programming Kit and the glpsol client utility with the GNU MathProg language. In this installment, a diet problem shows you how to formulate a simple multi-variable and declare bidimensional parameters. A post office resource allocation problem then introduces MathProg expressions and integer-only decision variables.
Articles 07 Sep 2006  
 
Open source robotics toolkits
Building a robot involves skills from many disciplines, including embedded firmware and hardware design, sensor selection, controls systems design, and mechanical design. But simulation environments can provide a virtual arena for testing, measuring, and visualizing robotics algorithms without the high cost (and time) of development. This article introduces you to some of the open source robotics toolkits for Linux, demonstrates their capabilities, and helps you decide which is best for you.
Articles 05 Sep 2006  
 
Patches for developerWorks trials: Installing the compatibility patch for IBM Rational Functional Tester V6.1 trial for Linux
After you install the trial version of Rational Functional Tester V6.1 for Linux, and before you run it, you must apply a patch to update certain configuration files. The patch is required because retail versions of Rational Software Development Platform products are designed to install additional components only if some components are already installed. As a result, trial versions of these products cannot coexist with the retail versions. This article details how to apply the patch, how to update your workspace, and how to update your trial product.
Articles 31 Aug 2006  
 
Open BIOSes for Linux
On many systems, a large portion of boot time goes into providing legacy support for MS-DOS. Various projects, including LinuxBIOS and Open Firmware, are trying to replace the proprietary BIOS systems with streamlined pieces of code able to do only what is necessary to get a Linux kernel loaded and running. This article gives a brief overview of the field.
Articles 31 Aug 2006  
 
Patches for developerWorks trials: Installing the compatibility patch for IBM Rational Systems Developer V6.0.1 trial for Linux
After you install the trial version of Rational Systems Developer V6.0.1 for Linux, and before you run it, you must apply a patch to update certain configuration files. The patch is required because retail versions of Rational Software Development Platform products are designed to install additional components only if some components are already installed. As a result, trial versions of these products cannot coexist with the retail versions. This article details how to apply the patch, how to update your workspace, and how to update your trial product.
Articles 31 Aug 2006  
 
Patches for developerWorks trials: Installing the compatibility patch for IBM Rational Software Modeler V6.0 trial for Linux
After you install the trial version of Rational Software Modeler V6.0 for Linux, and before you run it, you must apply a patch to update certain configuration files. The patch is required because retail versions of Rational Software Development Platform products are designed to install additional components only if some components are already installed. As a result, trial versions of these products cannot coexist with the retail versions. This article details how to apply the patch, how to update your workspace, and how to update your trial product.
Articles 31 Aug 2006  
 
Patches for developerWorks trials: Installing the compatibility patch for IBM Rational Software Architect V6.0 trial for Linux
After you install the trial version of Rational Software Architect V6.0 for Linux, and before you run it, you must apply a patch to update certain configuration files. The patch is required because retail versions of Rational Software Development Platform products are designed to install additional components only if some components are already installed. As a result, trial versions of these products cannot coexist with the retail versions. This article details how to apply the patch, how to update your workspace, and how to update your trial product.
Articles 31 Aug 2006  
 
Patches for developerWorks trials: Installing the compatibility patch for IBM Rational Application Developer V6.0 trial for Linux
After you install the trial version of Rational Application Developer V6.0 for Linux, and before you run it, you must apply a patch to update certain configuration files. The patch is required because retail versions of Rational Software Development Platform products, such as Rational Application Developer V6.0, are designed to install additional components only if some components are already installed. As a result, trial versions of these products cannot coexist with the retail versions. This article details how to apply the patch, how to update your workspace, and how to update your trial product.
Articles 29 Aug 2006  
 
Boost application performance using asynchronous I/O
The most common input/output (I/O) model used in Linux is synchronous I/O. After a request is made in this model, the application blocks until the request is satisfied. This is a great paradigm because the calling application requires no central processing unit (CPU) while it awaits the completion of the I/O request. But in some cases there's a need to overlap an I/O request with other processing. The Portable Operating System Interface (POSIX) asynchronous I/O (AIO) application program interface (API) provides this capability. In this article, get an overview of the API and see how to use it.
Articles 29 Aug 2006  
 
Patches for developerWorks trials: Installing the compatibility patch for IBM Rational Data Architect V6.1 trial for Linux
After you install the trial version of Rational Data Architect V6.1 for Linux, and before you run it, you must apply a patch to update certain configuration files. The patch is required because retail versions of Rational Software Development Platform products are designed to install additional components only if some components are already installed. As a result, trial versions of these products cannot coexist with the retail versions. This article details how to apply the patch, how to update your workspace, and how to update your trial product.
Articles 29 Aug 2006  
 
LPI exam 102 prep, Topic 107: Printing
In this tutorial, the third of a series of nine tutorials on LPI exam 102 topics, Ian Shields introduces you to printing in Linux. By the end of this tutorial, you will know how to manage printers, print queues, and user print jobs on a Linux system.
Tutorials 22 Aug 2006  
 
BusyBox simplifies embedded Linux systems
BusyBox is a single executable implementation of many standard Linux utilities. BusyBox contains simple utilities, such as cat and echo, as well as larger, more complex tools, such as grep, find, mount, and telnet (albeit, with fewer options than the traditional version); some refer to BusyBox as the Swiss Army knife of utilities. This article explores the purpose of BusyBox, how it works, and why it's important for memory-constrained environments.
Articles 15 Aug 2006  
 
Using open source software to design, develop, and deploy a collaborative Web site, Part 4: Building your development environment in Linux
Install and configure in this tutorial all the software necessary to develop a Drupal-based Web site using Linux, including Eclipse, PHP, and more. When you're done, you will have a blank development canvas that you can use for any development project.
Tutorials 11 Aug 2006  
 
Simplify data extraction using Linux text utilities
Much of Linux system administration involves tediously combing through plain-text configuration files. Fortunately, Linux has a rich array of UNIX-derived data extraction utilities, including head, tail, grep, egrep, fgrep, cut, paste, join, awk, and more. This article uses real-world examples that show how these simple command-line programs can make you a better sysadmin. This article looks at each data extraction utility and its options, applies them to typical files that are used in day-to-day work, and looks at how and why each tool is useful for pulling data from these files.
Articles 09 Aug 2006  
 
Debugging Cell Broadband Engine systems
Software development for new architectures can be an intimidating prospect, but the Cell Broadband Engine (Cell BE) SDK 1.1 provides the debugging tools you need to tackle it for the Cell BE architecture. This article describes how to use new versions of the GNU Debugger (GDB) to diagnose problems in both PPU and SPU programs.
Articles 08 Aug 2006  
 
The GNU Linear Programming Kit, Part 1: Introduction to linear optimization
The GNU Linear Programming Kit is a powerful, proven tool for solving numeric problems with multiple constraints. This article introduces GLPK, the glpsol client utility, and the GNU MathProg language to solve the problem of optimizing the operations for Giapetto's Woodcarving, Inc., a fictional toy manufacturer.
Articles 08 Aug 2006  
 
Linux initial RAM disk (initrd) overview
The Linux initial RAM disk (initrd) is a temporary root file system that is mounted during system boot to support the two-state boot process. The initrd contains various executables and drivers that permit the real root file system to be mounted, after which the initrd RAM disk is unmounted and its memory freed. In many embedded Linux systems, the initrd is the final root file system. This article explores the initial RAM disk for Linux 2.6, including its creation and use in the Linux kernel.
Articles 31 Jul 2006  
 
Linux threading models compared: LinuxThreads and NPTL
The LinuxThreads project originally brought multithreading to Linux, but LinuxThreads didn't conform to POSIX threading standards. Although the more recent Native POSIX Thread Library (NPTL) library has filled in some of the gaps, other issues remain. This article describes some of the differences between these two Linux threading models for developers who may need to port their applications from LinuxThreads to NPTL or who simply want to understand where the differences lie.
Articles 31 Jul 2006  
 
Better error handling using Flex and Bison
Although it is easy to generate programs using Flex and Bison, it is a bit harder to make those programs produce user-friendly syntax and semantic error messages. This article examines the error-handling features of Flex and Bison, shows how to use them, and details some pitfalls.
Articles 28 Jul 2006  
 
Knock-based commands for your Linux laptop
For the first time, you can hit your computer and get a meaningful response! Using Linux and the Hard Drive Active Protection System (HDAPS) kernel drivers, you can access the embedded accelerometers on Lenovo (formerly IBM) ThinkPads, then process the accelerometer data to read specific sequences of "knocking" events -- literally rapping on the laptop case with your knuckles -- and run commands based on those knocks. Double tap to lock the screen, and knock in your secret code to unlock. Tap the display lid once to move your mp3 player to the next track. The possibilities are endless.
Articles 25 Jul 2006  
 
Linux on POWER: An overview for developers
Linux brings open standards, along with maximum availability and flexibility, to your business solutions. Add the proven performance and reliability of the POWER processor-based family of servers, and applications will reap the combined advantages of Linux on POWER. This paper introduces Linux on POWER hardware and software environments and is intended to provide application developers with the information they need to get started. [This article has been updated to reflect changes to IBM's eServer product offerings -- Ed.]
Articles 24 Jul 2006  
 
Power Architecture directions: Brand-new brand for Power Architecture technology
Michael E. Sullivan of IBM discusses how Power Architecture technology is being reborn under Power.org as a community-driven architecture and brand inspired by the open-source Linux model. Learn what motivated the changes, what they will mean for customers and partners, and what the new logo symbolizes.
Articles 24 Jul 2006  
 
POWER support for OProfile
Learn about the implementation details for extending the OProfile profiling tool to include support for the IBM POWER4, POWER5, and PowerPC 970 architectures, and see how the performance counter event specification works within OProfile.
Articles 21 Jul 2006  
 
Porting to the Linux Standard Base
Because Linux is an open operating system, you can configure and assemble it to suit specialized purposes. However, while variety and choice are beneficial for users, heterogeneity can vex software developers who must build and support packages on a multitude of similar but subtly different platforms. Fortunately, if an application conforms to the Linux Standard Base (LSB), and a flavor of Linux is LSB compliant, the application is guaranteed to run. Discover the LSB, and learn how to port your code to the standard.
Tutorials 18 Jul 2006  
 
Page is no longer available...
The developerWorks Linux on Power Architecture Developer's Corner has been permanently removed from the site.
12 Jul 2006  
 
Page is no longer available...
The "New to Linux on Power Architecture" page has been permanently removed from the site.
12 Jul 2006  
 
Page is no longer available...
The developerWorks Linux on Power Architecture Developer's Corner has been permanently removed from the site.
12 Jul 2006  
 
Page is no longer available...
The developerWorks Linux on Power Architecture Developer's Corner has been permanently removed from the site.
12 Jul 2006  
 
Page is no longer available...
The developerWorks Linux on Power Architecture Developer's Corner has been permanently removed from the site.
12 Jul 2006  
 
Page is no longer available...
The developerWorks Linux on Power Architecture Developer's Corner has been permanently removed from the site.
12 Jul 2006  
 
Page is no longer available...
The developerWorks Linux on Power Architecture Developer's Corner has been permanently removed from the site.
12 Jul 2006  
 
Python Web frameworks, Part 2: Web development with TurboGears and Python
In this second article of a two-part series, we demonstrate TurboGears, another open source MVC-style Web application framework based on Python. Where the first article was an introduction to the Django framework, this one shows how to use TurboGears to create a Web-based shopping application and concludes with a comparison between Turbogears and Django.
Articles 11 Jul 2006  
 
Manage source code using Git
Git is the open source revision control software that Linus Torvalds developed to help manage Linux kernel development. You can download it yourself and use it for your own kernel hacking -- or for software development projects of your own. This article shows you how to get started hacking Linux with the Git tools. [Update: Two code listings have been modified to reflect the replacement of the rsync protocol with the newer git protocol for fetching source code -- Ed.]
Articles 06 Jul 2006  
 
Inside the Linux scheduler
The Linux kernel continues to evolve, incorporating new technologies and gaining in reliability, scalability, and performance. One of the most important features of the 2.6 kernel is a scheduler implemented by Ingo Molnar. This scheduler is dynamic, supports load-balancing, and operates in constant time -- O(1). This article explores these attributes of the Linux 2.6 scheduler, and more.
Articles 30 Jun 2006  
 
Linux on board: This old box: Home automation using X10
One of the dreams of the '80s was that one day, around the time everyone had rocket cars, computers would control everything in your house; lighting, for instance. We don't have rocket cars, but the X10 protocol allows you to turn things on and off remotely. In this article, Peter Seebach shows how to set up and drive X10 devices using off-the-shelf hardware and a couple of hundred lines of simple code.
Articles 29 Jun 2006  
 
LPI exam 202 prep, Topic 214: Network troubleshooting
In this tutorial, the last of a series of seven tutorials covering intermediate network administration on Linux, David Mertz finishes preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 202. This tutorial revisits earlier tutorials in the series, focusing on how to use the basic tools you've already covered to fix networking problems. The tool review is divided into two categories: configuration tools and diagnostic tools.
Tutorials 28 Jun 2006  
 
Integrated Development Environment: C/C++ development with the Eclipse Platform
Learn how to use the C/C++ Development Toolkit (CDT), the best integrated development environment C/C++ toolkit available for Eclipse. And get an overview of how to use the Eclipse Platform, an integrated development environment for C and C++ development projects.
Articles 27 Jun 2006  
 
Contrasting Linux on POWER profilers
Profilers help pinpoint common performance problems in an application. This article compares and contrasts three commonly used open source profilers for Linux on POWER -- OProfile, gprof, and Tprof -- which are available to end users and programmers for both SUSE and Red Hat Linux distributions. To demonstrate each profiler's strengths and weaknesses, including any overhead the profilers add during runtime, this article profiles a simple sort program, incorporating three different sorting algorithms.
Articles 21 Jun 2006  
 
LPI exam 202 prep, Topic 212: System security
In this tutorial, the sixth of seven tutorials covering intermediate network administration on Linux, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 202. By necessity, this tutorial touches briefly on a wide array of Linux-related topics from a security-conscious network server perspective, including general issues of routing, firewalls, and NAT translation and the relevant tools. It addresses setting security policies for FTP and SSH; reviews general access control with tcpd, hosts.allow, and friends; and presents some basic security monitoring tools and shows where to find security resources.
Tutorials 13 Jun 2006  
 
Python Web frameworks, Part 1: Develop for the Web with Django and Python
In this first article of a two-part series, we show off Django, an open-source model-view-controller (MVC)-style Web application framework powered by the Python programming language. With Django, you can create high-quality, easy-to-maintain, database-driven Web applications in minutes.
Articles 06 Jun 2006  
 
Inside the Linux boot process
The process of booting a Linux system consists of a number of stages. But whether you're booting a standard x86 desktop or a deeply embedded PowerPC target, much of the flow is surprisingly similar. This article explores the Linux boot process from the initial bootstrap to the start of the first user-space application. Along the way, you'll learn about various other boot-related topics such as the boot loaders, kernel decompression, the initial RAM disk, and other elements of Linux boot.
Articles 31 May 2006  
 
Centralize user accounts with OpenLDAP
Building a centralized authentication system using Lightweight Directory Access Protocol (LDAP) promises to reduce administration costs, increase security, avoid data replication, and increase data consistency. As Linux has matured, better tools have emerged to ease the migration of user account information into an LDAP directory. Tools have also been developed to enable the configuration of encrypted communication between a client and the directory server and to provide fault tolerance through replication. This article shows you how to configure a server and client to use OpenLDAP on Red Hat Linux.
Articles 30 May 2006  
 
Continuations and advanced flow control
Flow control is usually straightforward: sequence, selection, iteration. And many programmers, having been raised on these primary control structures, have a difficult time seeing what other kinds of flow control might be necessary. This article introduces continuations and teaches you to think about flow control in radically new ways.
Articles 24 May 2006  
 
LPI exam 202 prep, Topic 210: Network client management
In this tutorial, the fifth in a series of seven tutorials covering intermediate network administration on Linux, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 210. Here, David Mertz examine several protocols' centralized configuration of network settings on clients within a network. This tutorial also discusses PAM, which is a flexible, networked, user authentication system.
Tutorials 24 May 2006  
 
Linux project publications: Systems management
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of systems management.
Articles 18 May 2006  
 
Linux project publications: Linux on POWER
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of Linux on POWER.
Articles 18 May 2006  
 
SELinux from scratch
SELinux, the U.S. National Security Agency's implementation of mandatory access control, is the most prominent new security subsystem in Linux. SELinux comes installed by default in Fedora and Red Hat Enterprise Linux and is available in easy-to-install packages in other distributions. This article shows you how to convert a non-SELinux system by hand in order to expose details about how SELinux is integrated into a system.
Articles 11 May 2006  
 
Install and use Eclipse for Linux on POWER
Eclipse is an open source community that provides a development platform and a collection of application frameworks for building software. Learn how to install and use Eclipse specifically for Linux running on IBM POWER processor-based systems. Learn, also, how to use Eclipse to compile and run applications through sample Java and C programs.
Articles 05 May 2006  
 
Linux project publications: Software development
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of software development.
Articles 04 May 2006  
 
Linux project publications: Standards
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of standards.
Articles 04 May 2006  
 
Linux project publications: File systems and storage
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of filesystems and storage.
Articles 04 May 2006  
 
The art of metaprogramming, Part 2: Metaprogramming using Scheme
Metaprogramming -- programming with code generators or writing programs that themselves write code -- has numerous useful attributes, such as simplifying code maintenance and making it easier to craft boilerplate code. The first article of this series explained why metaprogramming is necessary, looked at some of the components of metaprogramming, showed how to build a code generator, and introduced language-sensitive macro programming. In this article, learn techniques and applications of metaprogramming in the Scheme programming language, and see how macros are programmed and how they can make your large-scale programming tasks significantly easier.
Articles 02 May 2006  
 
Embeddable scripting with Lua
Compiled programming languages and scripting languages each have unique advantages, but what if you could use both to create rich applications? Lua is an embeddable scripting language that is small, fast, and very powerful. Before you create yet another configuration file or resource format (and yet another parser to accompany it), try Lua.
Articles 28 Apr 2006  
 
Software security analysis with BogoSec
BogoSec is a source code metric tool that wraps multiple source code scanners, invokes them on its target code, and produces a final score that approximates the security quality of the code. This article discusses the BogoSec methodology and implementation, and illustrates the output of BogoSec when run on a number of test cases, including Apache Web server, OpenSSH, Sendmail, Perl, and others.
Articles 28 Apr 2006  
 
Secure Web site access with Perl
With Perl modules, automate the login procedures on secure Web sites.
Articles 25 Apr 2006  
 
XML Matters: Pipestreaming microformats
An increasingly common use of XML is to move small snippets of content through an arbitrary processing workflow, much like text through UNIX pipes. The snippets can be from one document or many, whole documents or fragments, or synthesized on demand from other data sources, thus streaming is an appropriate metaphor. The microformat approach of using well-defined snippets of XML or XHTML lends itself well to this approach. You'll look at some examples of this using existing Python and Java(TM) tools and the hCard and hCalendar microformats.
Articles 25 Apr 2006  
 
LPI exam 202 prep, Topic 208: Web services
In this tutorial, the fourth in a series of seven tutorials covering intermediate network administration on Linux, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 208. Here, David Mertz discusses how to configure and run the Apache HTTP server and the Squid proxy server.
Tutorials 25 Apr 2006  
 
CPI analysis on POWER5, Part 2: Introducing the CPI breakdown model
Make substantial improvements in performance analysis with a CPI analysis model built on the tools introduced in Part 1. Learn ways to analyze the specific performance counter data produced by profiling runs to obtain statistics for events which the CPU cannot directly report on.
Articles 25 Apr 2006  
 
Autonomic load balancing, Part 1: Cisco Content Switching Module
Administrators may use a CISCO Content Switching Module (CSM) and the IBM Enterprise Workload Manager (EWLM) to create an efficient, dynamic load balancing environment.
Articles 25 Apr 2006  
 
Make UNIX and Linux work together
Examine how to use the Network Information Service (NIS) to share core databases between Linux(R) and UNIX(R), and how to use the Network File System (NFS) to share file systems, both with direct links and through the automounter. Although UNIX and Linux are similar, there are some differences between the two that can complicate the process of integrating the two systems. Both, for example, share the same authentication system, but most systems are also standalone. Sharing this authentication information enables you to provide a single sign-on (SSO) functionality to any of the servers in your network.
Articles 18 Apr 2006  
 
Cultured Perl: Perl books, Part 2
Take a look at two divergent texts on system administration. Unix Power Tools, by Shelley Powers, Jerry Peek, Tim O'Reilly, and Mike Loukides, covers the basics in a sound, readable manner and is a must-have book for any sysadmin. Analytical Network and System Administration by Mark Burgess is an advanced take on systems administration for those with a solid grounding in theoretical computer science and mathematics.
Articles 13 Apr 2006  
 
Porting Linux applications to 64-bit systems
With the pervasiveness of 64-bit architectures, it's more important than ever that your Linux software be 64-bit ready. Learn how to avoid portability pitfalls when making declarations and assignments, bit shifting, typing, formatting strings, and more.
Articles 12 Apr 2006  
 
Using ReiserFS with Linux
Take a look at the ext2 (second extended file system), ext3 (third extended file system), and Reiser4 file systems and discover how to create your own Reiser4 file system. The most commonly used file system, ext2, is a traditional UNIX(R)-style file system that doesn't mix well with modern hard drive sizes. The ext3 file system adds journalling, but not much else. If you want something really advanced, you might want to check out the current Reiser4 file system.
Articles 04 Apr 2006  
 
CPI analysis on POWER5, Part 1: Tools for measuring performance
This article begins a short series on workload performance analysis on Power Architecture systems. Part 1 introduces the CPU feature set and a variety of useful tools for collecting data.
Articles 04 Apr 2006  
 
LPI exam 102 prep, Topic 106: Boot, initialization, shutdown, and runlevels
In this tutorial, Ian Shields continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 102. In this second in a series of nine tutorials, Ian introduces you to startup and shutdown on Linux. By the end of this tutorial, you will know guide a system through booting, set kernel parameters, and shut down or reboot a system.
Tutorials 04 Apr 2006  
 
Speed your code with the GNU profiler
Improving the performance of your applications is rarely a wasted effort, but it's not always clear which functions the program is spending most of its execution time on. Learn how to pinpoint performance bottlenecks using gprof for both user-space and system calls on Linux.
Articles 03 Apr 2006  
 
Distributed multihead support with Linux and Xdmx
Learn about the tools available to develop your own multiscreen configuration and physical layout to enhance your computing experience. You can use Linux and Xdmx to create one contiguous desktop across multiple display devices attached to separate computers. Combine your available laptop and desktop computers running Linux to create one large display for enhanced productivity. Explore large-scale display-wall setups and the creation of multihead setups without purchasing graphics cards.
Articles 28 Mar 2006  
 
DSL Linux: Small distro that packs a big punch
Need a teeny-tiny, business-card-sized, open source operating system that squeezes a lot of software into a little space? Take a look at DSL Linux. This quick review shows you how to use the miniscule OS, highlights the on-board applications, details how to load and start it, and explains how to save between sessions when using a bootable CD.
Articles 22 Mar 2006  
 
Install and configure General Parallel File System (GPFS) on xSeries
Walk through a simple General Parallel File System (GPFS) implementation. In the Linux(R) world today, you have a variety of file systems available, such as ext2, ext3, ReiserFS, JFS, and so on. Similarly, in the clustered environment, you need a file system that can scale well, give better throughput, and provide high fault tolerance. The IBM GPFS fits the bill. It has large block size support with wide striping, parallel access to files from multiple nodes, token management, and more.
Articles 21 Mar 2006  
 
LPI exam 102 prep, Topic 105: Kernel
In this tutorial, Ian Shields begins preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 102. In this first in a series of nine tutorials, Ian introduces you to the kernel on Linux. By the end of this tutorial, you will know how to build, install, and query a Linux kernel and its kernel modules.
Tutorials 21 Mar 2006  
 
LPI exam 102 prep, Topic 105: Kernel
In this tutorial, Ian Shields begins preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 102. In this first in a series of nine tutorials, Ian introduces you to the kernel on Linux. By the end of this tutorial, you will know how to build, install, and query a Linux kernel and its kernel modules.
Tutorials 21 Mar 2006  
 
Cultured Perl: Perl books, Part 1
Take a tour of two solid additions to any Perl library, the beginner-oriented Randal Schwartz's Perls of Wisdom by Randal Schwartz, and the more advanced Higher-Order Perl by Mark Jason Dominus.
Articles 15 Mar 2006  
 
Access the Linux kernel using the /proc filesystem
The /proc filesystem is a virtual filesystem that permits a novel approach for communication between the Linux kernel and user space. In the /proc filesystem, virtual files can be read from or written to as a means of communicating with entities in the kernel, but unlike regular files, the content of these virtual files is dynamically created. This article introduces you to the /proc virtual filesystem and demonstrates its use.
Articles 14 Mar 2006  
 
Migrating from x86 to PowerPC, Part 9: Sensors, sensors, sensors!
From schematics to code, get a leg up on building your own robot submarine. Building on previous successes, Lewin Edwards shows how to add more sensors to your submarine, looking at the design requirements of different sensors and ways of sanity checking the results they provide.
Articles 14 Mar 2006  
 
Automate OS switching on a dual-boot Linux system
Switch from one operating system to another -- without manual intervention -- by following these step-by-step instructions for enabling a dual-boot machine. Duplicate this setup for running both Linux and Windows on your own machine with the scripts provided with this article.
Articles 08 Mar 2006  
 
GTK+ fundamentals, Part 3: How to deploy GTK+
The previous two articles in this "GTK+ fundamentals" series explained what GTK+ is and what it's used for. This article, the final installment in the series, covers everything you need to get your product to the user -- that is, you learn how to deploy a GTK+ application.
Articles 07 Mar 2006  
 
Effective management of system logs
Provide solid information resources to decision makers. Discover a simple, but useful, application of the combined processing capabilities of awk and XML that you can use to present UNIX(R) system data in a reader-friendly form suitable for posting to the company intranet or Internet. UNIX generates useful system performance, usage, cost, and related data that management and other interested stakeholders can use.
Articles 07 Mar 2006  
 
Multifunction multimedia machine, Part 4: Mixing hardware and software for cost control
Explore the technical issues in video playback, and see how a blend of hardware and software achieves good performance at a reasonable cost. Also, Lewin Edwards reveals that MP3 does not mean MPEG-3, which alone is worth the price of admission.
Articles 07 Mar 2006  
 
The art of metaprogramming, Part 3: Enterprise metaprogramming
Enterprise metaprogramming is becoming more common all the time as graphical and textual utilities make programming tasks easier and more descriptive, all because of the continuing formalization process occurring under the Object Management Group's Model Driven Architecture (MDA). This article, the third in a three-part series, explores the limits of metaprogramming, describes MDA and the problems it can solve, and presents a short example of a textual system that uses MDA.
Articles 28 Feb 2006  
 
Better networking with SCTP
The Stream Control Transmission Protocol (SCTP) is a reliable transport protocol that provides stable, ordered delivery of data between two endpoints (much like TCP) and also preserves data message boundaries (like UDP). However, unlike TCP and UDP, SCTP offers such advantages as multi-homing and multi-streaming capabilities, both of which increase availability. In this article, get to know the key features of SCTP in the Linux 2.6 kernel and take a look at the server and client source code that shows the protocol's ability to deliver multi-streaming.
Articles 28 Feb 2006  
 
Develop your own filesystem with FUSE
With Filesystem in Userspace (FUSE), you can develop a user space filesystem framework without understanding filesystem internals or learning kernel module programming. Follow this simple, step-by-step guide to install, customize, and enable FUSE and AFS, so you can create your own fully functional filesystem in user space in Linux.
Articles 28 Feb 2006  
 
Automate client management with the Service Location Protocol
The Service Location Protocol (SLP) is an Internet Standard RFC and software framework that allows networking applications to discover and configure network services. You can use SLP to develop zero-configuration applications and simplify administration of networked devices. This article introduces SLP and its architecture, and then demonstrates the protocol's use with an open source implementation.
Articles 22 Feb 2006  
 
High-performance cluster using MPI, Part 2: Use ch_p4mpd to install and configure MPI on OpenPower 720
There are numerous ways of setting up a cluster. This series concentrates on how to set up a high-performance cluster. You'll learn how to build and install a Message Passing Interface (MPI) in two different modes. Part 1 of the series deals with using ch_p4 and Part 2 covers ch_p4mpd.
Articles 14 Feb 2006  
 
LPI exam 101 prep, Topic 110: The X Window System
In this tutorial (the last in a series of five tutorials), Ian Shields introduces you to the X Window System on Linux, and in doing so, continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 101. In this tutorial, you learn how to install and maintain the X Window System. This tutorial covers both major packages for X on Linux: XFree86 and X.Org.
Tutorials 14 Feb 2006  
 
Convert device drivers to Linux on Power
There are several considerations when converting a driver to the Power architecture. Get an overview of some of the details necessary to convert an existing device driver to Linux on Power.
Articles 13 Feb 2006  
 
High-performance cluster using MPI, Part 1: Use ch_p4 to install and configure MPI on OpenPower 720
There are numerous ways of setting up a cluster. This series concentrates on how to set up a high-performance cluster. You'll learn how to build and install a Message Passing Interface (MPI) in two different modes. Part 1 of the series deals with using ch_p4 and Part 2 covers ch_p4mpd.
Articles 09 Feb 2006  
 
Boost socket performance on Linux
The Sockets API lets you develop client and server applications that can communicate across a local network or across the world via the Internet. Like any API, you can use the Sockets API in ways that promote high performance -- or inhibit it. This article explores four ways to use the Sockets API to squeeze the greatest performance out your application and to tune the GNU/Linux environment to achieve the best results. (Editor's note: we updated Tip 3 to correct an error in the calculation for Bandwidth Delay Product (BDP), spotted by an alert reader.)
Articles 03 Feb 2006  
 
Linux SEK 2005 Release 1: Basic tasks for new Linux developers
IBM offers extensive trial software for Linux. In most cases, installling it on a Linux system requires you to log in, become the super user (or root) for some tasks, open a terminal or shell window, and mount a CD-ROM. If you are new to Linux, this article will guide you through these tasks and more. You can get trial IBM software for Linux by ordering the Linux Software Evaluation Kit (SEK) 2005 Release 1 or by downloading the trial products directly from developerWorks.
Articles 01 Feb 2006  
 
Rock your desktop with entertainment LiveCDs
Listen to music and watch DVDs on your Linux system without lengthy installation and configuration efforts. Learn about four packages -- MoviX2, GeeXBoX, WOMP!, and LLGP -- that put the fun back into your computer.
Articles 31 Jan 2006  
 
Distribute software on a Linux LiveCD
Linux LiveCDs contain the operating system and applications all on a single CD and are a handy way to distribute software when compactness, portability, and/or security matter.
Articles 31 Jan 2006  
 
Back to school with education LiveCDs
Make open source education tools available on your Linux system without lengthy installation and configuration efforts. Discover three packages -- FreeDUC, Knoppix for Kids, and Vigyaan -- that make it easy to set up a learning environment.
Articles 31 Jan 2006  
 
Restore compromised systems with diagnostics LiveCDs
Want to assess your Linux system's integrity and recover lost data without lengthy installation and configuration efforts? Get to know two packages -- Helix and Plan-B -- that bring you that ability through the magic of LiveCD.
Articles 31 Jan 2006  
 
LDAP-based authentication for Samba
In this tutorial, learn how to install and configure Samba as a primary domain controller with a secure LDAP-based authentication mechanism. The completed system boasts a secure file- and print-sharing setup, in addition to a robust LDAP server that could be used for purposes beyond those required by Samba. Additionally, Windows clients can log on to your Samba server and have shared drives automatically mounted for them based on their group membership.
Tutorials 31 Jan 2006  
 
Statistical programming with R, Part 3: Reusable and object-oriented programming
R is rich statistical environment, released as free software, that includes a programming language, an interactive shell, and extensive graphing capability. This article follows up David's two prior installments (written with Brad Huntting) and looks at the object-orientation in R along with some additional general programming concepts in R.
Articles 26 Jan 2006  
 
IBM NFS/DFS Authentication Gateway
Take advantage of the new features Network File System Version 4 (NFS Version 4) now has to offer. With the ever-growing storage needs in large enterprises and NFS implementations offering more and more features, it makes business sense for enterprises to migrate to NFS Version 4. In this article, we discuss the need and various strategies for migrating from the IBM Distributed Computing Environment (DCE)/Distributed File System(TM) (DFS(TM)) infrastructure to NFS Version 4 on AIX(R) and Linux(R).
Articles 26 Jan 2006  
 
Create mosaic images with Perl and ImageMagick
Use simple Perl scripts to automate the image manipulation, text creation, and compositing of arbitrary mosaic images. Learn how to use ImageMagick, GD, and The Gimp to create your own mosaic images suitable for static display and dynamic content. Explore the capabilities of ImageMagick and open source graphical editing tools.
Articles 24 Jan 2006  
 
Alternative Linux distributions for POWER processor-based systems
Review several alternative Linux distributions for the POWER5 platform. This article discusses a test environment and the installation of Debian, Gentoo, openSUSE 10, and Fedora Core 4 on an IBM eServer OpenPower 720 system in a variety of configurations.
Articles 20 Jan 2006  
 
Create your own real-time visual effects
Use EffecTV and Simple DirectMedia Layer (SDL) to create your own real-time visual effects on live video. Learn how to integrate geometric primitives, bitmap image loading, and simple motion tracking to create your own games, leading-edge user interfaces, or immersive environments. Explore the EffecTV and SDL architectures, and learn how to harness the power of open source video processing on Linux.
Articles 17 Jan 2006  
 
Install Enterprise Linux on IBM p5 servers from network
In this article, you will learn how to boot an eServer(TM) p5 server and install Red Hat(R) Enterprise Linux(R) on it from network. Testers, developers, and technical supporters who need to install Linux on eServer p5 servers will find this material beneficial and cost effective. Before you begin the installation process, you need to have a basic knowledge of Red Hat or Enterprise Linux installation, Linux network configuration, and p5 server LPAR operation using the Hardware Management Console (HMC).
Articles 12 Jan 2006  
 
Secure Java apps on Linux using MD5 crypt
UNIX/Linux PAM-compatible systems use authentication based on the GNU MD5 extensions to the crypt() system call. This article explains these extensions and shows you a Java implementation of MD5 crypt that is compatible with UNIX/Linux systems.
Articles 10 Jan 2006  
 
LPI exam 101 prep, Topic 104: Devices, Linux filesystems, and the Filesystem Hierarchy Standard
In this tutorial (the fourth in a series of five tutorials), Ian Shields introduces you to Linux devices, filesystems, and the Filesystem Hierarchy Standard, and in doing so, continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 101. This tutorial shows you how to create and format partitions with different Linux filesystems and how to manage and maintain those systems.
Tutorials 28 Dec 2005  
 
Linux screensaver for Windows
Construct and package a Linux LiveCD so that it will install using the standard Microsoft Windows install process and will operate as a standard Windows screensaver. Answering the most common concern about open source software, this article shows that, yes, Linux will run under Windows.
Articles 20 Dec 2005  
 
Install WebSphere Application Server V6.0 for Linux on POWER
Install, configure, and verify the installation of IBM WebSphere Application Server V6.0 for Linux on POWER. The steps in this article cover the use of the Administrative Console and the sample programs. The article also investigates a J2EE e-commerce application called Plants by WebSphere, which is included with WebSphere Application Server.
Articles 16 Dec 2005  
 
Linux on board: Zaurus pioneers embedded Linux
The Sharp Zaurus handheld was a pioneer of embedded Linux, and even though the Linux version is not around much any more, Peter Seebach thinks it's a good idea to pay tribute to this early-adopter technology. In this installment of the Linux on board series, Peter dismantles the Zaurus SL-5600 to get a better look into history.
Articles 13 Dec 2005  
 
IBM middleware on OpenPower: IBM WebSphere Application Server Version 6.0
Learn how to install and configure IBM WebSphere(R) Application Server (Application Server) Version 6.0 on an OpenPower(TM) machine running Red Hat Linux(R). IBM has both database and application server components available on OpenPower to help any developer community.
Articles 08 Dec 2005  
 
Install a touchscreen for Linux
Historically, the lack of friendly interfaces has been an obstacle to making Linux a commercially viable product for end users, but with available GUIs, that's yesterday's news. What's the next step in creating an easy-to-use Linux-based product for consumers? Imagine adding a user-oriented LCD touchscreen. A touchscreen facade can make back-end Linux applications very usable in such devices as custom digital media centers (either in the home or in automobiles), DVRs and PVRs, and even control interfaces for household robots. The potential uses are limited only by the imagination. In this article, get an overview for installing an LCD taken from a Sony PSOne, creating a modeline, and installing a touchscreen -- all for Linux.
Articles 06 Dec 2005  
 
Signals as a Linux debugging tool
By focusing on the analysis of data captured using signal handlers, you can speed up the most time-consuming part of debugging: finding the bug. This article gives a background on Linux signals with examples specifically tested on PPC Linux, then goes on to show how to design your handlers to output information that lets you quickly home in on failed portions of code.
Articles 29 Nov 2005  
 
Java environments for Linux on POWER architecture
This article provides a brief overview of the currently available Java Development Kits (JDKs) and Java Runtime Environments (JREs) for Linux on POWER. It covers the Linux distributions running on the IBM eServer iSeries, including eServer i5; eServer pSeries, including eServer p5; eServer BladeCenter JS20; and eServer OpenPower.
Articles 22 Nov 2005  
 
LPI exam 202 prep, Topic 206: Mail and news
In this tutorial, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 202. In this second of a series of seven tutorials on network administration on Linux, you learn how to use Linux as a mail server and as a news server. This tutorial covers mail transport, local mail filtering, and mailing list maintenance software. It also briefly discusses server software for the NNTP protocol.
Tutorials 22 Nov 2005  
 
LPI exam 101 prep, Topic 103: GNU and UNIX commands
In this tutorial (the third in a series of five tutorials), Ian Shields introduces you to the Linux command line and several GNU and UNIX commands, and in doing so, continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 101. This tutorial helps you learn to use commands on a Linux system.
Tutorials 15 Nov 2005  
 
Use the Integrated Virtualization Manager with Linux on POWER
The IBM Integrated Virtualization Manager (IVM) is a new component of the Virtual I/O Server, which is included with the Advanced Power Virtualization feature. With the use of IVM, customers can now manage partitions on an IBM POWER5 server without a Hardware Management Console (HMC). This paper presents an overview of the functionality of IVM, lists some of the differences between the IVM and the HMC, and illustrates how to use IVM to create and manage Linux on POWER partitions.
Articles 15 Nov 2005  
 
Open source licensing, Part 2: Academic v. reciprocal
Open source licenses provide the legal foundation for propagation of open source code. This article, the second of two in the "Open source licensing" series, explores the two most popular forms of open source licenses -- the academic license and the reciprocal license -- and describes the obligations of licensees that accept the terms of each.
Articles 15 Nov 2005  
 
Handle synchronous events from shared objects in Linux
Making effective use of shared memory in high-level languages such as C++ is not straightforward, but it is possible to overcome the inherent difficulties. This article describes, and includes sample code for, two C++ design patterns that use shared memory on Linux in interesting ways and open the door for more efficient interprocess communication.
Articles 10 Nov 2005  
 
LPI exam 202 prep, Topic 205: Networking configuration
In this tutorial, David Mertz begins preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 202. In this first of a series of seven tutorials on network administration on Linux, you learn to configure a basic TCP/IP network, from the hardware layer (usually Ethernet, modem, ISDN, or 802.11) through the routing of network addresses.
Tutorials 08 Nov 2005  
 
RAID on Linux on POWER
Learn about software and hardware redundant array of independent disks (RAID) implementations on a Linux on POWER server. In some regards, this paper is a response to some of the questions and pitfalls in RAID setup. Therefore, this paper includes a foundation on RAID itself, the Linux on POWER boot process, software and hardware RAID, and an example of how to configure hardware RAID.
Articles 03 Nov 2005  
 
Clustering solutions for Linux on IBM System p5 Express servers
Learn how to build a Linux High Availability (HA) cluster and a High Performance Computing (HPC) cluster on IBM POWER processor-based servers.
Articles 02 Nov 2005  
 
Debugging simulated hardware on Linux, Part 1: Device driver debugging
This two-part series is geared toward easing device driver development. This first part illustrates proven methods you can use to test the complete code flow of a device driver during the design, development, and debugging stages.
Articles 02 Nov 2005  
 
Debugging simulated hardware on Linux, Part 2: Create an environment for virtual device driver development
This two-part series is geared toward easing device driver development. This second part describes the various strategies and implementation details that you can apply to interrupt simulation, including the prerequisites, hardware, software setup, and test cases for testing the Interrupt Service Routine (ISR).
Articles 02 Nov 2005  
 
Install SUSE SLES9 with software RAID and LVM using Service Pack 2
Get step-by-step instructions on how to install SUSE LINUX Enterprise Server (SUSE SLES9) with Software RAID (Redundant Array of Inexpensive Disks) and LVM (Logical Volume Management) using Service Pack 2. Due to a different boot loader, Software RAID on POWER is different from using Software RAID on Intel(R). If you need to install Service Pack 1, "Install SUSE SLES9 with Software RAID and LVM using Service Pack 1" provides detailed installation instructions.
Articles 27 Oct 2005  
 
High performance Linux clustering, Part 2: Build a working cluster
High Performance Computing (HPC) has become easier, and two reasons are the adoption of open source software concepts and the introduction and refinement of clustering technology. This second of two articles discusses parallel programming using MPI and gives an overview of cluster management and benchmarking. It also shows you how to set up a Linux cluster using OSCAR, an open source project for setting up robust clusters.
Articles 27 Oct 2005  
 
IBM Middleware on OpenPOWER: IBM DB2 Universal Database Version 8.2
Get detailed instructions on how to install and configure IBM DB2(R) Universal Database(TM) Version 8.2 (UDB) on an OpenPower(TM) running Red Hat Enterprise Linux(R) (RHEL). As you know, any server without an application server or database doesn't have much to offer to the developer community. IBM has both database and application server components available on OpenPower to help you. Follow along as IBM Linux Architect Harish Chauhan guides you through this process.
Articles 27 Oct 2005  
 
Developing embedded apps with eSWT
See how the embedded Standardb Widget Toolkit (eSWT) differs from the usual Standard Widget Toolkit (SWT) and get some best tips and practices for using it as you develop your own eSWT application based on the Model-View-Controller (MVC) framework. The article also discusses how to develop, deploy, and test a Service Management Framework (SMF) bundle using eSWT.
Articles 25 Oct 2005  
 
The art of metaprogramming, Part 1: Introduction to metaprogramming
One of the most under-used programming techniques is writing programs that generate programs or program parts. Learn why metaprogramming is necessary and look at some of the components of metaprogramming (textual macro languages, specialized code generators). See how to build a code generator and get a closer look at language-sensitive macro programming in Scheme.
Articles 20 Oct 2005  
 
Sockets programming in Ruby
This tutorial shows how to develop sockets-based networking applications using the Ruby language. You learn Ruby basics as well as the most important classes for sockets programming, and then look at a working chat application that illustrates these fundamentals. The tutorial finishes by exploring the higher-level classes that make it easy to build dynamic Web servers, mail servers and clients, and other application-layer protocols.
Tutorials 11 Oct 2005  
 
Automate your team's build and unit-testing process
Extreme programming and agile methods recommend that the development process include continuous integration and unit testing. A pragmatic way to support these practices is to set up an automated system to build and test the latest version of your source code every time it changes. This article guides you through the practical issues involved in setting up your own Linux-based build server for Java projects.
Articles 11 Oct 2005  
 
Open source licensing, Part 1: The intent
The phrase "open source license" refers to a large number of agreements that license the copyrights inherent in software widely, fairly, and with the fewest restrictions possible. This article -- the first of two -- describes the tenets of copyright and explains the intents of an open source license. Part 2 of this series explores individual licenses, such as the GNU Public License and the Apache License.
Articles 04 Oct 2005  
 
Sockets programming in Python
This tutorial shows how to develop sockets-based networking applications using Python. In this tutorial, you first learn a few Python basics and see why Python makes a good network programming language. Then you move on to the basic sockets features of Python, using a sample chat application as a guide, and look at several other, high-level, classes that provide asynchronous communications.
Tutorials 04 Oct 2005  
 
Linux project publications: RAS
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community on the topic of Reliability, Availability, and Serviceability (RAS).
Articles 30 Sep 2005  
 
Dynamic logical partitioning for Linux on POWER
A powerful feature of the POWER5(TM) architecture is its capability to support server consolidation through the use of logical partitioning (LPAR). Dynamic logical partitioning increases the flexibility of partitioned systems by enabling administrators to add, remove, or move system resources between partitions without the need to reboot the partition. This paper is intended for Linux(R) on POWER(TM) system administrators or application developers who want to learn how to enable dynamic LPAR on Linux, how it is used to control a partition’s resources, and how to determine the changes in these resources.
Articles 29 Sep 2005  
 
Install SUSE SLES9 with Software RAID and LVM using Service Pack 1
Get step-by-step instructions on how to install SUSE LINUX Enterprise Server (SUSE SLES9) with Software RAID (Redundant Array of Inexpensive Disks) and LVM (Logical Volume Management) using Service Pack 1. Software RAID on POWER is different from using Software RAID on Intel(R), due to a different boot loader. Information on using Service Pack 2 is also available.
Articles 29 Sep 2005  
 
Take charge of processor affinity
Knowing a little bit about how the Linux 2.6 scheduler treats CPU affinity can help you design better userspace applications. Soft affinity means that processes do not frequently migrate between processors, whereas hard affinity means that processes run on processors you specify. This article describes current affinity mechanisms, explains why and how to use hard affinity, and provides sample code showing you how to use the available functionality.
Articles 29 Sep 2005  
 
High-performance Linux clustering, Part 1: Clustering fundamentals
High Performance Computing (HPC) has become easier, and two reasons are the adoption of open source software concepts and the introduction and refinement of clustering technology. This first of two articles discusses the types of clusters available, uses for those clusters, reasons clusters have become popular for HPC, some fundamentals of HPC, and the role of Linux in HPC.
Articles 27 Sep 2005  
 
Five pitfalls of Linux sockets programming
The Sockets API is the de facto standard API for networking applications development. Although the API is simple, new developers can experience some common problems. This article identifies the most common of these pitfalls and shows you how to overcome them.
Articles 20 Sep 2005  
 
Mono brings .NET apps to Linux
Mono, the open source development platform based on .NET, lets you build powerful, flexible Linux applications and still take advantage of cross-platform capabilities using a variety of .NET-compatible languages. This article walks you through installing Mono on your system and developing your first sample Mono-compiled C# application that runs on both Linux and Windows.
Articles 19 Sep 2005  
 
Charming Python: Scaling a new PEAK
The Python Enterprise Application Kit (PEAK) is a Python framework for rapidly developing and reusing application components. While Python itself is already a very high-level language, PEAK provides even higher abstractions. One fairly recent capability added to PEAK is the capability to create generic functions and specifically to dispatch them on predicates, not simply on type. Sounds mysterious? Let's investigate.
Articles 15 Sep 2005  
 
Cultured Perl: Perl polishes its Unicode support
Although Perl 6 with its promised Unicode support is right around the corner, the Unicode features built into Perl 5.8.6 are reason enough to get started writing localized apps. Using his preferred editor, Yudit, Ted shows how Perl can read, interpret, and manipulate UTF-8-encoded Unicode.
Articles 15 Sep 2005  
 
Introduction to license management for Linux on POWER
As a Linux on POWER independent software vendor, how do you deal with the issue of licensing your product in a manner that adequately balances your customers' needs with your concerns about revenue growth and the unique features of the POWER5 architecture? This paper provides an overview of traditional license management methods, discusses specific Linux on POWER features that can affect licensing, and lists several currently available license management solutions for you to consider.
Articles 14 Sep 2005  
 
LPI exam 101 prep, Topic 102: Linux installation and package management
In this tutorial (the second in a series of five tutorials), Ian Shields introduces you to Linux installation and package management, and in doing so, continues preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 101. In this tutorial, you learn how Linux uses disk partitions, how Linux boots, and how to install and manage software packages.
Tutorials 09 Sep 2005  
 
Install SUSE LINUX Enterprise Server 9 on POWER5
Create a Linux partition on a POWER5 server. Learn how to create the Linux partition with the Hardware Management Console, using the Web-based System Manager Remote Client, and install SUSE Linux Enterprise Server 9 from a file server, using VNC for a graphical installation.
Demos 07 Sep 2005  
 
Power Architecture downloads and documentation: Service updates for clustering software
Download service updates for clustering technology as they become available: CSM, GPFS, LoadLeveler, ESSL, HACMP, and HPS. Plus, find a roundup of the ABCs of z/OS Programming volumes, the z9/zSeries Connectivity Handbook, and Redbooks on z/OS Diagnostic Data Collection/Analysis and z/OS 1.6 Security Services.
Articles 06 Sep 2005  
 
LPI exam 201 prep, Topic 213: System customization and automation
In this tutorial, David Mertz and Brad Huntting continue preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this seventh of eight tutorials, you learn basic approaches to scripting and automating system events, including report and status generation, clean up, and general maintenance.
Tutorials 02 Sep 2005  
 
LPI exam 201 prep, Topic 214: Troubleshooting
In this tutorial, Brad Huntting and David Mertz continue preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. The last of eight tutorials, this tutorial focuses on what you can do when things go wrong. It builds on material already covered in more detail in earlier tutorials.
Tutorials 02 Sep 2005  
 
LPI exam 201 prep, Topic 211: System maintenance
In this tutorial, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this sixth of eight tutorials, you learn basic concepts of system logging, software packaging, and backup strategies.
Tutorials 02 Sep 2005  
 
LPI exam 201 prep, Topic 209: File and service sharing
In this tutorial, Brad Huntting and David Mertz continue preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this fifth of eight tutorials, you learn how to use a Linux system as a networked file server using any of several protocols supported by Linux.
Tutorials 02 Sep 2005  
 
LPI exam 201 prep, Topic 204: Hardware
In this tutorial, David Mertz and Brad Huntting continue preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this fourth of eight tutorials, you learn how to add and configure hardware to a Linux system, including RAID arrays, PCMCIA cards, other storage devices, displays, video controllers, and other components.
Tutorials 01 Sep 2005  
 
LPI exam 201 prep, Topic 203: Filesystem
In this tutorial, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this third of eight tutorials, you will learn how to control the mounting and unmounting of filesystems, examine existing filesystems, create filesystems, and perform remedial actions on damaged filesystems.
Tutorials 31 Aug 2005  
 
LPI exam 201 prep, Topic 202: System startup
In this tutorial, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this second of a series of eight tutorials, you will learn the steps a Linux system goes through during system initialization, and how to modify and customize those behaviors for your specific needs.
Tutorials 30 Aug 2005  
 
LPI exam 201 prep, Topic 201: Linux kernel
In this tutorial, David Mertz begins preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 201. In this first of a series of eight tutorials, you will learn to understand, compile, and customize a Linux kernel.
Tutorials 29 Aug 2005  
 
Linux on board: Little calendar challenges big groupware
Expensive groupware is simply overkill when all you want is to decide whose turn it is to do the dishes. This month, Peter uses his old Linux box to build a miniscule Web-based household calendar. In this column, Peter looks at Linux running on various kinds of hardware -- PDAs, embedded devices, or just ancient hardware no one thought was useful anymore. He alternates between looking at specific Linux devices and showing you in detail how to use Linux on decrepit hardware that's past its reputed prime.
Articles 26 Aug 2005  
 
Port Windows IPC apps to Linux, Part 3: Mutexes, critical sections, and wait functions
The wave of migration to open source in business has the potential to cause a tremendous porting traffic jam as developers move the pervasive Windows applications to the Linux platform. In this three-part series, you get a mapping guide, complete with examples, to ease your transition from Windows to Linux. This part takes a look at mutexes, critical sections, and wait functions.
Articles 25 Aug 2005  
 
Boot loader showdown: Getting to know LILO and GRUB
Most Linux users, from the casual desktop user to the Linux system administrator, have used a utility known as a boot loader. Different variations of this utility provide varying levels of support and functionality. In many cases, the default boot loader installed with a Linux distribution is not always the best for your needs; the same can be said for the default settings of each boot loader. In this article, Laurence Bonney discusses the pros and cons of two of the more popular boot loaders -- LILO and GRUB -- and suggests a number of configurations to get the most from your machine.
Articles 24 Aug 2005  
 
Linux on OpenPower
Support for Linux now spans across all IBM brands and IBM eServer OpenPower is no exception. Follow along as IBM Linux Architect Harish Chauhan guides you through the process of how to install and configure Red Hat Enterprise Linux (RHEL) / SUSE Linux Enterprise Server (SLES) on OpenPower.
Articles 18 Aug 2005  
 
Recommendations for Red Hat Enterprise Linux 4.0 (RHEL 4.0) on zSeries for 31-bit and 64-bit library coexistence
Linux distributions, such as Red Hat and SUSE, are available for both 31- and 64-bit architectures on IBM eServer zSeries machines. zSeries machines with 64-bit processors allow for 31- and 64-bit applications to coexist and run on the same Linux image concurrently. Read this recommendation to find out how to install custom packages to enable this capability.
Articles 18 Aug 2005  
 
Comment lines: Scott Johnson: Take a lifetime to be a good (and happy) programmer
A happy programmer knows what they're good at and what is really involved in that pie-in-the-sky job he or she desires. Inspired by an article on the average programmer's big rush to learn the practice of programming, the author shares his views on the topic.
Articles 17 Aug 2005  
 
LPI exam 101 prep, Topic 101: Hardware and architecture
In this tutorial (the first in a series of five tutorials), Ian Shields introduces you to configuring your system hardware with Linux, and in doing so, begins preparing you to take the Linux Professional Institute Junior Level Administration (LPIC-1) Exam 101. In this tutorial, you learn how Linux configures the hardware found on a modern PC and where to look if you have problems.
Tutorials 08 Aug 2005  
 
Debugging tools and techniques for Linux on Power
Debugging is a major software development activity, which as an application developer, you cannot avoid. Effective debugging can not only shorten the software development cycle, but can also save costs. This article introduces techniques for locating bugs in user-space C/C++ and Java(TM) applications and describes some of the debugging tools available on Linux(TM) for POWER(TM) architecture.
Articles 04 Aug 2005  
 
Hacking the Linux 2.6 kernel, Part 2: Making your first hack
In this second of a two-part series, discover the organization of the Linux kernel source, build an understanding of system calls, and craft your own kernel modules and patches.
Tutorials 02 Aug 2005  
 
Assess system security using a Linux LiveCD
Want to assess security vulnerabilities on your Linux system without lengthy installation and configuration efforts? We introduce four packages -- Auditor, Whoppix, Knoppix-STD, and PHLAK -- that bring you that ability through the magic of LiveCD.
Articles 27 Jul 2005  
 
IBM Cluster Systems Management: An installation guide
Learn how to use the IBM Cluster Systems Management (CSM) tool to manage a large set of machines. IBM Linux(TM) Architect Harish Chauhan provides step-by-step instructions on how to install the CSM tool for a heterogeneous environment.
Articles 21 Jul 2005  
 
Why FreeBSD
The FreeBSD operating system is the unknown giant among free operating systems. Starting out from the 386BSD project, it is an extremely fast UNIX-like operating system mostly for the Intel chip and its clones. In many ways, FreeBSD has always been the operating system that GNU/Linux-based operating systems should have been. It runs on out-of-date Intel machines and 64-bit AMD chips, and it serves terabytes of files a day on some of the largest file servers on earth.
Articles 19 Jul 2005  
 
Hacking the Linux 2.6 kernel, Part 1: Getting ready
In this first of a two-part series, learn about system and environment requirements, the best ways to acquire Linux source code, how to configure and boot your new kernel, and how to use the printk function to print messages during bootup.
Tutorials 19 Jul 2005  
 
Linux scripts make wireless management a snap
Setting up a wireless Internet Service provider (WISP) for your office or neighborhood doesn't have to be a taxing or expensive ordeal. If you build your network from easy-to-buy equipment and use Linux, you can use the power of shell scripts to make network management easy. Get the tips and scripts you need in this article. This article gives you the tips and scripts you need.
Articles 19 Jul 2005  
 
High-availability middleware on Linux, Part 5: IBM DB2 Universal Database
Data is at the heart of any business, and access to it should be available with minimum downtime. In this article, take a look at the setup and implementation of a Linux High Availability solution for IBM DB2 Universal Database -- the database management system that delivers a flexible and cost-effective database platform for building robust, on demand business applications. Using this step-by-step guide, you can set up and run a highly available DB2 UDB database.
Articles 14 Jul 2005  
 
Learning PHP, Part 3: Authentication, objects, exceptions, and streaming
This is Part 3 of a three-part "Learning PHP" series teaching you how to use PHP through building a simple workflow application. In this tutorial, you will learn about using HTTP authentication, streaming files, and how to create objects and exceptions.
Tutorials 12 Jul 2005  
 
Install IBM Cloudscape on Red Hat Linux
This demo walks you though the installation steps for installing IBM Cloudscape on Red Hat Linux. These steps include installation, setting the Path and Classpath statements, and finally, verifying the installation.
Demos 11 Jul 2005  
 
Linux on board: Blowing the lid off of TiVo
Everyone's heard that the TiVo runs Linux. In this installment of Linux on board, Peter takes a look at the Linux system installed on the TiVo. Examining the TiVo system reveals how one company made the transition from desktop operating system to embedded system.
Articles 06 Jul 2005  
 
Linux virtualization on POWER5: A hands-on setup guide
Learn how to use the virtualization functions available for Linux on IBM POWER5 processor-based servers.
Tutorials 01 Jul 2005  
 
Manage C data using the GLib collections
In this tutorial, learn how to use the GLib collection data structures to effectively manage data within C programs. In particular, you'll see how to use GLib's built-in data structures/containers -- linked lists, hash tables, arrays, trees, queues, and relations -- to fill the need for them in C.
Tutorials 27 Jun 2005  
 
Spufs: The Cell Synergistic Processing Unit as a virtual file system
Base platform support for Linux on the Cell has been established and is currently on its way into the mainstream Linux kernel tree. Read about the Cell's unique architecture and the SPU file system interface that allows Linux to run on it.
Articles 25 Jun 2005  
 
Learning PHP, Part 2: Upload files and use XML to store and display file information
This tutorial is Part 2 of a three-part "Learning PHP" series that takes you from the most basic PHP script to working with databases and streaming from the file system by documenting the building of a document workflow system. Here, documents are uploaded by users and stored in a non-Web-accessible location for retrieval by the application in Part 3. We also look at working with XML files using DOM and SAX, and we look at exceptions.
Tutorials 21 Jun 2005  
 
Visualize function calls with Graphviz
Spending the time to work through a mass of source code can reveal the function flow to you, but when function pointers are involved or the code is lengthy and convoluted, the process becomes considerably more difficult. This article shows you how to construct a dynamic graphical function call generator using open source software and a bit of custom glue code.
Articles 21 Jun 2005  
 
Mastering recursive programming
Recursion is a tool not often used by imperative language developers, because it is thought to be slow and to waste space, but as the author demonstrates, there are several techniques that can be used to minimize or eliminate these problems. He introduces the concept of recursion and tackle recursive programming patterns, examining how they can be used to write provably correct programs. Examples are in Scheme and C.
Articles 16 Jun 2005  
 
Fast-track your Web apps with Ruby on Rails
Ruby on Rails is a recent entry into the world of Web application development that is rapidly gaining mindshare, even while still in beta versions. Rails succeeds by automating the creation of the most common types of Web applications while not straightjacketing you if you want to add custom or atypical requirements. Moreover, compared to many Free Software libraries that perform individual aspects of a Web application, Rails contains a nicely integrated set of tools for all aspects.
Articles 14 Jun 2005  
 
Learning PHP, Part 1: Register for an account, upload files for approval, and view and download approved files
This tutorial is the first of a three-part "Learning PHP" series that takes you from the most basic PHP script to working with databases and streaming from the file system by documenting the building of a document workflow system. In this part, we look at the basics of building a PHP script, including syntax, HTML forms, and database connections.
Tutorials 14 Jun 2005  
 
Guide to porting Linux on x86 applications to Linux on POWER
Port your Linux(TM) C/C++ applications from the x86 platform (Intel(R) or AMD) to Linux on POWER(TM) using the following straightforward, step-by-step process. First, learn what it takes to prepare for the port. Then follow the implementation tips to get your x86 code running on Linux on POWER.
Articles 08 Jun 2005  
 
Linux on board: Breathe new life into an old machine
People say Linux can make old machines useful. Can it really? In this new series, Peter Seebach takes a busted laptop and a US$50-a-month budget and builds a household appliance that actually does something worthwhile.
Articles 07 Jun 2005  
 
Build a Perl/CGI voting system
Many Web-deployed applications are written within elaborate database-driven server-side development frameworks such as PHP and Java servlets, but for simple applications (for example, where the entire dataset fits comfortably within a Web server's RAM), data persistence can be easily accomplished using locked DBM files in conjunction with the Perl MLDBM module. This article presents a real-world example -- a Web-based voting application -- that highlights the use of minimal external modules, forgoes using client-based cookies, and takes advantage of CGI attributes.
Articles 31 May 2005  
 
Irving Wladawsky-Berger:IT 中的机会和挑战
IBM 的副总裁 Irving Wladawsky-Berger 继续在推动他对网格计算将来的构想,他的预言正日益变为现实。他说,开源是全世界程序员协作创新的一个非常好的例子。这是一场革命,具有很多机会,也具有很多挑战。我们的记者对 Wladawsky-Berger 在旧金山举办的 2005 Open Source Business Conference 上的关键讲话进行了报道。
Articles 26 May 2005  
 
Build a RADIUS server on Linux
As a network administrator, you need to keep administrative user information for each network device you need to manage. But network devices usually support only limited functions for user management. Learn how to use an external RADIUS server on Linux to authenticate users, particularly against an LDAP server, allowing you to centralize user information stored in the LDAP server and authenticated by the RADIUS server, thereby both reducing administrative overhead on user management and making the remote login process more secure.
Articles 25 May 2005  
 
Port Windows IPC apps to Linux, Part 2: Semaphores and events
The wave of migration to open source in business has the potential to cause a tremendous porting traffic jam as developers move the pervasive Windows applications to the Linux platform. In this three-part series, get a mapping guide, complete with examples, to ease your transition from Windows to Linux. Part 2 examines two synchronization object types, semaphores and events.
Articles 25 May 2005  
 
Test-first Ruby programming
This tutorial will build a simple Ruby application following Test First principles. It will start with an overview of the Test::Unit library that ships with Ruby then move on to writing tests from a specification and writing code to fulfill those test. It will touch on tools like ZenTest and unit_diff, and on the process of refactoring. The tutorial will be built around a single programming example.
Tutorials 24 May 2005  
 
Linux, outside the (x86) box
It's obvious -- Linux has become an attractive option for non-x86 platforms. Why? In this article, the author examines the reasons for this, including the fact that Linux on non-x86 enables affordable, easy-to-do virtualization; provides for better reliability, power consumption, and extended memory support; covers the lower and upper ranges of machines, giving users options outside of the middle range; revitalizes older hardware; and drives innovation.
Articles 24 May 2005  
 
How to build your own Linux distribution
Linux From Scratch (LFS) and its descendants represent a new way to teach users how the Linux operating systems work. LFS is based on the assumption that compiling a complete operating system piece by piece not only teaches how the operating system works but also allows an independent operator to build systems for speed, footprint, or security.
Articles 24 May 2005  
 
IBM Cluster Systems Management: An installation guide
As you all know, managing a large set of machines in an IT industry, for various activities, is very difficult. The IBM(R) Cluster Systems Management (CSM) tool simplifies this process. Follow along as IBM Linux(TM) Architect Harish Chauhan provides step-by-step instructions on how to install the CSM tool.
Articles 20 May 2005  
 
Cultured Perl: Use IMAP with Perl, Part 2
Ted returns to the subject of accessing IMAP with the Mail::IMAPClient by looking at ifrom.pl as an alternative to other IMAP and POP3 mail checkers. This time around Ted covers tunneling (or port forwarding as it is sometimes called), as well as applying the script to the Maildir mail-storage format.
Articles 19 May 2005  
 
POWER5 Virtualization: How to set up the SUSE Linux Virtual I/O Server
Reduce your operation costs for complex environments by creating efficient and flexible virtualization capabilities. Nigel Griffiths describes the benefits of the IBM(R) POWER5(TM) servers and provides examples on how to set up the environment for pSeries(R) p5 and eServer(TM) OpenPower systems.
Articles 19 May 2005  
 
Use PLAM to speed distributed transactions
$@!LessThan!@$!--Security is critical to the success of distributed client-server applications.--$@!GreaterThan!@$To decrease transaction time in distributed client-server applications, you can refine the flow of authorization information between the entities involved in a transaction. In this article, learn how to reduce the redundant authorization information that travels between a client and server with the Pluggable Authorization Module. PLAM is a DCE-style authorization framework model that reduces the request come-back period.
Articles 18 May 2005  
 
Identify performance bottlenecks with OProfile for Linux on POWER
Learn about OProfile and how to use it on IBM(R) POWER(TM) processor-based servers running Linux(TM). First, get a high-level overview of OProfile and its implementation on Linux on POWER and then follow along as the author presents two examples of how to profile code and analyze the results by using OProfile on a Linux on POWER platform.
Articles 17 May 2005  
 
Linux SEK 2005 Release 1: Installing IBM Rational Software Architect V6.0 trial for Linux
Follow these steps to install IBM Rational Software Architect V6 trial on Red Hat Enterprise Linux 3 (RHEL3) or on SUSE Enterprise Linux 9 (SLES9). Developers who are new to Linux or UNIX-based operating systems will get the most out of this article.
Articles 17 May 2005  
 
OpenAFS helps corral distributed data
Distributed file systems haven't had much press lately because it's mostly corporate and educational networks that use them, adding up to only thousands of users. Conceptually, it isn't always clear how such systems fit into the open source file system puzzle. The Open Andrew File System (OpenAFS) is a mature alternative to the Network File System (NFS), which scales only to large numbers of users and doesn't relieve management pain.
Articles 17 May 2005  
 
Linux SEK 2005 Release 1: Installing IBM Rational Software Modeler V6.0 trial for Linux
Follow these steps to install IBM Rational Software Modeler V6 trial on Red Hat Enterprise Linux 3 (RHEL3) or on SUSE Enterprise Linux 9 (SLES9). Developers who are new to Linux or UNIX-based operating systems will get the most out of this article.
Articles 17 May 2005  
 
Application optimization with compilers for Linux on POWER
Interested in tuning your C/C++ applications for Linux(TM) on POWER(TM)? This article compares the optimization options for both Linux on POWER C/C++ compilers: GCC and IBM XL C/C++. This paper also reviews tactics, such as Interprocedural Analysis, Profile Directed Feedback, and High Order Transformations, which are used by one or both of the compilers to extract higher performance from the Power architecture.
Articles 10 May 2005  
 
Linux for S/390 and zSeries porting hints and tips
Examine helpful hints and tips from the IBM(R) development team for porting applications to Linux(TM) on zSeries(R). The development team also addresses some key porting areas of Linux zSeries.
Articles 05 May 2005  
 
GNU C/C++ toolchain for Linux on POWER
Learn about the GNU toolchain for Linux(TM) on POWER(TM). This paper highlights the general options available for using the GNU compiler, linker, and loader with Linux on POWER and discusses the GNU binutils, focusing on Linux on POWER-specific considerations and the new features provided in SUSE Linux Enterprise Server, Version 9, and Red Hat Enterprise Linux, Version 4.
Articles 04 May 2005  
 
Secure programming with the OpenSSL API, Part 2: Secure handshake
Securing the handshake during a Secure Sockets Layer session (SSL) is vital, since almost all of the security involving the connection is set up inside the handshake. Learn how to secure the SSL handshake against a man in the middle (MITM) attack -- in which the intruding party masquerades as another, trusted source. This article also introduces the concept of digital certificates and how the OpenSSL API handles them.
Articles 03 May 2005  
 
Discover Python, Part 1: Python's built-in numerical types
The flexible nature of the Python programming language supports multiple programming philosophies, including procedural, object-oriented, and functional. But most importantly, programming in Python is fun. The language supports rather than hinders the development process. This article, the first in a series on Python programming, introduces Python and its built-in numerical types.
Articles 03 May 2005  
 
A power-user's guide to multilingual editors
Find out how Unicode-encoded character sets make multilingual editing possible, and the way in which existing Unicode editors running on Linux use those facilities. Unicode editors, such as Yudit and Mined, are designed to enable multilingual editing using Unicode-encoded character sets. The architecture required to get them to work is complex and requires a subtly configured web of libraries, particularly if a Unicode editor is to rely on Linux and UNIX system library resources instead of providing its own character and string management machinery.
Articles 03 May 2005  
 
Guide to porting from Solaris to Linux on x86
Solaris is considered one of the closest flavors of UNIX to Linux, but for migration purposes, there can be differences between the two in the areas of memory mapping, threading, or natural language support (to name just a few). This porting guide gives you advice on planning for the port to Linux/x86, and helps you understand the differences in the development environment and architecture.
Articles 29 Apr 2005  
 
Dynamically add new DASD to Red Hat Enterprise Linux on zSeries
Discover how Red Hat Enterprise Linux Version 4 (RHEL V4.0) has changed the way you add new direct access storage device (DASD) devices. Follow along as Dionne Graff provides detailed instructions on how to add these devices to an already running Red Hat 2.6-based system.
Articles 28 Apr 2005  
 
Dual boot Linux and AIX
There may be times when you find it necessary to develop in both the Linux and AIX operating environments. This article describes dual booting Linux and AIX on the same IBM eServer pSeries (including eServer p5), eServer i5, or eServer OpenPower server.
Articles 25 Apr 2005  
 
Port Windows IPC apps to Linux, Part 1: Processes and threads
The wave of migration to open source in business has the potential to cause a tremendous porting traffic jam as developers move the pervasive Windows applications to the Linux platform. In this three-part series, get a mapping guide, complete with examples, to ease your transition from Windows to Linux. Part 1 introduces processes and threads.
Articles 14 Apr 2005  
 
Monitor Linux file system events with inotify
Inotify is a file system event-monitoring mechanism slated for inclusion in upcoming Linux kernels that is designed to serve as an effective replacement for dnotify, which was the de facto file-monitoring mechanism supported in older kernels. Inotify is a powerful, fine-grained, asynchronous mechanism ideally suited for a variety of file-monitoring needs including, but not limited to, security and performance. Learn how to install inotify and how to build a sample user-space application to respond to file system events.
Articles 12 Apr 2005  
 
MySQL for Linux on POWER, Part 2: Developing applications
In this second, and final, part of this series, learn more about the availability of MySQL Database Server for Linux(TM) running on IBM(R) POWER(TM) and PowerPC(R) processor-based servers (collectively referred to as Linux on POWER). Part 2 focuses on developing applications for MySQL in some of the major programming languages, such as PHP, Java(TM), C/C++, Python, and Perl. As a brief guide for application developers using MySQL on Linux on POWER, this paper is intended for MySQL developers and database administrators who are familiar with their system environment, networks, media devices, and disk resources.
Articles 07 Apr 2005  
 
Linux SEK 2005 Release 1: Installing IBM Rational Agent Controller for Linux
Follow these steps to install IBM Rational Agent Controller on Red Enterprise Linux 3 (RHEL3) or SUSE Enterprise Linux 9 (SLES9) on a system on which you have already installed one of the Rational software development trial programs (Rational Application Developer, Rational Web Developer, or Rational Software Architect). Developers who are new to Linux or UNIX-based operating systems will get the most out of this article.
Articles 06 Apr 2005  
 
Linux SEK 2005 Release 1: Installing IBM Rational Web Developer V6.0 trial for Linux
Follow these steps to install IBM Rational Web Developer V6 trial on Red Hat Enterprise Linux 3 (RHEL3) or on SUSE Enterprise Linux 9 (SLES9). Developers who are new to Linux or UNIX-based operating systems will get the most out of this article.
Articles 06 Apr 2005  
 
An embedded view of the Mac Mini, Part 2: Free software on a cheap computer
NetBSD and Yellow Dog Linux have both begun to support the Mac Mini. Peter Seebach looks at open source operating system options on this new contender in the embedded PowerPC platform space.
Articles 05 Apr 2005  
 
Linux SEK 2005 Release 1: Installing IBM Rational Application Developer V6.0 trial for Linux
Follow these steps to install IBM Rational Application Developer V6 trial on Red Hat Enterprise Linux 3 (RHEL3) or on SUSE Enterprise Linux 9 (SLES9). Developers who are new to Linux or UNIX-based operating systems will get the most out of this article.
Articles 05 Apr 2005  
 
MySQL for Linux on POWER, Part 1: Introduction to creating a database
Learn about the availability of MySQL Database Server for Linux(R) running on IBM(R) POWER(TM) and PowerPC(R) processor-based servers (collectively referred to as Linux on POWER). As a brief guide for application developers using MySQL on Linux on POWER, this paper is intended for MySQL developers and database administrators who are familiar with their system environment, networks, media devices, and disk resources. In Part 2 of this article, read about developing applications for MySQL using PHP, C/C++, Java, Perl, and Python.
Articles 05 Apr 2005  
 
Migrating from x86 to PowerPC, Part 4: Build a minimal embedded Web interface
This installment shows you how to use small-footprint, highly portable, Free Software tools to Web-enable your unmanned submarine, in anticipation of browsing its onboard photo library from an underground lair in the next episode.
Articles 05 Apr 2005  
 
Cultured Perl: Complex layered configurations with AppConfig
AppConfig shines as a way of configuring applications in Perl in the simple cases, but occasionally you need more power in command-line processing and configuration-file parsing. Instead of using data formats such as XML or YAML, you can apply a little extra effort and alter AppConfig so it can process complex command-line switches to create multi-level hashes.
Articles 31 Mar 2005  
 
Higher order functions
Functions are the wonderful and powerful building blocks of computer programs. Functions allow you to break code down into simpler, more manageable steps. They also allow you to break programs into reusable parts -- parts that are both reusable within the program and in other programs as well. In this article, learn how to create new functions at runtime based on templates, how to create functions that are configurable at runtime using function parameters, and how the Scheme language can be a valuable tool with functions.
Articles 31 Mar 2005  
 
Migrate Win32 C/C++ applications to Linux on POWER, Part 3: Semaphores
Migrate your Win32 C/C++ applications to Linux on POWER and learn how to map Win32 to Linux with respect to semaphore application program interfaces (APIs). Follow along as Nam Keung walks you through detailed code examples outlining this process.
Articles 31 Mar 2005  
 
Embed Python scripting in C applications
Learn how to embed Python applications into your C applications. This tutorial explains how Python embedding works, shows you how to translate between data types, and provides various methods for embedding Python scripts.
Tutorials 29 Mar 2005  
 
Linux on POWER: Distribution migration and binary compatibility considerations
Learn about binary compatibility as it relates to the different operating environments that run on Linux(R) on POWER(TM). Examine the two Linux on POWER distributions supported by IBM(R), Red Hat Enterprise Linux (RHEL) and SUSE LINUX Enterprise Server (SLES), with regard to the binary compatibility between their respective releases. In general, a smooth transition from the 2.4 kernel-based RHEL3 to the 2.6 kernel-based RHEL4 is observed due to the stable Application Binary Interface (ABI) maintained between the releases and the back-porting of many features from RHEL4 into RHEL3. While there are differences in the threading model in the 2.4 kernel-based SLES8 to the 2.6 kernel-based SLES9, binary compatibility can still be maintained between the releases in many cases. Learn about new technologies that can provide performance enhancements for a Linux on POWER application, and follow steps to ensure binary compatibility across multiple distributions in the future.
Articles 24 Mar 2005  
 
Authenticate SLES9 Linux clients using RACF and LDAP on z/OS
In this step-by-step guide, learn how to set up SUSE LINUX Enterprise Server (SLES9) clients to use Resource Access Control Facility (RACF) for user userid authentication and Lightweight Directory Access Protocol (LDAP) on a z/OS(R) server.
Articles 24 Mar 2005  
 
Track bugs with Bugzilla on Linux
For those in the support arena, keeping track of issues, problems, and the fixes applied to them can be a daunting task; however, there is a perfect open source answer to this challenge: Bugzilla. Once it is installed, you can easily track bugs and be notified when certain issues and solutions are discovered. This article provides a step-by-step guide for installing Bugzilla on a Linux system.
Articles 18 Mar 2005  
 
A moment of Xen: Virtualize Linux to test your apps
Xen is a virtualization technology available for the Linux kernel that lets you enclose and test new upgrades as if running them in the existing environment but without the worries of disturbing the original system. The author shows you how to install Xen using Fedora Core, but once installed, everything works the same in Xen on any distribution. Take a look at virtualization on Linux and see the benefits of having a sandbox for testing new software, as well as a playground for running multiple virtual machines on the same Linux box.
Articles 15 Mar 2005  
 
High-availability middleware on Linux, Part 4: IBM WebSphere Application Server
In this fourth of five installments on implementing middleware in high-availability configurations, learn a step-by-step method of crafting a highly available configuration for the IBM WebSphere Application Server, and get the flexibility, resilience, and efficiency your on demand environment needs.
Articles 10 Mar 2005  
 
Cultured Perl: Embedding Perl in database tables
In this installment, Ted looks at Perl and databases. Specifically, he works with the Class::DBI CPAN module and MySQL to introduce you to embedding Perl in database tables.
Articles 09 Mar 2005  
 
Migrating from x86 to PowerPC, Part 3: Kuro Box Linux up close
This installment of "Migrating from x86 to PowerPC" moves from the abstract to the concrete, looking into implementation details of the Kuro Box. Lewin Edwards shows how to get the box configured with development tools and device drivers installed and updated.
Articles 08 Mar 2005  
 
IBM eServer BladeCenter JS20 quick setup guide
Follow these instructions to install an IBM(R) eServer(TM) BladeCenter(TM) JS20.
Articles 03 Mar 2005  
 
Overview of Linux on IBM eServer i5, p5, and OpenPower
IBM's commitment to Linux spans the entire IBM eServer product line. This article gives developers an overview of Linux on POWER5 processor-based servers. It also introduces the IBM Virtualization Engine technology and describe how Linux users will benefit from it.
Articles 01 Mar 2005  
 
High-availability middleware on Linux, Part 3: IBM LoadLeveler
Workload management is critically important for an on-demand business. IBM LoadLeveler is a job-management system that allows users to run more jobs in less time by matching the jobs' processing needs with the available resources. Maintaining maximum system uptime of the job management system is increasingly important. Learn how you can achieve high availability for a LoadLeveler cluster using the built-in high-availability capabilities of LoadLeveler and further enhancing it using open source high-availability software.
Articles 28 Feb 2005  
 
C++ exception-handling tricks for Linux
Handling exceptions in C++ has a few implicit restrictions at the language level, but you can get around them in some instances. Learn ways to make exceptions work for you so you can produce more reliable applications.
Articles 23 Feb 2005  
 
Build a GCC-based cross compiler for Linux
Get step-by-step instructions for building a cross-compiler so that you can build and develop applications for an alternative platform. Cross-compilers can be useful in many different situations, such as when you develop applications for embedded platforms.
Tutorials 22 Feb 2005  
 
Porting enterprise apps from UNIX to Linux
Much of today's enterprise-level software on UNIX caters to the business needs of large companies. And so it must support emerging technologies and follow the rapidly evolving market trends, such as the proliferation of the powerful, flexible Linux operating system. Because much of this software is large, multi-threaded, and multi-process, porting it to Linux presents challenges. In this article, get a checklist and advice derived from a real-world port of one piece of enterprise-level software to Linux.
Articles 17 Feb 2005  
 
Guide to porting from Solaris to Linux on POWER
Accelerate your porting efforts by following this six-step guide. Learn the differences between Solaris and Linux on POWER that you commonly encounter during a port. Get an introduction to the development environment for Linux running on IBM POWER processor-based systems, and see how SUN's compiler/linker switches compare with those of GNU GCC and the IBM native compiler. Finally, learn about tools for performance analysis and software packaging for Linux on POWER.
Articles 15 Feb 2005  
 
JNI programming examples for Linux on POWER
In a few simplified examples, this paper describes key Java Native Interface (JNI) programming concepts and highlights Linux on POWER-specific, as well as common, programming pitfalls, where appropriate.
Articles 11 Feb 2005  
 
Migrate Win32 C/C++ application to Linux on POWER, Part 2: Mutexes
This series of articles helps you migrate your Win32 C/C++ applications to Linux on POWER. Senior programmer Nam Keung and pSeries Linux technical consultant Chakarat Skawratananond illustrate how to map Win32 to Linux with respect to mutex application program interfaces (APIs). Part 1 of this series focused on Win32 API mapping.
Articles 10 Feb 2005  
 
Porting OS/2 applications to Linux (in C)
Look before you leap into Linux by discovering the pitfalls ahead of time. The LANDP team guides you through the differences between OS/2 and Linux so that your porting project can go more smoothly.
Articles 10 Feb 2005  
 
Speed-start your Linux app 2004: Secure Sockets Layer (SSL) for IBM HTTP server
The growth of electronic commerce over the Internet has led to an increasing demand for secure network communications. In addition, intra-company communications over private networks often contain confidential information that needs protection. This article explains how to configure Secure Sockets Layer (SSL) for IBM HTTP Server for Linux on iSeries and pSeries servers to establish secure connections.
Articles 10 Feb 2005  
 
Software optimization techniques for PowerPC 405 and 440
Your article abstract goes here. Summarize the main points of the article or the task the developer will be able to do after reading the article. Put the primary points and key phrases close to the beginning of the abstract, because it may be truncated in search results. Avoid line breaks in the abstract, please.
Articles 10 Feb 2005  
 
Performance tuning tips for the IBM JVM for Linux on POWER
This article introduces some of the important performance tuning issues for the IBM JVM for Linux on iSeries and pSeries. At the time of this writing, IBM provides JDK 1.3.1 32-bit and JDK 1.4.1, in both 32-bit and 64-bit flavors, for Linux on IBM iSeries and pSeries. Information in this article applies to IBM JDK 1.3.1 and JDK 1.4.1 for Linux on IBM iSeries and pSeries, but specifically targets JDK 1.4.1 SR2 as the latest IBM JDK release.
Articles 10 Feb 2005  
 
Pascal on SUSE Linux Enterprise Server 8.0 for POWER
The current SUSE Linux Enterprise Server for POWER (SLES) distribution in use is version 8.0, and it does not bundle any Pascal compilers with it. If you are seeking the availability of Pascal compilers on SLES 8.0, this article briefly describes alternatives that you might want to explore.
Articles 10 Feb 2005  
 
Authenticating Linux users with IBM Directory Server
This article describes how to use the IBM Directory Server to authenticate Linux users. The author explains step-by-step how to configure Directory Server, and Linux, to build a basic configuration to use Directory Server to authenticate Linux users.
Articles 10 Feb 2005  
 
Advantages of openMosix on IBM xSeries, Part 3
By the end of this three-part series, you'll have your own openMosix mini-cluster up and running and will be ready to use it effectively to accelerate your computing tasks. In this installment, you'll see some ways to use openMosix to tackle computing challenges. (Courtesy Intel Corporation)
Articles 10 Feb 2005  
 
Advantages of openMosix on IBM xSeries, Part 2
By the end of this three-part series, you'll have your own openMosix mini-cluster up and running and will be ready to use it effectively to accelerate your computing tasks. In this installment, you will get a fully functional openMosix cluster configured and running. (Courtesy Intel Corporation)
Articles 10 Feb 2005  
 
Advantages of openMosix on IBM xSeries, Part 1
By the end of this three-part series, you'll have your own openMosix mini-cluster up and running and will be ready to use it effectively to accelerate your computing tasks. This installment gives you an introduction to the current clustering technologies available for Linux and an introduction to openMosix.
Articles 10 Feb 2005  
 
Build a heterogeneous cluster with coLinux and openMosix
You can create a cluster using any of three basic approaches: full migration to a single platform, partial migration, or a mixed or hybrid creation. In this article, learn how cluster agents fulfill the latter approach, and see how coLinux and openMosix can combine to offer a high-performance cluster middleware in a heterogeneous environment. In this heterogeneous environment, Linux provides the stability and performance, and Windows users continue to use their apps and never notice the difference.
Articles 01 Feb 2005  
 
How to use z/VM VDISKS for Linux swap devices instead of real physical DASD
Virtual DISKS (VDISK) are high-speed disks created in memory. Software Engineer Dionne Graff provides instructions on setting up a z/VM VDISK for a Linux swap device.
Articles 27 Jan 2005  
 
How to use z/VM VDISKS for Linux swap devices instead of real physical DASD
Virtual DISKS (VDISK) are high-speed disks created in memory. Software Engineer Dionne Graff provides instructions on setting up a z/VM VDISK for a Linux swap device.
Articles 27 Jan 2005  
 
Charming Python: Pyrex extends and speeds Python apps
The author takes a stab at speeding up his pure-Python version of hashcash using Pyrex, a language for writing Python extension modules that lets you avoid having to use C for the job. He contrasts writing code in Pyrex -- generally for use with larger Python applications -- with speeding up Python applications using the Psyco compiler, which he has written about previously on developerWorks.
Articles 25 Jan 2005  
 
Introduction to clustering on IBM eServer OpenPower 710
This paper introduces basic clustering components and software tools that can be used to build a Linux cluster on IBM eServer OpenPower 710 by utilizing its 64-bit POWER5 architecture. This paper is intended as an introduction for someone interested in building a new Linux cluster running on OpenPower 710 servers or converting an existing cluster to OpenPower 710 servers.
Articles 25 Jan 2005  
 
Build a push proxy gateway on Linux
Learn how to set up a PPG on your own, configure the settings to your own taste, develop push content, and test it with a mobile handset simulator over a TCP/IP network on a LAN.
Articles 25 Jan 2005  
 
Setting up your IBM eServer OpenPower server
The recently announced IBM eServer OpenPower server offers developers and users an enterprise server tuned to run Linux. With one- to four-way processor offerings, these servers have the potential to be run in both enterprise and developer environments. While Linux is no stranger to the server world, the OpenPower product line is certainly new to most people and differs significantly from any other server product line. With features like logical partitioning (LPAR), dynamic logical partitioning (DLPAR), shared-processing, and virtual I/O, the configuration and setup scenarios are virtually never-ending. This article describes a fastpath approach for the following basic setup scenarios: Setting up an OpenPower server in unmanaged mode and setting up an OpenPower server in managed mode.
Articles 24 Jan 2005  
 
Use reentrant functions for safer signal handling
If you deal with concurrent access of functions, either by threads or processes, you can face problems caused by non-reentrancy of the functions. In this article, learn through code samples how anomalies can result if reentrancy is not ensured, especially with regard to signals. Five recommended programming practices are included, along with a discussion of a proposed compiler model in which the compiler front end deals with reentrancy.
Articles 20 Jan 2005  
 
Dissecting shared libraries
Shared libraries use version numbers to allow for upgrades to the libraries used by applications while preserving compatibility for older applications. This article reviews what's really going on under the book jacket and why there are so many symbolic links in /usr/lib on a normal Linux system.
Articles 11 Jan 2005  
 
Better programming through effective list handling
Singly linked lists are a powerful abstraction that allow programmers to represent numerous types of data; extending those lists to handle arbitrary data types can offer effective tools for processing data. In this article, we look at these processes and examine the Lisp variation Scheme, an easy-to-use list-oriented language that delivers list-manipulation capabilities without the complexities of C.
Articles 05 Jan 2005  
 
The year in Power Architecture technology: The year in microprocessors
From spintronics to clockless CPUs, 2004 was a year of process and research in the microprocessor industry. This article offers a month-by-month look at the highlights of the 2004 microprocessor timeline.
Articles 22 Dec 2004  
 
Craft a load-balancing cluster with ClusterKnoppix
The cluster, a collection of computers that work together, is an important concept in leveraging computing resources because of its ability to transfer workload from an overloaded system (or node) to another system in the cluster. This article explains how to set up a load-balancing Linux cluster using Knoppix-based LiveCDs.
Articles 22 Dec 2004  
 
Write emulator-friendly Linux code
Computers have been emulating other computers for a long time, often to access a legacy application or to use applications written for a popular OS on a system with a more stable, responsive OS. As Linux grows in popularity, developers need to examine their options when planning binaries that will run on non-Linux systems. This article examines what emulators do and looks at hardware and software emulation issues in detail.
Articles 21 Dec 2004  
 
Secure programmer: Call components safely
Application programs typically make calls to other components, such as the underlying operating system, database systems, reusable libraries, Internet services (like DNS), Web services, and so on. This article explains how to prevent attackers from exploiting those calls to other components by discussing the use of only secure components, passing only valid data, making sure the data will be correctly interpreted, checking return values and exceptions, and protecting data as it flows between applications and components.
Articles 16 Dec 2004  
 
Embed Perl scripting in C applications
Have you ever wanted a quick way to add a scriptable element to your applications? Embedding an existing language into your application is the simplest and most effective way to incorporate such a system. You get the benefits of an established language to expand the functionality of your application in a flexible way without users having to rebuild the application to use it. In this tutorial, you'll learn a process for embedding a scripting language into an application. You'll see how to build the application and how to provide wrapper functions that support full argument and return value support.
Tutorials 15 Dec 2004  
 
PowerPC development from the bargain basement
The Kuro Box promises something fairly interesting: a usable single-board PowerPC computer, for only US$160 -- when other PowerPC development boards often cost ten times as much. Peter Seebach guides you through setup and install in this developerWorks hardware howto.
Articles 14 Dec 2004  
 
IBM developer kits for Java technology on Apple PowerPC hardware
This article shows how to use fully-featured, production-proven IBM developer kits for Java technology for Linux distributions for IBM POWER and IBM PowerPC hardware on Linux for Apple PowerPC hardware. Be aware that the use of IBM Java environments on Apple PPC hardware is not supported by IBM. IBM does not offer service support for these configurations and so the author is not encouraging customers to use them in production environments that use Linux distributions running on Apple PPC hardware.
Articles 12 Dec 2004  
 
High-availability middleware on Linux, Part 2: IBM WebSphere MQ
In the second of five installments on implementing middleware in high-availability configurations, learn how to install and configure IBM WebSphere MQ messaging middleware on a heartbeat cluster, providing failover capability in the event of a system malfunction.
Articles 09 Dec 2004  
 
Install SUSE Linux Enterprise Server V9 on iSeries
This article walks you through the steps required to install SUSE Enterprise Server V9 in a guest partition on an IBM iSeries server. Start by creating the guest partition, then move on to setting up virtual networking, creating storage space, configuring network address translation, and, finally, launching and running the SUSE Linux installer.
Articles 08 Dec 2004  
 
Linux-powered networking, Part 3: Integrate Linux and Windows with Samba
The third in a three-part series on how to leverage Linux to get the most from your network, this tutorial shows how to use Samba to integrate your Linux and Windows networks. Sample code and configuration files are provided throughout to aid understanding.
Tutorials 07 Dec 2004  
 
Install XAMPP for easy, integrated development
Open source stacks such as XAMPP from Apache Friends are simplifying open source development by making it easier to write and distribute applications in a stable and standardized environment. Traditionally, AMPP -- Apache, MySQL, PHP, and Perl -- have all been installed and configured as separate products. The trend of combining them into integrated middleware stacks promises to make open source development more competitive with J2EE application development, at least for low-end applications. In this article, you'll learn how to install, configure, and back up XAMPP on Mandrake Linux 10.0 and also how to configure and administer XAMPP, as well as how to install your own applications in an XAMPP environment.
Articles 30 Nov 2004  
 
Linux-powered networking, Part 2: Set up a DHCP server to manage IP addresses
The second in a three-part series on how to leverage Linux to get the most from your network, this tutorial shows how to set up a Dynamic Host Configuration Protocol (DHCP) server with Internet Systems Consortium (ISC) DHCP. Sample code and configuration files are provided throughout to aid understanding.
Tutorials 30 Nov 2004  
 
Linux-powered networking, Part 1: Build a DNS server with ISC BIND
The first in a three-part series, this tutorial shows you how to leverage Linux to get the most from your network. Specifically, it describes how to set up DNS with Internet Systems Consortium (ISC) BIND. Sample code and configuration files are provided throughout to aid understanding.
Tutorials 23 Nov 2004  
 
Inside memory management
Get an overview of the memory management techniques that are available to Linux programmers, focusing on the C language but applicable to other languages as well. This article gives you the details of how memory management works, and then goes on to show how to manage memory manually, how to manage memory semi-manually using referencing counting or pooling, and how to manage memory automatically using garbage collection.
Articles 16 Nov 2004  
 
Securing Linux, Part 2: Planning the installation
Only the paranoid survive, and that is no less true when securing Linux systems as any other. Fortunately, a host of security features are built into the kernel, are packaged with one of the many Linux distributions, or are available separately as open source applications. This second installment covers inventory assessment, risk analysis, identifying user categories and access privileges, and then moves on to a more detailed action plan and steps for safely acquiring a Linux distribution.
Articles 11 Nov 2004  
 
Charming Python: Beat spam using hashcash
Built on the widely available SHA-1 algorithm, hashcash is a clever system that requires a parameterizable amount of work on the part of a requester while staying "cheap" for an evaluator to check. In other words, the sender has to do real work to put something into your inbox. You can certainly use hashcash in preventing spam, but it has other applications as well, including keeping spam off of Wikis and speeding the work of distributed parallel applications. In this article, you'll meet David's own Python-based hashcash implementation.
Articles 09 Nov 2004  
 
Linux for pSeries installation and administration (SLES 9)
Linux for POWER has been around for a while, and continues to be a compelling environment for running Linux. This article will cover the installation of Linux on an IBM pSeries system.
Articles 02 Nov 2004  
 
Cultured Perl: Perl 6 grammars and regular expressions
Perl 6 is finally coming within reach. In this article, Ted gives you a tour of the grammars and regular expressions of the Perl 6 language, comparing them with the currently available Parse::RecDescent module for Perl 5. Find out what will be new with Perl 6 regular expressions and how to make use of the new, powerful incarnation of the Perl scripting language.
Articles 02 Nov 2004  
 
Optimize Perl
Perl is an incredibly flexible language, but its ease of use can lead to some sloppy and lazy programming habits. We're all guilty of them, but there are some quick steps you can take to improve the performance of your Perl applications. In this article, I'll look at the key areas of optimization, which solutions work and which don't, and how to continue to build and extend your applications with optimization and speed in mind.
Articles 19 Oct 2004  
 
Cultured Perl: Genetic algorithms simulate a multi-celled organism
Based on the Darwinian principle of survival of the fittest, genetic programming uses mutation and replication to produce algorithms for creating ever-improving computer programs. In this third installment on genetic algorithms, Ted picks up where he left off last time, with instructions on how to simulate a multi-celled organism.
Articles 13 Oct 2004  
 
High-availability middleware on Linux, Part 1: Heartbeat and Apache Web server
In this first of five articles, learn what it means for software to be highly available and how to install and set up heartbeat software from the High-Availability Linux project on a two-node system. You'll also learn how to configure the Apache Web server to run as a highly available service.
Articles 12 Oct 2004  
 
Secure programmer: Prevent race conditions
Learn what race conditions are and why they can cause security problems. This article shows you how to handle common race conditions on UNIX-like systems, including how to create lock files correctly, alternatives to lock files, how to handle the file system, and how to handle shared directories -- and, in particular, how to correctly create temporary files in the /tmp directory. You'll also learn a bit about signal handling.
Articles 07 Oct 2004  
 
Statistical programming with R: Part 2. Functional programming and data exploration
In the second of a three-part series, David and Brad build on their first article on R, a rich statistical environment, released as free software. Now that our data is shipshape, we will delve into the functionality of the language.
Articles 07 Oct 2004  
 
Virtual resources for LINUX on iSeries
This article describes the virtual resources available for Linux on iSeries and how the virtual console is used in the Linux on iSeries initial installation, how to configure the virtual LAN for the data transfer between the Linux partitions and communicating to and from server and Virtual I/O virtual DASD, virtual Tape, virtual CD-ROM for LINUX on iSeries.
Articles 01 Oct 2004  
 
Cultured Perl: Fun with the Ion window manager
Take a look at the Ion windows manager, a powerful and simple program that manages the windows that applications bring up on your desktop. Ion isn't flashy, but once you get used to it, it can greatly enhance your productivity and make you wonder why you ever used those other window managers.
Articles 29 Sep 2004  
 
Updating from SuSE Linux Enterprise Server V8 to V9
If you are already running SLES 8, you may be able to run an update to SLES 9 rather than re-installing from scratch. This article examines the update process and gives you suggestions on how to make an update successful.
Articles 21 Sep 2004  
 
Statistical programming with R: Part 1. Dabbling with a wealth of statistical facilities
In the first of a three-part series, David and Brad introduce you to R, a rich statistical environment, released as free software. It includes a programming language, an interactive shell, and extensive graphing capability. What's more, R comes with a spectacular collection of functions for mathematical and statistical manipulations -- with still more capabilities available in optional packages.
Articles 21 Sep 2004  
 
Overview of Linux on IBM eServer i5, p5, and OpenPower
IBM's commitment to Linux spans the entire IBM eServer product line. This article gives developers an overview of Linux on POWER5 processor-based servers. It also introduces the IBM Virtualization Engine technology and describe how Linux users will benefit from it.
Articles 14 Sep 2004  
 
Automate the application build and distribution process
You have enough to consider when building an open source application for a single type of system, but what if you're building that application for distribution among a range of different, incompatible machines? There's no easy answer, but using a little discipline and some custom scripts, you can simplify the process. This article looks at how to create a structure for building and distributing applications, including heavily customized versions, and a simple way of disseminating the applications among a number of machines, manually or automatically, as easily as possible.
Articles 14 Sep 2004  
 
Running Linux on an iPAQ
Installing Linux on your iPAQ can be a great way to breathe new life into aging hardware or make an existing tool even better, particularly if you are a fan of Linux on the desktop. You can leverage your existing knowledge and enjoy the benefits of familiar (pun intended) free and open source software on the move. In this article, learn how to turbocharge your HP-Compaq iPAQ PDA with Linux.
Articles 09 Sep 2004  
 
Migrate your apps from OS/2 to Linux: Part 3. Timer and DLL calls
Linux is evolving as the predominant operating system of the new millennium, and legacy operating systems such as OS/2 are being gradually phased out. This series of articles helps the developers involved in the tedious process of migrating/porting the OS/2 system drivers and applications to Linux. In this last of three installments, the authors focus on how to do timer calls and DLL calls in OS/2 and in Linux, with a view to mapping between the two systems.
Articles 24 Aug 2004  
 
Build code with lex and yacc, Part 2: Development and troubleshooting
The second article of this two-part series explores more advanced lex/yacc development and introduces basic troubleshooting techniques. See e-mail headers parsed before your very eyes! Marvel at cryptic error messages! See a computer actually compute something!
Articles 24 Aug 2004  
 
Improve collaborative build times with ccache
Collaboratively building a C/C++ project using cc or gcc to share source files and other components works fine with CVS, but the time required to build the application when it has been merged with everybody else's changes can be significant. Even if you're not developing a project as part of a group, recompiling an application can take a lot of time. The ccache tool improves the build performance by caching the incorporation of header files into source files and therefore speeds the build time by reducing the time required to add in header files with each compilation stage. In this article, learn how to build and install ccache, how to use it with your existing environment, and how to improve the build times in group development projects. You will also see how to use ccache and distcc together to get the best performance out of your development environment.
Articles 24 Aug 2004  
 
Kernel debugging with Kprobes
Collecting debugging information from the Linux kernel using printk is a well-known method -- and with Kprobes, it can be done without the need to constantly reboot and rebuild the kernel. Kprobes, in combination with 2.6 kernels, provides a lightweight, non-disruptive, and powerful mechanism to insert printk's dynamically. Logging debug info, such as the kernel stack trace, kernel data structures, and registers, has never been so easy!
Articles 19 Aug 2004  
 
Build code with lex and yacc, Part 1: Introduction
Lex and yacc are tools to automatically build C code suitable for parsing things in simple languages. These tools are most often used for parts of compilers or interpreters, or for reading configuration files. In the first of two articles, Peter Seebach explains what lex and yacc actually do and shows how to use them for simple tasks.
Articles 11 Aug 2004  
 
Using advanced widgets in Perl/Tk
Perl is one of the most popular languages out there, and is used for everything from mission-critical projects to Web applications to "glue." It is not, however, often used for GUI programming and prototyping. Philipp K. Janert thinks it should be, and you probably will too -- after this look at some of the more complex widgets available for Perl/Tk.
Articles 10 Aug 2004  
 
Install OpenOffice.org for Linux on POWER servers
Many users need access to an office productivity suite, and users of Linux on POWER are no exception. OpenOffice.org provides an open-source product that is multi-platform and contains many of the key applications that are needed by an office user. This article explains how to install and configure OpenOffice.org for multi-user Linux on iSeries and pSeries servers.
Articles 04 Aug 2004  
 
Install SUSE Linux Enterprise Server 8 on a JS20 blade server
This article describes the steps of a basic installation of Linux on an IBM eServer BladeCenter JS20 blade server, starting with the BladeCenter Management Module and ending with the installation of SUSE Linux Enterprise Server 8.
Articles 04 Aug 2004  
 
Yellow Dog Linux on Power Mac G5: A Linux on Power developer's workstation
The IBM PowerPC 970 CPUs are well-designed, high-performance chips that ship in millions of end-user systems under Apple Computers' Power Macintosh G5 moniker. These CPUs greatly lower the bar for 64-bit computing on the desktop and on small servers. Currently, Terra Soft's beta Y-HPC is one of only two 64-bit Linuxes that run on G5s. As their names imply, the G5-enabled betas -- both 32- and 64-bit versions -- are for evaluation only. This article is an early look at the promise of Linux on a G5 and is intended for developers interested in trying out this combination in anticipation of production-ready releases to come.
Articles 03 Aug 2004  
 
Linux project publications: Quality assurance
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of quality assurance.
Articles 01 Aug 2004  
 
Spin up a Linux LiveCD
Many Linux distributions have been designed as so-called "LiveCDs," CDs that can be booted directly into working Linux systems. In contrast to "rescue mode" bootable options available with most widely used distributions, these LiveCDs are designed to provide a full set of working tools when booted from CD. Some are general-purpose, some highly specialized. David Mertz takes a look at this fast-growing segment of the Linux market.
Articles 28 Jul 2004  
 
Charming Python: A look at DParser for Python
Get an introduction to DParser, a simple but powerful tool for parsing, written by J. Plevyak. Then learn about DParser for Python, which gives Python programmers a seamless interface to DParser, and see how it compares to other parsers covered in previous installments. In a manner similar to Spark or PLY, grammar rules are input to DParser using Python function documentation strings.
Articles 28 Jul 2004  
 
Connect desktop apps using D-BUS
D-BUS is an up-and-coming message bus and activation system that is set to achieve deep penetration in the Linux desktop. Learn why it was created, what it can be used for, and where it is going.
Articles 27 Jul 2004  
 
Linux on IBM eServer i5 and p5: An Overview for Developers
The path to enablement of IA32 code on Linux PPC travels through one of two compiler sets, the GNU Compiler Collection (GCC) and the Visual Age Compilers. This article reviews some tips for porting 32-bit software from Linux IA32 to Linux PowerPC with both of these compiler sets.
Articles 26 Jul 2004  
 
Migrating from Linux Kernel 2.4 to 2.6 on iSeries and pSeries
In this article we highlight the differences between the Version 2.4 and 2.6 Linux kernels on POWER.
Articles 26 Jul 2004  
 
Visualize your data with gnuplot
Turn your data and functions into professional-looking graphs with Gnuplot 4.0, a freely distributed plotting tool. In this article, get a hands-on guide to gnuplot that emphasizes the idioms you'll need to use this tool effectively.
Articles 22 Jul 2004  
 
Secure programming with the OpenSSL API, Part 1: Overview of the API
Learning how to use the API for OpenSSL -- the best-known open library for secure communication -- can be intimidating, because the documentation is incomplete. Fill in the gaps, and tame the API, with the tips in this article. After setting up a basic connection, see how to use OpenSSL's BIO library to set up both a secured and unsecured connection. And learn a bit about error detection as well.
Articles 22 Jul 2004  
 
Securing Linux, Part 1: Introduction
Only the paranoid survive, and that is no less true when securing Linux systems as any other. Fortunately, a host of security features are built into the kernel, are packaged with one of the many Linux distributions, or are available separately as open source applications. The first in a series, this article starts you on your way to understanding security concepts and potential threats, and sets the stage for what you really need to know: how to secure and harden a Linux-based installation.
Articles 20 Jul 2004  
 
Boot Linux from a FireWire device
Obtaining an external drive is a great way to breathe new life into older hardware, or allow you to use Linux on machines on which you can't (or don't want to) alter the internal hard drives.
Articles 15 Jul 2004  
 
Running free with Linux
As Wi-Fi become ubiquitous, Linux has jumped on the bandwagon. In this article, Roman Vichr explains how Linux has helped -- and been helped by -- a number of wireless tools and projects.
Articles 13 Jul 2004  
 
Stress-testing the Linux kernel
Automating software testing allows you to run the same tests over a period of time, ensuring that you are really comparing apples to apples and oranges to oranges. In this article, Linux Test Project team members share methodology, rationale, and the scripts and tools they use to stress-test the Linux kernel.
Articles 30 Jun 2004  
 
Charming Python: Get started with the Natural Language Toolkit
In this installment, David introduces you to the Natural Language Toolkit, a Python library for applying academic linguistic techniques to collections of textual data. Programming that goes by the name "text processing" is a start; other capabilities for syntactic and even semantic analysis are further specialized to studying natural languages.
Articles 24 Jun 2004  
 
Reduce compile time with distcc
Some people prefer the convenience of pre-compiled binaries in the form of RPMs or other such installer methods. But this can be a false economy, especially with programs that are used frequently: precompiled binaries will never run as quickly as those compiled with the right optimizations for your own machine. If you use a distributed compiler, you get the best of both worlds: fast compile and faster apps. All you need is distcc.
Articles 22 Jun 2004  
 
Five easy-to-use performance tools for Linux on PowerPC
This article describes Performance Inspector, which contains a suite of performance tools for Linux. The author describes how to download and install the required software and tools, and how to collect performance data. She also provides details on how to use the five basic tools, which you can use to analyze performance of your C/C++ and Java applications, as well as performance of your system as a whole.
Articles 20 Jun 2004  
 
Weave a neural net with Python
Hopfield nets are one of the easier neural net models to understand -- and they can be useful, too. The main ability of the Hopfield net is to undo noise and reconstruct known patterns. Python programmer Andrew Blais is your guide to learning more about Hopfield nets, and exploring his net.py application.
Articles 15 Jun 2004  
 
Cultured Perl: Managing Linux configuration files
The average developer spends more time navigating, learning, and debugging configuration files than you'd expect. But you can save that time -- and loads of energy and frustration -- with one of the tools you probably use every day: your CVS tree. Take these tips on backing up, distributing, and making portable your peskiest Linux (and UNIX) config files.
Articles 10 Jun 2004  
 
Migrating Win32 C/C++ applications to Linux on POWER, Part 1: Process, thread, and shared memory services
This article covers Win32 API mapping, particularly process, thread, and shared memory services to Linux on POWER. The article can help you decide which of the mapping services best fits your needs. The author takes you through the APIs mapping he faced while porting a Win32 C/C++ application.
Articles 10 Jun 2004  
 
Build a WAP gateway On Linux
The hottest technology for implementing mobile services is the Wireless Application Protocol (WAP). This article discusses the advantages of working with the open source gateway for WAP, which performs the protocol conversion between a Web server and a mobile phone.
Articles 08 Jun 2004  
 
Disk mirroring using software RAID on RHEL 3.0 AS for IBM pSeries
Linux based software RAID provides a cost effective data mirroring solution for entry level IBM pSeries systems shipped with dual internal disks. This article describes how to set up RHEL 3.0 AS on an IBM pSeries system so both the Linux OS and data files (if required) are installed over a software RAID device, and the system operation is not affected by a physical disk failure. While such a setup is easily configured out of the box on the x86 version of widely used distributions (RHEL and SLES), doing the same for IBM pSeries requires a different approach.
Articles 27 May 2004  
 
Build Web apps with Maypole
Simon Cozens turns a love of beer into a Perl application server -- going from a simple front end to database servers, and developing into a social-network Web application. He begins, however, with the beer.
Articles 25 May 2004  
 
Secure programmer: Minimizing privileges
Secure programs must minimize privileges so that any bugs are less likely to be become security vulnerabilities. This article discusses how to minimize privileges by minimizing the privileged modules, the privileges granted, and the time the privileges are active. The article discusses not only some of the traditional UNIX-like mechanisms for privileges, but some of the newer mechanisms like the FreeBSD jail(), the Linux Security Modules (LSM) framework, and Security-Enhanced Linux (SELinux).
Articles 20 May 2004  
 
Cultured Perl: Three essential Perl books
In this installment, Ted reviews three Perl coding books, bringing you summaries of the key information contained in the books and how the new versions have been updated.
Articles 13 May 2004  
 
Use shared objects on Linux
Making the most of shared memory isn't always easy. In this article, IBM's Sachin Agrawal shares his expertise in C++, showing how the object-oriented among us can take key advantage of a uniquely useful interprocess communications channel.
Articles 11 May 2004  
 
Migrate your apps from OS/2 to Linux: Part 2. Memory management, IPC, and file handling
Linux is evolving as the predominant operating system of the new millennium, and legacy operating systems such as OS/2 are being gradually phased out. This series of articles helps the developers involved in the tedious process of migrating/porting the OS/2 system drivers and applications to Linux. In this second of three installments, the authors focus on managing pipes, memory, and files.
Articles 05 May 2004  
 
Reboot Linux faster using kexec
Even if your work doesn't require you to reboot your Linux machine several times a day, waiting for a system to reboot can be a real drag. Enter kexec. Essentially, kexec is a fast reboot feature that lets you reboot to a new Linux kernel -- without having to go through a bootloader. Faster reboot is a benefit even when uptime isn't mission-critical -- and a lifesaver for kernel and system software developers who need to reboot their machines several times a day. Kexec is currently available on the x86 32-bit platform only.
Articles 04 May 2004  
 
Charming Python: The Python Enterprise Application Kit
PEAK is a Python framework for rapidly developing and reusing application components. While Python itself is already a very high-level language, PEAK provides even higher abstractions, largely through the clever use of metaclasses and other advanced Python techniques. In many ways, PEAK does for Python what J2EE does for the Java language. Part of the formalization in PEAK comes in the explicit specification of protocols, specifically in the separately available package, PyProtocols.
Articles 04 May 2004  
 
Introduction to IBM JVM for Linux JIT diagnostics
This paper introduces you to the Just-In-Time (JIT) compiler and to the Mixed Mode Interpreter (MMI) optimizations techniques, used in IBM’s JVM 1.3.1 and 1.4.2 and to their potential effect on Java applications that are being migrated from Sun Hotspot JVM.
Articles 30 Apr 2004  
 
POWER to the people
In the last decade alone, IBM scientists have announced one semiconductor breakthrough after another: copper technology, silicon-on-insulator, silicon germanium, strained silicon, and low-k dielectrics. All of these technologies came out of IBM's fertile in-house research community. This prowess in modern chipmaking know-how didn't come out of a vacuum -- rather, it came out of the hermetically-sealed clean rooms of the most advanced R & D department in the semiconductor industry.
Articles 28 Apr 2004  
 
Network packet capturing for Linux
This tutorial covers different mechanisms for capturing and manipulating packets. Security applications -- such as VPNs, firewalls, and sniffers, and network apps such as routers -- rely on methods like those described here to do their work. Once you have the hang of them, you will rely on them too. You won't want to miss this tutorial all about packet interception, covering kernels from 2.2.x to the present and techniques from divert socket and netfilter to interrupt handling and messing with the kernel source code itself.
Tutorials 13 Apr 2004  
 
Differences Between IBM eServer iSeries and pSeries Servers Running Linux
Since the inception of running Linux on an IBM eServer iSeries server, it has changed the computing environment and traditional iSeries workloads. It has been said that Linux and OS/400 are among the two most stable operating environments available. But it has truly been the combination of Linux running on iSeries hardware and OS/400 itself that has created this exciting environment. Each component brings its strengths to the equation creating greater possibilities for solution developers and end-users alike.
Articles 09 Apr 2004  
 
Charming Python: Testing frameworks in Python
In this installment, David looks at Python's two standard modules for unit testing: unittest and doctest. These modules expand on the capability of the built-in assert statement, which is used for validation of pre-conditions and post-conditions within functions. David discusses the best ways to incorporate testing into Python development, weighing the advantages of different styles for different types of projects.
Articles 08 Apr 2004  
 
Empowering the Linux developer
Recognized as a high-performance, reliable, and serviceable enterprise platform, the 64-bit POWER architecture offers new choices to UNIX and Linux application developers. Anyone with a background in either AIX or Linux on other platforms can benefit from the strength of the open source community combined with the POWER of world-class IBM hardware.
Articles 30 Mar 2004  
 
A developer's guide to the POWER architecture
POWER processors are found in everything from supercomputers to game consoles and from servers to cell phones -- and they all share a common architecture. This introduction to the PowerPC application-level programming model will give you an overview of the instruction set, important registers, and other details necessary for developing reliable, high-performing POWER applications and maintaining code compatibility among processors.
Articles 30 Mar 2004  
 
Open source development using C99
What is C99? Who needs it? Is it available yet? Peter Seebach discusses the 1999 revision of the ISO C standard, with a focus on the availability of new features on Linux and BSD systems.
Articles 24 Mar 2004  
 
Simulate devices using DSF
The Device Simulator Framework (DSF) provides an easy-to-use ioctl interface to all your devices, real or imagined. Intended for experienced kernel and device driver software developers, DSF makes it easier to debug and test device code that would otherwise be difficult to simulate or recreate.
Articles 23 Mar 2004  
 
More graphics from the command line
There's nothing quite like command-line tools for handling large batches of tasks, and image manipulations are no exception. Web developers and administrators will appreciate the ability to handle large numbers of files easily, either at the command line or in scripts. Programmer Michael Still presents more examples of the ImageMagick suite, this time demonstrating how to put curved corners, logos, or frames and borders on your images, as well as how to convert to and from multipage file formats including Adobe's PDF format.
Articles 16 Mar 2004  
 
Best practices, design, and optimal performance for a three-tier application with Linux on iSeries and DB2 UDB for iSeries
Since the inception of running Linux on an IBM eServer iSeries server, it has changed the computing environment and traditional iSeries workloads. It has been said that Linux and OS/400 are among the two most stable operating environments available. But it has truly been the combination of Linux running on iSeries hardware and OS/400 itself that has created this exciting environment. Each component brings its strengths to the equation creating greater possibilities for solution developers and end-users alike. The iSeries hardware and its partitioning capabilities add the ability for users to utilize their entire iSeries server making a great story for consolidating servers under one umbrella. OS/400 has an unblemished reputation for stability, security, and line-of-business applications—of which DB2 UDB for iSeries is the cornerstone. And then Linux brings the open source movement to these traditional workloads, allowing users to add functions previously unavailable to iSeries servers as well as develop their own new solutions. It is no wonder that the Linux on iSeries implementation won "Best of Show" at Linux World in 2001.
Articles 09 Mar 2004  
 
Using the GNU text utilities
This tutorial shows you how to use the GNU text utilities collection to process log files, documentation, structured text databases, and other textual sources of data or content. The utilities in this collection have proven their usefulness over decades of refinement by UNIX/Linux developers, and should be your first go-to choice for general text processing tasks. This tutorial is written for Linux/UNIX programmers and system administrators, at a beginning to intermediate level.
Tutorials 09 Mar 2004  
 
Automate Perl module deployment
If you run Perl across many different computers of any sort, you know how frustrating it can be to install Perl extension modules across those machines. The administrative process is even worse if you have a Web server farm and need to keep each machine up to date with a set suite of extension modules for your installation. CPAN helps, but there are issues with CPAN that make it an unwieldy solution for use on a network. This article provides possible solutions before covering the final system. The main goals are a unified installation/module set, a single download, and a guaranteed unified set of version numbers across all the computers in the network.
Articles 08 Mar 2004  
 
Kernel comparison: Networking improvements in the 2.6 kernel
The new Linux kernel includes support for and improvements in many areas of networking: from tunneling and better file security to encryption and privacy protection. This article covers how these improvements affect users even as they make Linux more secure and more enterprise-ready.
Articles 03 Mar 2004  
 
Build an LSID Resolution Service using the Java language
We take you through a step-by-step approach to building a Java technology-based Life Sciences Identifier (LSID) authority from scratch. We demonstrate how to build this on a minimal data set and on data downloaded from the protein sequence database Swiss-Prot, all on the Linux platform.
Articles 03 Mar 2004  
 
Kernel comparison: Improved memory management in the 2.6 kernel
The 2.6 Linux kernel employs a number of techniques to improve the use of large amounts of memory, making Linux more enterprise-ready than ever before. This article outlines a few of the more important changes, including reverse mapping, the use of larger memory pages, storage of page-table entries in high memory, and greater stability of the memory manager.
Articles 03 Mar 2004  
 
Linux wireless networking
These days you cannot talk about computers and networks without thinking of Linux and wireless networking. In this article, Sreekrishnan Venkateswaran explains wireless networking with WLAN, Bluetooth, GPRS, GSM, and IrDA from a Linux perspective. He uses various wireless devices and the corresponding kernel layers and user space tools to demonstrate how they work with Linux.
Articles 02 Mar 2004  
 
Connect KDE applications using DCOP
Hidden deep within the KDE desktop lies a powerful set of scripting technologies that can allow the power user to automate many tasks. In this article, Martyn Honeyford introduces these technologies and shows how you can use them to the fullest.
Articles 26 Feb 2004  
 
Kernel comparison: Improvements in kernel development from 2.4 to 2.6
The long-awaited 2.6 kernel is finally here. The IBM Linux Technology Center's Paul Larson takes a look behind the scenes at the tools, tests, and techniques -- from revision control and regression testing to bugtracking and list keeping -- that helped make 2.6 a better kernel than any that have come before it.
Articles 17 Feb 2004  
 
Kernel comparison: Web serving on 2.4 and 2.6
Many improvements have been made in the Linux 2.6 kernel to favor enterprise applications. This article presents results from the IBM Linux Technology Center's Web serving testing efforts, comparing various aspects of the Linux 2.4 and 2.6 kernels. Highlighted here are the key enhancements in the 2.6 kernel, the test methodologies, and the results of the tests themselves. Bottom line: the 2.6 kernel is much faster than 2.4 for serving Web pages, with no loss in reliability.
Articles 10 Feb 2004  
 
Migrate your apps from OS/2 to Linux: Part 1. Threads, mutexes, and semaphores
Linux is evolving as the predominant operating system of the new millennium, and legacy OSes such as OS/2 are being gradually phased out. This series of articles helps the developers involved in the tedious process of migrating/porting the OS/2 system drivers and applications to Linux. It provides a one-to-one mapping of various OS/2-to-Linux calls related to threads, IPC, memory management, timer handling, file handling, and so on. In addition, it captures the various preprocessor directives and compiler/linker options that can be mapped from OS/2 to Linux. This is the first in a series of three articles.
Articles 05 Feb 2004  
 
Rexx for everyone
Rexx occupies a useful ecological niche between the relative crudeness of shell scripting and the cumbersome formality of full systems languages. Many Linux programmers and systems administrators would benefit from adding a Rexx implementation to their collection of go-to tools.
Articles 04 Feb 2004  
 
Secure programmer: Countering buffer overflows
This article discusses the top vulnerability in Linux/UNIX systems: buffer overflows. This article first explains what buffer overflows are and why they're both so common and so dangerous. It then discusses the new Linux and UNIX methods for broadly countering them -- and why these methods are not enough. It then shows various ways to counter buffer overflows in C/C++ programs, both statically-sized approaches (such as the standard C library and OpenBSD/strlcpy solution) and dynamically-sized solutions, as well as some tools to help you. Finally, the article closes with some predictions on the future of buffer overflow vulnerabilities.
Articles 27 Jan 2004  
 
Cultured Perl: Fun with MP3 and Perl, Part 2
Ted continues his look at manipulating and guessing MP3 tags with Perl, FreeDB, and various CPAN models via his autotag.pl application.
Articles 27 Jan 2004  
 
Programming Linux sockets, Part 2
This intermediate-level tutorial extends the basics covered in Part 1 on programming using sockets. Part 2 focuses on the User Datagram Protocol (UDP) and demonstrates how to write UDP sockets applications in C and in Python. Although the code examples in this tutorial are in Python and C, they translate well to other languages.
Tutorials 25 Jan 2004  
 
Speed-start your Linux app 2004: Installing Globus Toolkit 3.0 on Linux for iSeries and pSeries
The Globus Toolkit is the focus of emerging Grid computing technology, and the Globus Toolkit 3.0 (GT3) is written entirely in Java. A packaged installation module for GT3 on Linux on POWER (iSeries and pSeries servers) is in development, but not available yet. In the meantime, this article shows how to install GT3 on an individual node.
Articles 25 Jan 2004  
 
Basic use of pthreads
Threads strike fear into the hearts of many programmers. UNIX's process model is simple and well understood, but it is sometimes inefficient. Threading can often allow for substantial improvements in performance, at the cost of a little confusion. This article demystifies the POSIX thread interface, providing practical examples of threaded code for consideration.
Articles 21 Jan 2004  
 
Advanced UI design for GNOME
GTK programming has almost never been this easy: IBM developer Vladimir Silva shares his skills, his enthusiasm, and his modified code for the SimpLIstic sKin interface (or SLIK).
Articles 20 Jan 2004  
 
Linux on Mac: a POWER programmer's primer
Even though most Linux users have treated Linux as an operating system for their x86 white boxes, Linux runs equally well on PowerPC machines. David looks at Linux on the PowerPC and the appealing range of PPC machines produced by Apple, where the option of using Linux is of great value to many users.
Articles 20 Jan 2004  
 
Speed-start your Linux app 2004: Creating a WebSphere Application Server V5 cluster
This article introduces clusters for load balancing and failover support, and describes how to set up a cluster with IBM WebSphere Application Server Version 5 for Linux on IBM iSeries and pSeries servers. The steps and examples in this article are based on a network setup that includes two network-connected 64-bit POWER processor-based iSeries or pSeries servers (or 2 logical partitions) that are running UnitedLinux Version 1.0 for iSeries/pSeries (PowerPC). However, clustering with the WebSphere Application Server Version 5 for Linux works equally well with any mix of platform in your network setup: pSeries, iSeries, xSeries, or zSeries machines.
Articles 16 Jan 2004  
 
The art of writing Linux utilities
Linux is famous for coming with a large toolbox and good ways to integrate tools. Peter Seebach discusses how new tools are developed and how to make a one-off program into a utility you'll be using for years to come.
Articles 13 Jan 2004  
 
Secure programmer: Keep an eye on inputs
This article discusses various ways data gets into your program, emphasizing how to deal appropriately with them; you might not even know about them all! It first discusses how to design your program to limit the ways data can get into your program, and how your design influences what is an input. It then discusses various input channels and what to do about them, including environment variables, files, file descriptors, the command line, the graphical user interface (GUI), network data, and miscellaneous inputs.
Articles 19 Dec 2003  
 
Putting Linux reliability to the test
This article documents the test results and analysis of the Linux kernel and other core OS components, including everything from libraries and device drivers to file systems and networking, all under some fairly adverse conditions, and over lengthy durations. The IBM Linux Technology Center has just finished this comprehensive testing over a period of more than three months and shares the results of their LTP (Linux Test Project) testing with developerWorks readers.
Articles 17 Dec 2003  
 
Cultured Perl: Fun with MP3 and Perl, Part 1
Every self-respecting computer and music fan needs to be able to manipulate MP3s -- the defacto standard for recreational digital music use. In this article, Ted looks at ways to manage and manipulate MP3s (searching, tagging, renaming, commenting, etc.) using the autotag.pl application. Ted takes you through the application, illustrating how CPAN modules enable the application.
Articles 11 Dec 2003  
 
Charming Python: Review of Python IDEs
David looks at four open source development environments for working with Python code on Unix-like operating systems. He evaluates two general-purpose editors/environments and two Python-specific ones, and compares the merits of each.
Articles 11 Dec 2003  
 
Debugging configure
All too often, checking the README of a package yields only the none-too-specific: Build Instructions: Run configure, then run make. But what about when that doesn't work? In this article, Peter Seebach discusses what to do when an automatic configuration script doesn't work -- and what you can do as a developer to keep failures to a minimum. After all, if your build process doesn't work, users are just as badly off as if your program doesn't work once it's built.
Articles 04 Dec 2003  
 
Windows-to-Linux roadmap: Overview
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 9. Installing software
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this final part, we download and compile a software package, discuss the pros and cons of automated package management, and get to know the RPM system.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 8. Backup and recovery
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, we take stock of what is on the system, and plan and implement regular backups with an eye to recovery as well as security.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 7. Networking
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, we explore networking, which is one of the things that Linux does best.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 6. Working with partitions and file systems
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command line to help systems -- even compiling packages from available source code. In this part, we explore Linux's hierarchical directory structure, and investigate mounting and devices.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 5. Linux logging
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, we track, manipulate, and rotate logs for security and informational purposes.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 4. User administration
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, you learn how to add and delete users and groups, both via the Webmin interface and at the command line. Shadow password and group files are also covered.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 3. Introduction to Webmin
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, he shows you how to install and use Webmin, a browser-based administration tool for Linux and other platforms that provides a graphical interface to many administrative and operational tasks.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 2. Console crash course
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, we cover the different shells, as well as some of the most essential Linux commands.
Articles 11 Nov 2003  
 
Windows-to-Linux roadmap: Part 1. Thinking in Linux
IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows to a Linux environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. He begins by illustrating some of the differences and similarities between Linux and Windows, and showing you how to stop rebooting all the time.
Articles 11 Nov 2003  
 
Installing WebSphere Application Server V5.0 for Linux on iSeries and pSeries
This article shows how to install, configure, and verify the installation of WebSphere Application Server V5.0.2 for Linux on iSeries and pSeries. The steps cover the use of the Administrative Console and the sample programs. We'll also investigate a J2EE e-commerce application called Plants By WebSphere, which is included with WebSphere Application Server.
Articles 03 Nov 2003  
 
Speed-start your Linux app: Using EJB persistence with DB2 and WebSphere for Linux on iSeries
This article is for developers of enterprise applications on Linux on iSeries who want to create and load EJB data using EJB persistence in DB2/400. You'll learn how to configure the WebSphere Application Server on Linux for iSeries with a JDBC provider and data source for EJB persistence in iSeries DB2/400. You'll create a JDBC provider, create a Java 2 Connector (J2C) authentication data entry, and configure a data source to access the database in iSeries DB2/400.
Articles 03 Nov 2003  
 
Speed-start your Linux app: Installing DB2 for Linux on iSeries and pSeries
This article shows how to install DB2 Version 8.1 for Linux on iSeries and pSeries. We'll also perform basic administration tasks for a functional DB2 environment, such as Control Center setup, preparation for database creation, and database creation.
Articles 03 Nov 2003  
 
Charming Python: Numerical Python
Numerical Python (often called NumPy) is a widely used extension library for fast operations on fixed-type arrays, of any dimensionality, in Python. Since the underlying code is well-optimized C, any speed limitations of Python's interpreter usually go away when major operations are performed in NumPy calls. As successful as NumPy has been, its developers have decided to supercede NumPy with a new module called Numarray that is mostly, but not quite entirely, compatible with NumPy. In this installment, David looks both at the general features of NumPy and at the specific improvements forthcoming with Numarray.
Articles 30 Oct 2003  
 
Programming Linux sockets, Part 1
This introductory-level tutorial shows how to begin programming with sockets. Focusing on C and Python, it guides you through the creation of an echo server and client, which connect over TCP/IP. Fundamental network, layer, and protocol concepts are described, and sample source code abounds.
Tutorials 28 Oct 2003  
 
Secure programmer: Validating input
This article shows how to validate input -- one of the first lines of defense in any secure program.
Articles 23 Oct 2003  
 
System recovery with Knoppix
This article shows how to access a non-booting Linux system with a Knoppix CD, get read-write permissions on configuration files, create and manage partitions and filesystems, and copy files to various storage media and over the network. You can use Knoppix for hardware and system configuration detection and for creating and managing partitions and filesystems. You can do it all from Knoppix's excellent graphical utilities, or from the command line.
Articles 23 Oct 2003  
 
Developer's notebook
Spence Murray is one of the top Linux developers around, and a long-time UNIX champion. Fellow Linux developers will benefit from the useful, common-practice shell scripting techniques that Murray and his Codemonks Consulting partners employ on a daily basis in their Linux development and applications services work.
Articles 21 Oct 2003  
 
Smashing performance with OProfile
Analyzing the performance of the Linux operating system and application code can be difficult due to unexpected interactions between the hardware and the software, but profiling is one way you can identify such performance problems. This article looks at OProfile, a profiling tool for Linux that will be included in the upcoming stable kernel.
Articles 16 Oct 2003  
 
Build a network router on Linux
Zebra is open source TCP/IP routing software that is similar to Cisco's Internetworking Operating System (IOS). Flexible and powerful, it can handle routing protocols such as Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP), and all of their various flavors. This article shows how our authors set up Zebra and used it to manage routes dynamically in conjunction with real Cisco hardware.
Articles 08 Oct 2003  
 
Cultured Perl: Inversion lists with Perl
Inversion lists are an essential part of any Perl programmer's toolkit, especially for those who deal with ranges and Unicode. In this article, Ted explains inversion lists, illustrated by a Perl implementation that he wrote and put on the CPAN network, and shows how inversion lists can be used to compress normal data in addition to bit strings.
Articles 08 Oct 2003  
 
Deploying Linux Solutions on IBM iSeries and pSeries Servers
POWER-based servers from IBM, the pSeries and iSeries servers, run Linux as well as their respective traditional operating systems (AIX and i5/OS). Linux is available both as the primary operating system on pSeries, and also as a logical partition on the POWER4 and POWER5 pSeries and iSeries servers. Linux applications such as the desktop environments, compilers, debuggers, and many other client and server applications are available for the POWER-based platforms. Outstanding performance of IBM’s servers coupled with comprehensive services make make Linux on iSeries and pSeries servers a winning choice. This article gives an overview of deploying your solution on Linux on POWER-based servers.
Articles 30 Sep 2003  
 
Towards Linux 2.6
The impending release of a new stable kernel promises greater adoption for Linux, as it becomes more reliable and scalable over a larger variety of processors. Here we'll highlight some of the changes, both big and small, with some code samples.
Articles 23 Sep 2003  
 
Boot Linux faster
This article shows you how to improve the boot speed of your Linux system without compromising usability. Essentially, the technique involves understanding system services and their dependencies, and having them start up in parallel, rather than sequentially, when possible.
Articles 17 Sep 2003  
 
Network programming with the Twisted framework, Part 4
In this final installment of his series on Twisted, David looks at specialized protocols and servers contained in the Twisted package, with a focus on secure connections.
Articles 11 Sep 2003  
 
Access USB devices from Java applications
Java technology's platform independence makes the process of writing Java applications that interact with hardware quite tricky. In this article, research scientist Qingye Jiang examines two projects that are making the process easier by providing APIs through which Java applications can make use of USB devices.
Articles 02 Sep 2003  
 
Metaclass programming in Python, Part 2
Michele and David's initial developerWorks article on metaclass programming prompted quite a bit of feedback, some of it from perplexed readers still trying to grasp the subtleties of Python metaclasses. This article revisits the working of metaclasses and their relation to other OOP concepts. It contrasts class instantiation with inheritance, distinguishes classmethods and metamethods, and explains and solves metaclass conflicts.
Articles 28 Aug 2003  
 
Data visualization using Perl/Tk
Generating a visual representation is often the best way to understand large data sets, but standard tools such as gnuplot often fall short. This article shows how to use Perl/Tk, the standard GUI toolkit for Perl, to quickly build custom plotting and graphing tools.
Articles 27 Aug 2003  
 
Secure programmer: Developing secure programs
This column explains how to write secure applications; it focuses on the Linux operating system, but many of the principles apply to any system. In today's networked world, software developers must know how to write secure programs, yet this information isn't widely known or taught. This first installment of the Secure programmer column introduces the basic ideas of how to write secure applications and discusses how to identify the security requirements for your specific application. Future installments will focus on different common vulnerabilities and how to prevent them.
Articles 21 Aug 2003  
 
The road to better programming: Chapter 12. File editing with the perledit: section
In this series, Ted has been developing the cfperl project -- which is simply a cfengine interpreter written in Perl -- from the top down. This time, Ted adds Perl-based file editing. He explores which decisions were taken and why, and shows the four new commands in use.
Articles 20 Aug 2003  
 
Speed-start your Linux app 2003: Install Linux on iSeries
This article describes how to install and set up Linux as a guest operating system in an iSeries environment.
Articles 15 Aug 2003  
 
Network programming with the Twisted framework, Part 3
In the previous installment of this series, David looked at some higher-level techniques for writing Web services, including serving dynamic pages using the .rpy extension. In this article, he moves on to look at dynamic Web serving, and how to generate dynamic Web pages using the Woven application for templating pages.
Articles 07 Aug 2003  
 
Create a VNC system with tclRFB
Although VNC -- or Virtual Network Computing -- is widely used as a "productivity tool" for programmers and administrators, that's far from the limit of the technology's capabilities. tclRFB opens up a spectrum of possibilities for distributed architectures.
Articles 05 Aug 2003  
 
Server clinic: R handy for crunching data
R is sophisticated open-source software for managing statistical calculations. It's easy enough to use that it can benefit you even if you need only a fraction of its capabilities.
Articles 30 Jul 2003  
 
Making of MetroSphere, Part 16: Secure version management with CVS
In this tutorial, system administrators Brian Bilbrey and Tom Syroid outline the requirements necessary to transform CVS into a secure application -- from both the server and client side of the equation -- as part of Studio B's MetroSphere project.
Tutorials 29 Jul 2003  
 
Building a wireless access point on Linux
When the ability to write and modify your own management software is the main objective, a custom-built wireless access point is the way to go. Take a look at what's involved in building a wireless bridge using Linux, including software and hardware considerations.
Articles 22 Jul 2003  
 
Speed-start your Linux app 2003: Install Linux on pSeries
Linux works well on POWER systems and plays nicely with other operating systems in a partitioned environment. Installing Linux allows you to leverage the advanced hardware with the advantages of open source tools and open standards. This powerful combination gives developers and administrators a great deal of control over their environment. This article walks you through a monolithic installation of Linux for pSeries using the SuSE SLES 8 distribution.
Articles 21 Jul 2003  
 
Linux on POWER: Using open source tools
This article focuses on open source software for Linux for the POWER microprocessor architecture, but the issues discussed are common to all usage of open source software in a Linux environment. All of the projects mentioned in this article are available for, but not limited to, Linux on POWER.
Articles 21 Jul 2003  
 
Graphics from the command line
There's nothing quite like command-line tools for handling large batches of tasks, and image manipulations are no exception. Web developers and administrators will appreciate the ability to handle large numbers of files easily, either at the command line or in scripts. Programmer Michael Still presents the ImageMagick suite, a Linux toolkit for sizing, rotating, converting, and otherwise manipulating images, in a huge number of formats, whether one or a hundred at a time.
Articles 16 Jul 2003  
 
Network programming with the Twisted framework, Part 2
In the first installment in this series on Twisted, David introduced asynchronous server programming. While a Web server is, in a sense, just another network service, as David shows in this installment, Twisted provides a number of higher-level techniques for writing Web services.
Articles 15 Jul 2003  
 
Create Debian Linux packages
Learn the basics of creating Debian packages for distributing programs and source code. This article shows all the necessary components of a package and how to put them together to end up with a final product.
Articles 10 Jul 2003  
 
Server clinic: Connect securely with ssh
You'll undoubtedly want to use ssh to work on your servers from remote sites, but it takes an assortment of tricks to keep progress rolling smoothly.
Articles 10 Jul 2003  
 
Pervasive computing: e-business anywhere, anytime
This article presents an architecture blueprint for building a wireless e-business solution that seamlessly integrates into the existing e-business infrastructure. Combining the efficiency and power of Linux with IBM's state-of-the-art pervasive computing solutions, the authors take you step by step through building a convenient PDA-based sales application.
Articles 01 Jul 2003  
 
Network programming with the Twisted framework, Part 1
Twisted is an increasingly popular pure-Python framework for programming network services and applications. While there are a large number of loosely coupled modular components within Twisted, a central concept to the framework is the idea of non-blocking asynchronous servers. In this article, David introduces you to this style of programming -- a novel one for developers accustomed to threading or forking servers, but one capable of great efficiency under heavy loads.
Articles 25 Jun 2003  
 
Cultured Perl: Use IMAP with Perl
Ted introduces you to accessing IMAP with the Mail::IMAPClient CPAN module. Using Mail::IMAPClient, he built the ifrom utility as an alternative to other IMAP and POP3 mail checkers. ifrom has its own unique advantages that can be used for listing, printing, and moving messages on an IMAP server, and backing up IMAP mail.
Articles 19 Jun 2003  
 
Charming Python: Using combinatorial functions in the itertools module
Python 2.2 introduced simple generators to the Python language and reconceived standard loops in terms of underlying iterators. With Python 2.3, generators become standard (no need for _future_, and the new module itertools is introduced to work flexibly with iterators. The itertools module is essentially a set of combinatorial higher-order functions, but ones that work with lazy iterators rather than with finite lists. In this installment, David explores the new module, and gives you a sense of the new expressive power available with combinatorial iterators.
Articles 12 Jun 2003  
 
The road to better programming: Chapter 11. Crontab management with cfperl
In this series, Ted has been developing the cfperl project -- which is simply a cfengine interpreter written in Perl -- from the top down. In this installment, he discusses the cron section, where crontab entries can be added or deleted easily.
Articles 12 Jun 2003  
 
Linux on POWER application performance optimization
The path to enablement of IA32 code on Linux PPC travels through one of two compiler sets, the GNU Compiler Collection (GCC) and the Visual Age Compilers. This article reviews some tips for porting 32-bit software from Linux IA32 to Linux PowerPC with both of these compiler sets.
Articles 06 Jun 2003  
 
Porting IA32 applications to Linux PowerPC
The path to enablement of IA32 code on Linux PPC travels through one of two compiler sets, the GNU Compiler Collection (GCC) and the Visual Age Compilers. This article reviews some tips for porting 32-bit software from Linux IA32 to Linux PowerPC with both of these compiler sets.
Articles 06 Jun 2003  
 
Porting Intel Applications to 32 bit Linux on POWER
The path to enablement of IA32 code on Linux PPC travels through one of two compiler sets, the GNU Compiler Collection (GCC) and the Visual Age Compilers. This article reviews some tips for porting 32-bit software from Linux IA32 to Linux PowerPC with both of these compiler sets.
Articles 06 Jun 2003  
 
Porting Intel applications to 64 bit Linux on POWER
Linux PowerPC provides a platform for the development and deployment of 32 bit applications that would benefit from a 64 bit environment. This article addresses porting software from the Intel platform to Linux PowerPC with both of these compiler sets.
Articles 06 Jun 2003  
 
Inside the Linux kernel debugger
When debugging kernel problems, being able to trace the kernel execution and examine its memory and data structures is very useful. The built-in kernel debugger in Linux, KDB, provides this facility. In this article you'll learn how to use the features provided by KDB and how to install and set up KDB on a Linux machine. You'll also get acquainted with the commands and the setup and display options available to you in KDB.
Articles 05 Jun 2003  
 
Server clinic: Emulate legacy operating systems on Linux
Emulations of a wide variety of operating systems are available for Linux. More than mere academic exercises, these "hosted OSes" are practical investments for many server rooms.
Articles 05 Jun 2003  
 
Making of MetroSphere, Part 11: Installing WebSphere Portal Server 4.2 on Red Hat Linux: WebSphere Application Server and Portal Server
This tutorial details the procedures necessary to install IBM WebSphere Portal Enable, Version 4.2, on Red Hat Linux. Because this topic is complex, we've split the information into two parts. A previous tutorial covered the installation of DB2 and IBM Directory Server (IDS). This tutorial outlines the installation of DB2, WebSphere Application Server, and WebSphere Portal Server.
Tutorials 22 May 2003  
 
Server clinic: Writing good exceptions
Too many developers treat exception systems as they do romantic language: the words are familiar, but they aren't sure what to say with them. Cameron offers practical advice on what your programs should throw and catch.
Articles 22 May 2003  
 
Making of MetroSphere, Part 10: Installing WebSphere Portal Server 4.2 on Red Hat Linux: DB2 and IDS
This tutorial details the procedures necessary to install IBM WebSphere Portal Enable, Version 4.2, on Red Hat Linux. Because this topic is complex, we've split the information into two parts. This tutorial covers the installation of DB2 and IBM Directory Server (IDS). A follow-up tutorial outlines the installation of DB2, WebSphere Application Server, and WebSphere Portal Server.
Tutorials 19 May 2003  
 
Build a Linux test network
This tutorial shows how to combine Samba and GRUB to build a compact, highly adaptable, cross-platform test network, capable of booting and networking a large number of operating systems on a small number of machines. Though Samba and GRUB can manage many different operating systems, this tutorial focuses on Linux and Windows.
Tutorials 19 May 2003  
 
The road to better programming: Chapter 10. User management with cfperl
In this series, Ted has been developing the cfperl project -- which is simply a cfengine interpreter written in Perl. He discusses the users: section, where users and groups can be added, modified, or deleted with ease.
Articles 15 May 2003  
 
Administer Linux on the fly
The /proc filesystem is one of Linux's great features, and this article gives you a thorough grounding in some of its most useful aspects. With it, you can administer many details of the operating system without ever having to shut down and reboot the machine, which is a boon for those who need to keep their systems as available as possible.
Articles 14 May 2003  
 
Charming Jython
Uche Ogbuji introduces Jython 2.1 to Java developers by contrasting and comparing the way Python and the Java virtual machine and library create classes and how they use the interpreter. Uche illustrates the differences by providing samples of Java library access, as well as the Jython interpreter shell and code files.
Articles 06 May 2003  
 
The making of MetroSphere, Part 9: Installing and securing Red Hat Linux
The MetroSphere series follows the creation of the MetroSphere community and information marketplace. This article describes aspects of installing and securing a Red Hat Linux 8.0 server in preparation for installing WebSphere Portal Enable.
Articles 01 May 2003  
 
Server clinic: Put virtual filesystems to work
A virtual filesystem (VFS) is an abstraction with surprisingly productive uses. Several popular languages now support VFS constructs, and Cameron Laird shows you what they are good for.
Articles 29 Apr 2003  
 
Burning CDs on Linux
Linux offers powerful, flexible tools for creating CDs. You can create disks that are readable on almost any platform and create .iso files for download and distribution.
Articles 23 Apr 2003  
 
Interview: Taking Samba beyond POSIX
developerWorks talks to Tridge about his work at IBM, the state of Samba 3.0, and his thoughts on the smbd rewrite.
Articles 16 Apr 2003  
 
Improve Linux performance
Cameron Laird presents a collection of useful examples that are apt models for the sorts of performance problems likely to arise in your own application development.
Articles 10 Apr 2003  
 
Tip: Remove duplicate lines with uniq
Duplicate lines don't often cause a problem, but sometimes they really do. And when they do, there's little need to spend an afternoon working up a filter for them, when the uniq command is at your very fingertips. Find out how it can save you time and headaches.
Articles 03 Apr 2003  
 
The road to better programming: Chapter 9. The classes and default parsers
The cfperl project, a cfengine interpreter written in Perl, is developed from the top down. In this article, we'll discuss the groups and classes, and how unknown input is handled.
Articles 03 Apr 2003  
 
Securing Linux for Java services
Enterprise Java expert Dennis Sosnoski starts with his view of how Java server technologies fit with Linux, then gives pointers on setting up the Tomcat Java servlet engine on Linux -- securely.
Articles 01 Apr 2003  
 
Interview: Eric Raymond goes back to basics
Author of The Cathedral and the Bazaar and publisher of the now-famous Halloween Documents, Eric S. Raymond talks about his latest projects and sheds light on why UNIX developers don't like IDEs. Freelance writer Robert McMillan catches up with an older, wiser open source advocate.
Articles 26 Mar 2003  
 
Charming Python: Multiple dispatch
Object-oriented programming gains much of its versatility through polymorphism: objects of different kinds can behave in similar ways, given the right contexts. But most OOP programming is single dispatch; that is, just one designated object determines which code path is taken. Conceptually, a more general technique is to allow all the arguments to a function/method to determine its specialization. This article presents an implementation of multiple dispatch in Python, and shows examples where this makes for better programs."
Articles 20 Mar 2003  
 
Server clinic: Fortran, at home on Linux
Many Fortran-oriented developers find a happy home with Linux. Along with new development and porting, a surprising amount of this work involves legacy applications, some over thirty-five years old.
Articles 19 Mar 2003  
 
Cultured Perl: One-liners 102
From printing a range of lines to listing a file's contents in reverse order, Ted shows how to do more with less using these succinct, one-line Perl scripts.
Articles 12 Mar 2003  
 
Tip: Filtering files with tr
Nobody ever said sed was easy -- and it isn't! But you can get a lot of sed's most basic functionality very easily by using tr instead. Jacek Artymiak shows how.
Articles 12 Mar 2003  
 
Wrap GObjects in Python
Learning how to wrap GTK+ C modules for use in Python will enable you to use a C-coded GObject in Python whenever you like, whether or not you're especially proficient in C.
Articles 11 Mar 2003  
 
The road to better programming: Chapter 8. The top-level and compound-class parsers
In this installment, Ted explains the workings of cfperl's top-level and compound-class parsers and moves us towards a clearer understanding of the important roles parsers play.
Articles 06 Mar 2003  
 
Tip: Sorting files with sort and tsort
Save time and headaches by using sort and tsort -- instead of resorting to more complex solutions utilizing Perl or Awk.
Articles 06 Mar 2003  
 
Manage Perl persistence with Pixie
The Pixie module takes a different approach to interfacing your Perl project with a relational database. Throwing away the schema, it allows more flexibility. Sure, there can be some downside to that, but for a large number of projects, you'll find it fits the bill just fine.
Articles 04 Mar 2003  
 
Simplifying SNA using Communications Server for Linux
This article shows you how to easily set up SNA connections over IP and run sample file transfer programs without in-depth knowledge of SNA. By using the sample applications supplied with Communications Server for Linux (CS Linux), you can use SNA without having to learn all of the complex protocols or write your own interface.
Articles 01 Mar 2003  
 
Charming Python: Create declarative mini-languages
The object orientation and transparent introspective capabilities of Python allow you to easily create declarative mini-languages for programming tasks. In this installment, David looks not so much at using Python to interpret or translate other specialized languages (although that is possible), but rather the ways that Python code itself can be helpfully restricted to a set of declarative elements. He'll show you how developers can use declarative techniques to state application requirements in a concise and clear way, while letting the behind-the-scenes framework do the heavy work.
Articles 27 Feb 2003  
 
Metaclass programming in Python
Most readers are already familiar with the concepts of object-oriented programming: inheritance, encapsulation, polymorphism. But the creation of objects of a given class, with certain parents, is usually thought of as a "just so" operation. It turns out that a number of new programming constructs become either easier, or possible at all, when you can customize the process of object creation. Metaclasses enable certain types of "aspect-oriented programming," for example, you can enhance classes with features like tracing capabilities, object persistence, exception logging, and more.
Articles 26 Feb 2003  
 
Manage packages using Stow
This article is about Stow, a software installation management utility for Linux that offers a number of advantages over the tried-and-true Red Hat and Debian package management systems. With Stow, you can organize applications available in standard tar files and keep application binaries logically arranged for easy access.
Articles 20 Feb 2003  
 
Qt and PyQt
The Qt toolkit is a widely-used cross-platform GUI toolkit, available for Windows, Linux, Mac OSX, and handheld platforms. QT has a well-structured, but flexible, object-oriented organization, clear documentation, and an intuitive API. In this article, David Mertz and Boudewijn Rempt look at the Qt library, with a focus on the PyQt bindings that let Python programmers access Qt functionality.
Articles 11 Feb 2003  
 
The road to better programming: Chapter 7. Top-level control flow and configuration
Perl expert Ted Zlatanov continues his top-down development of the cfperl project, a cfengine interpreter written in Perl, starting with the control flow and configuration handling.
Articles 05 Feb 2003  
 
Knoppix gives bootable, one-disk Linux
If you've ever needed a functional Linux setup that is portable and runs the same way on any hardware, read on. Knoppix packages a specialized and highly useful Linux distribution on a single, bootable CD-ROM.
Articles 04 Feb 2003  
 
Server clinic: Xmingwin for cross-generating apps
Xmingwin makes it practical to generate Windows programs from a Linux server. This column gives a recipe for setting up Xmingwin, and outlines the most important reasons for doing so.
Articles 30 Jan 2003  
 
Introduction to User-Mode Linux
Ever wish you had a place to let your Linux applications play -- where they wouldn't hurt anything else? Do your killer apps spend too much time killing each other? Originally conceived as a kernel developer's tool, UML lets you set up multiple virtual machines that are isolated from each other and from the hardware. Now, you can test applications all the way to failure without breaking the host system -- or even requiring a reboot. Veteran administrator Carla Schroder shows you how.
Tutorials 23 Jan 2003  
 
Speed-start your Linux app: Installing DB2 Version 8.1 for Linux
This article guides you through the steps to install DB2 8.1 and the IBM Java Runtime Environment (JRE) with minimal fuss and frustration. The article targets developers who are new to Linux or UNIX-based operating systems.
Articles 04 Jan 2003  
 
Hyper-Threading speeds Linux
The Intel Xeon processor introduces a new technology called Hyper-Threading (HT) that, to the operating system, makes a single processor behave like two logical processors. When enabled, the technology allows the processor to execute multiple threads simultaneously, in parallel within each processor, which can yield significant performance improvement. We set out to quantify just how much improvement you can expect to see.
Articles 01 Jan 2003  
 
Speed-start your Linux app: Installing and configuring SuSE Linux Enterprise Server (SLES) 8
This article highlights the key requirements and steps for getting SuSE Linux Enterprise Server (SLES) 8 installed and configured on your workstation or laptop. With our suggested installation, you can explore Linux and get comfortable with it. This article is intentionally brief. For detailed information, please refer to your hardcopy SuSE Linux documentation, or the SuSE Linux documentation on your installation CD.
Articles 01 Jan 2003  
 
Cultured Perl: Tied variables
Ted explains the basics of tying variables, using concrete examples of CPAN modules through their usage and implementation. He covers scalar, array, and hash variables.
Articles 01 Jan 2003  
 
Improving Linux kernel performance and scalability
The first step in improving Linux performance is quantifying it. But how exactly do you quantify performance for Linux or for comparable systems? In this article, members of the IBM Linux Technology Center share their expertise as they describe how they ran several benchmark tests on the Linux 2.4 and 2.5 kernels late last year.
Articles 01 Jan 2003  
 
The road to better programming: Chapter 6. Developing cfperl, from the beginning
Perl expert Ted Zlatanov embarks on a new coding project to create cfperl, a cfengine interpreter written in Perl. Starting where any well-developed project should -- at the beginning -- Ted investigates licensing options and version control, sets up a schedule for completing the work, and does a little research to make sure he's not copying anyone.
Articles 01 Jan 2003  
 
Server clinic: RTF on the server
Office workers habitually exchange documents encoded in Microsoft Word .DOC format. An abundance of open-source tools make it feasible to automate management of their content.
Articles 19 Dec 2002  
 
Guide to Python introspection
Introspection reveals useful information about your program's objects. Python, a dynamic, object-oriented programming language, provides tremendous introspection support. This article showcases many of its capabilities, from the most basic forms of help to the more advanced forms of inquisition.
Articles 01 Dec 2002  
 
Advantages of OpenMosix on IBM xSeries: Part 3 of 3
This article is part 3 of a 3-part series. In Part 1, you got an introduction to the current clustering technologies available for Linux and and an introduction to openMosix. In Part 2, you got a fully-functional openMosix cluster configured and running. Now, in Part 3, you'll see some ways to use openMosix to tackle computing challenges.
Articles 01 Dec 2002  
 
Charming Python: SimPy simplifies complex models
The stochastic behavior of real-world systems is often difficult to understand or predict. Sometimes it is possible rigorously to demonstrate statistical properties of systems, such as average, worst-case, and best-case performance features. But at other times, pitfalls of concrete designs only become evident when you actually run (or simulate) a system. In this article, David takes a look at SimPy, a Python package that allows you to very easily create models of discrete event systems.
Articles 01 Dec 2002  
 
Server clinic: Include GUIs in your server programming with Perl/Tk
As a system programmer, you habitually work with command-line interfaces. Perhaps you've lost track of how easy it can be to wrap existing functionality with a lightweight graphical user interface (GUI). New Perl/Tk releases make it timely to remember that sometimes high quality accompanies ease of use.
Articles 22 Nov 2002  
 
Develop rock-solid code in PHP: Write reusable functions, Part 3
Part 3 on developing PHP code discusses building efficient functions that maintain performance and manageability. Amol Hatwar focuses on function reuse and the common problems that occur in PHP coding.
Articles 01 Nov 2002  
 
Tip: Reading text streams in chunks with head and tail
In this tip, developer Jacek Artymiak introduces the head and tail commands, which can be useful for processing chunks of data from both static and dynamic files.
Articles 01 Nov 2002  
 
Speed-start your Linux app 2003: Installing and using IBM WebSphere MQ 5.3 for Linux
This article shows how to install and use IBM WebSphere MQ 5.3 (previously known as MQSeries). The first part of the article helps you install IBM WebSphere MQ. The second part helps you create MQ queues, use the MQ commands to work with those queues, and use the MQ sample programs to work with MQ messages.
Articles 01 Nov 2002  
 
Inside UnitedLinux
UnitedLinux was created by a consortium of four Linux vendors -- SuSE, Turbolinux, Conectiva, and SCO -- who pooled their expertise with the shared vision of providing a single, standards-based, core Linux operating system. Designed primarily as a server operating system, it would have great reliability and stability; and, being built from a base of well-established standards, it would help ensure a high degree of hardware and software compatibility that software developers, integrators, hardware vendors, and customers would be sure to appreciate. Has it kept its promises? With this month's launch of the new OS, we now have the chance to take a closer look.
Articles 01 Nov 2002  
 
Common threads: Advanced filesystem implementor's guide, Part 13
In the Advanced filesystem implementor's guide, Daniel Robbins shows you how to use the latest filesystem technologies in Linux 2.4. In this conclusion to the AFIG series, Daniel continues his discussion of the Enterprise Volume Management System for Linux, or EVMS. He shows you how to use evmsn to take a new hard drive, partition it, and create LVM volumes on it. Along the way, he fills you in on important EVMS concepts that you'll find essential as you continue your exploration of this powerful technology.
Articles 01 Nov 2002  
 
Open source in the biosciences
Bioinformatics and the use of open source in the biosciences are both still in the take-off phase. There's a lot of growth ahead of us. Here are a few of the technical software developments that will matter most in bioinformatics over the next year.
Articles 01 Nov 2002  
 
Python persistence management
Persistence is all about keeping objects around, even between executions of a program. In this article you'll get a general understanding of various persistence mechanisms for Python objects, from relational databases to Python pickles and beyond. You'll also take an in-depth look at Python's object serialization capabilities.
Articles 01 Nov 2002  
 
Server clinic: Practical Linux security
Security is a big, challenging topic, but everyone with server-side responsibilities should know the basic steps. Cameron outlines a number of ways to keep your user accounts clean and safe.
Articles 09 Oct 2002  
 
Stamp out spam with SpamAssassin
The occasional unsolicited e-mail may simply be an annoyance, but the flood of spam to which we are all now subject can overwhelm legitimate mail for many users and is a substantial irritation for many people. Fortunately, just as the tools used by spammers have gotten more sophisticated, so have the tools you can use to fight spam. In this article, Brian Goetz looks at SpamAssassin, a state-of-the-art, open source tool for combating spam.
Articles 08 Oct 2002  
 
Working XML: Use Eclipse to build a user interface for XM
Anyone familiar with XM -- the low-cost, open-source content management solution based on XSLT -- knows that for all its good points, it still lacks a decent user interface. In this article, columnist Benoît Marchal uses the Eclipse platform's open universal framework to build a user interface for XM.
Articles 01 Oct 2002  
 
Advantages of OpenMosix on IBM xSeries: Part 2 of 3
This article is part 2 of a 3-part series. In Part 1, you got an introduction to the current clustering technologies available for Linux and and an introduction to openMosix. By the end of Part 2, you'll have a fully-functional openMosix cluster configured and running. Finally, in Part 3, you'll see some ways to use openMosix to tackle computing challenges.
Articles 01 Oct 2002  
 
Advantages of OpenMosix on IBM xSeries: Part 1 of 3: Use networked Linux systems to solve your computing challenges
By the end of this three-part series, you'll have your own openMosix mini-cluster up and running and will be ready to use it effectively to accelerate your computing tasks. In Part 1, you get a clear and understandable introduction to the current clustering technologies available for Linux and and an introduction to openMosix. In Part 2, you will get a fully-functional openMosix cluster configured and running. Finally, in Part 3, you'll see some ways to use openMosix to tackle computing challenges.
Articles 01 Oct 2002  
 
Tip: Concatenating files with cat
In our continuing series on GNU text utilities, Jacek Artymiak takes a look at cat -- the command that UNIX lovers love to love, and UNIX haters love to hate.
Articles 01 Oct 2002  
 
Developing LSB-certified applications
The Linux Standard Base is a big step toward ensuring binary compatibility among Linux applications, and it should greatly reduce the amount of testing and validation required for operation on multiple platforms. In five straightforward steps, George Kraft, chairman of the Linux Standard Base, shows you how to build an LSB-certified application.
Articles 01 Oct 2002  
 
Common threads: Advanced filesystem implementor's guide, Part 12
In this installment of the Advanced filesystem implementor's guide, Daniel Robbins introduces the Enterprise Volume Management System (EVMS) for Linux. He explains what EVMS is, why it is so desperately needed, and how it will very likely transform the way storage is managed on Linux systems.
Articles 01 Oct 2002  
 
Charming Python: Make Python run as fast as C with Psyco
With only a tiny amount of extra programming, Python programmers can often increase code speed by orders of magnitude with the help of an external module known as the Python Specializing Compiler (or Psyco for short). David Mertz looks at what Psyco is, and tests it in some applications.
Articles 01 Oct 2002  
 
Tip: Get to know your textutils
Harness the power of the text utilities that are already installed on your Linux box to make your work time more productive. This first of a series of tips from Jacek Artemiak will show you how.
Articles 01 Oct 2002  
 
Cultured Perl: Genetic algorithms, the next generation
This article takes you another step towards working with genetic algorithms in Perl, working with a listing that looks for a set of dictionary words in an individual's DNA.
Articles 01 Oct 2002  
 
Server clinic: PDF for the server
PDF is the recognized standard for several categories of top-quality displayable output. While most programmers regard it as a desktop technology, a format that a content specialist chooses through a SaveAs operation, you can make your document management processes more powerful through server-side automation of PDF creation. This month, Cameron introduces the ReportLab library for PDF management and programming.
Articles 17 Sep 2002  
 
Build an LDAP-based address book
Have you ever tried to share your contact list with someone who uses a different data format, or tried to migrate your address book to another application? If so, you know it can be a headache. Import and export schemes, if they exist at all, are often too clunky and unsatisfactory to use even once, much less on a regular basis. Enter the Lightweight Directory Access Protocol (LDAP). This tutorial shows you how to create an LDAP-based back end to store contact information that multiple applications can share easily. Along the way, we give you an overview of LDAP fundamentals and introduce you to a pre-built contact-management tool that will help you get started using this open technology.
Tutorials 11 Sep 2002  
 
Linux links wirelessly
You say you prefer to work in Linux? All the better -- and it doesn't mean you have to be left out of the freedom wireless computing brings you. Systems administrator and book author Tom Syroid teaches you how to configure a wireless network card under Linux. Upon completion of this tutorial, you'll know how to set up a Linux laptop for wireless transmission using Gentoo distribution as an example.
Tutorials 10 Sep 2002  
 
Develop rock-solid code in PHP: Use variables effectively, Part 2
In this article, PHP veteran Amol Hatwar discusses how to use variables effectively. He also shows how to make script configuration easy by constructing a configuration file parser using variable variable names in PHP.
Articles 01 Sep 2002  
 
Introduction to netfilter/iptables
This article provides an introduction to the netfilter/iptables system, how it works, its advantages, installing and configuring, and how to use it to configure firewalls on Linux systems to filter IP packets.
Articles 01 Sep 2002  
 
Spam filtering techniques
The problem of unsolicited e-mail has been increasing for years, but help has arrived. In this article, David discusses and compares several broad approaches to the automatic elimination of unwanted e-mail while introducing and testing some popular tools that follow these approaches.
Articles 01 Sep 2002  
 
Interview: Itanium evangelist
Forget the detractors, David Mosberger -- developer of the initial GCC port to IA-64 and lead kernel architect for Linux on IA-64 -- thinks you should care about Intel's new 64-bit chip.
Articles 01 Sep 2002  
 
Tuning Red Hat for maximum performance
This tutorial details the ins and outs of transforming a stock, "out of the box" Red Hat installation into a finely tuned, stable system customized to individual needs and tastes. The material presented here is based on Red Hat 7.3, although many of the techniques and procedures discussed are equally applicable to other mainstream Linux distributions. And while the title uses the phrase "performance tuning," you'll soon discover that performance and security often go hand in hand.
Tutorials 21 Aug 2002  
 
Server clinic: Concurrency for grown-ups
Concurrency -- multi-processing -- is widely misunderstood. This month's Server clinic column introduces the basic concurrency concepts you need to conduct your business in the server closets safely.
Articles 15 Aug 2002  
 
Using HTML forms with PHP
One of the advantages of PHP has always been the ability to easily manipulate information submitted by the user through an HTML form. In fact, PHP version 4.1 adds several new ways to access this information and effectively removes the one most commonly used in previous versions. This article looks at different ways to use the information submitted on an HTML form, in both older and more recent versions of PHP. It starts out by looking at individual values and builds to a page that can generically access any available form values.
Articles 01 Aug 2002  
 
Develop rock-solid code in PHP: Lay the foundation, Part 1
In this article, PHP veteran Amol Hatwar gives a higher perspective for designing and writing bug-free, maintainable code for medium- to large-scale Web applications.
Articles 01 Aug 2002  
 
Charming Python: Parsing with the Spark module
Spark is a powerful and general parser/compiler framework written in Python. In some respects, Spark offers more than SimpleParse or other Python parsers. Being pure Python, however, it is also slower. In this article, David discusses the Spark module, with code samples, an explanation of its usage, and suggestions for its areas of application.
Articles 01 Aug 2002  
 
Mastering Linux debugging techniques
There are various ways to watch a running user-space program: you can run a debugger on it and step through the program, add print statements, or add a tool to analyze the program. This article describes methods you can use to debug programs that run on Linux. We review four scenarios for debugging problems, including segmentation faults, memory overruns and leaks, and hangs.
Articles 01 Aug 2002  
 
Getting started with freeVSD
In this article Joe Brockmeier looks at freeVSD, a "virtual server daemon" for Linux that allows multiple virtual servers to operate on one physical machine. Each virtual server has its own separate Web-hosting environment. This is typically used for hosting, but it can also be deployed to allow one machine to serve as a development testbed for several developers.
Articles 01 Aug 2002  
 
Server clinic: Lightweight Web techniques
While there's a flood of material available on Web programming, most of it aims to create sizzle to make a particular impression on end-users. Meanwhile, simple but effective techniques for construction of server-friendly Web applications are too-little known. This month's Server clinic explains two useful ideas you can apply with any server-side language.
Articles 23 Jul 2002  
 
Living in Emacs
This tutorial gives you a guide to the basics of using Emacs, a popular modeless text editor with many powerful features. The tutorial covers fundamental concepts and common activities, and then builds on those foundations to quickly familiarize you with this excellent editor.
Tutorials 02 Jul 2002  
 
Charming Python: Generator-based state machines
Introduced in Python 2.2, simple generators may be used to simplify state machines and to simulate coroutines. Coroutines are an exotic flow mechanism that few widely used languages -- not even non-Stackless Python -- allow. Python's new generators, however, get you almost all the way to coroutines, and the extra few steps can be faked. In this installment of Charming Python, David Mertz explains all the relevant concepts through illustrative code samples.
Articles 01 Jul 2002  
 
PowerPC assembly
Assembly language is not widely known among the programming community these days, and PowerPC assembly is even more exotic. Hollis Blanchard presents an overview of assembly language from a PowerPC perspective and contrasts examples for three architectures: ia32, ppc, and ppc64.
Articles 01 Jul 2002  
 
Cultured Perl: Application configuration with Perl, Part 2
File-based configurations break down quickly if a hand-built method is used. In this article, Ted shows how the AppConfig module can handle local configuration storage. He examines advanced features of the AppConfig module: validation, autoaction, modifying hash and array variables, and radio button-style mutually exclusive options.
Articles 01 Jul 2002  
 
Matrix libraries for C and C++
This article presents some of the currently available options for open source C/C++ matrix libraries employable within a Linux environment. Particular libraries discussed are Meschach, which provides routines for operating on matrices and vectors for projects coded in C, the Cooperware Matrix (CwMtx) for C++ coding, and Blitz, which provides an n-dimensional array class for C++ with integral, floating, complex, and well-behaved, user-defined types. Andrew Blais, who has contributed several articles to developerWorks, is a researcher and writer for Gnosis, Inc., and does work in neural nets.
Articles 01 Jul 2002  
 
Server clinic: Application deployment
One of the ways typical programming is most out of balance is in its neglect of the results an end-user experiences. We all put a lot into writing good and useful programs; delivering those programs into the hands of users, however, is one of the things we software developers characteristically do worst. This month, Cameron explains technical fixes that address the problem.
Articles 27 Jun 2002  
 
Creating KParts components, Part 2
In this tutorial, David Faure shows developers how to use KParts components in a KDE application. You will learn how to use the KDE Trader to locate the appropriate component, how to handle user interface merging, and how to embed multiple parts in the same window with the help of the Part Manager.
Tutorials 11 Jun 2002  
 
Graphics programming with libtiff, Part 2
TIFF is an extremely common but quite complex raster image format. Libtiff is a standard implementation of the TIFF specification that is free and works on many operating systems. This article shows you how to use libtiff for grayscale and color imaging.
Articles 01 Jun 2002  
 
Common threads: Advanced filesystem implementor's guide, Part 11
In the latest installment of the Advanced filesystem implementor's guide, Gentoo Linux creator Daniel Robbins updates users on the status of the XFS, ReiserFS, and ext3 filesystems, sharing technical notes and practical advice not only on changes that have been made to these filesystem implementations, but also forecasts on what we can expect to see in the next six months or so.
Articles 01 Jun 2002  
 
Developing a Linux command-line utility
Learn how to write Linux command-line utilities that are foolproof enough even for end users. Starting with an overview of solid command-line best practices and finishing with a comprehensive tour of a working page-selection tool, this article gives you the background you need to begin writing your own utilities.
Articles 01 Jun 2002  
 
Charming Python: Implementing "weightless threads" with Python generators
David Mertz introduces weightless threads. Similar to Stackless Python microthreads, but using standard Python 2.2 -- they allow for extremely large numbers of cooperating processes with virtually no overhead.
Articles 01 Jun 2002  
 
Server clinic: A must-have book for Linux developers
The best thing you can do for your servers and the programs you host to buy your own copy of Thomas A. Limoncelli and Christine Hogan's book, The Practice of System and Network Administration. This new book, though aimed at administrators, is full of valuable lessons for developers, too. While it mentions Linux only once in almost 800 pages -- and obliquely at that -- the principles it explains will help make more sense of your work every day.
Articles 23 May 2002  
 
Creating KParts components, Part 1
In this tutorial, David Faure shows developers how to create KParts components -- the component technology that was introduced with the release of KDE 2. You'll get an intro to the core KParts concepts of read-only and read-write parts and network transparency. You'll learn how to create a read-only component, and then modify it to be a read-write component. You'll also learn how to deploy the component so that Konqueror can use it.
Tutorials 21 May 2002  
 
Charming Python: Updating your Python reading list, Part 3
Since David's last book roundup in November's Charming Python column, a number of interesting books on Python have been published. This installment provides new comparative reviews of recent Python titles (or titles missed in the last roundup).
Articles 01 May 2002  
 
Server clinic: Expect exceeds expectations
Cameron Laird opens his new monthly column with an overview of the popular Expect tool, a language capable of far more than most programmers and administrators realize. Expect is so apt for the general-purpose work needed to keep servers healthy, in fact, that it can serve as your one (almost) universal programming language.
Articles 09 Apr 2002  
 
Common threads: Advanced filesystem implementor's guide, Part 10
With the 2.4 release of Linux come many new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel shows you how to get XFS up and running on your system and explores some of XFS's more advanced features.
Articles 01 Apr 2002  
 
Porting MFC applications to Linux
Porting Windows applications to Linux doesn't have to involve a retraining nightmare. Markus Neifer shows how to port MFC using wxWindows, giving a user's guide to this open source GUI toolkit and providing a complete, step-by-step porting example.
Articles 01 Apr 2002  
 
Override the GNU C library -- painlessly
A great way to debug glibc functions is to override the function of interest with your own version. This can be done without having root permissions and without recompiling the libc source.
Articles 01 Apr 2002  
 
Linux system development on an embedded device
Especially if you're just starting out in embedded development, the wealth of available bootloaders, scaled-down distributions, filesystems, and GUIs can seem overwhelming. But this wealth of options is actually a boon, allowing you to tailor your development or user environment exactly to your needs. This overview of embedded development on Linux will help you make sense of it all.
Articles 01 Mar 2002  
 
Linux project publications: Networking
The publications on this page represent contributions by members of the IBM Linux Technology Center to the development community in the area of networking.
Articles 01 Mar 2002  
 
Sharing computers on a Linux (or heterogeneous) network, Part 2
This article is the second of two comparing SSH, remote X, VNC, and other technologies as ways of remotely running applications. In this part, David takes a look at some VNC configuration issues, glances at IBM's Desktop On-Call, introduces remote X, and talks a bit about security.
Articles 01 Mar 2002  
 
Graphics programming with libtiff
TIFF is an extremely common but quite complex raster image format. Libtiff, a standard ANSI C implementation of the TIFF specification, is free and works on many operating systems. This article discusses some of the pitfalls of TIFF and guides you through use of the libtiff library. The article also shows examples of how to use libtiff for your black-and-white imaging needs.
Articles 01 Mar 2002  
 
Technical guide for porting applications from Solaris to Linux, Version 1.0
Solaris and Linux are loosely related to Unix, so they ought to be a lot alike, right? Not so - the differences pose a great many "gotchas." Let this technical porting guide show you the ropes for porting your Solaris application to the Linux platform.
Articles 12 Feb 2002  
 
Cultured Perl: Intro to cfengine for system administration
Cfengine (configuration engine) is a UNIX administration tool that aims to make the easy administrative tasks automatic, and the hard tasks easier. Its goal is system convergence from any state towards an ideal state. According to its author, Mark Burgess, cfengine always brings your system closer to the configuration you have defined; it never makes it worse. In this article, Ted acquaints you with this unique system administration tool by demonstrating some simple uses of cfengine.
Articles 01 Feb 2002  
 
Get the latest innovations for the eServer iSeries
The iSeries servers are bigger, better, and less expensive than ever. One model even lets you support dynamic logical partitioning and manage Linux, OS/400, and Windows servers on one machine. Now you can do midrange server consolidation with the greatest reliability and at the lowest total cost of ownership.
Articles 01 Feb 2002  
 
Common threads: OpenSSH key management, Part 3
In this third article in a series, Daniel Robbins shows you how to take advantage of OpenSSH agent connection forwarding to enhance security. He also shares recent improvements to the keychain shell script.
Articles 01 Feb 2002  
 
Packaging software with RPM, Part 3
RPM is a widely-used tool for delivering software for Linux. Users can easily install an RPM-packaged product. In this article, third in a series, Dan explains how to run scripts when your package is installed or uninstalled, or when other packages are installed or uninstalled.
Articles 01 Feb 2002  
 
Coding with KParts
This article discusses KParts, an architecture for graphical components, found in KDE, the K Desktop Environment. KParts allows applications requiring the same functionality to share a component by embedding the graphical component into the application's window. This article compares KParts with other component models, such as CORBA, and describes the main concepts used in KParts, including actions, plug-ins, part managers, and GUI merging.
Articles 01 Feb 2002  
 
The road to better programming: Chapter 4
This series of articles on developerWorks comprises a complete guide to better programming in Perl. In this fourth installment, Teodor introduces functional programming and several essential Perl idioms important for Perl programmers looking for speed and elegance in their code, such as the map() and grep() functions, and the Schwartzian and Guttman-Rosler transforms.
Articles 01 Jan 2002  
 
The road to better programming: Chapter 5
This series of articles on developerWorks comprises a complete guide to better programming in Perl. In this fifth installment, Teodor explains what Object Oriented Programming is, when to use it, and how it works in Perl. Object Oriented Programming (OOP) is a powerful programming technique, but it is not a panacea. Good programmers must understand how to use it, and must also know when to rely on more traditional programming techniques. Using OOP in Perl is easy. Unlike more restrictive OOP languages like C++ and Java, OOP in Perl places very few arbitrary constraints on the programmer. OOP is an essential addition to every programmer's toolkit, and a very useful technique for expanding the range of problems that may be solved with Perl.
Articles 01 Jan 2002  
 
Charming Python: Parsing with the SimpleParse module
Many parsing tools have been written for Python. This column discusses a high-level parsing language built on top of Python.
Articles 01 Jan 2002  
 
Common threads: Advanced filesystem implementor's guide, Part 9
With the 2.4 release of Linux come many new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel introduces XFS, SGI's free enterprise-class filesystem now available for Linux.
Articles 01 Jan 2002  
 
Linux clustering with MOSIX
In this tutorial, Daniel Robbins introduces you to clustering. He explains what it is, how you go about cluster-enabling your Linux system, and how you can benefit from setting up a cluster. By the end of this tutorial, you will have set up your own MOSIX cluster. MOSIX is a special transparent form of clustering that is very easy to set up and can produce positive results with only a minimal investment of time and energy.
Tutorials 20 Dec 2001  
 
Understanding Linux configuration files
This article explains configuration files on a Linux system that control user permissions, system applications, daemons, services, and other administrative tasks in a multi-user, multi-tasking environment. These tasks include managing user accounts, allocating disk quotas, managing e-mails and newsgroups, and configuring kernel parameters. This article also classifies the config files present on a Red Hat Linux system based on their usage and the services they affect.
Articles 01 Dec 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 8
With the 2.4 release of Linux come many new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel continues his look at ext3, a new improved version of ext2 with journaling capabilities. He reveals all the inside information on ext3, and demonstrates some shockingly good ext3 data=journal interactive performance numbers.
Articles 01 Dec 2001  
 
Packaging software with RPM, Part 2
RPM is a widely used tool for delivering software for Linux; users can easily install an RPM-packaged product. In this article, the second in a series, Dan explains how to package software without running as root, how to handle software that won't build on Linux without changes, and how to distribute your work.
Articles 01 Dec 2001  
 
The road to better programming: Chapter 3
This series of articles on developerWorks comprises a complete guide to better programming in Perl. In this third installment, Teodor gives a quick introduction to the Perl loop syntax, conditional statements, and writing clean code. While not intended to teach Perl from the ground up, this chapter will be useful for the beginner or intermediate Perl programmer interested in learning how to apply Perl better to everyday work.
Articles 01 Dec 2001  
 
Sharing computers on a Linux (or heterogeneous) network, Part 1
In the first of this pair of articles, David compares and contrasts Secure shell (SSH) and Virtual Network Computing (VNC), two technologies that allow a user at one workstation to run an application that lives on another computer. (He does not cover file-and-print sharing or "Internet" services like httpd, ftpd, smtp, or nntpd, even though these technologies also usefully "share" something about the computers in question.) He does, however, give tips on installing and configuring SSH and VNC, and comments on tool stability, choices, and licensing status.
Articles 01 Dec 2001  
 
Non-stop authentication with Linux clusters
As an organization adds applications and services, centralizing authentication and password services can increase security and decrease administrative and developer headaches. However, consolidating any service onto a single server creates reliability concerns. High-availability is especially critical for enterprise authentication services, because in many cases the entire enterprise will come to a stop when authentication stops working. This paper describes how we create a reliable, highly available authentication server using open source software.
Articles 29 Nov 2001  
 
Building Perl projects with MakeMaker
If you've used UNIX or Linux for some period of time, you've probably written a few Perl programs to automate simple tasks. Each of these programs does something basic and simple that might otherwise take you 10 or 20 minutes to do by hand. In this article, Sean will show you how to convert just such a Perl program into a far more robust programming project, one that will be generic enough to be widely distributed across many disparate platforms.
Articles 01 Nov 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 7
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel takes a look at ext3, a new improved version of ext2 with journaling capabilities.
Articles 01 Nov 2001  
 
Packaging software with RPM, Part 1
RPM is a widely used tool for delivering software for Linux. Users can easily install an RPM-packaged product. In this article, the first in a series, IBM software engineer Dan Poirier shows you how to use RPM to package simple software on a Red Hat Linux 7.1 system.
Articles 01 Nov 2001  
 
The road to better programming: Introduction and chapter 1
Shattering the myth of the faultless programmer, Teodor dismantles the uninspired software group and then builds it up again into a synchronized, energized ensemble.
Articles 01 Nov 2001  
 
PKCS #11 openCryptoki for Linux
Cryptography is rapidly becoming a critical part of our daily lives. However, the application of cryptographic technology adds a heavy computational burden to today's server platforms. More systems are beginning to use specialized hardware to offload the computations, as well as to help ensure the security of secret key material. This article will discuss openCryptoki, an API that is rapidly becoming the de facto, non-Windows-platform industry standard for interfacing between cryptographic hardware and user space applications. In particular, this article will introduce the specifics of the PKCS #11 implementation to IBM cryptographic hardware (openCryptoki) that is available in open source form here on developerWorks.
Articles 01 Nov 2001  
 
The road to better programming: Chapter 2
This series of articles on developerWorks comprises a complete guide to better programming in Perl. In this second installment, Teodor dissects comments in code. The comments in a program's code are perhaps as important to the long-range goals of a software team as the actual code itself. Unfortunately, they are also often the most neglected. Through tips, quips, examples, and anecdotes, Teodor takes an in-depth look at the imperative nature of commenting a program's language from beginning to end.
Articles 01 Nov 2001  
 
Charming Python: Using the xinetd program for system administration
Every UNIX administrator is familiar with inetd, the daemon that manages most incoming network connections through a centralized configuration file (inetd.conf). The xinetd daemon is a replacement for inetd that offers many improved or new features, and easier configuration. Ted explains the concepts behind inetd, and gives examples for setting up xinetd at your own site.
Articles 01 Nov 2001  
 
Charming Python: Updating your Python reading list, Part 2
This installment provides new comparative reviews of recent Python titles (or titles missed in the last roundup).
Articles 01 Nov 2001  
 
Introduction to XFree86 4.x
In this tutorial, Chris Houser steps you through the process of getting XFree86 4.x, the standard free X server for Linux, up and running on your system. Chris also covers X usage fundamentals, including running X applications remotely, securing X, and configuring X applications using the X resource database. He'll also show you how to launch your preferred window manager, desktop environment, and applications at Xfree86 startup. By the end of this tutorial, you'll have an excellent grasp of XFree86 fundamentals, and will be ready to put XFree86's many capabilities to productive use.
Tutorials 31 Oct 2001  
 
Configuring TCP/IP under Linux
This tutorial reviews the origins of TCP/IP and how it works -- including IP addresses, subnets, and routing. With this theoretical foundation laid, we discuss the various network configuration files required by Linux, how to initialize a network interface, and how to edit the system's routing table. The tutorial closes with a brief look at how to analyze your network and ensure that data gets to where it's supposed to go, without error.
Tutorials 30 Oct 2001  
 
Tcl/TK quick start
This tutorial introduces the Tcl/Tk scripting language, including its history, key features of the language and interpreter, some extensions, and several examples of Tcl/Tk in action. This tutorial targets those with experience in one or more programming or scripting languages. While Tcl/Tk is available on several platforms, including Win32 and MacOS as well as several of the *NIX environments, this tutorial is written in the context of running on a GNU/Linux installation.
Tutorials 16 Oct 2001  
 
Tip: Coding generic lists of objects in C/C++
Have you ever had a project that required you to have an indeterminate number of different objects in memory? For some purposes a binary tree is the best solution, but usually the simpler linked list is the obvious choice.
Articles 01 Oct 2001  
 
Charming Python: Preview of the [anygui] project
A very interesting project in the Python world has entered early development. The [anygui] project is intended as a wrapper API for a large number of underlying graphic toolkits. Once fully developed, a Python programmer will be able to call a common [anygui] function -- for example, to create a window -- then have the "best available" toolkit do the work. On Windows, the Win32 API might be used (or wxWindows); on MacOS, native calls; on BeOS, Bethon; on Linux, TKinter or GTK; on a telnet screen, ncurses -- all depending on what is installed and available on a given machine. This article discusses the current development state of [anygui], and the goals of the project.
Articles 01 Oct 2001  
 
Writing DLLs for Linux apps
Plugins and DLLs are often a great way to add functionality without writing a whole new application. In Linux, plugins and DLLs are implemented as dynamic libraries. e-business consultant and architect Allen Wilson introduces dynamic libraries and shows you how to use them to change an application after the app is running.
Articles 01 Oct 2001  
 
What good is a Linux client?
Like many users of PCs, you may be considering the switch to Linux. You've heard all the arguments about the economic viability and cross-platform compatibility of open source software in general and Linux in particular, but you may still be intimidated by the prospect of changing environments. IBM's Mark Chapman give you the benefit of his own experience as a Linux newbie as he seeks to change over to Linux. He addresses many of the issues involved, including software availability and support.
Articles 01 Oct 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 6
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel shows you how to use an init wrapper to (finally!) convert your system to "devfs mode".
Articles 01 Oct 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 5
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel guides you through the process of preparing your system for devfs. By the end of this article, you'll be ready to enable devfs on your system; Daniel will cover final devfs setup in detail in the next article.
Articles 01 Oct 2001  
 
Beginning Haskell
Get a gentle introduction to the paradigm of functional programming, with specific illustrations in the Haskell 98 language. This tutorial targets programmers of imperative languages wanting to learn about functional programming in the language Haskell. If you have programmed in languages such as C, Pascal, Fortran, C++, Java, Cobol, Ada, Perl, TCL, REXX, JavaScript, Visual Basic, or many others, you have been using an imperative paradigm.
Tutorials 27 Sep 2001  
 
Common threads: OpenSSH key management, Part 2
This article introduces ssh-agent (a private key cache) and keychain, a special bash script designed to make key-based authentication incredibly convenient and flexible.
Articles 01 Sep 2001  
 
Charming Python: Iterators and simple generators
Python 2.2 introduces a new construct accompanied by a new keyword. The construct is generators; the keyword is yield. Generators make possible several new, powerful, and expressive programming idioms, but are also a little bit hard to get one's mind around at first glance. In this article, David provides a gentle introduction to generators, and also to the related topic of iterators.
Articles 01 Sep 2001  
 
Beowulf clusters: e pluribus unum
Andrew Blais introduces the concept of Beouwulf clusters, which extensively reduce the time to process software by using multiple CPUs executing program fragments in parallel under Linux or NT. He describes various implementations, the relative performance of the clusters, and the technology needed to make them effective.
Articles 01 Sep 2001  
 
Cultured Perl: Reading and writing Excel files with Perl
Only recently have the doors been open to Microsoft Excel, the most popular spreadsheet application for the desktop. This article takes a look at reading and writing Excel files in Windows and Linux, using Perl and a few simple modules. The author of this article, Teodor Zlatanov, is an expert in Perl who has been working in the community since 1992 and who specializes in, among other things, open source work in text parsing.
Articles 01 Sep 2001  
 
Introduction to robotics technology
Darrick Addison, an experienced developer in databases, networks, user interfaces, and embedded systems, introduces the field of robotics and the issues surrounding robotic systems. He covers mechanical design, sensory systems, electronic control, and software. He also discusses microcontroller systems, including serial and memory-mapped interfacing, and talks about some of the available open source software options.
Articles 01 Sep 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 4
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel explains the significance and benefits of devfs, the device management filesystem, getting you ready for the next article where he'll show you how to optimally set up devfs on your system.
Articles 01 Sep 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 3
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel takes a look at tmpfs, a VM-based filesystem, and introduces you to the new possibilities available with 2.4's "bind"-mounting abilities.
Articles 01 Sep 2001  
 
Introduction to Quantum Computing
This article, which builds on a basic knowledge of the mathematics of vectors, gives an introduction to quantum computing.
Articles 01 Sep 2001  
 
Improving the security of open UNIX platforms
This article takes a look at a little shell application that uses an innovative approach to increasing open UNIX security. A step-by-step analysis of the code is provided. The author's areas of expertise are in Web programming and cutting-edge network security development.
Articles 01 Sep 2001  
 
Linux and USS: Heavy hitters for zSeries
You don't have to pick your weapon -- Linux or z/OS -- you can use both. Workloads big and small don't stand a chance.
Articles 27 Aug 2001  
 
Linux on iSeries
IBM eServer iSeries is the integrated business server. iSeries is reliable, scalable, and recognized as one of the most flexible, easy to use systems in the industry with the ability to run multiple environments and quickly deploy applications. These attributes position iSeries as one of the best platforms to manage the complexity and cost of e-business enablement. The key characteristics of Linux on iSeries - new generation of applications, integration, and consolidation - strongly support the IBM eServer initiatives and can result in measurable customer benefits for the deployment of e-business solutions.
Articles 27 Aug 2001  
 
AIX Affinity With Linux
IBM is bringing Linux application interoperability to AIX 5L. Now you can run many Linux applications on AIX, a mission critical - highly scalable operating system.
Articles 13 Aug 2001  
 
Backing up your Linux machines
Cover your back in the worst-case scenario with the techniques in this tutorial. Even new, high-quality hard drives will occasionally fail. Regular system backups are essential, especially for busy developers who make continual improvements to their code. This tutorial shows you how to protect yourself from losing huge amounts of critical data.
Tutorials 08 Aug 2001  
 
Embedded Linux applications: An overview
After a survey of Embedded Linux applications and their environments, Darrick Addison gives you step-by-step instructions for setting up a suitable hardware and software environment for developing those applications.
Articles 01 Aug 2001  
 
PalmOS-hosted programming languages
Most people who think of developing PalmOS applications probably imagine writing C/C++ code on a desktop, then cross-compiling to the PalmOS. There is a completely different approach to PalmOS development. Authors David Mertz and Andrew Blais take a look at complete programming language and development environment products that can run entirely on a Palm handheld, all the way from program editing to final run. These tools open new possibilities for mobile programmers.
Articles 01 Aug 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 2
With the 2.4 release of Linux comes a host of new filesystem possibilities, including ReiserFS, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment?
Articles 01 Aug 2001  
 
Charming Python: pydoc and distutils modules
The introduction of several modules and tools in recent Python versions has improved Python, not so much as a language, but as a tool. Author David Mertz reviews these modules that make the job of Python developers substantially easier by improving the documentation and distribution of Python modules and packages.
Articles 01 Aug 2001  
 
Extending Python and Zope in C
Extending Python in C is easy once you see how it all works, and an extension of Python is equally easy to package up for Zope. The hard part is wading through the different documentation sets in search of the nuggets of information you need, and Michael has collected them for you in this article.
Articles 01 Aug 2001  
 
Linux Unicode programming
A multi-byte character representation system for computers, Unicode provides for the encoding and exchanging of all of the text of the world's languages. This article explains the importance of international language support and the concepts of designing and incorporating Unicode support in Linux applications.
Articles 01 Aug 2001  
 
Cultured Perl: Genetic algorithms applied with Perl
Based on the Darwinian principle of survival of the fittest, genetic programming uses mutation and replication to produce algorithms for creating ever-improving computer programs. In this column, you'll get to know the genetic algorithm in simple terms. Ted provides Perl implementations for some specific tasks, which you can adapt for generic use. To demonstrate the genetic algorithm, Ted breeds numbers for fitness to a formula, and letters to form English words.
Articles 01 Aug 2001  
 
An introduction to neural networks
Neural nets may be the future of computing. A good way to understand them is with a puzzle that neural nets can be used to solve. Suppose that you are given 500 characters of code that you know to be C, C++, Java, or Python. Now, construct a program that identifies the code's language. One solution is to construct a neural net that learns to identify these languages. This article discusses the basic features of neural nets and approaches to constructing them so you can apply them in your own coding.
Articles 01 Jul 2001  
 
Linux hardware stability guide, Part 2
One of Linux's claims to fame is its legendary stability. But the most stable operating system in the world won't do you any good if your hardware is defective or misconfigured. In this article, Daniel Robbins shares his experiences in getting his NVIDIA TNT graphics card working under Linux using NVIDIA's accelerated drivers. As he does, he'll show you how to diagnose and fix IRQ and PCI latency timer issues -- techniques you can use to ensure that your systems don't experience lock-ups, inconsistent behavior, or data loss.
Articles 01 Jul 2001  
 
Common threads: OpenSSH key management, Part 1
In this series, you'll learn how RSA and DSA authentication work, and see how to set up passwordless authentication the right way. In the first article of the series, Daniel Robbins focuses on introducing the RSA and DSA authentication protocols and showing you how to get them working over the network.
Articles 01 Jul 2001  
 
Cultured Perl: The elegance of JAPH
A mainstay of the Perl culture, JAPH is a short script that produces the output "Just another Perl hacker." Although written for the beginner or intermediate Perl programmer, this article examines a few simple examples of the JAPH genre that will surprise and engage even the most seasoned devotee. The author of this article, Teodor Zlatanov, is an expert in Perl who has been working in the community since 1992 and specializes in, among other things, open source work in text parsing.
Articles 01 Jul 2001  
 
Charming Python: Python for the PalmOS
Pippy is a port of (a subset of) Python to the PalmOS. With Pippy, Python programmers can create custom applications to run on Palm devices, as well as use Pippy as an interactive environment directly on the Palm. David evaluates the strengths and limitations of Pippy as a means of implementing Palm applications.
Articles 01 Jul 2001  
 
Technical FAQ for Linux users
If you're new (or even not so new) to Linux, there are hundreds of questions, problems, and concerns that arise during the learning process, especially when you're coming from the world of Microsoft Windows. This article addresses a number of miscellaneous questions, both the frequently- and rarely-asked questions, and groups them by topic. The focus is on helping Windows users make the transition to Linux, but those converting from other operating systems should find useful information here as well.
Articles 01 Jul 2001  
 
Cultured Perl: Automating UNIX system administration with Perl
UNIX system administration, always a thorny problem, is easier with the right tools. In this installment, Teodor presents ideas on the use of Perl to streamline and foolproof system administration. The system configuration engine, cfengine, is an extremely important tool in this context.
Articles 01 Jul 2001  
 
Fast Web browsing with a caching proxy
This free tutorial will show you how to compile, install, and configure oops, an open source, high-performance, multi-threaded Web proxy under Linux. Caching Web proxies are especially useful for accelerating Web browsing performance while at the same time conserving your network bandwidth.
Tutorials 19 Jun 2001  
 
Palm-Linux integration with Pyrite
The Pyrite Project has created several related tools to allow Python programmers to access and control PalmOS handheld devices. Pyrite communicates with and manages the data help on Palm devices, while Pyrite Publisher creates and distributes Doc format e-books to Palm devices. This article discusses our experience working with Pyrite tools, the underlying architecture, and tips for effectively using the Pyrite tools.
Articles 01 Jun 2001  
 
Common threads: Advanced filesystem implementor's guide, Part 1
With the 2.4 release of Linux come a host of new filesystem possibilities, including ReiserFS, XFS, GFS and others. Sure, these filesystems sound cool, but what exactly can they do, what are they good at and exactly how do you go about safely using them in a Linux production environment? In the advanced filesystem implementor's guide, Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. Along the way, he shares valuable practical implementation advice, performance information and important technical notes so that your new filesystem experience is as pleasant as possible. In this, the first article in the series, he explains the benefits of journalling and ReiserFS.
Articles 01 Jun 2001  
 
Tips for convenient CGI scripting
Any CGI programmer benefits from knowing and using ready-made libraries. In this article Eugene Logvinov shows how CGI modules taken from CPAN can not only help you to work effectively and conveniently, but can also provide you with an excellent code and reference library. Consequently, embedding POD (Plain Old Documentation) in the module turns out to be a good choice.
Articles 01 Jun 2001  
 
Charming Python: Functional programming in Python, Part 3
David Mertz illustrates currying and other higher-order functions contained in the Xoltar Toolkit.
Articles 01 Jun 2001  
 
Using Perl to create reusable Web apps
Perl is a convenient and effective tool for complex Web applications development. However, even experienced programmers resist Perl because it seems difficult to learn and use. This article demonstrates that object-oriented implementation of Perl simplifies the effort and could be much more effective than other Web technologies, especially with separate design and application functionality.
Articles 01 Jun 2001  
 
Using Inline in Perl
The new Inline module for Perl allows you to write code in other languages (like C, Python, Tcl, or Java) and toss it into Perl scripts with wild abandon.
Articles 01 Jun 2001  
 
Addressing security issues in Linux
Once you have Linux up and running on your computer or your network and have installed your applications, you are all ready to go, right? Well, yes and no. Your system may be running, but until you consider security issues you are potentially leaving yourself open to serious trouble.
Articles 01 Jun 2001  
 
Charming Python: Revisiting XML tools for Python
This special installment article revisits the author's previous discussion of XML tools, and provides up-to-date code samples.
Articles 01 Jun 2001  
 
Installing FreeBSD
This free tutorial is for users getting started with FreeBSD for the first time. The tutorial may also serve as a refresher for FreeBSD users who want to install the most recent versions. You do not need to be a programmer or a network administrator to follow this tutorial, but some of the greatest advantages of FreeBSD itself target programmers and network administrators.
Tutorials 23 May 2001  
 
Creating dynamic Web sites with PHP and MySQL
This free tutorial shows you how to use two open source, cross-platform tools for creating a dynamic Web site: PHP and MySQL. When we are finished, you will know how dynamic sites work and how they serve the content, and you will be ready to serve your own dynamic content from your site.
Tutorials 15 May 2001  
 
Charming Python: Developing a full-text indexer in Python
As the volume of information grows, effective means of locating specific information become ever more crucial. This column discusses the field of full-text indexing, with a focus on the author's public-domain indexer module.
Articles 01 May 2001  
 
Web development with BeOS
When choosing a platform for Web development, too many users overlook BeOS as a choice. BeOS Release 5 provides just about everything a Web developer could want in an operating system, all in a friendly, pretty, fast, and reliable environment.
Articles 01 May 2001  
 
Three reasons why Linux will trounce the embedded market
Judy DeMocker explains why it seems that Linux may win over the embedded market. She takes a look at the conveniences of the open source license and what it means for embedded Linux, at maintaining embedded systems (and their device drivers) with Linux, and being able to offer single-platform support.
Articles 01 May 2001  
 
A data compression primer
This article is a primer on the basic types of data compression, with an introductory explanation of the mathematics and algorithms that go into compression techniques. Brief consideration and examples are given to help you evaluate what types of compression tools and techniques are suited to your own applications. Pointers are provided to more advanced theoretical discussions and ready-to-use compression tools and libraries.
Articles 01 May 2001  
 
Building KDE themes for Linux
This free tutorial is designed to teach you about K Desktop Environment (KDE) themes: how to create, save, load, and share the fundamental look and feel of the KDE environment. After completing this tutorial, you will be confident in your ability to customize KDE to fit your personal working style.
Tutorials 10 Apr 2001  
 
Common threads: Learning Linux LVM, Part 2
In this article, Daniel shares his experiences converting cvs.gentoo.org's /home filesystem to an LVM logical volume. After the transition, we get to see the benefits of LVM when cvs.gentoo.org's /home partition is dynamically resized in real-time, without rebooting, unmounting /home, or even dropping to runlevel 1. All processes continue to work without any interruption. Daniel's step-by-step details of the conversion will help anyone interested in peforming a similiar transition on their own machine.
Articles 01 Apr 2001  
 
Cultured Perl: One-liners 101
Those who use Perl as a programming language frequently forget that it is just as useful as a quick and dirty scripting engine for command-line operations. From the command line Perl can accomplish, in just a single line, tasks that require pages of code in most other languages. Join Teodor as he takes you through some useful examples.
Articles 01 Apr 2001  
 
Common threads -- Dynamic iptables firewalls
Firewalls are good and fun, but what do you do when you need to make rapid, complex changes to your firewall rules? Easy. Use Daniel Robbins' dynamic firewall scripts that are demonstrated in this article. You can use these scripts to increase your network security and responsiveness, and to inspire your own creative designs.
Articles 01 Apr 2001  
 
Zope for the Perl/CGI programmer
Zope (the Z Object Publishing Environment) is an application server that is gaining in popularity. But what is it? What's an application server, anyway? How does all this compare with nice familiar paradigms like CGI? More importantly, is Zope a fad, or is it here to stay?
Articles 01 Apr 2001  
 
Charming Python: Functional programming in Python, Part 2
This column continues David's introduction to functional programming (FP) in Python. Enjoy this introduction to different paradigms of program problem-solving, where David demonstrates several intermediate and advanced FP concepts.
Articles 01 Apr 2001  
 
The Pango connection: Part 2
Pango is an open-source framework for the layout and rendering of internationalized text, and is being included in the next generation of GTK+ and GNOME. In the second of a two-part series, Tony Graham describes where to get Pango and the development versions of GLib and GTK+, how to configure the programs, and how to compile programs that use Pango and GTK+. He then illustrates the use of the pango_parse_markup() function described in part 1. The article concludes with two examples of how to use bidirectional text in GTK+ labels: one that uses pango_parse_markup() and one that uses the gtk_label_set_markup() function that is available in GTK+ now that it incorporates Pango.
Articles 01 Apr 2001  
 
Shared objects for the object disoriented!
Ashish Bansal tells you how to write dynamically loadable libraries and suggests tools you want to use in the process. He reviews the compilation process and naming conventions, and then walks you through writing, compiling, and installing a shared library.
Articles 01 Apr 2001  
 
Common threads: Awk by example, Part 3
In this conclusion to the awk series, Daniel introduces you to awk's important string functions, and then shows you how to write a complete checkbook-balancing program from scratch. Along the way, you'll learn how to write your own functions and use awk's multidimensional arrays. By the end of this article, you'll have even more awk experience, allowing you to create more powerful scripts.
Articles 01 Apr 2001  
 
Inside the Apache directory structure
This free tutorial introduces the Apache administrator to the directory layouts used for a given installation. With this knowledge, administrators can then easily locate Apache's executable and utility files, and determine what's necessary for custom configuration.
Tutorials 29 Mar 2001  
 
CVS for the developer or amateur
This free tutorial introduces you to CVS, the Concurrent Versions System, used by developers around the world to develop software in a flexible and collaborative manner. Intended for those new to CVS, this tutorial will get both general users and new developers up to speed quickly. Whether you'd like to use CVS to check out the latest sources of a particular software package, or whether you'd like to begin using CVS as a full-fledged developer, this tutorial is for you.
Tutorials 13 Mar 2001  
 
Uncovering the secrets of SE Linux: Part 1
In an uncharacteristic move, the U.S. National Security Agency recently released a security-enhanced version of Linux -- code and all -- to the open source community. This dW-exclusive article takes a first look at this unexpected development -- what it means and what's to come -- and delves into the architecture of SE Linux.
Articles 01 Mar 2001  
 
Cultured Perl: A programmer's Linux-oriented setup
After customizing tcsh, Enlightenment, Eterm, and Emacs for a Java and Perl-oriented programming environment, Teodor shows us the configuration of his desktop in Linux. It is optimized for a Java and Perl programming setup, but doubtless other programmers will find many useful tips.
Articles 01 Mar 2001  
 
Inline assembly for x86 in Linux
Bharata B. Rao offers a guide to the overall use and structure of inline assembly for x86 on the Linux platform. He covers the basics of inline assembly and its various usages, gives some basic inline assembly coding guidelines, and explains the instances of inline assembly code in the Linux kernel.
Articles 01 Mar 2001  
 
The Pango connection: Part 1
Pango is an open-source framework for the layout and rendering of internationalized text, and is being included in the next generation of GTK+ and GNOME. In the first of a two-part series, Tony Graham introduces Pango and describes how it handles text, as well as the text attributes that you can specify for formatted text. The article concludes with a summary of Pango's processing pipeline for formatting and rendering a simple text string and a list of its attributes.
Articles 01 Mar 2001  
 
Using Bash shell scripts for function testing
Function testing is a critical part of software development -- and Bash, which is already loaded in Linux and ready to go, can help you do it quickly and easily. In this article, Angel Rivera explains how to use Bash shell scripts to perform function testing of Linux applications that use line commands. The scripts rely on the return code of the line commands, so you will not be able to use this approach for GUI applications.
Articles 01 Mar 2001  
 
Charming Python: Functional programming in Python, Part 1
Although users usually think of Python as a procedural and object-oriented language, it actually contains everything you need for a completely functional approach to programming. This article discusses general concepts of functional programming, and illustrates ways of implementing functional techniques in Python.
Articles 01 Mar 2001  
 
No more bugs in your beans
The FTP bean suite project team has been busy lately. After talking with Werner Zsolt, the FTP bean suite team leader, Maya Stodte takes a look at some of the new functionality of the bean suite and some of the latest bugs that have been eliminated. All code samples were written by Werner Zsolt.
Articles 01 Mar 2001  
 
Slackware Linux 101
Joe Brockmeier examines the Slackware Linux init sequence. He talks about how the system initializes services, what the various runlevels are and how to add or remove services from the default install to customize your system.
Articles 01 Mar 2001  
 
wxPython for newbies
You can write a Python script in minutes and have incredibly nice-looking GUI apps for your desktop. This article shows you how to use one Python-savvy GUI library, wxPython, to do just that. Impress your friends and neighbors!
Articles 01 Mar 2001  
 
The security implications of open source software
Natalie Whitlock talks about the incongruence of closed security systems, and the open source solution. She discusses Eric Raymond's ideas, the famous "back door" in Microsoft's FrontPage, the concept of peer review, and the open source dilemma that no one is at the helm guaranteeing that everything will be checked. She then follows the idea from theory to practice and talks with leading IT executives about the viability and popularity of secure open source systems.
Articles 01 Mar 2001  
 
Common threads: Learning Linux LVM, Part 1
In this article, Daniel introduces you to the concepts behind Linux LVM (Logical Volume Management) and shows you how to get the latest kernel patches and tools installed on your system. LVM allows you to create logical volumes out of the physical storage resources on your machine. However, unlike physical volumes, the logical volumes can be expanded 0and shrunk while the system is still running, providing Linux system administrators with the storage flexibility that they've until now only dreamed of.
Articles 01 Mar 2001  
 
Charming Python: Getting version 2.0
Python programmers have recently acquired a shiny new toy with the release of version 2.0. Python 2.0 builds on the strengths of previous Python versions, while adding a number of new conveniences and capabilities. This article contains ts author's impressions of Python's newest version, and some tips on using it effectively.
Articles 01 Feb 2001  
 
Integrating database access into Linux applications
This article describes MySQL, a useful tool for developing e-commerce and other complicated, dynamic Web sites that make use of third-party databases. MySQL is a fast, multi-threaded, and fully functional SQL server. In addition to describing the basic architecture of the MySQL system, this article offers simple examples in both Tcl and C++ that can start you down the path to developing database-aware Web applications.
Articles 01 Feb 2001  
 
Charming Python: Updating your Python reading list
In little more than a year, the availability of material for learning and programming in Python has gone from a thin selection of books to the current forest of dead trees. Some books are general introductions to the Python language, while others specialize in particular tasks. Even within the 'general' category, level and focus differ considerably. This column gives David's impressions and recommendations on eight of the best known books about Python.
Articles 01 Feb 2001  
 
Setting up a Local Area Network
This article describes how to build a Local Area Network (LAN) consisting of two or more computers running the Red Hat Linux operating system. The article begins with the basics: an overview of the TCP/IP (Transmission Control Protocol/Internet protocol) suite, and an explanation of assigning IP addresses in a LAN. Then the article covers the LAN hardware and configuration using a tool called LinuxConf in the Red Hat Linux operating system environment. Lastly, the article walks you through the critical steps of testing and troubleshooting your LAN.
Articles 01 Feb 2001  
 
Linux software debugging with GDB
Most flavours of Linux come with the GNU debugger, or gdb to the shell. Gdb lets you see the internal structure of a program, print out variable values, set breakpoints and single step through source code. It makes an extremely powerful tool for fixing problems in program code. In this article I'll try to show how cool and useful gdb is.
Articles 01 Feb 2001  
 
Executing SQL statements in MySQL databases using C
Like PostgreSQL, MySQL can be accessed from many different languages, including C, C++, Java and Perl. Using the comprehensive C interface of MySQL, Neil Matthew and Richard Stones show us how to execute SQL statements in MySQL databases in the following sections from Chapter 5 on MySQL from Professional Linux Programming. They will look at both statements that return data, such as INSERT, and those that don't, such as UPDATE and DELETE. They will then write a simple program that retrieves data from the database.
Articles 01 Feb 2001  
 
Curtains up: introducing the Z shell
According to Matt Chapman, the Z shell can improve the efficiency of your shell interaction. It's time that this secret was out! In this article, the Z shell is introduced, and some of its advantages over the other shells, particularly Bash, are explored.
Articles 01 Feb 2001  
 
How to configure VMware to access the outside LAN through a Token Ring card
This tip is useful to Linux developers who wish to use VMware and have Token Ring networks. VMware allows developers to run many operating systems such as Windows NT with DBCS support and test any Web solution they develop from that platform. It's certainly useful to be able to test one's latest Web code using a Windows browser without having to have a separate Windows box. Being able to network out to their wider LAN allows them to test solutions which sit on other machines in their network.
Articles 01 Feb 2001  
 
Running Windows applications cheaply under Linux with Win4Lin
Grant Williamson has been experimenting with Linux for the last year. The difficulty, it seems, is the decision between using an operating system he likes and one which allows him to do his daily work tasks successfully and easily. According to Grant, the only way to achieve his goal of learning Linux is to run Linux on a daily basis.
Articles 01 Feb 2001  
 
Looking through wxWindows
Markus Neifer gives an overview of wxWindows, the portable C++ and Python GUI toolkit. He discusses the library's architecture, talks about how to deal with multi-platform file handling and the directory separation character, and touches on wxHTML, image file formats, and Unicode. He also walks you through some helpful wxWindows debugging tips and talks a bit about porting MFC applications to Linux.
Articles 01 Feb 2001  
 
Common threads: Linux 2.4 Software RAID, Part 2
The new 2.4 kernel is finally here, and now's an ideal time to track down a spare PC, put Linux on it, and see what it can do. In this two-part series, Daniel Robbins introduces you to Linux 2.4 Software RAID, a technology used to increase disk performance and reliability by distributing data over multiple disks. In this article, Daniel explains what software RAID-1, 4, and 5 can and cannot do for you and how you should approach the implementation of these RAID levels in a production environment. In the second half of the article, Daniel walks you through the simulation of a RAID-1 failed drive replacement.
Articles 01 Feb 2001  
 
Common threads: Software RAID in the new Linux 2.4 kernel, Part 1
The new 2.4 kernel is out! So it's time to track down a spare PC, put Linux on it, and see what it can do. In his two-part series on the Linux 2.4 Software RAID, Daniel Robbins introduces the new technology that's used to increase disk performance and reliability by distributing data over multiple disks. This first installment covers Software RAID setup (kernel and tools installation) and shows you how to create linear and RAID-0 volumes.
Articles 01 Feb 2001  
 
Using Perl to access DB2 for Linux
In this free tutorial you'll learn how to install and use a Perl interface to the IBM DB2 Universal Database, Personal Developer's Edition. You'll also learn by example how to query the sample database provided with the DB2 Personal Developer's Edition.
Tutorials 19 Jan 2001  
 
Getting to know GRUB
This free tutorial shows how to install and use GRUB, the Grand Unified Boot Loader, to boot your Linux system. Like LILO, GRUB takes care of loading and booting the kernel. Unlike LILO, GRUB is rich with features, much easier to use, much more reliable and flexible, and just plain neat-o.
Tutorials 11 Jan 2001  
 
JFS fundamentals
This free tutorial shows how to install and use JFS under Linux. JFS is an enterprise journalling filesystem (JFS) technology currently used by IBM enterprise servers and now being ported to Linux.
Tutorials 02 Jan 2001  
 
Common threads: Awk by example, Part 2
In this sequel to his previous Intro to awk, Daniel Robbins continues to explore awk, a great language with a strange name.
Articles 01 Jan 2001  
 
Making the distribution, Part 3
This article concludes my story -- about how I ended up creating my own distribution called Gentoo Linux. I wrap up the series by telling how I left the Linux world to move to FreeBSD, and then came back to the Linux world, restarting Gentoo Linux development with a fresh perspective. In addition to comparing Linux and FreeBSD in a number of areas, I also describe current Gentoo Linux development progress and share a future vision for our distribution.
Articles 01 Jan 2001  
 
Cultured Perl: Perl 5.6 for C and Java programmers
Ted Zlatanov explains some of the peculiarities in Perl 5.6 for C and Java programmers, who may actually be pleasantly surprised by some familiar features hailing from sources other than Perl, like operator ambiguity, multiple ways of doing the same thing, punctuation, regular expressions, and variable mechanism. All of them put variety and power at your fingertips. The point is, Perl isn't too far from anyone's familiar territory and may be useful to even C and Java programmers at some point. So here's your opportunity to enhance your Perl 5.6 skills.
Articles 01 Jan 2001  
 
Cyrillic in Unicode
In this article, Thomas Burger describes the Cyrillic script fonts and the various methods for representating them in Linux, including UTF-8. He provides instructions for setting up the font support and installation, and describes how it is supported in applications. He also supports his claim that the use of UTF-8 Cyrillic script fonts will make Linux the first truly international operating system.
Articles 01 Jan 2001  
 
Charming Python: TK programming in Python
David Mertz introduces TK and the Tkinter wrapper (Python's GUI library) with source code samples accompanied by detailed running commentary. To make life easy, he illustrates his examples with the GUI port of the Txt2Html front-end that he's used in many of his earlier articles. He assumes, of course, that you follow his column regularly. :)
Articles 01 Dec 2000  
 
Charming Python: TK programming in Python
David Mertz introduces TK and the Tkinter wrapper (Python's GUI library) with source code samples accompanied by detailed running commentary. To make life easy, he illustrates his examples with the GUI port of the Txt2Html front-end that he's used in many of his earlier articles. He assumes, of course, that you follow his column regularly. :)
Articles 01 Dec 2000  
 
Making the distribution, Part 2
Daniel Robbins lets you in on the strange events that happened after the Enoch development team discovered a little-known, blazingly fast compiler.
Articles 01 Dec 2000  
 
Introduction to PHP
Joe Brockmeier presents a brief introduction to the PHP scripting language with a discussion of PHP's origins, capabilities, and the platforms it's available on. A simple PHP script example highlights basic syntax and usage.
Articles 01 Dec 2000  
 
Charming Python: Inside JPython and Python for .NET
David Mertz interviews Mark Hammond, Finn Bock, and Barry Warsaw, the developers of JPython and Python for .NET. He gets a bit of the inside scoop on Microsoft development from Mark (all within the limits of his non-disclosure contract, of course), and grills Finn and Barry on JPython and their upcoming Jython project.
Articles 01 Dec 2000  
 
Rebol scripting basics
This free tutorial introduces you to a powerful Internet-enabled scripting language called Rebol. This tutorial provides clear demonstrations of Rebol fundamentals, including detailed explanations of the parts of Rebol that differ from more conventional programming languages. It's designed to make learning Rebol really easy.
Tutorials 07 Nov 2000  
 
Common threads: Sed by example, Part 3
In this conclusion of the sed series, Daniel Robbins gives you a true taste of the power of sed. After introducing a handful of essential sed scripts, he'll demonstrate some radical sed scripting by converting a Quicken .QIF file into a text-readable format. This conversion script is not only functional, it also serves as an excellent example of sed scripting power.
Articles 01 Nov 2000  
 
Jumpstart your Yacc...and Lex too!
Lex and Yacc are two very important and powerful tools on UNIX. In fact, they are so powerful that building compilers for FORTRAN or C is child's play if you are fluent in Lex and Yacc. Ashish Bansal discusses these tools in sufficient detail for you to write your own language and its compiler! He covers regular expressions, declarations, matching patterns, variables, Yacc grammar, and parser code. At the end, he explains how to tie Lex and Yacc together.
Articles 01 Nov 2000  
 
Cultured Perl: Debugging Perl with ease
Teodor Zlatanov walks you through both the built-in Perl debugger and CPAN's Devel::ptkdb. The Perl debugger is powerful but frustrating to navigate. CPAN's Devel::ptkdb, on the other hand, works wonders by simplifying code debugging and thereby saving hours of your precious time. In his discussion Zlatanov concentrates on explaining debugging methods and general concepts rather than looking at specific tools.
Articles 01 Nov 2000  
 
Linux file compression tool guide
To use this guide, read the author's introduction, then use the index to jump to the section of the guide that explains the tools you need. Or, if you prefer, just read the whole thing! We have included resource links after each section, and a master list at the end of the guide.
Articles 01 Nov 2000  
 
DAISY: An open source JIT compiler for large machines
Dynamically Architected Instruction Set from Yorktown (DAISY), the open source software for binary translation research, is being released by the IBM Watson Research Center. DAISY's dynamic compilation and 16-wide VLIW put the project at the forefront of compiler techniques and architectural features. Maya Stodte takes a closer look at DAISY and its core development team.
Articles 01 Nov 2000  
 
Charming Python: Reloading on the fly
This article illustrates runtime program modification by means of some enhancements to the Txt2Html front-end.
Articles 01 Nov 2000  
 
Making the distribution, Part 1
Each of us has a story to tell about our experiences with Linux. This is Daniel Robbins' Linux story. In this first of three articles, he talks about how he became a Stampede Linux developer, and why he eventually left Stampede to start his own distribution called Enoch.
Articles 01 Nov 2000  
 
Common threads: Sed by example, Part 2
Sed is a very powerful and compact text stream editor. In this article, the second in the series, Daniel shows you how to use sed to perform string substitution; create larger sed scripts; and use sed's append, insert, and change line commands.
Articles 01 Oct 2000  
 
Cultured Perl: Application configuration with Perl
File-based configurations break down quickly if you use a hand-built method. Teodor Zlatanov demonstrates how the AppConfig module can handle local configuration storage for Perl programs, and how such configurations can be stored in a database that can then be accessed from any machine on the network.
Articles 01 Oct 2000  
 
Installing and using SGMLtools-Lite
Readers getting started with DocBook for documentation projects will need a guide to using SGMLtools-Lite to produce useful output. This article will walk you through installation and use of SGMLtools-Lite. You'll also get tips on troubleshooting and customizing output for online and print media.
Articles 01 Oct 2000  
 
Charming Python: Inside Python's implementations
What most programmers probably think of when they talk about "Python" is the specific implementation sometimes called "CPython" (because it is implemented in C). However, Python as a language specification has been implemented several times in parallel with the evolution of Guido van Rossum's reference implementation. This article consists of annotated interviews with the creators of two of the non-standard Pythons -- Stackless and Vyper.
Articles 01 Oct 2000  
 
Using regular expressions
This free tutorial explains how to use regular expressions to search for and modify patterns in text. The tutorial starts with the basics, and then progresses to intermediate and advanced topics, with lots of examples along the way.
Tutorials 28 Sep 2000  
 
Charming Python: Text processing in Python
Along with several other popular scripting languages, Python is an excellent tool for scanning and manipulating textual data. This article summarizes Python's text processing facilities for the programmer new to Python. The article explains some general concepts of regular expressions and offers advice on when to use (or not use) regular expressions while processing text.
Articles 01 Sep 2000  
 
Charming Python: Curses programming
A certain class of Python applications works best with an interactive user interface without the overhead or complexity of a graphical environment. For interactive text-mode programs (under Linux/UNIX), for example, the ncurses library, wrapped in Python's standard curses module, is just what you need. In this article, David Mertz discusses the use of curses in Python. He illustrates the curses environment using sample source code from a front-end to the Txt2Html program.
Articles 01 Sep 2000  
 
Tip: Prompt magic
Why stick with the standard boring shell prompt when you can easily make it colorful and more informative? In this tip, Daniel Robbins will show you how to get your shell prompt just the way you like it, as well as how to dynamically update your X terminal's title bar.
Articles 01 Sep 2000  
 
Tip: Upgrading applications from sources
So, you've compiled and installed your first application from source code, and it's working great. Congratulations! But now, there's a new version of the sources available and you'd like to upgrade, but you want to make sure that everything goes smoothly. What practical steps can you take to avoid pitfalls? In this tip, I'll show you several.
Articles 01 Sep 2000  
 
Common threads: POSIX threads explained, Part 3
In this article, the last of a three-part series on POSIX threads, Daniel takes a good look at how to use condition variables. Condition variables are POSIX thread structures that allow you to "wake up" threads when certain conditions are met. You can think of them as a thread-safe form of signalling. Daniel wraps up the article by using all that you've learned so far to implement a multi-threaded work crew application.
Articles 01 Sep 2000  
 
Cultured Perl: Review of Programming Perl, Third Edition
The release of the third edition of Programming Perl is a significant development for the Perl community.
Articles 01 Sep 2000  
 
Common threads: Sed by example, Part 1
In this series of articles, Daniel Robbins will show you how to use the very powerful (but often forgotten) UNIX stream editor, sed. Sed is an ideal tool for batch-editing files or for creating shell scripts to modify existing files in powerful ways.
Articles 01 Sep 2000  
 
A gentle guide to DocBook
This article explains what DocBook is and how to create a simple document using DocBook. Joe Brockmeier walks you through creating a document and using SGML-tools Lite to parse the document and make HTML, PostScript, plain-text, and PDF versions of the document. He also includes further references on DocBook and tips on where to find SGML-tools lite and other DocBook tools.
Articles 01 Sep 2000  
 
Compiling and installing software from sources
Learn how to compile and install open source programs from their original source code. This tutorial shows how to compile the vast majority of Unix sources. developerWorks columnist Daniel Robbins steps you through the whole process of unpacking, inspection, configuration, compilation, and installation in this tutorial and gets you going on Linux.
Tutorials 15 Aug 2000  
 
Common threads: POSIX threads explained, Part 2
POSIX threads are a great way to increase the responsiveness and performance of your code. In this second article of a three-part series, Daniel Robbins shows you how to protect the integrity of shared data structures in your threaded code by using nifty little things called mutexes.
Articles 01 Aug 2000  
 
Cultured Perl: Writing Perl programs that speak English
Designing the user interface for a program can be difficult and time consuming. Teodor Zlatanov discusses how to use the Parse::RecDescent module to create a user interface grammar in plain English. He also shows how easy it is to change the grammar when features are added or removed from the program. The advantages and disadvantages of this approach are discussed and compared to a standard CLI parser and a GUI.
Articles 01 Aug 2000  
 
Using DEVFS
This article introduces devfs.
Articles 01 Aug 2000  
 
Meet the 2.4 Linux kernel, Part 1
This first of two articles describes the birthing pains of Linux 2.4, along with the anticipation and frustration of waiting for the new functionality.
Articles 01 Aug 2000  
 
Meet the 2.4 Linux kernel, Part 2
This second of two articles details the nitty-gritty expectations surrounding specialized hardware such as ports, multimedia, filesystems, and bus support in the upcoming 2.4 Linux kernel.
Articles 01 Aug 2000  
 
Charming Python: Using state machines
State machines, in a theoretical sense, underlie almost everything related to computers and programming. And it also turns out that state machines, in a practical sense, can help solve many ordinary problems (especially for Python programmers). In this article, David Mertz discusses some practical examples of when and how to code a state machine in Python.
Articles 01 Aug 2000  
 
Common threads: Samba domain controller support
Samba is great at sharing files and printers, but it can do much more. In this article, Daniel Robbins shows you how to set up Samba's Domain Controller functionality, which allows Samba to control a Windows NT domain, process login requests, and store roaming user profiles. He also takes a peek at the alpha version of Samba-TNG ("the next generation"), which is the version of Samba that will have complete Domain Controller support.
Articles 01 Aug 2000  
 
Dare to script tree-based XML with Perl
Parsing an XML document into tree structures makes it possible to operate on the tree structure of the data. Find out how to use the functions for accessing and manipulating the document tree, and follow a sample stock-trading application that uses Perl, DOM, XML, and a database to evaluate trading rules. (You can apply the same techniques with other scripting languages, including Tcl and Python.) This is the second installment on using scripting languages to manipulate and transform XML documents.
Articles 01 Jul 2000  
 
Charming Python: My first Web-based filtering proxy
This article introduces Txt2Html, a public-domain working project created by David to illustrate programming techniques in Python. Txt2Html is a "Web-based filtering proxy" -- a program that reads Web-based documents for the user, then presents a modified page to the user's browser. To make this possible, Txt2Html runs as a CGI program, queries outside Web resources, and makes use of regular-expressions. David steps you through each of these general-purpose subtasks, explaining, clarifying, and demonstrating along the way.
Articles 01 Jul 2000  
 
POSIX threads explained
POSIX (Portable Operating System Interface) threads are a great way to increase the responsiveness and performance of your code. In this series, Daniel Robbins shows you exactly how to use threads in your code. A lot of behind-the-scenes details are covered, so by the end of this series you'll really be ready to create your own multithreaded programs.
Articles 01 Jul 2000  
 
Common threads: Introduction to Samba, Part 3
Configure Samba so that it does everything that YOU want it to do.
Articles 01 Jul 2000  
 
Cultured Perl: Save it with Perl
Data storage is a common problem in computer programming. The CPAN Persistent classes make data storage easy through a common interface that simplifies data creation, retrieval, and management. Through object orientation, the Persistent classes can be used transparently in your project as ancestors of your own data classes.
Articles 01 Jul 2000  
 
Common threads: Introduction to Samba, Part 2
In this article, Daniel Robbins will walk you through the process of compiling, installing, and initially configuring Samba (version 2.0.7) so that it works in your environment.
Articles 01 Jul 2000  
 
Charming Python: The dynamics of DOM
In this article, David Mertz examines in greater detail the use of the high-level xml.dom module for Python.
Articles 01 Jul 2000  
 
Charming Python: Tinkering with XML and Python
A major element of getting started on working with XML in Python is sorting out the comparative capabilities of all the available modules. In this first installment of his new Python column, "Charming Python," David Mertz briefly describes the most popular and useful XML-related Python modules, and points you to resources for downloading individual modules and reading more about them. This article will help you determine which modules are most appropriate for your specific task.
Articles 01 Jun 2000  
 
Using COM technologies on Unix platforms
COM/DCOM technologies make developing and distributing Windows components easy. But what can you do when the same components have to be developed on Unix platforms?
Articles 01 Jun 2000  
 
Common threads: Introduction to Samba, Part 1
Samba is an incredible tool for anyone who uses both Unix and Windows. By implementing the SMB/CIFS protocol for Unix, Samba allows Unix systems to share their resources with standard Windows clients. In this introductory article -- the first of Daniel Robbins' new series of columns for developerWorks, he'll introduce you to what Samba can do. The focus will be on key concepts. (He'll step you through the setup process in his next article.) By the end of this article, you'll have a good understanding of what Samba does, and how it goes about doing it.
Articles 01 Jun 2000  
 
Opening up academia
Open source has begun its return to the classroom, where it once prevailed. We take a look at the benefits of open source to the education community, at some current projects in networking with Linux in schools, at the growth of open source education portals, and at some of the foundations working to further the cause of open source in the classroom.
Articles 01 Jun 2000  
 
Perl: Small observations about the big picture
Getting the job done in Perl is easy. The language was designed to make simple tasks easy, and hard tasks possible. But the built-in simplicity of the language can become a trap. Programmers are by nature averse to documenting or designing the architecture of their programs. The excitement of writing pure code lies in the direct connection to the machine, telling it exactly what to do. Teodor Zlatanov presents techniques to improve the reliability and maintainability of Perl programs through increasing clarity of the code. His tips are intended for the beginner or intermediate Perl programmer, with a stronger emphasis on establishing good standards rather than on changing particular coding styles.
Articles 01 Jun 2000  
 
GNOMEnclature: The wonders of GLib, Part 2
In his second installment on GLib, George Lebl gets into a little more detail. He gives us the rundown on hash tables, and walks us through creating a table, inserting and looking up data, and using the iterator through entries. He also provides code and setup examples of how to use tokens and the GScanner.
Articles 01 Jun 2000  
 
Linux clustering cornucopia
Rawn Shah serves as your expert guide through the maze of both open- and closed-source clustering solutions available for Linux today.
Articles 01 May 2000  
 
Brooks' Law and open source: The more the merrier?
An aphorism from some twenty years ago, Brooks' Law, holds that adding more programmers to a project only delays it. But if this is so, what accounts for Linux? Paul Jones gathers perspectives on the open source development method and whether it defies conventional wisdom.
Articles 01 May 2000  
 
Partition planning tips
Organizing your partitions correctly can be fun and rewarding. This collection of tips will help you to use those sectors wisely.
Articles 01 May 2000  
 
Partitioning in action: Consolidating data
In this second tip on changing partition layout on a running system, Daniel Robbins shows you how to move /tmp and /var to their own shared partition. He also covers several tricks of the trade to minimize downtime and avoid making costly mistakes.
Articles 01 May 2000  
 
Partitioning in action: Moving /home
In this new series of tips, Daniel Robbins shows you how to change partition layout on a running system. He'll also cover several tricks of the trade to minimize downtime and avoid making costly mistakes. In this particular tip, he'll show you how to move /home to another partition.
Articles 01 May 2000  
 
Bash by example, Part 3
Daniel Robbins takes a good look at the Gentoo Linux ebuild system, an excellent example of the power of bash.
Articles 01 May 2000  
 
VMware and Token-Ring
You actually can have a real TCP/IP address when using VMware and Token-Ring.
Articles 01 Apr 2000  
 
Bash by example, Part 2
In his introductory article on bash, Daniel Robbins walked you through some of the scripting language's basic elements and reasons for using bash. In this, the second installment, Daniel picks up where he left off and looks at bash's basic constructs like conditional (if-then) statements, looping, and more.
Articles 01 Apr 2000  
 
Parsing with Perl modules
One of Perl's main goals is parsing text. This tutorial discusses CPAN modules for text parsing, and shows how you can use them easily in your own programs. Analyzing code comments, adapting existing lex grammars, and many other tasks can be easy with the right tools. Teodor shows examples of each one, with an eye to real-world programming.
Articles 01 Apr 2000  
 
  1 - 949 of 961 results    Next   Show All   Hide Summaries
Not finding what you're looking for? Suggest Content