Wednesday, February 27, 2008

Building an rsync Backup Server

You want users to back up their own data. But you really don't want to give users shell accounts all over the place, just so that they can do backups. You'd also like to make it easier for them to share files, again without giving all your users shell accounts.
Use a dedicated PC for a central server, and run rsync in daemon mode. Users will not need login accounts on the server, and you can use rsync's own access controls and user authorization for security.more...

Monday, February 25, 2008

Make Your Application Accessible with Accerciser

You might think you need to be familiar with assistive technologies like the Orca screen reader to determine whether your application is accessible. The truth is that with just a couple simple rules and an open-source tool called Accerciser, the task at hand is fairly simple.
Before you start diagnosing your application with specialized tools like Accerciser, you should ask yourself a few straightforward questions about your application.. more...

Saturday, February 23, 2008

HowTo Create an IPv6 over IPv4 Tunnel to Reach the IPv6 Internet

The Hurricane Electric IPv6 Tunnel Broker allows you to reach the IPv6 Internet by tunnelling over your existing IPv4 connection through one of their IPv6 routers. To use their service, your Ubuntu system has to be IPv6 capable. Unless you haven’t manually disabled IPv6, it should be ready to use. Make sure with: $ sudo lsmod | grep ipv6
Now, you’ll need to setup the IPv6overIPv4 tunnel.read more.

Signing and Encrypting Files

You want to sign and encrypt a file, with the results not human-readable.
To sign myfile:
$ gpg -s myfile
To sign and encrypt myfile:
gpg -e -s myfile
In either case you must provide your passphrase. Add the -r option to encrypt the file with an intended recipient's public key, so only he or she can decrypt it. read more

Friday, February 22, 2008

Perl - Debug with Test Cases

Many programmers have subdirectories full of little test snippets; it's common to write a few programs to explore a feature of the language or a new library. It's also common to do this with false laziness, eyeballing output and tweaking an idea here or there.
Usually that's okay, but occasionally you know you wrote code to explore something you need to know right nowif only you could find it and decipher what you were thinking.
If you know how to write test cases with Perl's standard testing tools, you can end this madness and make even your experiments reusable and maintainable.read more.

Wednesday, February 20, 2008

Transition to AIX from Solaris

You've been working with Solaris for ten years now and, like many other companies, you have just started a large server consolidation and migration project to AIX® 6.1 from Solaris 10. Many of the commands are similar, but you need to know how to work with partitioning and virtualization. What are the partitioning differences between an IBM® and Sun server? Furthermore, what do you need to know about workload partitions (WPARs) to make a successful transition from containers? What are some of the similarities and differences between WPARs and zones, and how does the process differ from creating zones and WPARs? Finally, what can you do on the IBM System p™ that you can't do with Sun servers? These are some of the questions addressed in this article, with the objective of making your transition easier.

Monday, February 18, 2008

Attack Class: Buffer Overflows

A buffer overflow: it's an easy enough mistake to make. And as the Jargon File puts it, buffer overflows are the source of "some of the most insidious data-dependent bugs known to mankind"1 Yet buffer overflows are more than just a source of frustration for programmers. Indeed, they can create serious security holes, introducing vulnerabilities which can be exploited to achieve a denial of service or in some cases, to gain access and/or increased privileges on a system.

Sunday, February 17, 2008

Perl - Messing with the Class Model

Perl's style of object orientation is often maligned, but its sheer simplicity allows the advanced Perl programmer to extend Perl's behavior in interestingand sometimes startlingways. Because all the details of Perl's OO model happen at runtime and in the openusing an ordinary package variable (@INC) to handle inheritance, for instance, or using the symbol tables for method dispatchwe can fiddle with almost every aspect of it.
In this section we'll see some techniques specific to playing with the class model, but we will also examine how to apply the techniques we already know to distort Perl's sense of OO.

Saturday, February 16, 2008

Building and Integrating a Small Office Intranet

Intranets have been around for a long time. They were one of the first alternate uses for World Wide Web technology back in the early 1990s. The idea of bringing a little bit of the Web experience in-house was very attractive, but integration with existing systems was difficult. Thus, a lot of intranets were nothing more than glorified bulletin boards with some user-publishing features thrown in. The landscape is different now, with open-source software ready to take most of the cost and some of the complexity away from a good intranet setup. The so-called LAMP stack provides the perfect neutral platform for integrating many different pieces of software into a single point of interaction for users. That's what we have tried to do at our company.read more..

Friday, February 15, 2008

Bourne Shell Programming

Many standard utilities (rdist, make, cron, etc.) allow you to specify a command to run at a certain time. Usually, this command is simply passed to the Bourne shell, which means that you can execute whole scripts, should you choose to do so.
Lastly, Unix runs Bourne shell scripts when it boots. If you want to modify the boot-time behavior of a system, you need to learn to write and modify Bourne shell scripts.

Wednesday, February 13, 2008

Build your own distro.

Making your own customised Linux distro is simpler than you might think - and rewarding too. Don your overalls and hard hat, and we'll show you how to start building your ideal distro.
Creating something, from a simple meal to a complex painting, is rewarding and satisfying - especially if you love the end result. The feeling of being in control, trying out new ideas and then seeing your goals realised can't be beat. This is one of the joys of computing, especially programming, with the open source world a constant generator of code, concepts and communities to build upon. And creating your own customised Linux distro, however difficult it may seem initially, is one of the best ways to combine creativity with technical learning.

IPv6 Operating Systems

This section contains a detailed description of the capabilities of integrated operating system IPv6 stacks. Information contained on the individual operating systems is marked as either Tested or Documentation according to the source of the information. Emphasis is put on obtaining information from the first category as the second contains more-or-less unverified content based on vendor documentation.

Tuesday, February 12, 2008

Perl Sorting Techniques

Sorting is a commonly needed operation in all kinds of programs. Luckily, for us perl programmers, perl provides a very simple yet extremely powerful mechanism to accomplish any sort you might think of. This article is about teaching the novice programmer how to sort lists of things, while showing to the more experienced folks certain techniques and ideas that could be new to them if they are migrating from a different language.read more.

Linux kernel patch format

Most Linux kernel submissions are merged into the kernel source code repository by script. These instructions describe the proper format for emailed kernel patch submissions, to ensure that submittors and maintainers waste a minimum amount of time on these details.more...

Saturday, February 09, 2008

Installing MINIX 3

This document explains how to install MINIX 3.1.2. A complete MINIX 3 installation requires a Pentium (or compatible) with at least 16-MB of RAM, 1 GB of free disk space, an IDE or USB CD-ROM, and an IDE hard disk. A minimal installation (without the commands sources) requires 8 MB RAM and 50 MB of disk. SCSI disks are not supported at present.

How System Calls Are Implemented on i386 Architecture?

Native Linux programs use int 0x80 whilst binaries from foreign flavours of UNIX (Solaris, UnixWare 7 etc.) use the lcall7 mechanism. The name 'lcall7' is historically misleading because it also covers lcall27 (e.g. Solaris/x86), but the handler function is called lcall7_func.
When the system boots, the function arch/i386/kernel/traps.c:trap_init() is called which sets up the IDT so that vector 0x80 (of type 15, dpl 3) points to the address of system_call entry from arch/i386/kernel/entry.S.read more.

Thursday, February 07, 2008

The unix library: Unix system calls

The unix library (distributed in contrib/libunix) makes many Unix system calls and system-related library functions available to Caml Light programs. This chapter describes briefly the functions provided. Refer to sections 2 and 3 of the Unix manual for more details on the behavior of these functions.
Not all functions are provided by all Unix variants. If some functions are not available, they will raise Invalid_arg when called.

Tuesday, February 05, 2008

Unlocking a LUKS encrypted root partition via ssh

Running a Debian server with LUKS encrypted root partition and want to be able to enter the pass phrase local at the terminal or via ssh. This article describes how I achieved that.

Monday, February 04, 2008

RESTORE-EE (Enterprise Edition) User Manual

This manual is part reference and part tutorial, meaning that you can look to it for everything from the simple questions of , “What does this icon do?” to the more involved questions, like “How do I schedule e-mail notifications?” Your experience with Restore will depend on your privileges on the Restore system. The administrator for the system will have a few extra capabilities that a standard user will not.

Sunday, February 03, 2008

IO Memory Access

Unlike on most typical embedded systems, accessing I/O memory on Linux cannot be done directly. This is due to the wide range of different memory types and maps present on the wide range of processors on which Linux runs. To access I/O memory in a portable manner, you must call ioremap() to gain access to a memory region and iounmap() to release access.read more.

Saturday, February 02, 2008

Networking scalability on high-performance servers

The proliferation of high-performance scalable servers has added a new level of complexity to networking and system performance. In this article, learn how to optimize your multi-node, high-performance Linux® system as it uses system board gigabit Ethernet adapters from 1 to 4 nodes. Take a look at problematic networking scalability situations and get tips on how to avoid the pitfalls.

Friday, February 01, 2008

System Call Handler and Service Routines

When a User Mode process invokes a system call, the CPU switches to Kernel Mode and starts the execution of a kernel function. As we will see in the next section, in the 80 x 86 architecture a Linux system call can be invoked in two different ways. The net result of both methods, however, is a jump to an assembly language function called the system call handler.
Because the kernel implements many different system calls, the User Mode process must pass a parameter called the system call number to identify the required system call; the eax register is used by Linux for this purpose. As we'll see in the section "Parameter Passing" later in this chapter, additional parameters are usually passed when invoking a system call.

uptime