Linux Memory Management – Understanding a Program in Memory

Posted on in Categories Howto, Linux last updated January 27, 2009

Excellent article! It explains how programs are laid out in memory.

From the blog post:

Memory management is the heart of operating systems; it is crucial for both programming and system administration. In the next few posts I’ll cover memory with an eye towards practical aspects, but without shying away from internals. While the concepts are generic, examples are mostly from Linux and Windows on 32-bit x86. This first post describes how programs are laid out in memory. Each process in a multi-tasking OS runs in its own memory sandbox. This sandbox is the virtual address space, which in 32-bit mode is always a 4GB block of memory addresses.

=> Anatomy of a Program in Memory

History and Culture of Unix Programming – The Art of Unix Programming

Posted on in Categories C Programming, Download of the day, FreeBSD, Linux, UNIX last updated March 27, 2008

The Art of Unix Programming by Eric Raymond is a book about the history and culture of Unix programming from its earliest days in 1969 to now, covering both genetic derivations such as BSD and conceptual ones such as Linux.

You should read this book if you are an experienced Unix programmer who is often in the position of either educating novice programmers or debating partisans of other operating systems, and you find it hard to articulate the benefits of the Unix approach.

You should read this book if you are a C, C++, or Java programmer with experience on other operating systems and you are about to start a Unix-based project.

You should read this book if you are a Unix user with novice-level up to middle-level skills in the operating system, but little development experience, and want to learn how to design software effectively under Unix.

You can read HTML version of “The Art of Unix Programming” online at Eric’s website.

Why Linux Desktop Does Not Spread – the Curse of Being Free

Posted on in Categories Business, Linux, Linux desktop, Linux distribution, OS X, Windows last updated February 18, 2008

This is a philosophical post on why Linux hasn’t grown to challenge Windows as the most popular operating system. From the blog post:

Linux isn’t very popular on the desktop. It’s a far third behind OS X, which is a very far second behind Windows. Most people cite pre-installed operating systems as the reason. But as a student of psychology, I see something most people don’t. There’s one big factor in why Linux isn’t popular on the desktop. Linux is free. I know this sounds like complete dog’s bollocks, but hear me out before judging my sanity.

My personal experience suggests that people don’t use GNU/Linux on desktop because :

  1. Steep learning curve
  2. Software incompatibility or doesn’t run the software they want
  3. Installing and obtaining drivers may be issue for average joe
  4. Finally, human psyche is complex subject. There are people who buy expensive apple hardware and install Linux on it. You just can’t predicate human behavior.

I use Linux on desktop because I work with a Linux / UNIX server all day and I find that using it on the desktop as well actually makes my life easier. You know one-size-fits-all approach may be unrealistic in a real life. I see my workplace desktops fully loaded with mix of Linux, OS X and dominated by Windows XP pro.

=> Why Linux Doesn’t Spread – the Curse of Being Free (via slashdot)

Linux Lighttpd Configure ASP.NET Applications as FastCGI Mono Server

Posted on in Categories lighttpd, Links, Linux, RedHat/Fedora Linux, Ubuntu Linux, UNIX, Windows last updated February 3, 2008

Mono project offers .NET compatible set of tools, including among others a C# compiler and a Common Language Runtime. It runs on Linux, *BSD, Windows and other operating systems. From the article:

The FastCGI Mono Server was developed as part of the 2007 Google Summer of Code (http://code.google.com/soc/2007/) with the goal of increasing the availablity of ASP.NET and simplifying configuration. Requiring as little as zero command line options and supporting a large number of servers, the FastCGI Mono Server makes it simple to include ASP.NET on your server.

This documentation contains configuration instructions for serveral web servers on Linux, with plans to expand support to Windows and Macintosh in the future. Please take the time to read all the information below before configuring your server.

ASP.NET Mono - How Does It Work?
(Fig. 01: How does FastCGI mono server works?)

=> The FastCGI Mono Server Configuration

Humor: Operating Systems and Airlines

Posted on in Categories Humor last updated December 13, 2007

If Operating Systems allowed to ran airlines. Absolutely hilarious, here is an an excerpt from post:

Everyone brings one piece of the plane along when they come to the airport. They all go out on the runway and put the plane together piece by piece, arguing non-stop about what kind of plane they are supposed to be building.

=> Read more

Can I boot My Linux Server from iSCSI or SAN or NAS network attached storage?

Posted on in Categories High performance computing, Howto, Linux, Linux Scalability, Storage last updated November 12, 2007

My previous article related to iSCSI storage and NAS storage brought a couple of questions. An interesting question from my mail bag:

I’ve 5 Debian Linux servers with HP SAN box. Should I boot from SAN?

No, use centralized network storage for shared data or high availability configuration only. Technically you can boot and configure system. However I don’t recommend booting from SAN or any other central server until and unless you need diskless nodes:

[a] Use local storage – Always use local storage for /boot and / (root) filesystem

[b] Keep it simply – Booting from SAN volumes is complicated procedure. Most operating systems are not designed for this kind of configuration. You need to modify scripts and booting procedure.

[c] SAN booting support – Your SAN vendor must support platform booting a Linux server. You need to configure HBA and SAN according to vendor specification. You must totally depend upon SAN vendor for drivers and firmware (HBA Bios) to get thing work properly. General principle – don’t put all your eggs in one basket err one vendor 😉

[d] Other factors – Proper fiber channel topology must be used. Make sure Multipathing and redundant SAN links are used. The boot disk LUN is dedicated to a single host. etc

As you can see, complications started to increases, hence I don’t recommend booting from SAN.