The
Linux zone of
developerWorks
contains hundreds of articles, tutorials, and tips to help developers with
Linux programming and application development, as well as
Linux system administration.
But if you are trying to find your way in a new topic, all of that
information can be overwhelming. This New to Linux page provides an
overview for readers who would like to learn about Linux but don't know
where to start. It places all the Linux basics in context and ties
together relevant developerWorks articles, tutorials, and tips, as
well as IBM learning services education, workshops, and IBM products for
your further investigation.
In the simplest terms, Linux is an operating system. It was created in
October 1991 by a University of Helsinki student named Linus Torvalds
(Linux stands for Linus's UNIX). Linux itself is actually just the kernel;
it implements multitasking and multiuser functionality, manages hardware,
allocates memory, and enables applications to run.
The average user will never be interested enough in any operating system to
want to know about things like kernel internals. Only the truly dedicated
-- those who have no personal lives, or those who are being paid to do
this kind of work -- are going to want to explore these intricacies.
But even if you never descend to the giddy depths of kernel hacking
yourself, it is reassuring to know that you can easily hire a contractor
or firm to do this work for you; to commission such modifications for a
proprietary system is very often a more difficult and more costly
undertaking.
For the novice to Linux programming, probably the most important thing about the kernel that
you need to remember is that odd-numbered kernel versions (in other words,
2.3, 2.5, 2.7) are the experimental, development kernel. Stable, release
kernels carry even numbers (in other words, 2.4, 2.6, 2.8).
A typical Linux distribution includes the Linux kernel, but it also
contains many application programs and tools. For the most part, many
system- and user-level tools found in a Linux distribution come from the
Free Software Foundation's GNU project (GNU standing for "GNU's Not
UNIX").
Both the Linux kernel and the GNU tools suite are released under the GNU
General Public License, or GNU GPL. If you are not already familiar with
the GNU GPL, the best way to begin to understand it is to go and read it.
At the risk of summarizing away some important parts, the GNU GPL is a way
of setting computer code free so that the people who use that code may
meddle and experiment with it to their hearts' content.
We highly recommend this interesting writeup of
Linux
history
from Linus Torvalds' former officemate, Lars Wirzenius.
Linux Online offers non-partisan
Linux news and information.
Linux at IBM's
Linux Line
offers Partner news, Linux learning resources, success stories, and
new development -- all with an IBM Linux focus.
Linux is not UNIX, although it is intended to be very UNIX-like.
IBM has offerings in both the Linux and the UNIX spheres—as well as many
others. Invented at AT&T Bell Labs in 1969, UNIX (the name is a play on
the earlier "Multics" operating system) is a robust, flexible, and
developer-friendly computing environment. Written originally for the
Digital Equipment Corporation (DEC) family of PDP microcomputers, this
most popular of multi-user, general-purpose operating systems has taken
over roles in all areas of computing -- even those once held by
mainframes.
IBM has offerings in both the Linux and the UNIX spheres -- as well as many
others.
Some twenty-odd years into its history, UNIX began to be eclipsed -- in
some of its roles, anyway -- by Linux. Linux is not UNIX; it is merely
very UNIX-like. For some jobs, you want Linux -- for others, you still
want UNIX. UNIX and Linux play very well together, and well-written
programs are extremely easy to port between the two systems. For more
information about UNIX at IBM, please see some of the following sites.
On the software front, you can learn more about
IBM's AIX 5L UNIX
operating system.
From its earliest days IBM has been known as a world-class hardware
vendor. Check out the features offered in
IBM
pSeries UNIX computers
-- designed to most powerfully run Linux as well as UNIX.
The
IBM developerWorks
eServer zone
has articles, product help, and resources covering IBM server hardware
from Intel-based to mainframe, and software from Linux and UNIX to
z/OS.
The z/OS UNIX System group offers a page of
free UNIX tools and toys
from IBMers and the community.
To learn more about Multics (Multiplexed Information and Computing
Service), visit the
Multics home page.
Because it is free software, licensed under the GNU General Public License,
Linux obviates the need for programmers to keep reinventing the operations
layer with each new project. To wax metaphorical, the GNU family of tools
provide royalty-free bricks and mortar with which to begin building
independent projects. Critics of free software often voice fears that the
freedoms and low cost of free software will lead to economic disaster for
the computing sector. However, it is just as likely -- if not more likely
-- that free software will do for the world of computing what Gutenberg's
printing press did for the world of Letters.
The
GNU General Public
License
explains what freedoms and responsibilities are mandated to users of
free software.
You can read more about the "philosophy" of free software -- and find
a great deal of documentation and software packages available for
download -- at the
Free Software Foundation (FSF) Web
site.
The
IBM
Public License (IPL)
is also a free software license. It was created with the help of FSF
founder Richard Stallman.
What you want out of your Linux system will determine which Linux system
you want and how many layers of complexity you need to understand before
you begin to work with it.
Linux is an excellent platform on which to learn Linux programming,
kernel hacking, or even UNIX programming; many tools and applications are available
to play games, to do desktop publishing, or just to hang out doing e-mail
and Web browsing.
It is also an excellent platform for working systems, both open and closed,
because it is so heavily customizable for free. Linux is a popular
platform for everything from middleware to embedded computing and
clusters, to parallel supercomputers and gadgets. IBM has been involved in
projects to manufacture cash registers that run on Linux, as well as the
Linux wristwatch. Other developers have used Linux on such devices as cell
phones, Sony PlayStation, TiVo, and the Sharp Zaurus.
While the GNU General Public License requires altered code to be released
to the customers who use it, it is not required that all altered code be
released to the general public (this is a key point that some critics of
free software fail to grasp). Indeed, in the case of Linux-based cash
registers, it would in all likelihood be a security risk to release the
code to a wide audience. The GNU GPL merely requires that the modified
code be made available to the customers who use it.
The
IBM developerWorks
Linux zone
is an indispensable resource for tutorials and articles covering
everything from Linux basics to advanced programming and deployment.
The proof-of-concept
Linux on a wristwatch
project was a very popular and well-received effort by IBM Research.
Learn about exciting Linux projects and on-demand computing from the
Linux at IBM portal page.
IBM Global Services offers consulting and support; its services
include everything from implementing new installations to migrating or
updating old ones. Get a feel for what IGS is doing in the Linux
sphere at the
Linux services
page.
If you are completely new to Linux, or if you are using Linux as a desktop
operating system, you need to learn at least some basics about system
administration and security. Unlike commercial personal operating systems
that attempt to automate such operations, Linux does not promise to hold
your hand or to clean up after you: you have to take care of the system
yourself. Luckily, basic maintenance and basic security are pretty easy.
In many ways, Linux and UNIX administration is today much easier than
administration for popular commercial personal operating systems because
it is much more transparent.
While Linux does have several windowing environments that allow you to
perform administration, the most straightforward way to control the system
is at the command line. Built in to the structure of the command-line
environment are dozens of commands and several text-based help systems.
There are a great many resources on the Web and in the real world to help
you get started with Linux. There are Web sites, articles, and books
devoted to the subject, and Linux User Groups (also known as LUGs) meet in
cities and countries around the world -- and are well-known for being very
friendly even to very new users.
The ongoing developerWorks series of
Linux skill-building
tutorials
walks you through the fundamentals of Linux system administration.
You can transition from a Windows environment to Linux by transferring
many of your existing skills. Our
"Windows-to-Linux roadmap"
is a nine-part transitioning guide that paves the way.
The IBM developerWorks Linux zone offers many
standalone and serial tutorials
with a focus on basics; from compiling the Linux kernel and compiling
and installing software to partitioning and backing up your Linux
systems.
Linux is an excellent choice as a programming platform. It is GCC
compliant, which means that you can use the GNU Project's excellent suite
of programming and debugging tools -- absolutely free, and with all of the
freedoms that the GNU GPL guarantees. Commercial programming packages,
like commercial operating systems, can cost a great deal of money. True,
they are often needed for one project or another and can be well worth the
cost, but for a beginner or a learner -- and for many professionals --
free software is simply irreplaceable. If you are using Linux as a
development platform, do not skip first learning administration and
security. It is a foolish programmer indeed who is not master of his or
her own computer.
To get trial IBM software for Linux, you can
download trial products
that run on Linux directly from developerWorks.
IBM Redbooks on Linux are
developed by IBM's International Technical Support Organization (ITSO)
and explore a wide range of topics for Linux developers.
Linux is by nature standards compliant. Linux developers as a rule place
very high importance on keeping the operations layer, as well as those
built atop it, open, interoperable, and standards friendly.
Often associated strongly with UNIX,
The
Open Group is
a vendor-neutral, technology-neutral, international consortium whose
goal is secure and reliable interoperability across the computing
world.
The IEEE's Portable Application Standards Committee (PASC) is
responsible for the POSIX
family of UNIX standards.
The
Requests for Comments (RFC) document
series
is a set of technical and organizational notes about the Internet.
Maintained by the IETF Secretariat, the RFC publication process plays
an important role in the Internet standards process.
In addition to steadfast stalwarts like Fortran and C/C++, many scripting
and other computer languages are at home on (or were even designed to work
best with) Linux. The most popular include Perl, Python, PHP, and Tcl.
Dynamic new technologies such as the Java technology and XML run swimmingly
on Linux, as do any number of more esoteric programming languages, from
Logo and Rebol to Smalltalk and many more.
The GCC home page at
GNU offers a wealth of free tools and support.
If you want to use Linux as a platform for a very advanced application or
application set, you will be interested in aspects of the system such as
kernel hacking, the differences between various filesystems, and other
nitty-gritty details.
Another skill set that is often needed for high-end applications (or games)
is fine-tuning a Linux machine, cluster, or network for optimum
performance. This includes expertise in things such as multiprocessing,
threading, clusters, and other arcane but sophisticated points of system
administration. Understanding these aspects of Linux aren't quite as
gritty as actual kernel hacking, but can nonetheless get pretty hairy.
IBM Learning Services offers classes that cover everything from the basics
to development to highly specialized skills—as well as
certification (more about this later). IBM Developer solutions offers
articles and howtos on IBM products, and the greater IBM Web site offers
many resources, many if not most of which also run on Linux. And IBM
developerWorks offers articles, tutorials, and resources on Linux as well
as several other open or free technologies including XML, Wireless, Web
services, Java technology, and Grid computing.
As a Linux developer, your best source for ongoing training is the
developerWorks
Linux
zone,
where you'll find hundreds of
how-to tutorials and articles
for all skill levels.
Certification programs for Linux include consortium programs as well as
independent skills tests and company-sponsored certification. IBM
developerWorks and IBM Training offer certification tracks for building
Linux expertise.
The
Linux Professional Institute (LPI)
certifies Linux system administrators at three levels.
To attain certification level 1, you must pass LPIC-1 exams 101 and 102.
To attain certification level 2, you must pass LPIC-2 exams 201 and 202.
To attain certification level 3, you must pass LPIC-3 exam 301 ("core") and
have an active certification level 2. You may also need to pass additional
specialty exams at the senior level.
Linux is a superior operating system on which to run standard
applications—from office applications such as word processors and
spreadsheets; to database systems; to Web publishing and serving
environments. IBM Products such as DB2, Lotus, Tivoli, and WebSphere all
run on Linux, and IBM is not the only industry leader to recognize that
Linux is an excellent platform for middleware. Though misunderstood and
very often maligned—at least, among the self-proclaimed
digerati—middleware is an essential (and for many computer users,
the essential) reason for having computers around in the first
place. The open nature of Linux allows middleware vendors to fine-tune
solutions to meet users' needs in ways that no closed system allows.
IBM's billion-dollar support of Linux makes headlines; its support of
Linux developers aims to make the job of applications programming
easier. Whether yours is a mundane or a cutting-edge project, check
out the
IBM Middleware Available on Linux
matrix
and other resources at the
Linux at IBM site.
To get trial IBM software for Linux, you can
download trial products
that run on Linux directly from developerWorks.
Rational
software
is building a comprehensive life cycle software development solution
for Linux, leveraging Eclipse as the tool platform, which can be used
by organizations to build better software in less time.
The
DB2 for
Linux
Web site offers information, downloads, and links to learn more about
IBM's premier database system on Linux.
The
WebSphere
Portal zone
will answer all of your questions about application serving and
infrastructural middleware.
Best known for its messaging and collaboration capabilities,
Lotus software suite's integrated
functionality also allows for team conferencing, e-learning, knowledge
management, and more.
Tivoli technologies
extend systems management and integrate Linux machines with other IT
systems.
Linux's openness and flexibility lend its use to work in laboratories and
other research facilities on the bleeding edge of revolutionary
technological change. Research at IBM includes all areas of information
technology, from physics and cognitive science to leading-edge application
research and more. But researchers at IBM are also involved, in many
instances, in pure science. At IBM as elsewhere, Linux is frequently in
use in these settings.
Linux can easily be clustered or customized for highly original experiments
or prototypes, simulations, or tests; and the vast array of free software
tools that Linux was created to work with can be used in the same creative
way. Even with all of the exciting new technologies that are being
developed today—from Grid computing and wireless voice
applications to artificial intelligence and Quantum computing—the
potential and promise of the computing age in which we live is still
largely untapped. Linux's robust and open flexibility means that it will
remain at the forefront of the development frontier for years to come.
IBM Research explores
everything from genetics to nanotechnology, and artificial
intelligence to quantum teleportation. Keep up with their latest
efforts on the
IBM Research news
page.
The
IBM
Academic Initiative
partners with universities to provide academic and research offerings
as well as resources and benefits in subjects ranging from
Linux
to
Life Sciences.