In this lesson,
we're going to lay out the basic system requirements
that you might need to meet
in order to install Linux on a given system.
In many cases, the Linux systems you're going to work with
are already going to be installed and built for you.
But sometimes, you're going to need to build a system
from scratch like you're going to do in this course.
In those cases, you must be able to install Linux
in a way that meets your organization's business needs
whatever those may be.
It could be for a public facing web server
that's going to receive tens of thousands of page views a day.
A desktop Linux implementation
for the graphic designer in your workplace.
Or you're going to have something that somebody's going to use
for testing webpages or a system used for testing software
before it's deployed throughout the entire organization.
Whatever that goal is, it's important
for you to learn the appropriate information
to guide you during the installation process,
to meet those requirements.
It's important for you to think of system requirements
as more than just what hardware components
are necessary to get a system up and running.
These hardware requirements will also specify
what is necessary to keep that system operational
and able to perform its assigned function over time.
So, you may be able to install Linux
on a computer with minimal system requirements
but that doesn't mean it's going to perform optimally
over the long term.
The system requirements for a Linux system
are going to vary greatly
based upon a number of different factors
including which Linux distribution you're going to be using.
This is important to remember
because different distributions
have different recommendations and baseline requirements
for things like hardware, CPU speed, RAM,
storage space and more.
Additionally, hardware compatibility can be an issue
depending on which distribution you're going to choose,
as well as the general category of the system
that you're going to be building.
Because different systems need to be built
with different components to meet your operational needs.
Finally, you have to consider
what the intended function of that system is
because if you have a more demanding application,
like serving 100,000 page views per day,
that's going to need more resources than something
that's only going to serve 10 page views per day.
And therefore, you need to make sure
that you're running adequate networking infrastructure,
enough storage space, enough processing to meet those needs.
All of this is important and you have to prioritize
these resources based on what your costs are
and what your needs are to be able to reach
that optimal system performance at the same time
that balances both of these competing priorities.
Now, prior to the installation process, you must be careful
to plan the appropriate partitioning strategy
for your hard drive.
Servers are going to have different storage needs
than individual workstations.
So, you have to take that into account.
If the partition where the root of the file system
is going to be mounted fills up,
that system can simply crash on you.
User home directories and log files
are both examples of directories that can unexpectedly
increase in size very rapidly when a system
is being used by your end users.
So, if you isolate these directories
to their own partitions,
you can prevent a server crash in the long haul
by making sure you have enough space
for those dedicated things on that partition.
Linux usually uses a dedicated partition
for virtual memory storage as well called the swap space.
It's important to plan for that swap partition
at the same time as you're planning for your data storage
of your partitions for the home, the users
and other areas of the hard drive.
A good general guideline
is that the size of the swap partition
should be two times the quantity of RAM.
Though, this number is going to vary.
So, if you have a server that has 16 gigabytes of RAM,
your swap partition should be about 32 gigabytes.
Now, before you install Linux,
you're going to need to prepare the file system
for storing the Linux software.
You have to have at least one file system,
which is known as the root file system,
and that is at least one partition.
But you can have a lot more partitions too, if you want to.
Now, some new Linux users like to store all their files
on the root file system because that way they only have
one partition and one file system to deal with.
Personally, though, I like to create multiple file systems
for my Linux systems.
This way, I can have a single partition
as the /route file system
and I can have another partition as the /home
to isolate all of my home user directories
from the rest of the storage space.
I might have another partition for /VaR
to put all my log files there in that storage space.
I might have another one dedicated to the swap space.
And I might have another one that's dedicated
to all of the binaries that I'm going to have on that system.
By being able to allocate more than one file system
in partitions to each of these different functions,
even if one file system gets damaged,
the others will be unharmed
and I can get back up and running a lot quicker.
However, if you store all of your files
on the root file system under one partition,
and that file system becomes damaged,
you're going to lose all of your files in one fell swoop.
And so, this is a good reason for partitioning out things
into multiple file systems and multiple partitions.
You also want to make sure you're always backing up
all of your file systems and partitions on a regular basis
to ensure they're always backed up and protected
in case you need to restore from them.
Now, the first thing you should do
before you purchase any hardware component
is to check whether or not it is compatible
with the relevant Linux distribution
because not all hardware will work on every Linux system.
Some distros will maintain what's known
as a hardware compatibility list or HCL
that'll help you with figuring out
what hardware is compatible.
An HCL is simply a database that stores all the vendors
and models of all the hardware devices
that distro supports with some capability.
Each distribution can maintain its own HCL
which is usually going to be published online at their website.
So, before you install Linux,
you should always gather your hardware information
about your system and check it against the HCL.
Much of that information is going to be available
in your system documentation
or online in your current operating system
such as under the My Computer tab inside of Windows.
This way you can gather information
about all your current pieces of hardware
and verify they're going to work in Linux
before you install it.
Also, remember there may be lots of questions
that you feel you should address
before purchasing a hardware component.
For example, if you look at a storage drive,
you need to check how many devices can be installed
in that particular system.
What technology the interface controller uses?
Is it IDE? Is it SATA?
Is it USB?
What are you going to use?
As you might know,
all the different hardware components are going to interact
in your computer and be controlled by the operating system.
So, we need to make sure that Linux
can read and write to each of these devices.
Also, you want to check your CPU or central processing unit
and make sure that it's going to work
for your particular Linux distribution.
Some distributions rely on an ARM processor set.
Others rely on an X86 or X64 processor set.
Depending on which one you have in your system,
you're going to have to download the right version of Linux
that can support it.
In addition to that, you want to make sure the processor
has a supportable clock rate and cache size
and supports hyper threading for best support
inside of most Linux distributions.
When it comes to memory, you also need to think
about how much memory is installed in a system.
If you only have eight gigs of memory or two gigs of memory,
that might be very limiting
depending on which distribution you're going to pick.
If you have 16 or 32 gigs,
you could probably install any Linux distribution you want
because you'll have plenty of memory to support it.
When you're dealing with a network card.
This is one of the areas I see a lot of problems with
inside of people trying to use a machine for Linux.
This is because a lot of network cards
rely on the Windows operating system drivers to function.
And these network cards are not going to be supported
inside of Linux for some cases.
So, you always want to check
against the hardware compatibility list
for your specific network card,
especially WiFi-based network cards
to ensure it's going to work inside of that Linux distribution
that you're going to use.
When it comes to input devices,
things like your mouse and keyboard.
Most of the time, they're going to be well supported
because it is using a hot pluggable USB interface.
But it is important to know what kind of keyboard you have
so you can select that when installing inside of Linux
and be able to support whether it's a US or a UK keyboard
or something else.
Also, when it comes to monitors,
you want to make sure that your monitor
has the right refresh range
and the maximal supported pixel resolution
for your particular Linux system.
If you don't have a driver
that's going to be supported for that monitor,
you can have a much lower resolution
and it'll be hard to use that system.
Finally, when it comes to your display adapter,
you need to determine are you using an integrated chip set
or a discrete video card?
Depending on which one it is,
you need to make sure you find the right graphical drivers
to be able to run that inside of Linux.
If you don't, you may be limited to only using
the integrated CPU and not the discrete video card
which is going to give you a lot worse performance.
Now, when it comes time to install the operating system,
you're going to have to boot into
a special installation environment
and then select the options you want
and copy all the files to the hard drive.
This is going to be done using different boot methods
depending on how you're going to install this operating system.
For example,
you can boot from a removable installation media
like a DVD, CD or USB thumb drive.
This will require you to burn the installation files
onto a DVD, or copy them over to a USB drive
and make it bootable.
Another method of booting up might be to install it
from a local drive where you download an ISO
and this is especially popular if you're using
a virtual machine environment.
That's actually what we're going to do in this course.
We're going to download an ISO of CentOS
and install it into VirtualBox as a virtual machine.
Another way you can do this is you can actually boot up
from media over the network.
This is known as PXE.
And this requires you to have a file server
that's on the network.
And when you boot up that machine,
it's going to grab the installation files
from that file server
and then install it to the local workstation.
When you prepare to install Linux,
you need to consider these different factors
that go into identifying the system requirements.
Things like the cost, the system role
and the Linux distribution you plan to install.
As well as considering your partition strategies
based on the role of the Linux system
and verifying that all your hardware is going to be supported
because it's on the hardware compatibility list.
By doing this, you're going to be able to prevent
a lot of issues for yourself down the road
and minimize a lot of the troubleshooting
you may come across.
So, always make sure you're prepared
for your installation first and get all your ducks in a row
because it'll make things go a lot smoother for you.