Filter by products, topics, and types of content

(0 Products)

(95 Topics)

(1 Industries)

(7 Types)

1 - 100 of 688 results | Next
Show Summaries | Hide Summaries
View Results
Title up Type none Date none
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. [Update: Tables 1 and 2 were updated to correct formatting errors. -Ed.]
Also available in: Russian   Japanese   Spanish  
Articles 21 Jul 2011
A deep dive into the new software-defined converged infrastructure for SAS Foundation mixed workloads
This article describes the details behind the new software-defined converged infrastructure for deploying SAS Foundation Mixed Analytics workloads using IBM Elastic Storage Server (ESS), IBM Spectrum Scale, IBM POWER8, and Mellanox networking technology. This article documents detailed test configurations, test scenarios, performance results, and tuning options for the converged infrastructure. This article provides a methodology to tune each component in the infrastructure horizontally, as well as tuning the solution vertically, which allowed the optimal performance to be achieved.
Articles 12 Sep 2017
A step-by-step how-to guide to install, configure, and test a Linux, Apache, Informix, and PHP server
Learn how to install, configure, and test a Linux, Apache, Informix, and PHP (LAIP) server. LAIP provides a very powerful and dynamic mixture for a Web server.
Also available in: Russian  
Articles 08 Jun 2006
Accelerate to Green IT - A practical guide to application migration and re-hosting
This guide has been developed based on implementation experience in moving application workloads from a distributed environment, such as AIX workload on Power or pSeries, RS 6000 hardware, Solaris workload on Sun hardware or Linux workload on x86 hardware (that is, IBM eServer to IBM System z primarily IBM System z9 or z10 models).
Also available in: Chinese   Japanese   Portuguese   Spanish  
Articles 16 Jul 2012
Accelerating performance with inline assembly using IBM XL C/C++ compiler on IBM z Systems
IBM® XL C/C++ compiler Version 1 for Linux on z Systems was released in 2015. This marked the first time inline assembly feature was supported by IBM compiler for Linux on z Systems. With inline assembly, software engineers are able to further accelerate the execution of applications by handcrafting the assembler codes for the most performance-sensitive parts. This feature unleashes the hardware advantage of IBM z Systems™ as well as programmer ingenuity to realize the development of high-performance applications. The objective of this article is to introduce the assembler instructions on z Systems to be used with inline assembly. The target audience are advanced software engineers who are interested in going beyond the extent of the optimizations provided by the compiler to fine tune the most performance-sensitive code section of high-performance applications on z Systems.
Also available in: Russian   Japanese  
Articles 17 Jun 2015
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.
Also available in: Russian   Japanese  
Articles 14 Mar 2006
Achieving high performance for Advanced Encryption Standard (AES) applications
This article provides a detailed analysis about the new Advanced Encryption Standard (AES) built-in functions provided by IBM XL compilers. It explores the code that the compilers generate to demonstrate the performance gained by using the built-in functions. This is critical for high-performance AES applications, especially when many of them cannot be parallelized due to the nature of operation modes, such as chaining mode [for example, cipher block chaining (CBC) and propagating cipher block chaining (PCBC)] or feedback mode [cipher feedback (CFB) and output feedback (OFB)]. If you are a software engineer who is interested in achieving high performance for applications on IBM POWER8 processors, this article is for you.
Also available in: Japanese  
Articles 02 Apr 2015
Add Linux power to wireless routers with advanced tips and tricks for DD-WRT
DD-WRT brings all the power of the Linux networking stack to inexpensive wireless routers, turning a consumer router into a mighty networking powerhouse. Learn how to install and secure DD-WRT, and learn about the powerful, flexible command line behind the GUI.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 08 May 2012
Add your own GIMP features
The GNU Image Manipulation Program (GIMP) is a robust application for editing and manipulating digital images. Because it's open source software, any developer is allowed to modify and extend it with even more features. In this article, you will learn how to get started with the GIMP code, how to build the project from the Git repositories, and how to find your way around the code tree. And you will build an example application that creates a whole new painting tool for the program.
Also available in: Japanese   Portuguese  
Articles 20 Jul 2010
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.
Also available in: Russian   Japanese  
Articles 14 May 2003
Advanced features of inline assembly for Linux on z Systems
The objective of this article is to discuss the advanced features of inline assembly supported by IBM XL compiler for Linux on z Systems. The target audience is software engineers who are interested in going beyond the extent of the optimizations provided by the compiler to fine tune the most performance-sensitive code section of their applications.
Also available in: Chinese   Russian   Japanese  
Articles 12 Aug 2015
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.
Also available in: Russian   Japanese   Spanish  
Articles 15 Apr 2009
All about pseudo, Part 2: Under the hood
Part 2 of this series details how pseudo's root emulation works by tracking the path of an intercepted call to the database and back. If you want to replace open(2) with your own code, this is where you find out how.
Also available in: Japanese  
Articles 17 May 2011
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.
Also available in: Japanese  
Articles 01 Jul 2001
An open source solution for dockerizing STAF and LTP on IBM Power Systems
STAF and LTP is a widely used regression test combination to validate the behavior of Linux kernel and glibc components. This article describes how to build a STAF and LTP Docker image. By using this image, you can create containers that test the Linux kernel and glibc components.
Also available in: Chinese  
Articles 10 May 2017
Analyzing performance using perf annotate
This article demonstrates how Perf annotate can be used to analyze performance details alongside actual code with their assembly instructions. It also describes how the new cross-architecture annotation can be used to analyze recorded profile on different architecture, for example, record data on IBM PowerPC server and annotate on your notebook or x86 system.
Also available in: Japanese  
Articles 01 Feb 2017
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).
Also available in: Russian   Japanese   Portuguese   Spanish  
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.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 17 Feb 2009
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.
Also available in: Russian   Japanese   Portuguese  
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.
Also available in: Russian   Japanese  
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.
Also available in: Russian   Japanese   Portuguese  
Articles 04 Jun 2008
Anatomy of Linux Kernel Shared Memory
Linux as a hypervisor includes a number of innovations, and one of the more interesting changes in the 2.6.32 kernel is Kernel Shared Memory (KSM). KSM allows the hypervisor to increase the number of concurrent virtual machines by consolidating identical memory pages. Explore the ideas behind KSM (such as storage de-duplication), its implementation, and how you manage it.
Also available in: Japanese   Portuguese  
Articles 07 Apr 2010
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.
Also available in: Russian   Japanese   Portuguese  
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.
Also available in: Russian   Japanese  
Articles 31 Oct 2007
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.
Also available in: Russian   Japanese   Portuguese  
Articles 15 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.
Also available in: Russian   Portuguese  
Articles 17 May 2012
Anatomy of the libvirt virtualization library
The libvirt library is a Linux API over the virtualization capabilities of Linux that supports a variety of hypervisors, including Xen and KVM, as well as QEMU and some virtualization products for other operating systems. This article explores libvirt, its use, and its architecture.
Also available in: Japanese   Portuguese   Spanish  
Articles 05 Jan 2010
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.
Also available in: Russian   Japanese   Portuguese  
Articles 06 Jun 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.
Also available in: Russian   Japanese  
Articles 31 Aug 2009
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.
Tutorial 18 Dec 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
Application virtualization, past and future
When you hear the phrase "virtual machine" today, you probably think of virtualization and hypervisors. But VMs are simply an older concept of abstraction, a common method of abstracting one entity from another. This article explores two of the many newer open source VM technologies: Dalvik (the VM core of the Android operating system) and Parrot (an open source VM technology for efficiently executing dynamic languages).
Also available in: Russian   Japanese   Portuguese   Spanish  
Articles 03 May 2011
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.
Also available in: Russian   Japanese  
Articles 17 Sep 2007
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.
Also available in: Chinese   Russian  
Articles 03 Oct 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.
Also available in: Russian  
Articles 29 Nov 2006
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.
Also available in: Chinese   Russian   Japanese  
Articles 17 Jan 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.
Also available in: Chinese   Japanese  
Articles 28 Feb 2007
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
Automate and manage systems installation with Cobbler
Cobbler simplifies system provisioning by centralizing the tasks that are involved in setting up and administering an installation server. This article discusses some of Cobbler's features, how to install it, and how to create a configuration suitable for automatically installing multiple client machines.
Also available in: Chinese   Japanese  
Articles 07 Jun 2013
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.
Also available in: Russian   Japanese   Portuguese  
Articles 03 Jul 2008
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 virtual machine discovery and self-connectivity
In a virtual data center the deployment and the dismissal of complex appliances require that multiple configuration steps be executed. Reconfiguration requirements include establishing and removing communication between different components of the same product running in different virtual machines (VMs) as well as different products running in different VMs. Traditionally this process has been burdensomely manual or somewhat inflexible via the invoking of predefined scripts with static values. In this article, the authors propose StereoCable, automated plug-and-play support of complex virtual appliances in a virtual data center, to solve this issue. This way VMs are able to discover and automatically connect to each other based on predefined connections policies.
Also available in: Chinese   Portuguese  
Articles 01 Nov 2010
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.
Also available in: Russian   Japanese  
Articles 04 Mar 2009
Automating infrastructure management with Cfengine, Part 1: Installing servers and clients
Cfengine is a popular data center automation solution used by organizations around the world. It is scalable to tens of thousands of machines from laptops, desktops, and embedded devices to mainframes. Learn how you can use this versatile and flexible technology for solving data center issues.
Also available in: Chinese   Japanese   Portuguese  
Articles 03 May 2011
Avoid common errors in UNIX and Linux
Discover the most common errors in UNIX and Linux -- and how to avoid them.
Also available in: Chinese  
Articles 14 Jul 2009
Avoiding memory leaks in POSIX thread programming
POSIX thread (pthread) programming defines a standard set of C programming language types, functions, and constants--and pthreads provide a powerful tool for thread management. To use pthreads to the fullest, you'll want to avoid the common mistakes. One common mistake is forgetting to join joinable threads, which can create memory leaks and cause extra work. In this tips-oriented article, learn the basics of POSIX threads, see how to identify and detect thread memory leaks, and get solid advice for avoiding them.
Also available in: Russian   Japanese   Spanish  
Articles 25 Aug 2010
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.
Also available in: Japanese  
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.
Also available in: Japanese  
Articles 18 Feb 2013
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
Basic tasks for new Linux users
If you're a Windows user, you may find your new Linux system to be a bit different from what you're used to. One of your first tasks will probably be installing additional software, including some of IBM's extensive software for Linux. In many cases, installing software 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, DVD, or USB drive. This article guides you through these basic first-time user tasks and more.
Also available in: Japanese   Portuguese   Spanish  
Tutorial 19 Nov 2011
Basic tasks for new Linux users
If you're a Windows user, you may find your new Linux system to be a bit different from what you're used to. One of your first tasks will probably be installing additional software, including some of IBM's extensive software for Linux. In many cases, installing software 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, DVD, or USB drive. This article guides you through these basic first-time user tasks and more.
Tutorial 07 Apr 2011
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
Beginning Haskell
This tutorial is for 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. This tutorial provides a gentle introduction to the paradigm of functional programming, with specific illustrations in the Haskell 98 language.
Tutorial 27 Sep 2001
Best practices and basic evaluation benchmarks: IBM Power System S822LC for high-performance computing (HPC)
This article is a quick reference guide for IBM Power System S822LC for high-performance computing (HPC) system users to set processor and GPU configuration to achieve best performance for GPU accelerated applications. Before running an application, users need to make sure that the system is performing to the best in terms of processor frequency and memory bandwidth, GPU compute capacity, and memory bandwidth.
Articles 05 Apr 2017
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.
Also available in: Russian  
Articles 28 Jul 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.
Also available in: Russian   Japanese  
Articles 28 Feb 2006
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.
Also available in: Russian  
Articles 10 Dec 2008
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
Boost IBM InfoSphere Streams performance with Linux channel bonding
Have you ever wondered if Linux channel bonding would allow you to get faster throughput using IBM InfoSphere Streams? We have answered that question when running InfoSphere Streams release on Red Hat Enterprise Linux release 5.5. In this article, we describe what channel bonding is at a high level, how we set up our test environment, and the results we observed. In our experiments, channel bonding increased bandwidth by as much as 68 percent.
Also available in: Chinese  
Articles 16 Feb 2012
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.
Also available in: Japanese   Portuguese  
Articles 18 Aug 2009
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.
Also available in: Japanese  
Articles 24 Aug 2005
Booting Linux on the BeagleBoard-xM recently introduced BeagleBoard revision xM, a new edition of the highly successful open-hardware BeagleBoard currently at revision C. This article describes the necessary environment and steps for booting Linux on the BeagleBoard-xM with Angstrom Linux, Android, and Ubuntu.
Also available in: Portuguese  
Articles 14 Dec 2010
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.
Tutorial 19 May 2003
Build a Python app for parsing shared memory dumps
Learn how to parse a machine-readable shared memory dump on a Linux platform and extract your expected data format using Python and the struct utility. In this article, you'll first see how to determine the format of the data by reading the binary file format of the dump file; you need this in order to parse, extract, and analyze the data. Next, you'll see how to parse the file based on the format, and then match the results with the expected format to output a validation result. Update: In the Downloads section you'll find a working Python application and dump file that you can use as-is or modify for your own needs. We changed the name of the dump file throughout this article to match the name used in the download. -Ed.
Also available in: Chinese   Russian   Japanese   Spanish  
Articles 30 May 2011
Build a remote-controlled Raspberry Pi 2 monitor for your IBM Bluemix apps
Demystify the Internet of Things with a hands-on project that uses the IBM Watson IoT Platform to interconnect your devices and apps. Set up a Raspberry Pi 2 to monitor uptime and access time for a running IBM Bluemix app, capturing the results in a graphing app that you can deploy to Bluemix. And code a desktop application that controls the Raspberry Pi 2 monitor remotely.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 28 Apr 2015
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.
Also available in: Portuguese  
Tutorial 12 Aug 2008
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.
Also available in: Japanese  
Articles 11 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!
Also available in: Japanese  
Articles 24 Aug 2004
Build custom embedded Linux distributions with the Yocto Project
The Yocto Project is an open source project formed with the goal of making embedded Linux development easier and more portable across architectures. This article introduces the project and provides a step-by-step walk through on how to get started.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 28 Aug 2012
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.
Also available in: Japanese  
Articles 22 Jul 2003
Building Boost libraries using the xlcpp toolset for IBM compilers on Linux
This article introduces the procedures to build Boost libraries with Boost build engine, b2/bjam, using the new xlcpp toolset of IBM XL compilers for Linux on little endian systems. The target audience is software engineers interested in increasing productivity and quality of C++ applications by using the expertly designed Boost libraries. This is important for the development of high-quality applications, where the project requirements exceed the extent of features provided by the C++ standard libraries.
Also available in: Chinese  
Articles 22 Apr 2016
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.
Tutorial 19 Feb 2008
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.
Also available in: Japanese  
Articles 15 Aug 2006
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
Capturing screen shots and program interaction on UNIX and Linux systems: Part 2, Simple graphical screen and window capture
Capturing screen images of applications is something that all technical writers, most graphical application developers, many technical marketing staff members, and even many users need to do. Modern UNIX systems provide a number of different tools to capture graphical screens and single windows. This article, the second of three, focuses on tools that are present on every Linux and UNIX system that uses the X Window System. These tools make it easy to capture graphical portions of the screen to help illustrate both proper and improper program behavior.
Also available in: Chinese  
Articles 19 Apr 2011
Ceph: A Linux petabyte-scale distributed file system
Linux continues to invade the scalable computing space and, in particular, the scalable storage space. A recent addition to Linux's impressive selection of file systems is Ceph, a distributed file system that incorporates replication and fault tolerance while maintaining POSIX compatibility. Explore the architecture of Ceph and learn how it provides fault tolerance and simplifies the management of massive amounts of data.
Also available in: Japanese   Portuguese  
Articles 04 Jun 2010
Ceylon: True advance, or just another language?
The language road in computer science is littered with the carcasses of what was to be "the next big thing." And although many niche languages do find some adoption in scripting or specialized applications, C (and its derivatives) and the Java language are difficult to displace. But Red Hat's Ceylon appears to be an interesting combination of language features, using a well-known C-style syntax but with support for object orientation and useful functional aspects in addition to an emphasis on being succinct. Explore Ceylon and find out if this future VM language can find a place in enterprise software development. [Update: The fail block is clarified in Listing 7. -Ed.]
Also available in: Chinese   Russian   Japanese   Spanish  
Articles 07 Jul 2011
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.
Also available in: Chinese  
Articles 04 Mar 2008
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.
Also available in: Russian   Japanese  
Articles 01 Mar 2001
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.
Also available in: Russian   Japanese  
Articles 27 Feb 2003
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.
Also available in: Japanese  
Articles 01 Sep 2000
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.
Also available in: Chinese   Russian   Japanese  
Articles 29 Dec 2006
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.
Also available in: Japanese  
Articles 01 May 2001
Charming Python: Distributing computing with RPyC
RPyC is a seamless library for integrating 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.
Also available in: Russian   Japanese   Portuguese  
Articles 31 Mar 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.
Also available in: Russian   Japanese   Portuguese  
Articles 24 Nov 2009
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.
Also available in: Russian   Japanese  
Articles 01 Apr 2001
Charming Python: Functional programming in Python, Part 3
David Mertz illustrates currying and other higher-order functions contained in the Xoltar Toolkit.
Also available in: Japanese  
Articles 01 Jun 2001
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.
Also available in: Russian   Japanese  
Articles 01 Jul 2002
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
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.
Also available in: Russian   Japanese  
Articles 01 Jun 2002
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.
Also available in: Japanese  
Articles 01 Sep 2001
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.
Also available in: Russian   Japanese  
Articles 01 Oct 2002
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."
Also available in: Russian   Japanese  
Articles 20 Mar 2003
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.
Also available in: Japanese  
Articles 01 Jul 2000
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.
Also available in: Japanese  
Articles 01 Jan 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.
Also available in: Japanese  
Articles 01 Aug 2002
1 - 100 of 688 results | Next
Show Summaries | Hide Summaries