Latest LQ Deal: Complete CCNA, CCNP & Red Hat Certification Training Bundle
Go Back > Forums > > LQ Suggestions & Feedback
User Name
LQ Suggestions & Feedback Do you have a suggestion for this site or an idea that will make the site better? This forum is for you.
PLEASE READ THIS FORUM - Information and status updates will also be posted here.


  Search this Thread
Old 03-07-2001, 05:39 AM   #1
Registered: Feb 2001
Posts: 84

Rep: Reputation: 15

Caution: Do not change the "localhost" entry in /etc/host, because
many programs depend on it for internal message-passing.

8.8. How Do I Switch Virtual Consoles? How Do I Enable Them?

In text mode, press the left Alt-F1 to Alt-F12 to select the consoles
tty1 to tty12; Right Alt-F1 gives tty13 and so on. To switch out of X
you must press Ctrl-Alt-F1, etc; Alt-F5 or whatever will switch back.

If you want to use a VC for ordinary login, it must be listed in
/etc/inittab, which controls which terminals and virtual consoles
have login prompts. The X Window System needs at least one free VC in
order to start.

8.9. How Do I Set the Time Zone?

Change directory to /usr/lib/zoneinfo/. Get the time zone package if
you don't have this directory. The source is available in

Then make a symbolic link named localtime pointing to one of the files
in this directory (or a subdirectory), and one called posixrules
pointing to localtime. For example:

$ ln -sf US/Mountain localtime
$ ln -sf localtime posixrules

This change will take effect immediately--try date.

If the system uses Red Hat-style configuration files, the respective
time zone info files are /usr/share/zoneinfo and /etc/localtime.

The manual pages for tzset or tzselect describe setting the time zone.
Some programs recognize the "TZ" environment variable, but this is not

You should also make sure that your Linux kernel clock is set to the
correct GMT time--type date -u and check that the correct UTC time is
displayed. ("The Computer Has the Wrong Time.")

8.10. How Do I Get Dial-up PPP to Work?

This information is mainly for people who do not have a wrapper
utility like kppp or pppconfig, or are not able to get those utilities
to work correctly. If you need to manually configure PPP to dial in to
your ISP, you will need the following information:

* The port that your modem is connected to: /dev/ttyS0--/dev/ttyS3,
which correspond to COM1-COM4 under MS-DOS.
* The phone number of your ISP's data connection.
* The user name and password that your ISP gave you.
* The IP addresses of the primary and possibly secondary Domain Name
Service that you will use when dialing in to the ISP. This assumes
that you will not be using a DNS that you installed on your

When you have all of this information, make sure that the programs
pppd and chat, at the very minimum, are installed correctly. In most
current distributions, they are installed in the /usr/sbin/ directory,
and you will need to be logged in as root to use them. In addition,
the following programs are also useful for configuring network
connections, determining network status, and diagnosing problems:
/sbin/ifconfig, /sbin/route, /bin/ping, /usr/sbin/traceroute.

These are the basic steps that you need to follow to configure PPP.
You must be logged in as root.

* Make sure that the serial port and modem are operating correctly.
Using a program like minicomm or kermit, you should be able to
send AT commands to the modem and receive the OK string in
response from the modem.
* Enter the primary and possibly secondary Domain Name Server IP
addresses in the /etc/resolv.conf file, using dotted quad
notation, with the nameserver label. For example:

order hosts,bind

The nameserver addresses in the example above are examples only.
They don't correspond to actual network hosts.
The first line, order hosts,bind, tells your networking software,
when it resolves network domain addresses, to first look in the
/etc/hosts file, and then use the bind service; i.e., the DNS
servers, which are specified on the lines that begin with
* Locate the chat script that PPP will use to dial the modem and
connect to your ISP. In many systems, this is either in the
/etc/chatscripts or /etc/ppp directory, and will be called
provider or something similar. You can store a chat script
anywhere, provided that you tell pppd to use it rather than the
default script. Refer to the chat and pppd manual pages, and the
information below, for details. Here is a sample chat script:

"" ATDT<your_isp's_phone_number>
ogin <your_user_name>
word <your_password>

This is a chat program for a simple, script based login. The chat
program uses the pair of strings on each line as a match/response
pair. When it starts, it sends the string
"ATDTyour_isp's_phone_number," where you have substituted the
actual phone number of course. It then waits for the string ogin
(a substring of the word login) and sends your user name. It then
waits for word (a substring of password) and sends your password.
If your ISP uses a different login and password prompts, and any
additional prompts, you will need to edit the script accordingly.
Again, refer to the chat manual page for details.
If your ISP uses PAP or CHAP authentication, you will need to edit
the pap-secrets or chap-secrets files in /etc/ppp directory as
well. Refer to the manual pages for these files, as well as the
instruction in the files themselves.
* The configuration of pppd, the program that maintains the actual
connection, is usually contained in two or three separate files.
The first is usually /etc/ppp/options, which contains options that
all of your system's PPP connections will use. (Yes, you can have
more than one; as many as your computer has serial ports,
Here is a sample /etc/ppp/options file:

# /etc/ppp/options

asyncmap 0

# ---<End of File>---

The options may be given on one line or each on a separate line.
Many options files are much longer, and come with a description of
each option. Here, the options mean, in order, don't remap any
characters between the PPP client and server; always use password,
PAP, or CHAP authentication when making a connection; use the
modem's hardware handshake lines for flow control; lock the serial
port when in use so no other programs can access it; and do not
use the IPX network protocol.
* For connection set-up on each individual serial port or PPP host,
there will either be an /etc/ppp/options.ttyS1, for example,
options file for /etc/ttyS1, or a file for your ISP in the
/etc/ppp/peers directory. The default is often called
/etc/ppp/peers/provider. Here is a sample of the default provider

connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"

There might be an explanation of these and other options in the
/etc/ppp/peers/provider file itself. You can also refer to the
pppd manual page for details. Briefly, they mean: do not use PAP
authentication for this connection; use the chat program and the
/etc/chatscripts/provider script, which is described above, to
dial the phone and log in; set the network default route to the
PPP connection (so when your network software needs to resolve an
network address that is not on your local machine(s), it will use
the PPP connection to the Internet); use /dev/ttyS1 as the serial
port for the connection; set the modem speed to 38400; and keep
the pppd daemon running even if the connection fails.
* That is all of the configuration you need. To actually start and
stop PPP, there are often /usr/bin/pon and /usr/bin/poff scripts
(in Debian), or something similar, and they are usually very
simple, and only contain the command:

$ /usr/sbin/pppd call ${1:-provider}

This will start pppd and use the call option to call the server
that you type on the command line, or the provider given in the
/etc/ppp/peers/provider file if you do not specify a remote
server. After making the call and logging in (about 30 seconds),
you should be able to use the /sbin/ifconfig program to determine
that the connection really did establish a PPP interface (the
first will be ppp0, the second will be ppp1, etc., depending on
how many simultaneous PPP connections you have. If something goes
wrong, you can look at the /var/log/ppp.log file to determine what
happened. You can also view the log as the connection is being
made, by "tailing" it in another window; that is, viewing it as
pppd logs the connection's status information. To do this, use the
command (again, as root):

$ tail -f /var/log/ppp.log

On some systems the PPP output is directed to /var/log/messages,
in which case your system may not have a dedicated PPP log file.

You should be also able to ping one of your ISP's domain names (e.g., and receive a response.

These are the most basic steps for configuring a PPP connection. You
will also need to take into account what other network connections may
be present (for example, if there's an Ethernet connection that has
already been assigned the default route), as well as various security
measures at your ISP's end. If you're having trouble making the
dial-up connection, usually the best way to determine what may be
going wrong is to use Seyon, minicomm, kermit, or some other program
to dial and log in manually to the ISP, and determine just exactly
what you have to do to log in, then duplicate that in the PPP scripts.

Most Linux documentation also has additional instructions for
configuring PPP connections. Refer to ("Where Can I Get Linux Material
by FTP?") ("Where Can I Get the HOWTO's and Other Documentation?")

8.11. What Version of Linux and What Machine Name Am I Using?


$ uname -a

8.12. What is a "core" File?

A core file is created when a program does something, "wrong," due to
a bug, or which violates the operating system or hardware protection
mechanisms. The operating system kills the programs and creates a core
file that programmers can use to figure out what went wrong. It
contains a detailed description of the state that the program was in
when it died.

If would like to determine what program a core file came from, use the
file command, like this:

$ file core

That will tell you the name of the program that produced the core
dump. You may want to write the maintainer(s) of the program, telling
them that their program dumped core.

[Eric Hanchrow]

8.13. How Can I Enable or Disable Core Dumps?

By using the ulimit command in bash, the limit command in tcsh, or the
rlimit command in ksh. See the appropriate manual page for details.

This setting affects all programs run from the shell (directly or
indirectly), not the whole system.

If you wish to enable or disable core dumping for all processes by
default, you can change the default setting in linux/sched.h--see the
definition of INIT_TASK, and look also in linux/resource.h.

PAM support optimizes the system's environment, including the amount
of memory a user is allowed. In some distributions this parameter is
configurable in the /etc/security/limits.conf file. For more
information, refer to the Linux Administrator's Security Guide.
("Where Can I Get the HOWTO's and Other Documentation?")

8.14. How Do I Upgrade/Recompile My Kernel?

See the Kernel HOWTO or the README files which come with the kernel
release on and mirrors.
(See "Where Can I Get Linux Material by FTP?") You may already have a
version of the kernel source code installed on your system, but if it
is part of a standard distribution it is likely to be somewhat out of
date (this is not a problem if you only want a custom configured
kernel, but it probably is if you need to upgrade.)

With newer kernels you can (and should) make all of the following
targets. Don't forget that you can specify multiple targets with one

$ make clean dep install modules modules_install

Also remember to update the module dependencies.

$ depmod -a

This command can be run automatically at boot time. On Debian/GNU
Linux systems, the command is part of the /etc/init.d/modutils script,
and can be linked appropriately in the /etc/rcx.d/ directories. For
more information on depmod, see the manual page.

Make sure you are using the most recent version of the modutils
utilities, as well as all other supporting packages. Refer to the file
Documentation/Changes in the kernel source tree for specifics, and be
sure to consult the README file in the modutils package.

Remember that to make the new kernel boot you must run lilo after
copying the kernel into your root partition--the Makefile in some
kernels have a special zlilo target for this; try:

$ make zlilo

On current systems, however, you can simply copy the zImage or bzImage
file (in arch/i386/boot/ to the /boot/ directory on the root file
system, or to a floppy using the dd command. Refer also to the
question, How do I get LILO to boot the kernel image?

Kernel version numbers with an odd minor version (ie, 1.1.x, 1.3.x)
are the testing releases; stable production kernels have even minor
versions (1.0.x, 1.2.x). If you want to try the testing kernels you
should probably subscribe to the linux-kernel mailing list. ("What
Mailing Lists Are There?")

The Web site has lots of information and
links to other sites that provide information about Linux kernel

Also refer to the questions, "I Upgraded the Kernel and Now My PCMCIA
Card Doesn't Work." and "How Do I Get LILO to Boot the Kernel Image?"

8.15. Can I Have More than 3 Serial Ports by Sharing Interrupts?

Yes, but you won't be able to use simultaneously two ordinary ports
which share an interrupt (without some trickery). This is a limitation
of the ISA Bus architecture. See the Serial HOWTO for information
about possible solutions and workarounds for this problem.

8.16. How Do I Configure Emacs to Start with My Default Settings?

Create a file in your home directory named .emacs with the Emacs Lisp
commands that you want to run every time Emacs starts up. You won't
see the file in the directory listing. (The leading '.' tells ls not
to display it, unless you use the -a command line switch with ls.)

Any kind of Emacs Lisp statement will work in the .emacs file,
including entire defuns. Emacs uses lisp variables and statements
extensively, and many of the editing functions are written in Emacs
Lisp. For example, to enable word wrapping whenever you edit a file
that ends with .txt, add the following statement. This is from the
Emacs Texinfo help document ( F1-i, then m Emacs Return):

(add-hook text-mode-hook
'(lambda () (auto-fill-mode 1)))

This adds a statement that calls a hook function whenever a text
editing mode is entered for that buffer. The value of text-mode-hook,
which is a variable, to auto-fill-mode, which is a function.

If you want to turn off the menu bar at the top of each Emacs frame,
add this statement:

(menu-bar-mode -1)

And if you want to include an Emacs Lisp program that someone has
written, like msb.el (an enhanced, pop-up buffer menu), make sure the
lisp file is in a directory where Emacs can find it (usually it will
be named Site-lisp), and add these statements in the .emacs file:

(require 'msb)
(msb-mode 1)

Most tasks have several possible solutions in Emacs Lisp. Any task
that can be programmed in Emacs Lisp is valid in the .emacs file. For
more information, consult the Texinfo documentation. There is also a
FAQ list for Emacs (refer to What other FAQ's are there for Linux? ).

8.17. How Do I Make a Rescue Floppy?

Make a file system on it with bin, etc, lib and dev
directories--everything you need. Install a kernel on it and arrange
to have LILO boot it from the floppy (see the LILO documentation, in

If you build the kernel (or tell LILO to tell the kernel) to have a
RAM disk the same size as the floppy the RAM disk will be loaded at
boot time and mounted as root in place of the floppy.

See the Bootdisk HOWTO.

8.18. How Do I Remap My Keyboard to UK, French, Etc.?

For recent kernels, get /pub/Linux/system/Keyboards/kbd-0.90.tar.gz
from Make sure you get the appropriate
version; you have to use the right keyboard mapping package for your
kernel version. For older kernels you have to edit the top-level
kernel Makefile, in /usr/src/linux/. You may find more helpful
information in The Linux Keyboard and Console HOWTO, by Andries
Brouwer, at

8.19. How Do I Get NUM LOCK to Default to On?

Use the setleds program, for example (in /etc/rc.local or one of the
/etc/rc.d/* files):

for t in 1 2 3 4 5 6 7 8
setleds +num < /dev/tty$t > /dev/null

setleds is part of the kbd package ("How do I remap my keyboard to UK,
French, etc.? "). Alternatively, patch your kernel. You need to
arrange for KBD_DEFLEDS to be defined to (1 << VC_NUMLOCK) when
compiling drivers/char/keyboard.c.

8.20. How Do I Set (Or Reset) My Initial Terminal Colors?

The following shell script should work for VGA consoles:

for n in 1 2 4 5 6 7 8; do
setterm -fore yellow -bold on -back blue -store > /dev/tty$n

Substitute your favorite colors, and use /dev/ttyS$n for serial

To make sure they are reset when people log out (if they've been

Replace the references to getty (or mingetty or uugetty or whatever)
in /etc/inittab with references to /sbin/mygetty.

setterm -fore yellow -bold on -back blue -store > $1
exec /sbin/mingetty $@

[Jim Dennis]

8.21. How Can I Have More Than 128Mb of Swap?

Use several swap partitions or swap files--Linux supports up to 16
swap areas, each of up to 128Mb.

Very old kernels only supported swap partition sizes up to 16Mb.

Linux on machines with 8KB paging, like Alpha and Sparc64, support a
swap partition up to 512MB. The 128MB limitation comes from
PAGE_SIZE*BITSPERBYTE on machines with 4KB paging, but is 512KB on
machines with 8KB paging. The limit is due to the use of a single page
allocation map.

The file mm/swapfile.c has all of the gory details.

[Peter Moulder, Gordon Weast]

9. Miscellaneous Information and Questions Answered

9.1. How Do I Program XYZ Under Linux?

Read the manuals, or a good book on Unix and the manual pages (type
man man). There is a lot of GNU Info documentation, which is often
more useful as a tutorial. Run Emacs and type F1-i, or type info info
if you don't have or don't like Emacs. Note that the Emacs libc node
may not exactly describe the latest Linux libc, or GNU glibc2. But the
GNU project and LDP are always looking for volunteers to upgrade their
library documentation.

Anyway, between the existing Texinfo documentation, and the manual
pages in sections 2 and 3, should provide enough information to get

As with all free software, the best tutorial is the source code

The latest release of the Linux manual pages, a collection of useful
GNU Info documentation, and various other information related to
programming Linux, can be found on

9.2. What's All This about ELF? glibc?

See the ELF HOWTO by Daniel Barlow--note, this is not the file
move-to-elf, which is a blow-by-blow account of how to upgrade to ELF

Linux has two different formats for executables, object files, and
object code libraries, known as, "ELF." (The old format is called
"a.out.") They have advantages, including better support for shared
libraries and dynamic linking.

Both a.out and ELF binaries can coexist on a system. However, they use
different shared C libraries, both of which have to be installed.

If you want to find out whether your system can run ELF binaries, look
in /lib for a file named, "" If it's there, you probably
have ELF libraries. If you want to know whether your installation
actually is ELF you can pick a representative program, like ls, and
run file on it:

-chiark:~> file /bin/ls
/bin/ls: Linux/i386 impure executable (OMAGIC) - stripped

valour:~> file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, stripped

There is a patch to get 1.2.x to compile using the ELF compilers, and
produce ELF core dumps, at You
do not need the patch merely to run ELF binaries. 1.3.x and later do
not need the patch at all.

The GNU glibc2 libraries are essentially more recent versions of ELF
libraries that follow most of the same processes for dynamic linking
and loading. Upgrade information is contained in ("How Do I Upgrade
the Libraries without Trashing My System?")

9.3. How Do I Determine What Packages Are Installed on My System?

For distributions that use RPM format packages, use the command:

$ rpm -qa

You need to be logged in as root. You can save the output to a text
file for future reference, a command like:

$ rpm -qa >installed-packages

For Debian systems, the equivalent command is:

$ dpkg -l

9.4. What Is a .gz file? And a .tgz? And .bz2? And... ?

.gz (and .z) files are compressed using GNU gzip. You need to use
gunzip (which is a symlink to the gzip command that comes with most
Linux installations) to unpack the file.

.taz, .tar.Z, and .tz are tar files (made with tar) and compressed
using compress. The standard *nix compress is proprietary software,
but free equivalents like ncompress exist.

.tgz (or .tpz) is a tar file compressed with gzip.

.bz2 is a file compressed by the more recently introduced (and
efficient) bzip2.

.lsm is a Linux Software Map entry, in the form of a short text file.
Details about the LSM project and the LSM itself are available in the
subdirectory on

.deb is a Debian Binary Package--the binary package format used by the
Debian GNU/Linux distribution. It is manipulated using dpkg and
dpkg-deb (available on Debian systems and from

.rpm is a Red Hat RPM package, which is used in the Red Hat and
similar distributions.

The file command can often tell you what a file is.

If you find that gzip complains when you try to uncompress a file, you
probably downloaded it in ASCII mode by mistake. You must download
most things in binary mode--remember to type "binary" as a command in
FTP before using, "get," to download the file.

9.5. What Does VFS Stand For?

Virtual File System. It's the abstraction layer between the user and
real file systems like ext2, Minix and MS-DOS. Among other things, its
job is to flush the read buffer when it detects a disk change on the
floppy disk drive.

VFS: Disk change detected on device 2/0

9.6. What is a BogoMip?

"BogoMips" is a combination of Bogus and Mips. MIPS stands for
(depending on who you ask) Millions of Instructions per Second, or
Meaningless Indication of Processor Speed.

The number printed at boot time is the result of a kernel timing
calibration, used for very short delay loops by some device drivers.

According to the BogoMips mini-HOWTO, the rating for your machine will

Common BogoMips Ratings

Processor BogoMips Comparison
Intel 8088 clock * 0.004 0.02
Intel/AMD 386SX clock * 0.14 0.8
Intel/AMD 386DX clock * 0.18 1 (definition)
Motorola 68030 clock * 0.25 1.4
Cyrix/IBM 486 clock * 0.34 1.8
Intel Pentium clock * 0.40 2.2
Intel 486 clock * 0.50 2.8
AMD 5x86 clock * 0.50 2.8
Mips R4000/R4400 clock * 0.50 2.8
Nexgen Nx586 clock * 0.75 4.2
PowerPC 601 clock * 0.84 4.7
Alpha 21064/21064A clock * 0.99 5.5
Alpha 21066/21066A clock * 0.99 5.5
Alpha 21164/21164A clock * 0.99 5.5
Intel Pentium Pro clock * 0.99 5.5
Cyrix 5x86/6x86 clock * 1.00 5.6
Intel Pentium II/III clock * 1.00 5.6
Intel Celeron clock * 1.00 5.6
Mips R4600 clock * 1.00 5.6
Alpha 21264 clock * 1.99 11.1
AMD K5/K6/K6-2/K6-III clock * 2.00 11.1
UltraSparc II clock * 2.00 11.1
Pentium MMX clock * 2.00 11.1
PowerPC 604/604e/750 clock * 2.00 11.1
Motorola 68060 clock * 2.01 11.2
Motorola 68040 Not enough data (yet).
AMD Athlon Not enough data (yet).
IBM S390 Not enough data (yet).

If the number is wildly lower, you may have the Turbo button or CPU
speed set incorrectly, or have some kind of caching problem (as
described in ("When I Add More Memory, the System Slows to a Crawl.")

For values people have seen with other, rarer, chips, or to calculate
your own BogoMips rating, please refer to the BogoMips Mini-HOWTO, on ("Where Can I Get the HOWTO's and Other

[Wim van Dorst]

9.7. What Online/Free Periodicals Exist for Linux?

There are a number of recent additions to the list of periodicals
devoted to Linux and free software:

* geek news. Headlines for articles about
Linux, like the comp.os.linux.announce and Techweb postings, and
general interest, like Associated Press stories.
* Linux Gazette. This is the
longest-running of the on-line periodicals, and the only one that
publishes source code.
* Linux Today. News and opinion related
to the Linux community, updated daily.
* Linux Weekly News. News about the Linux
community, updated weekly.
* Slashdot. News about the free software
community and culture.
* Freshmeat. Notices of new and updated
software for Linux and other free OS's.

Please send additions to this list to the FAQ maintainer.

[Jim Dennis, Robert Kiesling]

9.8. How Many People Use Linux?

Linux is freely available, and no one is required to register with any
central authority, so it is difficult to know. Several businesses
survive solely on selling and supporting Linux. Linux news groups are
some of the most heavily read on Usenet. Accurate numbers are hard to
come by, but the number is almost certainly in the millions.

However, people can register as Linux users at the Linux Counter
project, which has been in existence since 1993. In August, 1998, the
project counted more than 70,000 users.

Visit the Web site at and fill in the
registration form. If you don't want to use the Web, send E-mail to with the subject line, "I use Linux at home,"
or "I use Linux at work."

The current count is posted monthly to comp.os.linux.misc, and is
always available from the Web site.

[Harald Tveit Alvestrand]

9.9. How Many People Use Linux? (Redux.)

In 1999, International Data Corporation released its first commercial
forecast of Linux sales. The report quantifies Linux vendor sales in
1996, 1997, and 1998, and forecasts through the year 2003.

To obtain the report, contact IDC at Their Web site

9.10. How Should I Pronounce Linux?

This is a matter of religious debate, of course!

If you want to hear Linus himself say how he pronounces it, download or from If you have a sound
card or the PC-speaker audio driver you can hear them by typing

$ cat >/dev/audio

The difference isn't in the pronunciation of Linux but in the language
Linus uses to say, "hello."

For the benefit of those who don't have the equipment or inclination:
Linus pronounces Linux approximately as Leenus, where the "ee" is
pronounced as in "feet," but rather shorter, and the "u" is like a
much shorter version of the French "eu" sound in "peur" (pronouncing
it as the "u" in "put" is probably passable).

9.11. Where Can I Find Out about Free Software Projects?

The Free Software Bazaar lists current openings to do work on free
software projects, and tells how to sponsor free software projects and
how to make money writing free software. Its URL is

Another project listing in the making is



Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
making new part. D!lbert Linux - Newbie 8 08-17-2004 08:44 AM
2-part question. unixfreak Mandriva 4 08-16-2004 09:48 AM
Two Part Question zuessh Linux - General 2 02-11-2003 01:03 PM
FAQ's part 6 devnull LQ Suggestions & Feedback 0 03-07-2001 05:40 AM
FAQ's part 2 (was:A doc to help starters) devnull LQ Suggestions & Feedback 0 03-07-2001 05:32 AM > Forums > > LQ Suggestions & Feedback

All times are GMT -5. The time now is 03:06 AM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration