Dissecting Shared Libraries

2010-05-26T11:42:29+00:00 March 22nd, 2005|Linux|

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.

RunTime: Block Memory Copy, Part 2

2010-05-26T16:54:08+00:00 December 2nd, 2004|Linux|

In his previous column, Ed began measuring memory-to-memory transfers. He looked in some detail at transferring 16 MB of memory on Linux and Windows 2000. Due to the limited scope of last month's measurements, no useful conclusions could be drawn. In this column, however, Ed expands his view to include varying the block size of the transfer.

Improve collaborative build times with ccache

2010-05-26T16:55:02+00:00 November 8th, 2004|Linux|

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.

Developing a Linux Command-Line Utility

2010-05-26T16:54:35+00:00 November 4th, 2004|Linux|

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.

RunTime: High-Performance Programming Techniques on Linux and Windows 2000

2010-05-26T16:55:46+00:00 October 28th, 2004|Linux|

Welcome to a new Linux column focused on demonstrating and comparing the performance of the Linux and Windows 2000 operating systems. Columnist Ed Bradford compares operating system-level features rather than applications with the goal of providing an understanding of each operating system's best performance features. Source code is included and represents "best programming practices" for each platform, in as impartial an environment as possible.

Tip: Dual-Booting Linux

2010-05-26T16:56:15+00:00 September 21st, 2004|Linux|

Having multiple Linux installations to work with allows you to easily test different libraries with the same program, watch how your program interacts with others, or just tweak a parameter here or there to see what happens. This comes in handy for development and testing -- as well as for customer support. You say that you don't have oodles of boxes to work with? No worries -- installing multiple instances of Linux on a single box is a cinch, as you'll soon discover in this tip from IBM interns Chuks Onwuneme and Farhan Khawaja.

RunTime: Block Memory Copy

2010-05-26T16:56:24+00:00 September 16th, 2004|Linux|

In his introductory column Dr. Bradford introduced measurement tools and plans for future performance investigations on Linux and Windows 2000. His focus this month is on a simple operation, memory to memory copy, and how long it takes to move bytes around in memory

Reboot Linux Faster Using Kexec

2010-05-26T16:58:06+00:00 July 22nd, 2004|Linux|

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.

Introduction to KDE

2010-05-26T17:02:25+00:00 May 12th, 2004|Linux|

The K Desktop Environment, abbreviated KDE, is one of several alternatives for the modern Linux desktop. With the exception of some specialized applications, it contains everything you need to work on a daily basis in Linux. In this article I'll show you I got up and running with KDE and some of the powerful features I found, including support for multimedia and games. I'll be focusing on the latest stable version of KDE, version 2.1.