TAG Editor: Heather Stern
Senior Contributing Editor: Jim Dennis
Contributing Editors: Ben Okopnik, Dan Wilder, Don Marti
Customizing the splash image in GRUB | |
Submitted by c_r_jayanth on Friday, November 7, 2003 - 10:46 | |
Customizing the splash image in GRUB |
A little help on installing Linux on a PC running MS Windows by C,R. Jayanth | |
Submitted by c_r_jayanth on Sunday, November 2, 2003 - 09:26 | |
A little help on installing Linux on a PC running MS Windows. Complexity level: Novice/Beginner All around the world today, many business corporations, governments and universities are switching over to the Linux operating system (OS) for their network servers and workstations. At the same time, many (adventurous?) PC owners have tried to install it on home PCs, usually already running fine on Windows, with varying degrees of success. Perhaps they just got sick of Windows. Or they are fascinated by the philosophy of Linux. Or its just plain curiosity that drives them. If you are reading this, you probably belong to this group. Sure, for Unix/Linux illiterates, it is usually a daunting task to switch to Linux. I, for one, had a lot of problems initially: from learning to operate a new (and very different) OS to getting my video card to work; and had to spend a little money on buying books and downloading 'drivers'. But at the end of it all, I have a virus-free OS, an excellent C compiler, internet and mail programs, an image manipulator comparable to Adobe Photoshop, better memory management (I don’t really know why, but it takes about 9 minutes to copy the contents of a CD (~650 MB) to the hard drive in Windows while it takes only about 2 minutes in Linux on my PC.) and a lot more for (almost) free. Besides, if a program runs only on Windows, I still have my old Windows OS for back-up. So, if you have decided to install Linux, you don’t really have to lose Windows. Maybe this article will be of a little help. Which brings us to the actual topic of this article: How to install Linux (whatever distribution) on a system which already has Windows (whatever version) installed, without losing Windows or the stored files? Some Linux distributions such as Desktop Dragon actually require Windows to be running to be setup. However, most distributions must be installed on separate partitions. The actual installation is quite pain-free, so don’t grumble to take a few simple precautions before installation to ensure that you have a PC that can run two operating systems (albeit not simultaneously!).
First, for a few basics. You probably know all of this, but skim through it anyway.
There are 3 types of partitions: Primary, Extended and Logical. A primary partition is a main disk division. Most OSs can be installed and booted from only primary partitions. One hard disk may contain up to four primary partitions, or three primary partitions and one extended partition. At a time only one primary partition may be visible and active, all others are hidden. An extended partition cannot hold any data by itself but you can further physically divide the disk space in it by creating an unlimited number of logical partitions, each with a different file system. The extended partition is meant to overcome the 4 partition limit. Logical partitions and are meant to contain only data files and OSs that can be booted from a logical partition such as Linux and Windows XP. If you already have Windows installed, it is almost certainly on a primary partition. Also, most home PCs have just one primary partition. I recommend that you install Linux on a logical partition. Now, all you have to do before installing Linux is to create additional partitions that can hold Linux. The idea of this article is to help you in doing just that (Without damaging Windows).Of course, we are presuming that Linux can actually run on your hardware and that you have already verified this with the hardware compatibility list of the Linux distribution. Also, you must be familiar with the setup process before beginning. Let’s follow step-by-step, what I actually did and what you probably should do. Step 1. I first got hold of the bootable setup CDs of RHL 7.2. I then started up my PC, while repeatedly pressing the DEL key, to enter the BIOS settings. Then, I changed the first boot device to CDROM drive, second boot device to FDD A(Floppy Disk Drive A) and third boot device to HDD 0 (Boot sector of Hard Disk Drive). Comments: Obviously, the first step would be to get your hands on the Linux setup files. You have a choice of several distributions including Debian, Mandrake, RedHat etc. If you want support and service, you have the option of either buying a boxed set from a company or depending on the large number of open-minded individuals on the internet who are dedicated to solving the problems of the Linux community out of the goodness of their hearts. If you opt for the latter, you can get the setup files by downloading them from the internet and burning them onto CDs, or you can get free CDs with some magazines, or you can borrow them from a friend etc. You can setup Linux from CDs, DVDs, the hard drive or over a network. I would recommend CD based install which is quite hassle free. If your first installation CD is bootable, great! Otherwise you have to create a boot floppy. For RHL, you can do this in Windows or DOS using rawrite.exe or rawritewin.exe in the dosutils folder on the 1st disk. If you are using a boot floppy, you need not change the boot priority as I did.
Step 2. Next I inserted the first setup disk into the CDROM drive and restarted the computer.
Step 3. The graphical setup program starts. I select English as the language for setup. The program detects my keyboard and mouse (But my scroll mouse is detected as a 3 button mouse. Newer distributions have fixed the problem.) It now asks for the partitions to install Linux on. I am given 3 options: One to partition automatically and the other two to partition manually with Disk Druid or Linux FDISK. I choose to partition automatically, assuming that Linux will create the required partitions out of the available free space on the disk. Then, setup flashes a warning saying "All existing data will be wiped out! Do you want to continue?". D-oh! I cancel, go back and choose manual partitioning using Disk Druid. Now I am presented with a diagram showing my 2 precious partitions. I have the option of deleting either of them to make space for Linux. At this point, I realize that I goofed up by not being sufficiently prepared before starting setup. Its CTRL+ALT+DEL for restart. Step 4. I remove the Linux CD from the drive before the setup program starts again, start Windows, log on to the internet and do some research. It turns out that to install (most flavors of) Linux, you need at least 2 partitions: One "root" partition (denoted by '/') and one "swap" partition. The root partition must be big enough to hold all your Linux programs and files (Please refer to your Linux documentation to find out the exact size. Mine is about 4 GB and about 2 GB of it is occupied by system files.) and the swap partition should be double the size of your RAM. Moreover, these partitions need not be primary partitions, unlike the requirement in Windows 9x. OK, so we now know what partitions are necessary. So how do we create them? There are programs specifically written to facilitate safe partitioning, such as Powerquest Partition Magic. There were a few demo-version partitioning programs for free download on the net. But to download at my connection speed would take hours. Waitaminute!! Isn’t there a program called fdisk in DOS that can manipulate partitions?
Step 5. I start an MSDOS console and hit fdisk /?
Hmmm. If I now create DOS partitions of the size required for Linux, I can later format the partitions in the ext2 format during Linux setup. The important thing is to create the partitions, not whether they are DOS or Linux partitions.
I first check out the partition information. There are 2 partitions with no free (unallocated) space. I exit fdisk and check the available free space on the partitions. D drive has 5 GB free space out of about 19 GB. If I could somehow split this partition into 3 partitions: 3-4 GB for root partition, 256 MB for swap partition and the remaining for D drive, everything would be just nice. To do so using fdisk, I would have to:
Step 6. Now all the data from D drive cannot be moved into C drive, there is just not enough space. So I run to my friend's place, get his hard drive, plug it into my computer in the slave configuration, and transfer some of the data into it. The rest of the data, I transfer to the C drive. So D drive is finally empty! Next, I start fdisk again, and choose to "Delete partition or Logical DOS Drive". Next, I choose to delete logical DOS drive(s) in the Extended Partition. Then I choose to delete D drive. Now, from the first menu, I select "Create DOS partition or Logical DOS Drive". In the following menu, I choose "Create Logical DOS Drive(s) in the Extended DOS Partition". Next, I specify the size of the partition, about 3 GB. Similarly, I create the other 2 partitions. It’s time to restart again.
Comments: You probably don’t need to connect another hard disk to empty the contents of a partition. You can probably store the contents somewhere safe on your network or to a laptop via a LAN card or to a storage device via USB port. If you have no other option, take the help of an expert. Of course, it is a simple procedure, and you can probably get it right without anyone's help.
Step 7. Now we're ready to try installation again. This time around, when the setup asks me to specify the partitioning method, I confidently choose to partition manually using Disk Druid. Next, I choose to format the 3 GB partition as root (/) with ext3 file system. Since I am installing Linux on a logical partition, I am warned that the partition may not meet boot requirements and strongly recommended to create a boot diskette. No problem. The 256 MB partition is formatted as swap.
Step 8. When installing Linux, its best that LiLo (the boot loader) is installed to the root superblock (boot sector equivalent) of the Linux partition, not the Master Boot Record (MBR). You can let the setup modify the MBR, but if you reinstall Windows, Linux will be rendered inaccessible. Don’t forget to create a boot diskette!
That’s about it! The rest of the setup should proceed without any glitches and you will have a dual boot computer. You will be presented a convenient menu by the bootloader (GRUB or LiLo or a commercial bootloader that you have installed) every time your computer starts. From this menu, you can choose the OS to boot: either Linux or DOS (Windows).
IMPORTANT! I repeat, do not set up partitions with Linux FDISK or Disk Druid; they may render partition tables unreadable to other operating systems. You can use them to change partition types and set partition mount points, but that is all.
|
configure; make; make install | |
Submitted by Willy on Saturday, November 22, 2003 - 12:55 | |
Over and over I have heard people say that you just use the usual configure, make, make install sequence to get a program running. Unfortunately, most people using computers today have never used a compiler or written a line of program code. With the advent of graphical user interfaces and applications builders, there are lots of serious programmers who have never done this. What you have are three steps, each of which will use a whole host of programs to get a new program up and running. Running configure is relatively new compared with the use of make. But, each step has a very distinct purpose. I am going to explain the second and third steps first, then come back to configure. The make utility is embedded in UNIX history. It is designed to decrease a programmer's need to remember things. I guess that is actually the nice way of saying it decreases a programmer's need to document. In any case, the idea is that if you establish a set of rules to create a program in a format make understands, you don't have to remember them again.
To make this even easier, the make utility has a set of built-in rules
so you only need to tell it what new things it needs to know to build
your particular utility.
For example, if you typed in So, make would look for a file named love.o. But, it wouldn't stop there. Even if it found the .o file, it has some other rules that tell it to make sure the .o file is up to date. In other words, newer than the source program. The most common source program on Linux systems is written in C and its file name ends in .c. If make finds the .c file (love.c in our example) as well as the .o file, it would check their timestamps to make sure the .o was newer. If it was not newer or did not exist, it would use another built-in rule to build a new .o from the .c (using the C compiler). This same type of situation exists for other programming languages. The end result, in any case, is that when make is done, assuming it can find the right pieces, the executable program will be built and up to date.
The old UNIX joke, by the way, is what early versions of make said when
it could not find the necessary files. In the example above, if there
was no love.o, love.c or any other source format, the program would
have said: Getting back to the task at hand, the default file for additional rules in Makefile in the current directory. If you have some source files for a program and there is a Makefile file there, take a look. It is just text. The lines that have a word followed by a colon are targets. That is, these are words you can type following the make command name to do various things. If you just type make with no target, the first target will be executed. What you will likely see at the beginning of most Makefile files are what look like some assignment statements. That is, lines with a couple of fields with an equal sign between them. Surprise, that is what they are. They set internal variables in make. Common things to set are the location of the C compiler (yes, there is a default), version numbers of the program and such. This now beings up back to configure. On different systems, the C compiler might be in a different place, you might be using ZSH instead of BASH as your shell, the program might need to know your host name, it might use a dbm library and need to know if the system had gdbm or ndbm and a whole bunch of other things. You used to do this configuring by editing Makefile. Another pain for the programmer and it also meant that any time you wanted to install software on a new system you needed to do a complete inventory of what was where. As more and more software became available and more and more POSIX-compliant platforms appeared, this got harder and harder. This is where configure comes in. It is a shell script (generally written by GNU Autoconf) that goes up and looks for software and even tries various things to see what works. It then takes its instructions from Makefile.in and builds Makefile (and possibly some other files) that work on the current system. Background work done, let me put the pieces together.
This is a very simplified explanation but, in most cases, this is what you need to know. With most programs, there will be a file named INSTALL that contains installation instructions that will fill you in on other considerations. For example, it is common to supply some options to the configure command to change the final location of the executable program. There are also other make targets such as clean that remove unneeded files after an install and, in some cases test which allows you to test the software between the make and make install steps. |
Linux, At Your Service | |
Submitted by BobW on Friday, November 21, 2003 - 03:20 | |
For the first few years of working with Linux I heard people talk about ports, protocols and services and I just hoped I could ignore them and keep getting my work done. Usually, this was the case but I eventually decided to bite the bullet and see what all this was about. This article won't tell you everything there is to know but it should help you put together the pieces.
One of the most helpful crib sheets in learning about all this stuff is
a file on your system.
In virtually all systems it is named # # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # # This list could be found on: # http://www.iana.org/assignments/port-numbers # # (last updated 2002 January 15) # # The port numbers are divided into three ranges: the Well Known Ports, # the Registered Ports, and the Dynamic and/or Private Ports. # # The Well Known Ports are those from 0 through 1023. # # The Registered Ports are those from 1024 through 49151 # # The Dynamic and/or Private Ports are those from 49152 through 65535 # #### UNASSIGNED PORT NUMBERS SHOULD NOT BE USED. THE IANA WILL ASSIGN # THE NUMBER FOR THE PORT AFTER YOUR APPLICATION HAS BEEN APPROVED ### # # # WELL KNOWN PORT NUMBERS # # The Well Known Ports are assigned by the IANA and on most systems can # only be used by system (or root) processes or by programs executed by # privileged users. # # Ports are used in the TCP [RFC793] to name the ends of logical # connections which carry long term conversations. For the purpose of # providing services to unknown callers, a service contact port is # defined. This list specifies the port used by the server process as # its contact port. The contact port is sometimes called the # "well-known port". # # To the extent possible, these same port assignments are used with the # UDP [RFC768]. # # The range for assigned ports managed by the IANA is 0-1023. # # Port Assignments: # # 0/tcp Reserved # 0/udp Reserved tcpmux 1/tcp # TCP Port Service Multiplexer tcpmux 1/udp # TCP Port Service Multiplexer ... ftp-data 20/tcp # File Transfer [Default Data] ftp-data 20/udp # File Transfer [Default Data] ftp 21/tcp # File Transfer [Control] fsp 21/udp # official is File Transfer, ftp use no udp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # Telnet telnet 23/udp # Telnet There is a whole lot to talk about already. If you look at the last few lines you will see lines that start with ftp, ssh and telnet. If you have never heard of any of those names you probably need to read a different article. However, if you do know what they are, a light may have just come on for you.
What these lines tell you is that ftp uses ports 20 and 21, ssh uses
port 22 and telnet uses port 23. If you use command line versions of
these programs you might have noticed you could specify a port number.
If you are curious, type Looking back at the file you can see that each port number is followed by a slash and "tcp" or "udp". These are two standard Internet protocols. UDP is connectionless. What this means is that one computer can sent a message to another computer without asking permission first. The problem is that the sender will not know if the other system ever received the message. The buzzword here is unreliable. The TCP protocol is reliable which just means that the sender and receiver talk to each other to make sure everything worked. Each protocol has a purpose. For example, when the systems want to establish a connection, sending a UDP message to that effect makes sense. It is just faster and easier. So far, we have been talking about services that run on well known port numbers. Here are a few more that will likely be familiar to you. smtp 25/tcp mail # Simple Mail Transfer smtp 25/udp mail # Simple Mail Transfer http 80/tcp # World Wide Web HTTP http 80/udp # World Wide Web HTTP pop2 109/tcp # Post Office Protocol - Version 2 pop2 109/udp # Post Office Protocol - Version 2 pop3 110/tcp # Post Office Protocol - Version 3 pop3 110/udp # Post Office Protocol - Version 3 nntp 119/tcp # Network News Transfer Protocol nntp 119/udp # Network News Transfer Protocol imap 143/tcp imap2 # Internet Message Access Protocol imap 143/udp imap2 # Internet Message Access Protocol imap3 220/tcp # Interactive Mail Access Protocol v3 imap3 220/udp # Interactive Mail Access Protocol v3 imaps 993/tcp # imap4 protocol over TLS/SSL imaps 993/udp # imap4 protocol over TLS/SSL You will certainly know about port 80. In addition, you can see that the various mail protocols have an assortment of ports. imaps is a secure connection for fetching your mail from a mail server. I should mention that you now can see two uses of the word protocol. First, in TCP or UDP and second in the protocol of the actual content. For example, SMTP stands for Simple Mail Transfer Protocol. Don't get confused--TCP and UDP have to do with the protocol for getting the message to the other end. The second use of the word protocol has to do with the specifics of the message content.
SMTP is the most common way a computer sends email to another computer.
Your computer might send the message directly or it might send it thru
what is called a smart host. In any case, the mail message is
transfered by some computer connecting to the recipient computer using
port 25 and then communicating using the SMTP protocol. This is a
simple protocol and you can use your local telnet command to explore
how it works. Just for kicks, try a command like this
You should see a message about the connection succeeding and then you
are likely to not even get a prompt. If you are connected, try typing
sid@firefly:/tmp> telnet mail.osdn.com 25 Trying 66.35.250.105... Connected to mail.osdn.com. Escape character is '^]'. 220 sc8-osdn-mail.osdn.com ESMTP Exim 3.35 #1 Sun, 16 Nov 2003 11:44:51-0800 help 214-Commands supported: 214- HELO EHLO MAIL RCPT DATA AUTH 214 NOOP QUIT RSET HELP quit 221 sc8-osdn-mail.osdn.com closing connection Connection closed by foreign host. sid@firefly:/tmp> Is this starting to make some sense? Ok, let me give you a new buzzword. When I performed the telnet connection, the remote computer was listening on port 25. This is actually just what it sounds like. There was a programming running that was just waiting for someone to try to connect to port 25. When telnet sent the request, that program established the connection. Some programs that are listening can only connect to one computer at a time, others can handle multiple connections. Finally, I want to explain about the registered ports, which are the ports whose numbers are above 1024. In order for a program to listen on the ports that we have already covered, it has to be started as root. This didn't mean the program continued to run as root. This is actually pretty common. The apache web server, for example, is generally started as root, it does any necessary setup such as binding to port 80 and then changes it user ID to something less powerful--generally nobody or some other ordinary user. On these higher numbered ports, any program can bind to them. Below I have included a few of the more common ones. mysql 3306/tcp # MySQL mysql 3306/udp # MySQL x11 6000/tcp # X Window System x11 6000/udp # X Window System ... x11 6019/tcp # X Window System x11 6019/udp # X Window System x11 6063/tcp # X Window System x11 6063/udp # X Window System gnutella-svc 6346/tcp # gnutella-svc gnutella-svc 6346/udp # gnutella-svc gnutella-rtr 6347/tcp # gnutella-rtr gnutella-rtr 6347/udp # gnutella-rtr http-alt 8008/tcp # HTTP Alternate http-alt 8008/udp # HTTP Alternate http-alt 8080/tcp # HTTP Alternate (see port 80) http-alt 8080/udp # HTTP Alternate (see port 80) The first one, mysql, should help explain why it doesn't seem to matter if MySQL is running on your local computer or another system. Communication with it is thru a port so the only thing that changes is the hostname in the connection message. Ports 8008 and 8080 are of interest if you are testing out a new web server or want to run more than one web server on the same computer. Because you don't have to be root to bind to ports 8008 or 8080 you can test a web server or even run one on a machine where you don't have root access. I hope this introduction to ports, protocols and services has been helpful to you. I welcome your comments. |
Familiarize Yourself with sendmail | |
Submitted by h.santhosh@timk... on Saturday, November 22, 2003 - 15:24 | |
When
we do a default Linux server installation you will find the default
/etc/mail/sendmail.mc . This file has various macros defined and with
very little explanation. Firstly, preview your default sendmail.mc. Than the below article explains the details for most of the
macros defined in sendmail.mc in the same order. For more information
refer to Sendmail.mc Explained |
Take Command: ln | |
Submitted by staff on Saturday, November 29, 2003 - 05:55 | |
The ln command creates pseudonyms for files which allows them to be accessed by different names. These pseudonyms are called links. There are two different forms of the command and two different kinds of links that can be created. First, let me explain the two forms. ln [options] exiting_path [new_path] ln [options] exiting_paths directory In the first form, a new name is created called new_path which is a psuedonym for existing_path. The reason this is called a path is that it can be a full pathname to a file. That is, it does not have to specify a file in the current directory. In the second form, the last argument is taken to be a directory name and all the other arguments are paths to existing files. A link for each existing file is created in the specified directory with the same filename as the existing files.
Time for a few examples:
ln /home/bill/his_file my_file
As above but the link is created in /home/joe/my_file: ln /home/bill/his_file /home/joe/my_file
As above but the link is named his_file and created in the current
directory: ln /home/bill/his_file
Here is an example of the second form where links to dog, cat and cow
from the current directory are created in /home/joe: ln dog cat cow /home/joe Everything so far has created what is called a hard link. All this means is that the new pseudonym has exactly the same properties as the original name. In fact, the system makes on distinction between them. For example, you could rename the file pig to chicken with the following command sequence: ln pig chicken rm pig The first line creates the pseudonym chicken for pig and the second deletes pig. The filesystem is smart enough to know that as long as at least one name points to the file, the file cannot be deleted.
All that said, there is a second kind of link called a symbolic link
which has quite different properties. That is, rather than pointing to
the file itself, it points to the file name (directory entry). This is
the only kind of link that can be used between filesystems. To create a
symbolic link, all works as above except you need to include the -s
option.
For example, to make a symbolic link called chicken that points to pig,
you would say: ln -s pig chicken
The only way you will see that chicken is a symbolic link is by using
the ls -l command ( lrwxrwxrwx 1 joe users 3 2003-11-18 17:26 chicken -> pig The first character (l) indicates that this is a link and the chicken
-> pig part indicates that chicken is a pointer to pig.
Now, if you were to delete the file pig (
Like most Linux commands, there are lots more options and lots more
choices. If you enter The first line creates the pseudonym chicken for pig and the second deletes pig. The filesystem is smart enough to know that as long as at least one name points to the file, the file cannot be deleted.
All that said, there is a second kind of link called a symbolic link
which has quite different properties. That is, rather than pointing to
the file itself, it points to the file name (directory entry). This is
the only kind of link that can be used between filesystems. To create a
symbolic link, all works as above except you need to include the -s
option.
For example, to make a symbolic link called chicken that points to pig,
you would say: ln -s pig chicken
The only way you will see that chicken is a symbolic link is by using
the ls -l command ( lrwxrwxrwx 1 joe users 3 2003-11-18 17:26 chicken -> pig The first character (l) indicates that this is a link and the chicken
-> pig part indicates that chicken is a pointer to pig.
Now, if you were to delete the file pig (
Like most Linux commands, there are lots more options and lots more
choices. If you enter |
High Performance Computing Seminar, 10th December 2003 | |
Submitted by Andrew Boddington on Tuesday, November 11, 2003 - 13:56 | |
This event will share information on the different platforms and approaches to High Performance Computing (HPC) in Research and Higher Education, specifically considering the business and technical choices of Intel processors as the way ahead, contrast UNIX and Linux as the operating system, what is needed to build a Linux HPC systems (covering LC, XC, Lustre), and look at the configuration and application decisions made by existing users of High Performance Computing. With speakers from HP, Intel, ERBI, Accelrys and Cambridge Online. |
IBM/SuSE Supercomputer to Japan | |
Submitted by Phil Hughes on Wednesday, November 19, 2003 - 13:55 | |
Japan's National Institute of Advanced Industrial Science and Technology has ordered an IBM eServer Linux supercomputer. It is capable of 11 trillion operations per second and will be running SuSE Linux Enterprise Server 8. It is expected to end up as number three on the top 500 supercomputers list, moving the Lawrence Livermore Labs Linux cluster down to number four. The computer will include 1,058 eServer 325 systems, each with dual AMD Opteron processors. |