 |
 |
 |
 |
 |
 |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 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 |
|
| |
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 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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 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 |
|
| |
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 |
|
| |
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 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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
Bash by example, Part 1
By learning how to program in the bash scripting language, your day-to-day interaction with Linux will become more fun and productive, and you'll be able to build upon those standard UNIX constructs (like pipelines and redirection) that you already know and love. In this three-part series, Daniel Robbins will teach you how to program in bash by example. He'll cover the absolute basics (making this an excellent series for beginners) and bring in more advanced features as the series proceeds.
|
 |
Articles |
 |
01 Mar 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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |