Department of Computer Science and Information Systems. Grand Valley State ... information systems majors presents many challenges. Operating systems and ...
Teaching Networking and Operating Systems to Information Systems Majors D. Robert Adams and Carl Erickson Department of Computer Science and Information Systems Grand Valley State University { a d a m s , e r i c k s o n } @ csis. g v s u . e d u
Abstract
they receive special training for that position. Network administration lacks a traditional academic home - one rarely finds a network administration course at a college or university. Yet, CS students seem to fill the position of network administrator. The reason is that as students computer scientists gain a fundamental theoretical knowledge of operating systems and networks. A typical CS student has an understanding of processes, distributed services, networking protocols, file systems, network topologies, etc. This fundamental knowledge enables a CS student to learn the high-level managerial aspects required of a network administrator. However, the role of network administrator is suited more toward an information systems (IS) graduate than a computer science graduate. The primary purpose of information systems is information/computer management, while computer science deals with the underlying theories and models of computation rather than the principles of information management. In fact, the current publicly available reference for IS curriculum describes the topics of networking and operating systems in two courses[I,2]. The relevant parts of those course descriptions are excerpted below.
Teaching networking and operating systems to information systems majors presents many challenges. Operating systems and networking tend to be taught in one of two ways. Either the material is non-technicai, directed more toward the business information systems major, or the material is overly technical, equivalent of teaching a traditional computer science course. We have developed a model for teaching networking and operating systems to information systems majors that bridges that gap. The material is taught in the context of network administration, a topic well-suited to information systems majors. This paper describes our model, the curriculum we use, and the experience of students and faculty.
1 Introduction Business information infrastructures today consist of one or more servers that communicate with tens, hundreds, and even thousands of clients. Along with the explosive growth of networks comes an increase in demand for network administrators. A network administrator is a manager of computing resources. A network administrator is responsible for installing new hardware and software, creating and managing user accounts, installing and maintaining print services, ensuring that the network is running smoothly and that the computers are communicating efficiently, verifying the integrity (security) of the network, handling user complaints, and so forth.
IS '97.4 Information Technology Hardware and Software: "operating systems functions and types; operating system modules: processes, process management, memory and file system management . . . . basic network components . . . . installation and configuration of multiuser operating systems." IS '97.6 Networks and Telecommunication: "indepth knowledge of data communications and networking requirements... Students learn to evaluate, select, and implement different communication options within an organization... architectures, topologies and protocols; installation and operation of [network devices], ... network performance analysis; privacy, security, reliability ... installation and configuration of LAN and WAN networks; monitoring of networks"
Traditionally, the role of network administrator has been filled by computer science (CS) graduates, but not because Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGCSE 2001 2/01 Charlotte, NC, USA
© 2001 ACM ISBN 1-58113-329-410110002...$5.00
So why aren't administrators?
85
IS
graduates
becoming
network
Our theory is that information systems graduates don't become network administrators because they lack the fundamental knowledge of networking and operating systems required to become an effective network administrator. The reason is that a typical IS curriculum lacks the appropriate course(s) to teach these topics to information systems students. A traditional CS course in operating systems or networking is inappropriate for an IS major. A typical CS course emphasizes the low-level details of operating systems (e.g., page tables and paging algorithms) and networks (e.g., socket API and kernel buffer management), and typically involves a significant amount of programming (usually in C). Such a course is inappropriate for an IS student. Either the technical material must be watered down for the IS students, thereby robbing the CS students of necessary material; or the technical content is kept, losing the interest of the IS student. What is needed is an operating systems and networking course geared specifically toward IS students.
topic often involves a significant amount of C programming where students might modify a kemel's paging algorithm and monitor its performance. Contrast that with our IS-centered approach where virtual memory is taught in the context of swap space, and swap space management. Programming is involved, but the IS student writes scripts that set up, modify, and remove swap space. The two approaches share the key concept of virtual memory, but differ in the details that are taught and the assignments. The second goal of the course is to provide students practical hands-on experience administering an actual system. TNs is unlike a traditional IS course or training model that teaches specific applications and products (e.g., Microsoft Certified Engineer program, or Novell certification) without a solid grounding in fundamentals. Our course provides a balance of the two. We note that this kind of course requires special support from the department and from faculty. Obviously, to offer the course, the department must have faculty willing and able to teach it. Unfortunately, this excludes many IS programs that exist inside business schools. Businessoriented IS programs often lack faculty with the technical knowledge required to teach the course. Our course is more suited to a joint computer science/information systems department. However, even if faculty exist that posses the technical knowledge, the course requires the faculty to have an understanding and appreciation of the distinction between computer science and information systems. For example, a "pure" computer science faculty will have difficulty teaching the course because the tendency is to stress the low-level details of the subject and gloss over the managerial aspects as being trivial, t Therefore, before offering such a course, special attention needs be paid by the faculty that are considering teaching it.
We have developed a new course in our information systems curriculum that teaches the fundamental principles of operating systems and networks, but with a decidedly information systems slant. The course is a marriage of traditional computer science theory with practical hands-on experience. The goal of the course is to give IS students a solid grounding in operating systems and networking theory, while providing them practical experience in the role of a network administrator. The course we have developed is consistent with the current IS curriculum guidelines while at the same time raising the profile of the role of IS majors in system and network administration. The rest of tNs paper describes our course goals and structure, then presents our ideas and experiences in teaching it. Personally, we have three goals. First, we hope to raise awareness of the need for network administration. Second, we hope to raise awareness about the differences between computer science and information systems. And third, we hope to provide a pedagogical model for others to follow in developing such a course.
3 Course Implementation Grand Valley State University is a growing suburban university with approximately 18,000 students. GVSU is primarily an undergraduate institution with a handful of master's programs, and like other schools in the same category, most of our graduates do not continue their education into graduate school. Our department is a joint Computer Science/Information Systems department consisting of 20 faculty members. However, because we are a joint department, opportunities exist for faculty from one area to teach courses in the other. This creates an ideal environment in which to teach a course that borders between the classical CS and IS curricula, and to share lab
2 Course Goals The primary goal of the course is to teach IS students problem solving/administration skills in operating systems and networks. After having taken the course, students should be able to set up and maintain a network of machines and computer services. Specifically, the course has two complementary goals. First, students should get a solid foundation in the fundamental theories and models of operating systems and networks. However, unlike a traditional CS operating system or networking course, our IS-centered course lacks many of the low-level (i.e., programming) details. For example, teaching a topic like virtual memory to CS students involves describing page tables, table lookup buffers, paging algorithms, etc. The
resources.
1 The authors, both of whom are computer scientists by training, struggled with this issue throughout the course.
86
Information System majors at GVSU take two courses in the systems area. The first, CS 337 Network System Management, covers the lower layers of the protocol stack ((physical and data-link), with an emphasis on LAN technology and network operating systems administration (Novell and Windows NT). Students complete a major project where they analyze, design, and specify a LAN infrastructure for a fictitious company. The second course, CS 437 Computer Systems Management, is the topic of this paper. CS 437 is taken after CS 337, and covers the higher layers of the protocol stack (network layer and up), in addition to foundational concepts of operating systems (e.g. storage, memory, CPU cycles).
Using the command-line reinforces the ideas behind topics, rather than teaching students how to use a particular GUI. A n o n - G U I approach is not feasible in Windows. Third, because Linux is an "open source" operating system, it provides access to the internal workings of all its services. Therefore, students have access to data and algorithms that are proprietary under Windows. We did not have the luxury of establishing a separate, dedicated laboratory facility for this course. This posed a particular challenge as the focus of the lab, network and operating system administration, requires full and potentially destructive access to all aspects of the hardware. Linux allowed us to use the same lab equipment as both a production workstation facility and as a dedicated lab for our course.
3.1 Methodology
The semester is divided into two roughly equal halves of the semester. The first half of the semester covers operating systems, the second half of the semester covers networking. The lecture and lab are complementary. Lecture material typically covers the theory behind some concept, while the lab addresses the same material from a pragmatic standpoint.
Each student has a dedicated ZIP disk installed with a version of Slackware Linux. When the ZIP disk is booted, the student has superuser access and is able to perform the administrative tasks for that lab. We built a specialpurpose distribution and kernel for this environment. More information can be found in a forthcoming paper[4].
The course consists of two integrated components: lecture and lab. Lecture is used to teach ideas, fundamentals, and theory, while lab is used to provide practical experience. The purpose of the lecture portion of the course is to teach the fundamental knowledge of operating systems and networking in the context of administering a network of computers. The role of the lecturer is to describe some aspect of OS or networking theory and then demonstrate how that theory is applied to a modem operating system or network. The teaching of theory is further enhance d by using real-world examples related to administration. For example, in order to teach the concepts of process management, the lecturer would describe what a process is, what resources a process uses (disk, CPU, memory), how processes are created, how processed are killed, etc. These concepts are strengthened by showing the students how resources are allocated when a process is created; how resources are freed when a process dies; how to determine if a process uses an excessive amount of resources; how to kill a process if it gets out of hand; etc. Thus, not only are students learning the critical areas of operating systems and networks, but the knowledge is reinforced by practical hands-on demonstrations.
3.3 Lecture and Lab Material
In a 14 week course, we cover the following topics. Details can be found at the course website [5].
Introduction to UNIX: Files, Processes, Devices, UNIX Tools Topics include a short history of UNIX; basic UNIX commands ( l s , cp, my, etc.); the concepts of files, processes, and devices; important tools for administrators (awk, g r e p , f i n d , etc.). This topic is required because the majority of our students have never used UNIX before. Lab: Students try the most common UNIX commands and do small "projects" involving g r e p , etwk, and seal.
Shell Scripts and Perl Here, we cover what shell scripts are and how to write them. We focus our attention on the Bourne shell because most system scripts are written using the Bourne shell. We also cover the basics of Perl - basic syntax and how Perl is different than a shell script. Per1 is covered because it is used extensively by administrators to automate tasks. We show how complex programs can be written in just a few lines of Perl. This and the previous topics can be omitted ff students already possess a strong UNIX background.
3.2 Laboratory Facilities
Our choice of Linux as the primary operating system for instruction was driven by several considerations. First, most of our IS students have not used any operating system other than Windows. Using Linux in our class gives students experience with another major operating system. Second, although administrative GUIs exist for Linux, we chose to use the command-line interface.
Lab: This lab involves writing a shells scripts in both Bourne and Perl. A sample project might be "Write a shell script that given two directory hierarchies that are supposed to be identical, displays how they are different."
87
Boot Process and OS Initialization
Network Configuration
This topic covers what happens when the machine is turned on. We talk about the basic task of booting a kernel, then turn our attention to how services are started. Topics include operating system initialization, and network initialization.
In tNs section, we cover issues such as setting up the network interface, Ethemet, PPP, SNMP, performance monitoring and routing. Lab: Students monitor network traffic, measure network performance to sites both local and remote, and examine and manipulate routing tables.
Lab: Students investigate where services are started, and modify the startup procedure to start some well-known service (e.g., a web server).
Configuring a Server We discuss the issues involved in setting up common network services. We discuss BOOTP and DHCP configuration services, LPD and SAMBA print services, POP and IMAP mail servers, Network File System (NFS), and the Network Information System (NIS).
Managing Users and Groups of Users In this section, we describe how new users and usergroups are created. We discuss the many different default users that exist. We have a short discussion on security, file permissions, capabilities and file sharing.
Lab: Many lab opportunities exist: setting up a configuration server, setting up a print server, setting up a mail server, setting up an NFS server and client, configuring NIS.
Lab: Students create users and groups, set up file sharing,
remove users and groups, etc.
Managing the CPU, Memory, and Filesystems Security
Here, we talk about the three major resources provided by an operating systelm~ We talk about how processes, services, and users can use these resource and how to monitor their usage. We also discuss how to manage these resources so they are not completely exhausted.
In this final topic, we discuss network security issues, security threats, plans and preparations used to meet those threats, and firewalls. Lab: Students investigate the use of the secure shell (ssh).
Lab: Students execute custom-made applications and try to determine what resources they are using. For example, one application might consume all available memory. The student must then identify what resource the application is using, how much it is using, and then propose some solution to alleviate the problem.
4 Sample Lab Each lab is set up to give each student the opportunity to investigate a specific aspect of system administration. To illustrate what happens during each lab period, we will explain what happens during the lab dealing with the Network File System (NFS).
Network Protocol Stack and Application Layer: DNS, SMTP, and HTTP This topic covers the top-most layer in the network protocol stack: the application layer. We discuss how the application layer fits with the rest of the layers, and demonstrate three application protocols: the Domain Name Service, the Simple Mail Transport Protocol, and the HyperText Transport Protocol
When Jill enters the lab, she inserts her boot floppy and ZIP disk, and reboots the computer. Once rebooted, she now has access to her own dedicated operating system which she has been using and administering the entire semester. The first step in the NFS lab is for Jill to create a filesystem on a blank floppy disk. The lab material explains what kind of filesystem to create and gives the command to use (mkfs), but does not give the full command line. Using this approach, Jill is required to investigate the system man pages to determine the correct options to use (mkfs - t ext2 /dev/fd0). Once the filesystem is create, Jill "mounts" the floppy filesystem and creates a small text file containing her name.
Lab: Students in this lab query the domain name system and use SMTP to deliver a message "by hand".
Transport Layer and Network Layer Here, we look at the two protocol layers beneath the application layer. Topics include addressing, connections, TCP, UDP, performance, routing, congestion, IP, ARP, and RARP. Lab: In tNs lab, students monitor their network ports, and report which are being used by processes. Students also determine how their computer is connected to the Intemet by examining the path that outgoing packets take.
The next step is for Jill to share her floppy filesystem with Jack working on another system. Once again, Jill is instructed on what to do, but is not given the precise details about how to do it. Jill is expected to use the man pages and her books to discover exactly how to modify
88
/etc/exports to enable file sharing, and to ensure that the appropriate daemons are running (mountd and nfsd).
(especially in the area of network administration) is crucial in the learning process.
The final step of the lab is for Jill to mount Jack's filesystem and to add a file to it. For grading purposes, Jill is required to print out her /etc/exports file, the file created by Jack on his remote filesystem, and the file Jill created on Jack' s filesystem.
As CS professors, the authors had to struggle continuously to find the right IS approach to otherwise very familiar material. The temptation to cover material in the traditional CS manner is strong. The nagging feeling that material taught from an administrative approach lacked rigor, or veered to closely to industrial training was constant.
Finally, Jill unmounts Jack's filesystem, unmounts her own floppy filesystem, removes the entry from /etc/exports, removes the ZIP disk and reboots the machine.
Sharing the lab facility between general purpose production use and dedicated special purpose course use w a s a success.
5 Evaluation References While we have not formally evaluated our course, we have gathered anecdotal evidence on both its impact on students as well as the faculty involved.
[1] Gordon B Davis, John T Gorgone, J Daniel Couger, David L Feinstein, Herbert E Longenecker. IS'97: Model
Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems. Association of
W e have taught this course to IS majors for three semesters.
Information Technology Professionals. 1997. [2] Herbert E. Longenecker, Jr. and David L. Feinstein.
Reaction from students is mixed. Some are genuinely interested in the subject, understand the importance of network administration, and appreciate the mixture of theory and practice. Others seem to view anything beyond the GUI as magic, and of little interest or relevance to them.
Information Systems 2000. http://www.is2000.org.
Some students, usually those brought up in a Windows environment, will sometimes ask about a GUI interface. We emphasize that the course is about teaching fundamentals, and that fundamentals apply everywhere regardless of what kind of user interface you have.
[4] D. Robert Adams. Configuring a Production Lab for Dedicated System Administration Lab Exercises. Linux
[3] D. Robert Adams, Carl Erickson. The Role of
Operating Systems and Network Administration in the IS Curriculum. Proceedings of the Information Systems Education Conference (ISECON) 2000.
Journal. Submitted for publication. [5] http://www.csis.gvsu.edu/~adams/CS437
The mixture of lecture and lab has been a success. The lab material helps to strengthen the ideas talked about in lecture, and permit the student to apply that knowledge in a meaningful way. W e feel that knowledge application
89