CIS120 Linux Fundamentals by Scott Shaper

Introduction to Linux

Welcome to the world of Linux! In this course, you'll learn about one of the most powerful and widely-used operating systems in the world. But before we dive into commands and technical details, let's understand where Linux came from and why it's important.

What is Linux?

Think of Linux as the engine that powers many of the devices and services you use every day. From smartphones to supercomputers, from web servers to smart TVs, Linux is everywhere. It's like the invisible foundation that makes modern technology work.

The Story of Linux

Linux has an interesting history that began with Unix, created in the 1960s at Bell Labs. Unix was revolutionary because it was:

Fast forward to 1991, when a Finnish student named Linus Torvalds created Linux as a free alternative to Unix. He shared his work with the world, and something amazing happened - people from all over started contributing to make it better. This collaborative approach is what makes Linux special.

Why Linux Matters

Linux is important because it's:

Linux in the Real World

You might be surprised to learn where Linux is used:

How Linux Works

Linux is built in layers, like a house. Each layer has a specific job, and they work together so you can run programs, save files, and use the computer. Understanding these layers helps you see how your commands and programs actually get things done.

Hardware is the physical part of the computer: the processor (CPU), memory (RAM), disk drives, keyboard, mouse, and screen. Linux does not talk to these directly. Instead, the next layer does that.

The kernel is the core of Linux. It is a program that is always running and that manages the hardware. It decides which program gets to use the CPU when, how much memory each program can use, and how data is read from or written to the disk and network. When you run a command or open an application, the kernel is the one that actually allocates resources and talks to the hardware. You rarely interact with the kernel yourself; other software does that for you.

System libraries are collections of prewritten code that programs use to do common tasks. For example, opening a file, drawing on the screen, or sending data over the network usually goes through these libraries. That way, many programs can share the same, well-tested code instead of each program talking to the kernel in its own way. This makes software more reliable and easier to develop.

Applications (and utilities) are the programs you run: a text editor, a web browser, or a command like ls or cat. When you type a command in the terminal, you are running a small program that uses the libraries and the kernel to do work. So when you run ls, that program asks the kernel for a list of files in a directory, and the kernel reads that information from the disk and returns it.

In short: you use applications and commands; they use libraries; the libraries and the kernel work together to use the hardware. The table below summarizes these layers.

Layer Purpose Real-World Example
Hardware Physical components (CPU, memory, disk, keyboard, etc.) The house's foundation and structure
Kernel Core system: manages hardware and resources for all programs The house's electrical and plumbing systems
System Libraries Shared code that programs use to talk to the kernel and do common tasks Standard house features (doors, windows)
Applications Programs you run (editors, browsers, and commands like ls and cat) Furniture and appliances

In this course you will spend most of your time using applications and commands (the top layer) and learning how to work with files, run programs, and use the shell. As you get more comfortable, you will see how the commands you type connect to the layers underneath.

The Linux Community

One of the most exciting things about Linux is its community. People from all over the world contribute to making Linux better by:

Remember: Learning Linux is like learning a new language. Start with the basics, practice regularly, and don't be afraid to make mistakes that is part of the learning process.