Linux Notes: Linux Introduction and Caveats
- The information presented here is intended for educational use by qualified computer technologists.
- The information presented here is provided free of charge, as-is, with no warranty of any kind.
Edit: 2023-09-16
Introduction
Caveats
Executive Summary
Every year (since the mid-2000s) I would install some version of Linux on a spare computer just to try it out. In the early years
this was usually
Fedora but later years
was usually
CentOS (two distros in the
Red
Hat ecosystem). I had also played with
Debian and
SUSE.
I'll probably take some flack for saying this but I did not think Linux was worth my time until I played with CentOS-7 which first
appeared in 2014. I'm not saying it is better than other Linux distros but I am saying that CentOS-7 made me sit up and take
notice. BTW, CentOS is a member of the so-called EL (Enterprise Linux) ecosystem which include: AlamaLinux, EuroLinux, Fedora,
Oracle Linux, RHEL, and Rocky Linux.
comment: IBM purchased Red Hat in 2019 to the tune of $34 billion.
IBM - Red Hat, a company that
starts each project with open source code, announced on 2023-06-21 they were going to restrict access to their source code
modifications which could (eventually) affect everything just listed. So you might wish to consider moving to
openSUSE Leap. Why? Even though Open Source is an American invention, many American companies do not
understand
GPL open source as well as
European companies (
SUSE in headquartered in Germany and their
business model more closely follows that of
MariaDB
Corp).
Linux has been the plaything of academia for a decades which means it is much more
feature-rich than proprietary operating systems, but it is not friendly. In fact, it suffers from
the problem of "too many chefs in the kitchen".
Caveat: if you decide to enter the
Linux world without a paid-up annual support contract then
be prepared to support yourself. The self-help
blogs are full of people "repeating the same mistakes" or "giving the same bad advice". Many do not appear to me to be seasoned
computer professionals. At the very least you should read how Linux is maintained in
IBM-managed data
centers. You may also want to familiarize yourself with some of my
real world
Linux problems
A brief history of how Unix spawned Linux
Unix
- Ken Thompson, Denis
Ritchie and others were employees of Bell Labs when they created
the Unix operating system around 1970 for an internal project.
- Unix was written entirely in 18-bit PDP-7 assembly language which Bell Labs wanted to migrate to a newly announced, but not
yet delivered because it was 9-months late, 16-bit PDP-11.
- They wondered how they were going to move their software from an older machine with an 18-bit machine architecture to a newer
one with a 16-bit architecture (but additional instructions) so they developed a portable low level language named "C" which
could be easily generate code for other computer system architectures. Then also used "C" to stamp out many thousands of bugs
hiding in Unix. Now Unix was portable as well.
- Since Bell Labs was (then) owned and operated by the Bell Telephone System (which was a monopoly) they were not allowed to
make any money selling software. So both the Unix OS and the C programming language were licensed to educational institutions
(colleges and universities) for no more than the cost of duplicating, then mailing, magnetic media. The "icing on the cake"
included all the source code which meant that engineering schools could see how the UNIX kernel interfaced with hardware -AND-
improve upon it.
- Universities published their own distributions, and one especially successful branch was known as BSD (Berkeley Standard
Distribution). I personally worked on several Nortel systems which were based upon BSD UNIX 4.3
American Politics triggers change
- After the Reagan administration broke up the Bell
Telephone System in the early 1980s, Unix ended up at AT&T where new business managers announced that colleges and
universities "would be required to buy commercial software licenses" AND "no more source code access". At this same time,
AT&T Unix was rebranded to the copyrighted name, UNIX
- American universities began rewriting Unix programs (to avoid copyright issues) which mostly ended up under the GNU
Project (I have skipped a lot of history here).
- Some European universities moved to MINIX which was only meant to be used
as a teaching tool.
- Linus Tovald began releasing his own kernel to the internet in the
early 1990s as the Linux kernel
- Eventually, the Linux kernel (which had no programs) was merged with the GNU project (which had no kernel). The result is Linux which has been the plaything of academia for over 29 years.
- Improvements to UNIX could not keep up with improvements to Linux which has left UNIX almost obsolete. (why pay for something
when the free version is better?)
Hard Capitalism vs. Soft Capitalism?
The concept of opensource software is an American
invention (Richard Stallman) so I am surprised when
large American try to kill, or sideline, any open-source products they feel are cutting into their profit margins. Here are a few
examples of many:
- DEC hated both "C" and "Unix" because inexpensive and/or free software was cutting into their software revenue. (they seemed
to ignore the fact that mostly PDP and VAX computers ran the internet from
1970 to 1980; they also ignored the fact that this was done using Unix and C)
- Microsoft, under Steve Ballmer anyway, always seemed to be at war with competition from the open-source world and yet we
learned that Microsoft has been using a lot of Linux servers in their Azure cloud for the past decade
(this is the same for all cloud-computing providers; no company would be able to afford the per-machine license in a
multi-computer cloud)
- If you only looked at Oracle Linux then you might think that Oracle
fully supports the concept of open-source software, but when Oracle saw MySQL as a potential competitor to their database
business, they repeatedly attempted to sideline it (as I have documented here)
before acquiring it by purchasing SUN Microsystems. If MariaDB had not been created by forking the MySQL code base then we would
be having a very different conversation.
- SUSE was founded in 1992 Germany while Red
Hat was founded in 1993 USA and they both became successful following the open-source model: give away
the software but only charge for support. Both companies did this until 2019 when IBM purchased Red Hat for US$34
billion then began changing things (increased the cost of annual support contracts; now breaking the relationship between RHEL
and CentOS; now going to discontinue CentOS after convincing many to move to CentOS back in 2014). Many have suggested that IBM
change the name from Red Hat to Blue
Hat
- I have used both SUSE and openSUSE but they appear to be someone different (internally speaking) than RHEL or CentOS.
Developers who want to stay closer to RHEL or CentOS might wish to try one of these alternatives via ELevate leapp
- IBM-Red Hat, a company that starts each project with open source code, announced on 2023-06-21 they were going to restrict
access to their source code modifications.
The Scottish moral philosopher, Adam Smith, has been called "the father
of capitalism" and yet many people do not know that his work was intended to provide the British government with a context on how
to redistribute the wealth in order to the support workers who were about to be made redundant by the
industrial revolution which was just booting up. While he advocated for what some people might call "soft socialism",
American capitalists took things to the next level with hedge funds and the like giving us "hard capitalism". It appears to me
that something similar has happened in the open-source world of computer software. While European companies like MariaDB
Corporation AB seem quite successful by giving away the software but only charging for support
I get the feeling that some American companies would like to put this genie back into the bottle. Of course they would argue that
American money built the internet while ignoring the fact that European researchers built the world-wide-web which includes
browsers and web servers. SUSE is now an American company whilst openSUSE is still based in Germany. If you do not like the
direction American companies are headed then I suggest you check out the European alternatives.
Caveats
Editing a file on Linux
- Some versions of Linux installers provide a really neat text editor called nano
which is so easy to use that I won't comment any further.
- Other versions of Linux installers only provide the vi (or vim) editor which
is guaranteed to stop every newbie in their tracks.
- caveat: some installation programs will drop you down into vi for certain
inputs so if you don't have some vi skills then you will stopped in your tracks
note: other editors exist but these are the only two I encountered during recent Linux installations
Many Linux distributions use different commands to do similar things
The only thing common with the various Linux distributions is the name "Linux". For example, numerous Linux distributions use a
different tool to partition a hard-disk. For example, check out the following list of commands to initialize then
mount a disk under various operating systems
OS |
Details |
Linux |
In Linux you must do the following (incomplete list):
- use either fdisk or parted to partition the disk (and know why you
would use one over the other; most Linux systems only support one of these commands)
- use mkfs (then choose one of 50+ volume formats); I prefer mkfs.xfs
for most Linux volumes but formats like vfat and NTFS are available for those people requiring compatibility with
Windows
- use xfs_admin to set the volume label
- use mkdir /mnt/whatever (to create a mount point)
- use mount /dev/sda3 /mnt/whatever
- edit /etc/fstab (to force an automatic mount during the next reboot)
- caveat: newer Linux distros also support LVM (Logical Volume Manager) which can
increase overall confusion.
Note: online help is meant for experts. Type "man mount" or "man umount" to
see what I mean. |
Windows |
Initializing then mounting a disk in Windows is mostly automatic
|
OpenVMS |
Initializing then mounting a disk in OpenVMS is done in two commands:
- initialize the disk (struct=2 hails from the days of VAX/VMS):
initialize/structure=5 disk-name: volume-label
- mount the disk:
mount disk-name: volume-label
Note: online help is targeted at non-experts. Type "help initialize" or "help mount"
from DCL to see what I mean |
comment: For those of us who have worked
on systems initially set up by the clueless, perhaps a less friendly software environment is desirable.
Installation
- Like other operating systems, Linux binary distributions will auto-install from optical boot media
- caveat: I ran into a problem doing a reinstall of Debian-7.11.0 in 2016-09-xx. It seems that their
"PARTMAN" disk partitioning tool used by the installer kept complaining about "no root partition". This could only be fixed
by exploring all the options changeable in the partition menu associated with "/dev/sda2" (not sure a newbie could have
gotten around this one). In this case PARTMAN also sets up "/etc/fstab" which is why it needed to know about a root
partition.
- Linux source-code distributions will not auto-install from boot media
- Gentoo Linux requires you to go though dozens of commands spread across 11-chapters of their installation manual. Since
this requires pulling hundreds of files from the internet, it could easily take 4-to-8 hours (if nothing goes wrong)
Software Updates (support, or lack of it)
- Software updates for proprietary operating systems like OpenVMS are (usually) well-tested by the vendor then manually
installed by the customer
- Software updates for proprietary operating systems like Windows and Solaris are (usually) well-tested by the vendor then:
- automatically installed by vendor (if the feature is left enabled by the customer)
- selectively installed by the customer (if set by the customer)
comment: A few years ago I heard of a problem with Windows Server Edition 2008 in a
business environment in Montreal where automatic updates were enabled for a short time by a system admin who wasn't thinking
clearly that day. Patches were applied to the server which broke some third-party software. The two companies pointed fingers at
each other while the customer was off-the-air for days. The customer was only able to get back into business by doing a full
restore from backup media.
- Software updates for Linux are numerous and frequent (some occur weekly) but are not well tested. What is worse is this: every
distribution is slightly different which means you need to be an expert just to control the patch levels.
Suggestions:
- Always test updates on a "development platform" then retest on a "qualification platform" before applying them to a
"production platform".
- some companies go so far as to test updates on a "sacrificial platform" before running the
development-qualification-production cascade. Hardware is now cheap so I think the recommendation is worth consideration.
- Linux cay be anywhere from free (without paid support) to cheaper (with paid support) but be prepared to shift qualification
burdens to your own organization.
- translation: just as there is no such thing as a free lunch, there is no such thing as a free OS
- Be sure to produce backups of your installation media, system software and user data (including databases)
- Even if you have a 14-day or 28-day daily backup rotation, be sure to do weekly or monthly backups to one-time optical
media
Life in a customer-owned, IBM-managed, data center
Hardware is relatively inexpensive in 2018 (compared with systems before y2k) and operating systems like CentOS-7 are free which
changes everything. As I understand it, many customer-owned IBM-managed data centers are run like this:
- every named system has three, or more, variants:
- name-p (production)
- name-q (qualification)
- sometimes these include customer acceptance)
- name-d (development)
- name-e (experimental)
- the root password is never given out to the customer for any system other than experimental
- root privs are temporarily granted for p/d/q systems after a formal request is submitted to IBM indicating what you intend to
do with it
- non-urgent requests are associated with response times of 4-8 weeks
- major updates are discouraged for all platforms
- minor upgrades are discouraged but will be allowed on a lower level platform after a review by IBM
- only changes that have been tested for more than 8-weeks will even be allowed to percolate up to the next level
- every change to any system needs to be addressed by a back-out plan
- for some systems with RAID-10 storage, this means pulling half the drives then doing your upgrade(s) on the remaining
media
- blank replacement drives are inserted then merged into the RAID-10 set so your system has some sort of storage redundancy
- the pulled drives are placed on the shelf for 8-weeks (minimum) with a year being optimal time before they are reused
- question: why would companies ever agree to these seemingly draconian measures by IBM in non-IBM data
centers?
- answer: consider what would happen if a development system was damaged in any way. Your developers
could be twiddling their thumbs for weeks while the data center people rebuild the system from backup media if that is possible.
But consider what would happen if you lost your production system(s).
Comparing Linux problems to other operating systems
I have been a VMS system admin and programmer since 1987 then started to work with OpenVMS in 1999. On VMS or OpenVMS, I have
always been able to roll back an update. But this appears to be impossible (or at least very difficult) with modern versions of
Linux in 2018.
CentOS-7
- Supposedly the YUM tool will allow you to revert to previous product versions. I have never been able to revert important
security-related modules (like OpenSSL) and I need to point out that we are not running SELinux (security enhanced Linux)
Windows
- Lots of people hate working on Windows systems (personal or server) but you have got to hand it to Microsoft with their idea
for WINDOWS RESTORE. There is not a single flavor of Linux or Unix that I am aware of that has a maintenance tool like this.
- I have never been unable to roll back a windows system but need to point out that the maximum rollback time is limited by how
much space on the system disk has been allocated for this purpose (bigger is better).
- I do know of one windows server platform in Montreal that was never able to rollback. Not sure what went on here but I think
their problem was related to a combination of things:
- insufficient space allocated to keeping earlier pre-update snapshots
- too much time elapsing before someone realized that a rollback was necessary (this could happen if the failing process
only ran once on the last day of the month)
VMS / OpenVMS
- Because the Files-11 system as implemented on VMS and OpenVMS supports file versioning (you can have up to 32,767 versions of
the same file name), installing new software does not overwrite old software. So it is always possible to go back to earlier
software provided you don't issue a $purge command. Here is one example:
- Old-school VMS software is usually installed via DCL script: sys$update:vmsinstal.com (install with
one "L")
- this script has the ability to rename old software with extensions like "_old1" (works better on ODS5 formatted volumes)
- this provides a primitive way to roll back
- Newer software is usually installed via the PRODUCT command.
- this provides smarter ways of doing a rollback
- caveat: some companies like Process Software still install new versions of MultiNet and TCPware via
vmsinstl because their current products are written to work on older platforms, like VMS, where the
PRODUCT command is not available
comment: everyone reading this probably knows that software cannot be updated on most computer systems
while it is being used. This is not true of OpenVMS where an active process has a run-time lock on some executable (like sys$exe:EDT.EXE;4
in the example above). But if your update is just copying in a newer version of EDT.EXE then it would be saved as EDT.EXE;5. Any
process invoking EDT would pick up the new file while current processes could continue to use the old file. I have never seen
anything like this on any other operating system. In fact, software engineers at DEC (Digital Equipment Corporation) developed
this after running into problems on previous DEC operating systems like RSX-11 and RT-11
Recommended Books
There are so many Linux books available today that it is difficult to recommend any one over another. But for some reason, all
the really good computer books in my library are from No Starch Press and it seems the
same is true for Linux. These books can be purchased directly from www.nostarch.com ,
amazon.com and www.bookfinder.com
How Linux Works: What Every Superuser Should Know - 2nd Edition (2015) Brian Ward
- https://www.nostarch.com/howlinuxworks2 (publisher's website)
- this book contains useful information I have never seen anywhere else. It is worth every penny.
- the only thing this book lacks is information on LVM (logical volume manager) but that is true for
most Linux books.
The Linux Programming Interface (2010) Michael Kerrisk
A Linux and UNIX System Programming Handbook
External Links
local
remote
Back to
Home
Neil Rieck
Waterloo, Ontario, Canada.