The first 10% of what you learn takes 90% of the effort, and as it can never be undone (merely “painted over”) it’s important to start right.
Some of the first 10 things I needed to learn about Linux are basics, others are not; i.e. less-basic things that have to be got right, before anything else can follow.
My perspective is of a Windows user wanting to dual-boot to Linux, with most of the hard drive’s contents being visible to both OSs. As a builder of such systems, I have strong Windows skills, good general computing sense, and very few Linux smarts!
1 Where’s “Ctl+Alt+Del” ?
Since Windows 95 it’s been instinctive to do the “Vulcan grip” of Ctl+Alt+Del to bring up the task manager, so that errant tasks can be killed. Almost as soon as I’d booted a Knoppix Live CDR, I needed the equivalent Linux skill, and it’s very frustrating without it.
As far as I know, the answer is various key combinations that will launch command interpreters (which are called “shells’ in Linux), and from there, I’d be expected to enter commands to list tasks to read the corresponding ID, then kill particular tasks via that ID.
2 Where are the “drive letters” ?
Since Windows 95, the DOS file system navigation of drive letters, directories and files has been abstracted to a namespace of folders and objects.
UNIX and Linux have always had that level of abstraction built into the file system, such that what appear to be non-file-system objects in the modern Windows namespace will appear to be syntax-valid entities within the Linux file system.
We’ve had a whiff of that with DOS devices like LPT1:, CON:, etc. that were carried over from UNIX, but Linux takes that further; such devices can be “pathed” as if they were directories and files within the file system structure.
So not only does one use the “file name” hda1 to refer to the first partition on the first hard drive, it’s also more fully expressed as /dev/hda1 as within the dev “directory”. Things that are not actually files or directories, have to be “mounted” as items within a directory, so that file system syntax can be applied.
3 How do I know what type a file is?
DOS had strong links between file types and file name extensions, but no system to extend this to automatic association of file types to arbitrary programs, as was added in Windows 95. Alas, this invaluable safety feature is being eroded within modern Windows.
In contrast, UNIX and Linux don’t rely on visible file name extensions to associate files with programs that “open” them. It may sometimes user these by convention, e.g. .gz or .tar for archives, but most of the time there is no obvious indication of what a file is, or what it can do.
4 How do I set default OS in boot loader?
Now we get into specific things that need to be done, whether they are “basic” or not.
Windows has no generic system-level boot management tools; all of its boot selection mechanisms start within the OS boot and work only for peer and older Microsoft OSs.
Thus when you set up Linux and Windows as a dual-boot, it is Linux that generally brings the system-level boot manager to the party; either lilo or grub. And in time-honored software vendor tradition, it will default to booting itself unless you choose otherwise.
So one of the first things a Windows user playing with Linux as alternate boot will want to do, is edit the boot loader’s configuration file to set Windows to boot first, as well as clean up what is often rather mucky menu text.
It seems as if no Linux disto anticipates this need; you may have plenty of friendly “getting started” help stuff, but do you think “edit boot manager settings” will appear as an icon or menu drop-down? I never did find out how to that in Ubuntu 5.x, and just gave up in the end.
5 How do I stop Linux dialing up all the time?
Your mileage may vary on this one, but this was a major PITA in Ubuntu 5.xx – once set to be able to dial up to the Internet, it would do so on every boot.
In a place where local phone calls to ISPs are billed per second by the local telco monopoly, this is a Bad Thing – especially as any unattended reboot will default to Linux and do this again. There’s no “can I do this?” dialog to cancel, either; it would just go ahead and help itself to your phone bill, for no apparent reason.
I never did find an answer to this, other than never boot Ubuntu again. I could have tried harder, but why should I have to? This should be something intuitive to manage via a control panel of some kind.
6 Doesn’t Linux know what an extended partition is?
To dual boot Windows and Linux on a single hard drive, with data volumes visible to each, one needs at least three of the four available partition table entries; one for Windows OS, one for Linux OS, and an extended partition containing the data volumes visible to both.
However, some Linux distros expect to hog three out of these four partitions for itself; one for the Linux system, one for swap space, and one for user data.
I know the “extended partition” is part of Microsoft OS space, rather than system space, but as Linux already understands and accesses FATxx and NTFS file systems, it’s surely not asking too much for it to be able to use logical volumes within an extended partition, rather than insisting of hogging 3/4 of the system partition table?
7 How do I mount arbitrary hard drive volumes?
When you first start up Linux via dual-boot, you won’t see your “Windows” partitions, until you mount these.
So finding out how to mount such volumes is one of the first things you need to do – but like (4), even the friendliest distros orientated towards converting Windows users do not seem to anticipate this need.
Good news: Ubuntu 7.04 automatically finds and mounts accessible hard drive volumes, and lists them as desktop icons for easy access!
8 How do I write and run “batch files” ?
I know you can enter shell commands into a text file and use that as a script, but the mechanics to do that are not obvious; where to save such files, what file name extension to use, and how to invoke it again.
This follows on from (7), i.e. once you figure out the command to mount your data volumes, you want to use a command that is easier to remember than what looks like modem line noise!
9 Can hard drive volumes be auto-mounted on boot?
One wants shared access to local data storage to be as transparent as possible, i.e. have such hard drive volumes mounted when Linux starts.
In contrast, Windows is too good at this; it automatically assumes every visible hard drive volume is part of the system, and starts groping content and writing to disk as soon as it starts up – which poses malware and data risks in various maintenance contexts, driving the need for a competent maintenance OS.
As noted in item 7, Ubuntu 7.04 solves this problem out of the box by default.
10 Where’s the “startup axis” ?
Windows has an absurdly large number of ways to integrate arbitrary code so that it runs automatically, and this is a bane of malware management.
But it’s not at all obvious where or what the equivalent(s) in Linux may be, i.e. how arbitrary commands, scripts or programs can be run whenever Linux starts up.