Windows Detox 101

If you’ve followed my previous two entries, you’ve decided to look into Linux, and have at least tried it out or installed it onto your hard drive. I hope everything went smoothly for you. In your exploration of this new operating system, you’ve noticed that there are things that are vastly different than in Windows. In this article, I hope to alleviate some of the uncertainty that accompanies uprooting some of what you know about operating systems, and to bootstrap you for becoming an OSS or Linux guru.

The Terminal. I find that Windows users are far more attached to graphical configuration than Linux users. Although this black (or white) window peering back at you can seem daunting, believe it or not, the terminal is far quicker to configure your computer with. This is not to say that the GUI configuration tools are ineffective for configuration, but command line tools are fast and easy to use once you learn about them. As you browse Linux help sites, you’re bound to run across lots of commands to do this or that. The more time you spend with your terminal, the more and more you’ll like it, until you become a veritable command line warrior. Learning the command line interface also has an added benefit, which is you learn far more about the internals of your machine. For instance, if you change your desktop background with a GUI tool, you learn nothing about how your system handles background images. If you take the time to learn how to modify it from the command line, you will learn where the file resides, and how your environment handles things on the backend. Likewise with networking, learning the command line interface will increase your understanding of network and computer design, and the tools that are used are likely to spur you on to learn more advanced networking, like IP routing, that you would not have been exposed to if you had just stuck to the default networking configuration GUI.

Text File Configuration. Almost all programs in Linux use text configuration files. The data the program needs is stored in an easily human readable file somewhere in the system. This allows for quick command line modification of program settings. Most GUI configuration programs in Linux are simply graphical frontends that modify the underlying text file. The advantage of this is that if you have a computer without a graphical interface (for instance you’re running a data server, and want to be efficient with processing power), or your graphical interface is broken for some reason you can still easy configure your system.

The Filesystem. Linux doesn’t have a C:/ drive like Windows does. Instead, everything is positioned within the root, or / . The root of the filesystem, as its name indicates, is the base of the organizational structure of the operating system. It is the highest directory, and you cannot ascend any farther up the organizational tree. In Linux all hardware devices are treated (more or less) as a file. Therefore, your secondary (or tertiary, etc…) hard drive is treated like a file and placed in a specific spot underneath the root filesystem. (more likely than not it is placed in /media or /mnt). The advantage of this is that you can place other hard drives or partitions anywhere on the system. I personally have my secondary drive placed in the /home directory so that all my personal data and settings are preserved when I want to swap distributions, or reinstall. The idea of looking at devices as files is novel to most people coming from windows, but it removes a large level of complication that Windows introduces with the idea of specifying some things as files and some things as hardware. If you’re still curious about this, take a peek in the /dev directory. In this directory you will see all of the device nodes that are treated like files. For instance, sd{#} and hd{#} are typically hard drives, video0 is TV tuners, nvidia0 would be the node for an nVidia graphics card, and so on. There is great utility in this abstraction, and sooner than later you will undoubtedly appreciate the simplicity and function of this concept.

Package Managers. This is of critical importance, and in my mind is the primary difference between different distributions. There are many different varieties of package managers. Debian and Ubuntu use apt, Red Hat uses rpm, and Gentoo uses portage/emerge just to name a few of the more popular ones. No matter what the package manager is though, its primary purpose is to keep track of all the files on your system, allow for easy installation, clean uninstallation, and simple upgrades. If you remember Windows, when you wanted to install a program, you would search for it on the internet and download the installer, or pop in a CD and run the installer on that. Removing programs, you could use the installer’s remove option, or rely on the Windows system add/remove programs. If you want to upgrade, oftentimes you have to uninstall the old version and install the new, or rely on the installer writer to handle upgrade issues. This all seems like the natural way to do things if you’ve only ever used Windows, but Linux has an evolved system of managing the files on your system in package management. I’m sure you’ve noticed that the Windows system sometimes leaves files on your computer after removing, and is in general, left up to the mercy of whoever programmed the installer to be thorough about the cleanup. Linux package managers keep track of every file in the system, and typically organize related files into packages. For instance, if your favorite stock market ticker needs a binary, a shared library, and two configuration files, the stock ticker’s package would contain these 4 files and know where to place them for everything to work. Removing the package will purge all four of the files, as the system relies on a trustworthy package manager, as opposed to oftentimes questionable installer-writer’s motives for removing a program. The other great advantage that Linux package managers have is that most are connected to an online system of repositories, or servers that will send you whatever package you want. This means that you don’t have to use google to find the program you want to install, using a single command line tool can install anything, ranging from a 3d game to new system drivers. Furthermore, for example, if a photo editor relies on a JPEG library to run, the package manager will also go out and fetch the JPEG library (and all the needed packages that the program you are trying to install needs). It will ask you about installing the dependancies first, so don’t worry about the package managers running off and installing anything it feels like. Far more convenient.

Permissions. Linux has an evolved permissions system. Far more so than Windows. Every file has permissions, strict rules about who can modify, read, or execute any given file, as well as each file knows who its owner is. This might seem like a nuisance, but its one of the reasons why Linux is so secure in comparison to Windows. Its also a reason why you won’t mess up your computer with common usage. Mission critical files are owned by the root user (this is not the same concept as the root filesystem :-D). Access to root is control of the entirety of the machine. Files you create are owned by whatever your username is. You can still modify your system’s important files with the root user’s password, but users who are not authorized (or malicious code for that matter) cannot modify these files. Furthermore if two people, Nancy and Bill, use a computer, Nancy can set her files so that Bill can look at them without being able to change them and other neat things like that. It seems almost silly that in Windows, any file can execute code or important files can be modified arbitrarily. Double clicking on the icon of malicious code can destroy a system in Windows, whereas in Linux, trying to execute the malicious code will result in a permissions error (unless you specifically give it permission via entering the root password to destroy your machine, of course). This isn’t to say that Linux is the perfect security operating system, but it provides a much more hostile environment for viruses and the like, as well as surefire ways for managing access rights.

A new hidden file notion. Its also vastly useful to mention that Linux hidden files are different than Windows hidden files. In Windows, metadata is used to make a folder “hidden” from default view by a user, and you can look at some hidden files by selecting an option in the Control Panel. Furthermore, I cannot tell you how many times I have rolled my eyes when I look at a Windows file system while I’m in Linux and seen files and metadata that Windows will hide from the user no matter if you have the display hidden folders turned on. Personally, I don’t like things like this being hidden from me. In Linux, there are still hidden folders, but this is based on convenience rather than trying to shield us poor users from the scary operating system. Any hidden folder can be seen with the command “ls -a”. Try it on your home folder. You will see directories that aren’t there with a simple “ls” command. These are mostly program configuration folders that you don’t want to really think about when browsing for your psychology paper or favorite song. You will also notice that all the hidden folder names start with a period. Placing a period in front of any file or directory will make it hidden. This is just an old, convenient tradition in Linux/UNIX computing. You’re free to move or modify anything in hidden folders, or even change your system so that it has no concept of hidden folders, but they are convenient as far as I or most people are concerned.

Alright. Hopefully through these last three articles have prepared you for your journey of becoming a full time Linux user. I have barely scratched the surface of what Linux has to offer, but it is enough to wean yourself off of Windows. Remember, Linux and Open Source Software is all about freedom in your computer, unlocking its true potential so that it can do what you need it to, not what somebody or some corporation needs it to do for them. No one is hiding any information from you for nefarious purposes, and you can learn about computers to a level as deep as you are willing to learn. It took me about 3 or 4 months to switch from being a full time Windows user to the day when I deleted Windows once and for all, and I haven’t looked back. Lean on people going through the switch alongside you, and find a Linux guru (usually via online communications like IRC ) to guide you through any hardships. With that said, Good Luck with Windows detox!!! There are plenty of trained professionals pulling for you! 😀

This entry was posted in Open Source. Bookmark the permalink.

11 Responses to Windows Detox 101

  1. ultramancool says:

    Nice guide, I’ll have to link some people here.

  2. some guy says:

    i’ve tried linux, had to use the terminal lots of time

    but in window$ never used the command prompt
    Typing commands in the terminal takes most of my time whenever i want to do something like install/remove apps with annoying dependency checks

    Linux is powerful os but still not userfriendly imo

  3. knmstrflx says:

    If you don’t consider Linux to be user-friendly, you’ve never tried Ubuntu.

    v7.10 blew me away, wide-eyed like a child at a candy store.

    One word to describe it: Easy.

  4. Dave says:

    Most of the time, cutting and pasting a command is much faster than following the various “click this, then this, select that, check those boxes” type of instructions.

    “User Friendly” means “Anybody can use this without actually knowing anything”. Unfortunately, computers don’t yet understand human languages, so at some level or another, computer literacy is essential.

  5. Todd says:

    Nice overview. I’ve an independent PC repair geek, and since most of my clients are on Windows, I’m mostly stuck with it too. But I’ve been trying out various Linux distro’s for a couple of years. But none were the right balance of features & newbie friendliness for me to take the plunge on one of my primary work machines. But Ubuntu 7.10 really has grabbed me, integrated very easily with my network printers, surfing, music, data recovery, research, etc . . . I think I’m sold. Mostly a matter of finding the time to swap it out on my other primary systems.

  6. Reluctant Linux User says:

    “Most of the time, cutting and pasting a command is much faster than following the various “click this, then this, select that, check those boxes” type of instructions.”

    The problem with this, for myself, is that the graphical clicking is much easier to remember — once or twice and I can remember it. With the terminal and text commands, I would need to learn a dozen or more obscure letters to do something, and frankly, I don’t want to have to copy/paste a command every time something needs to be done, so simply copy/pasting is not really an option for anything more than a one-off issue.

    There are several other issues of why I use Linux only reluctantly, but those are beyond the scope of both this comment and this article.

  7. Daniel says:

    It’s strange how Ubuntu takes everybody in like a whirlpool. I used to be a big fan of Slackware.. I remember 10.2 – I spent ages and ages trying to configure it to work as I wanted it to. But when I was done, i was proud.

    Yet now, even I am using Ubuntu. It DID blew my mind away. Easy to use GUI yet still the power of Linux is there.

  8. Thomas says:

    Linux is not idiotfriendly.

  9. Bokkie says:

    Linux doesn’t have a C:/ drive like Windows does. Instead, everything is positioned within the root, or / .

    Windows does not use C:/ either… 😎 It uses C: instead.

  10. >Typing commands in the terminal takes most of my time
    >whenever i want to do something like install/remove apps
    >with annoying dependency checks

    I think it’s really a case of learning. Take changing network settings if you’d like. By the time you find the Network Connections icon in Control Panel I have long written the (actually very friendly) ifconfig line.

    It baffles me how people still think it’s friendly to dig through a handful of windows, searching for the place where that particular setting is located, hacking their way through tabs and meaningless dialog boxes, while typing a 10-letter command is unfriendly.

  11. spuffler says:

    I stopped using Windows as a solitary, primary OS back in 1999. Motivation came when I had recently visited the local Staples, hoping to score a reduced priced version of Windows 3.11 for a project – 3.11 was $85, 95 was $87, 98 was $89. Pricing for 3.11 made no sense – 3.11 had been declared unsupported months before! At that point, I bemoaned the matter to a buddy who handed me a Red Hat 5.0 boxed set that he was finished with. He claimed he saw this coming!

    Anyhow, aside from wifi hardware that Linux had great difficulty configuring (Broadcom chips), the lack of web access alone forced me to dual boot with XP Pro 64. Aside from using XP as a secondary OS, I can say that for the past 13+ years, aside from those Broadcom issues, I was and still am able to do anything in Linux that I need to do. Print, scan, web/email, database, photo edit, play media, all under Linux. Some elements weren’t always part of my needs back in 1999, but when I needed it, it almost always worked without much troubles. Except for the issues I had with the Broadcom chips, but now, they work fine since Kubuntu about 11.10

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.