Introduction
In the Computer I/O course, we learned how different types of I/O devices interact with the computer. We also built a command-line shell so that non-programmers can easily interact with the computer and the I/O devices that are connected to it.
The shell is the interface, or middleman, between humans and computer hardware. Users interact with the shell, and the shell interacts with the computer hardware and I/O devices. Here is an example sequence of events:
- A user commands the shell to read some text from the hard drive.
- The shell signals the hard drive to perform a read operation.
- After the read operation is complete, the hard drive interrupts the shell.
- The shell prints the text on the screen for the user to see.
The shell makes computers more accessible. We no longer have to write programs to print text on the screen or send messages over the network. Instead, we can issue simple text commands to the shell.
The shell also protects the computer from inexperienced programmers and bad actors. Programs may contain mistakes that cause the computer to behave in unintended or undesirable ways. For example, a programming bug may cause a computer to crash (stop executing instructions) when a user types on the keyboard. Bad actors intentionally cause the computer behave improperly. The shell prevents certain bad behavior by restricting the type of commands that the user can issue and handling errors gracefully.
Along with the shell, modern computers provide many other types of interfaces, or services, to make our lives easier. For example, the file system represents the hard drive as files and folders so that we don't have to remember disk cell locations. And network applications such as web browsers use TCP/IP libraries to send and receive messages over the internet. Collectively, these services are part of a large computer program called the operating system (OS). Examples of operating systems include Microsoft Windows, Apple MacOS, Google Android, and Linux.
Wait, the shell is part of the operating system? This can be surprising because many of us have used operating systems all our lives without ever opening the shell. Most modern operating systems have graphical user interfaces (GUIs) with windows and icons. We are accustomed to interacting with computers with a mouse or, if the computer has a touchscreen, with our fingers. On the other hand, the shell is a text-based interface, and we primarily use the keyboard to interact with it. For most users, graphical interfaces are easier to use than the shell. But although the GUI and the shell appear very different, we can accomplish most of the same tasks using either one. For example, we can create text documents using either a shell command (such as Emacs or Vim) or a windowed application (such as MS Word or Google Docs).
Operating Systems VS Applications
To help us get a better sense of what an operating system is, let's consider what it is not. Applications such as web browsers (Google Chrome), text editors (MS Word), GPS navigators, and video games are not part of the OS. Rather, we can think of applications as programs that we install and run on top of the OS. Such programs rely on the OS to facilitate interactions with I/O devices. Also, applications can be started and terminated independently of the operating system. For example, closing a web browser does not shut down the computer.
However, some applications, such as the shell, blur the line between the OS and the application. The shell is arguably an application, since we can install and run different kind of shells. But without a shell, a text-based OS is unusable. This makes the shell an essential component of the OS, much like file systems. For these reasons, applications like the shell are sometimes called system-level applications.
In this course, we will learn how operating systems work. We will explore important components of operating systems, including the shell, file systems, the networking interface, and program execution.
For hands on activities, we will make extensive use of the Logicwalk Operating System (LWOS), which is a simplified version of a real operating system created for educational purposes.
Please check all examples of operating systems
Please check all the benefits of using an operating system.
Please check the choices that are part of the operating system.
Comments
Please log in to add comments