INLS 90: Linux and Samba Independent Study - Final Paper (Linux Module)
Introduction
Last December, I got a job doing tech support for a small university department. They hired me to help maintain the technology in their office which basically consisted 10 computers and two laser printers connected to the UNC network. All the computers were running Windows 98 (except the Publications person who worked on a Mac) and they really only had small software-related problems: files that disappeared, programs that lost toolbars, etc.
After working there for several months, I began to notice a problem. One of the extra workstations that was available to students or temps was also acting as a fileshare for the rest of the office. It was running Windows 98 like the others, except that a partition of its hard drive was mapped to every other computer in the office. I immediately realized its performance was degrading, depending usually on the number of applications I had used and closed that day. At that point it was apparent to me that we should probably be using some other system to share files, and that the fileshare computer should not be used as a workstation. However, it was my boss who began to question the stability of this network setup when he lost a document on the fileshare after it locked up because a temp was using it do word processing and data-entry.
I had no previous experience in setting up a file server, so I began to research the only ‘server’ product I knew of: Windows NT/2000. It appeared to accomplish what we needed, and everyone knew NT was more stable and secure than Win95/98, but it cost an exorbitant amount for licensing and multiple clients. The office I worked for just wanted to share word documents and spreadsheets--it was as if we were better off sticking with Windows 98, but I couldn’t believe that the rest of the world put up with Windows 98’s poor filesharing performance or Windows NT’s prices.
I was looking for a gray area between 98 and NT, and I stumbled upon the answer while doing a search on Google for "filesharing" or "file server" when I came upon an obscure page such as this one. Though the context was different, the message was very simple: "How can I share files/printers with Windows 95?" Answer: "The freeware solution is Samba." That was probably the first time I heard the word Samba, and upon looking it up, it eventually led me to Linux. After doing much research I decided that this would be a cost effective way to run a fileserver on one of the lower-end machines in the office without sacrificing security and without having to spend a cent. It was only natural, as a prerequisite to setting up Linux and Samba, that I take advantage of my independent study course and use it to as place to start learning Linux from scratch. Thus this course was born.
Background
Linux is a "freely distributable implementation of Unix" originally written by Linus Torvalds.
Unix is a "popular multi-user, multitasking operating system developed at Bell Labs in the early 1970s." It was initially created by programmers for programmers, written in C, which allowed it to be ported to "virtually any computer for which a C compiler existed." At the time, it was practically given away (source code included) because antitrust regulations limited AT&T (the parent company of Bell Labs) from doing business in any markets other than telephone communications. In the early 1980’s when AT&T was broken up by the government, the anti-trust regulations were relaxed and AT&T began to market their version of Unix (System V) as a full product without the source code. This practice of selling the binary or compiled piece of software and keeping the source code secret upset many people, especially those students in the universities that had grown used to the source code accompanying the product. One person by the name of Richard Stallman felt that this practice was wrong on moral and social grounds, so he decided to create the Free Software Foundation, committed to creating freely distributable implementations of proprietary software.
The predominance of proprietary (closed-source) operating systems (like Unix, Windows, MacOS, etc) led Andrew Tanebaum, a computer science professor in the Netherlands to write a free implementation of Unix called Minix (in 1987) so that his students could work with the source of a real modern operating system. Though it became immensely popular via Usenet newsgroups, Tanenbaum declined adding new features in order to keep the code simple enough for his students to understand. However, in 1991, Linus Torvalds wanted to take advantage of some newer features of Intel 386 chip that DOS and Windows neglected. Using Minix as a starting point, along with the free ‘GNU’ tools created and collected by Richard Stallman, he began to create what would grow to be Linux. He also intended that the source code be free, particularly due to the fact that his progress would not have been possible without the resources Stallman made available.
At the same time, in the early 1990’s the Internet was exploding, and this allowed people to communicate and transfer files (improvements, additions) that helped turn Linux into one of the world’s largest collaborative software development projects ever, tested and worked on by more people than any software corporation could ever muster--the end product thus being a constantly evolving, extraordinarily stable, and free operating system, known as Linux.
Summary
That said, from the perspective of an avid Windows user, working with Linux for the first time is like trading in a car of several years for a brand new model. First everything feels new and different: all the buttons are in different places, the car responds differently, but over time, with experience, that awareness of difference fades. Though kitschy, I think the metaphor aptly describes the feeling of working with Linux for the first time. Because everything was so new, and my experience was next to zero, I didn’t know what to pay attention to. I didn’t know how to fix things that were broken. I think this is when it helps to have an experienced person there to show you what to pay attention to first, to suggest things that will help latter on, and to explain some of the basic tools: like the ability to open, edit, and save text files. However this was a luxury I did not have, so I proceeded recklessly, like a child putting everything in his mouth--sometimes making things all spitty, sometimes just getting a bitter taste.
Installation was the first task I had to overcome, but immediately I was stumped, how does one install a free operating system. Where does one buy a free operating system? Well I was familiar with the Linux FTP sites, so I downloaded several distributions onto my secondary hard drive. Then what? I was at that place were in the past, the omniscient Windows would take over. Pop in the CD-ROM, follow the simple instructions on the screen, and then watch it install. Though I didn’t realize that the major distributions (like RedHat) were no different, I really expected there to be some magic word or command to make the thing install itself. So I did what any befuddled Linux user would do. I sent a message to a listserv and hoped for assistance. As if by magic, I soon received a reply, actually an offer to burn a CD-ROM image of a Linux distribution that would help me overcome my stumbling block. Once I had that CD-ROM in my possession, I was in familiar territory. And, as is the goal of the popular distributions, installing Linux and it’s peripheral components was easy. The only struggle was that I had no experience. The choices I made to questions the installation program asked (partitions, networking, etc) were guesses. Perhaps it was bad luck, but my inexperience showed when the installation completed and the machine rebooted, locking up as it booted up. So I installed it again, this time relying more on the default configuration which eventually allowed me to achieve my first Linux success. The machine booted into Gnome and I got my first look and feel of Linux.
With a working system I could play, which is much more fun that reading books full of obscure commands. So I played and poked, and eventual went through several cycles of reinstallation particularly when problems arose that I did not know how to fix. I also took advantage of every person I could find that knew something about Linux: my father, my RCC friends, and even a local Linux User’s Group. This would prove to be my smartest move educationally because it put me in touch with a community of people that were passionate in one way or another about this thing, Linux. It was through their selfless help that I was able to emulate having a single person sitting at my side. But I had something better: a whole community that only spoke up when I asked for help, and left me alone the rest of the time to explore. Within less than a week of my first installation, I had received enough help from various sources that I was able to fix my major problems. In fact, the similarity of their solutions and the way they went about solving problems (research and investigation) began to stick in my head. Within three weeks, I reinstalled the system once and for all, made all of the various changes I had been accumulating, and I was done. Linux was running smoothly and securely, I had no outstanding problems or errors, and I was able to get it to do what I knew I needed most: email. That sense of done-ness does not imply that I knew even 90% of what Linux could do for me, but rather that in stabilizing the operating system, I was now able do other things with it, like run Samba for example, (or Apache) which in turn, would strengthen my knowledge of the operating systems and the tools it provides.
Conclusion
The module was a success because it allowed me to experience something at my own pace that was completely new. This introduction has given me the confidence to communicate with the Linux community personally and professionally. At the same time this experience was also very unique because I had to learn something that I had never experienced before. So with each successive encounter, I could actually feel experience accumulate. And with more experience, I was able to make better and more intuitive decisions. With better decisions I had more success and better experiences. It also taught me how much effort or overhead it takes to become comfortable with something completely novel. Looking back over my journal entries, I struggled until those last six days. But, learning the very basics of Linux sets the foundation for everything else I can possibly use it for, and I am excited to continue exploring.