 | Level: Introductory Chris Walden (dwinfo@us.ibm.com), e-business Architect, IBM
11 Nov 2003 IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows® to a Linux® environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. He begins by illustrating some of the differences and similarities between Linux and Windows, and showing you how to stop rebooting all the time.
You have started to make the change from Windows to Linux. This may have
been your decision, or may have come from "on
high." In either case you are looking at the prospect of changing
your procedures and tools from something very familiar to
something perhaps completely unknown. Furthermore, you may
need to train others on how to comfortably manage Linux. Administration is
more than just following procedures. There is a creative side to
successfully managing a computing environment. Making this transition can
feel like changing from being an accomplished oil painter to doing welding
sculpture.
The good news is that the open standards that drive Linux are the same
standards that formed the foundation for your Windows administration.
Some of the buzzwords are different, and the tools are a little different,
but the underlying concepts are the same. The better news is that as you
become accustomed to the Linux approach to doing things, you will have an
even larger toolset to work with to control and maintain your environment.
Linux's strength is in its stability and flexibility. As you learn to
think in Linux, you'll accomplish more, automate more, and do more
remotely.
Linux is a little like Windows
Before discussing how Linux is different from Windows, let's explore the overlaps where Linux and
Windows are similar.
Users and groups
Both Linux and Windows are multi-user operating systems. Both can be used
by many different users, and give each user a separate environment and
resources. Security is controlled based on the user's identity. Resource
access can also be controlled by group membership, making it easier to
work with rights for large numbers of users without having to touch each
individual account.
Users and groups can be centralized into a single repository, allowing
multiple servers to share the same user and authentication data.
File system
Both Linux and Windows can work with a wide variety of file systems. File
resources can be shared with a variety of clients through NetBIOS, FTP, or
other protocols. Individual file systems can be flexibly incorporated,
allowing the administrator to choose where and how they will be accessed.
Ports and devices
Physical device ports such as parallel, serial, and USB are supported.
Various controllers, such as IDE and SCSI, are also supported. Linux can
support a good deal of standard hardware "off the shelf."
Networking
Linux and Windows both support a number of networking protocols, such as
TCP/IP, NetBIOS, and IPX. Both support a wide variety of network adapters.
Both provide the ability to share resources, such as files and
printing, through the network. Both provide capability to perform network
services, such as DHCP and DNS.
Services
Linux and Windows both have services, applications that run in the
background to provide some function to the system and to computers that
remotely call the service. These programs can be controlled individually
and be started automatically when the system boots. (Note: In Linux
these applications are often referred to as daemons, a legacy of its
Unix roots.)
Linux is different from Windows
Even though there are several similarities between the technologies,
there are some key differences between the style of working in Windows and
working in Linux. These differences are subtle until you get used to
them, but they are key concepts to thinking in Linux.
Linux is built for the network more than printing
When Windows was first built, it was mostly a paper world. One of the
beautiful things about Windows was that everything you did was pretty to
look at and easy to print. This beginning has affected the evolution of
Windows.
In the same manner, Linux has been affected by its origins. Linux
was designed from the beginning to live on the network. It was inspired by
the Unix operating system, so there was a simplicity, some might say
terseness, to its command design. Since plain text works well across a
network, text has always been the base for Linux configuration and data.
For those accustomed to a graphical environment, a Linux server
might appear primitive at first glance. But Linux development has focused
for most of its life more on what was under the hood. Linux has very
sophisticated networking, scripting, and security capabilities that are
active even in a text-only environment. Some of the seemingly bizarre
steps required to perform some tasks are inexplicable until you realize
that Linux expects to perform these tasks on a network in cooperation with
other Linux systems. Linux has very capable automation capabilities and
can be programmed to perform very detailed tasks using nothing more than
the equivalent of batch file programming. Linux's text-based nature is a
large part of this capability.
Optional GUI
Linux has a graphical component. Linux is capable of working with
high-end graphical adapters and displays to do some truly stunning
work. In fact, many digital effects artists do their design work on Linux
workstations, where they would have used IRIX systems in the past.
However, the graphical environment is not integral to Linux. It is a layer
on top of the running system. That means that you run the GUI only if and
when you need it. If your system spends most of its time serving up Web
applications, then you can turn off the overhead of the graphical
interface and use that memory and CPU for your service. If you need to do
work on the system in a GUI, you can turn it on for your work and
turn it off when you're done.
There are graphical tools for managing Linux, as well as tools for
general office work, such as e-mail, Web-browsing, and document processing.
However, in Linux, the graphical administration tools are normally front
ends for the console (command-line) tools. That means that anything you
can do with a graphical tool, you can also do with a console command.
Also, using a graphical tool doesn't prevent you from making manual changes
to a configuration file. The value of this may not be immediately
apparent. But think about it. If anything done from a graphical
administration tool can be done with a console command, that means that
those tasks can also be scripted. Scripted commands can become automated
tasks. Linux provides the best of both worlds and doesn't force you to
work with only text or GUI. You choose the method that's best for your
task.
Configuration files in Linux are human-readable text files. This is
similar to the INI file of Windows past. This is a philosophical
difference from the Windows Registry approach. Configuration files are
generally provided for individual applications, and they are usually kept
isolated from other configurations. However, most configuration files
live in a single place on the directory tree (/etc), so there is a logical
single place to look. Text file configuration makes it easy to back up,
examine, and edit configurations without using any special system tools.
Filename extensions
Linux does not use filename extensions to identity a file's type.
Rather, Linux looks at the header contents of a file to identity the type.
You can still use filename extensions for human-readability, but Linux
doesn't care. That said, some applications, such as a Web server, may use
naming conventions to identify file types, but that is a factor of the
individual applications.
Linux uses file access rights to determine if a file is an executable.
Any file can be given executable status, so programs and scripts can be
identified as executable by the creator or administrator. One clear
advantage to this is security.
An executable file saved onto the system cannot necessarily be automatically executed, a feature that thwarts many script viruses.
 |
What's the kernel?
Linux is actually just the kernel; it implements multitasking and multiuser functionality, manages hardware, allocates memory, and enables applications to run.
For the beginner, 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).
|
|
Rebooting is a last resort
If you have been using Windows for a long time, you are accustomed to
rebooting the system for many reasons, from software installation to
correcting problems with a service. This is a habit you will need to
change to start thinking in Linux. Linux tends to be rather Newtonian in
nature. Once set in motion, it will tend to stay in motion until it is
acted upon by an outside force, such as a hardware failure. In fact, the system design of Linux
prevents applications from corrupting the kernel, which is why it doesn't need frequent reboots (in contrast to Windows system design). So except for
the Linux kernel, you can install, start, stop, and reconfigure software without having to reboot the system.
If you do reboot your Linux system, it
will not likely change the behavior, and can make a problem worse.
Learning to work with the Linux services and run levels is key to successful troubleshooting.
Of everything you will learn going into
Linux, overcoming the reboot habit will probably be the hardest.
However, the good news is that this allows you to do a lot of work
remotely in Linux. As long as some basic network services are running,
you can probably get into the system. Also, if you are
having problems with a particular service on a system, you can let the
others run while you continue to troubleshoot the problem. When you are
consolidating several services onto a single system, this is a critical
difference.
Commands are case sensitive
All Linux commands and
options are case sensitive. For example, -R is different from -r, and
will do different things. Console commands are almost always
lowercase. We'll cover commands in more detail in "Part 2. Console crash course."
What should I be thinking about Linux?
The transition from administering Windows to Linux is not trivial.
However, as a Windows administrator, you already have many advantages.
Much of your understanding of how computing works will carry over.
Success as a Linux administrator will be a matter of identifying the
differences and adjusting your habits.
Many of the differences between Linux and Windows are advantageous.
Overhead from an idle GUI can be reclaimed for services. Tasks can be
scripted and automated. Configuration files are text based and
human editable. You do not have to reboot the system for most tasks. In
fact, you should overcome your instinct to reboot.
Resources Learn
-
Read the other installments in this Windows-to-Linux roadmap (developerWorks, November 2003).
-
More information on transitioning to Linux awaits you on the developerWorks New to Linux page.
-
Find more resources for Linux developers in the developerWorks Linux zone, including our newest how-to tutorials.
-
Hone your skills in Linux basics and systems administration with our certification exam study guides. Whether you choose to take the exams or not, our Linux skill-building tutorial series will immerse you in Linux fundamentals as well as advanced topics.
-
Learn how to acquire kernel source, configure and boot your new kernel, add a feature, fix a flaw, or just have fun tinkering with operating system source code in our Hacking the Linux kernel tutorial series. Hack and be free.
-
IBM developerWorks technical events and Webcasts are a great way to learn more about Linux as well as IBM products that run on Linux.
-
The Linux at IBM site offers software, links, end-to-end Linux solutions, and more.
-
The Linux Documentation Project is a repository of Linux documentation including documents about individual software, HOWTO documents, FAQs, and more.
-
Linux Online! offers non-partisan Linux news and information.
-
The O'Reilly Network is an excellent resource for technical books on Linux.
Get products and technologies
-
Order the SEK for Linux, a two-DVD set containing the latest IBM trial software for Linux from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.
-
Build your next development project on Linux with IBM trial software, available for download directly from developerWorks.
Discuss
About the author  | |  | Chris Walden is an e-business Architect for IBM Developer Relations Technical Consulting in Austin, Texas, providing education, enablement, and consulting to IBM Business Partners. He is the official Linux fanatic on his hallway and does his best to spread the good news to all who will hear it. In addition to his architect duties, he manages the area's all-Linux infrastructure servers, which include file, print, and other application services in a mixed-platform user environment. Chris has ten years of experience in the computer industry ranging from field support to Web application development and consulting. |
Rate this page
|  |