You are here:

Computer Science/Operating system and software

Advertisement


Question
Sir,

What exactly is an operating system and what is a 'kernel'. How is an operating system different from a software. What are 'Linux' and 'Fedora' and how are they different from Windows. In my college everyone keeps talking about Linux kernel and fedora, but I can't quit understand what these terms are. Where does programming and programming language come in designing an operating system. I am extremely sorry for asking too many questions.  Thank you for your time and knowledge.

- Vinod

Answer
Hey,

So, there are indeed many questions.  I will do my best to answer them in as concise a method as possible, and hopefully can provide you with some links for further study.

Q: What is an operating system?
A: An operating system is a piece of software that allows other software (such as Office or Firefox) to use and communicate with other programs, users (such as you), or computer hardware and peripherals (such as your CD drive, hard drive, or printer). The operating system provides the general interfaces for these things to happen.  See http://en.wikipedia.org/wiki/Operating_system for more information.

Q: What is a 'kernel'?
A: So, when writing software, you usually want to avoid things called "infinite loops".  These are pieces of code that will run forever because they point to themselves (ie: 10 goto 10).  However, that behavior is exactly what you want in an operating system.  The "kernel" is a piece of code in the operating system that runs in an inifinite loop.  Depending on the operating system, it can do a number of things.  However, the core of it is that the Kernel provides input / output functions (user types a key, and the computer receives the signal from the keyboard), inter process communication (two programs talking to each other), and hardware detection logic (you just plugged in a new printer).  See http://en.wikipedia.org/wiki/Kernel_%28computing%29 for more information.

Q: How is an operating system different from software?
A: An operating system is a piece of software.  It is different from "Application" software in that it specifically controls other software as it's primary function.  However, it is technically just software.

Q: What are Linux and Fedora?
A: Technically, Linux refers to an Operating System kernel.  Linux by itself does not provide any human usable interface.  However, Linux coupled with GNU software (called GNU/Linux) is an operating system, and handles the same low-level things that Windows or the Mac OS do.  Most people are referring to GNU/Linux when they talk about Linux, so don't worry about the distinction. Just know that it's there.

The difference Between Windows and Linux is that the human readable source code that makes up Linux is completely free (both in price and in what you can do with the code).  This means that anyone can use the Linux Operating System free of charge on any computer they want, and can modify it if they know how.

Fedora is a brand of Linux (also called a distribution).  It means that someone took the free GNU/Linux software (Linux kernel + GNU software), and bundled their own software together with it.  They also might add things like custom fonts, nice background pictures, and new themes.  Companies like Red Hat make their money on supporting the free software and providing a specific set of software that they've tested to work well.  You can download a CD of Fedora, put it in your computer, and you're technically using Linux (The Linux Kernel, GNU software, and the Fedora extras).

Q: Where does programming and programming language come in designing an operating system?
A: Since an operating system is just software, it has to be written in some programming language.  While assembly language (the lowest-level human-readable language) used to be popular, most modern operating systems (Including Linux) are written in C.  Since Assembly language is different depending on what processor you're using, software written in assembly has to be re-written for each processor you want to support.  This can become very tedious.  Using C, the programmers can write the operating system in one language and compile it for multiple processors.  This basically means the computer automatically converts the C code (written once by a person) into many assembly languages for different processors.

I hope this helps.

Computer Science

All Answers


Answers by Expert:


Ask Experts

Volunteer


John OConnor

Expertise

Specific and general questions about computer science, including data structures, file systems, computer programming languages, regular expressions, and Software Engineering. I can answer general and specific questions about Linux. I can answer general and specific questions about the Android operating system. I cannot answer questions about specific problems with Microsoft(R) Windows(R) or Apple(R) Mac(R)

Experience

I've programming computers since 1993, and have a Bachelors of Science in Computer Science. I have 3 years of experience as a professional Software Engineer, and 5 years before that as a professional web developer. Since 2008, I've been the lead engineer at OC-Technology and RAD Software systems, developing mobile applications for various architectures, including the Android Operating System.

Organizations
Linux Users Group at LAX (LiLAX), Open Source Education Institute (founder), Northrop Grumman Linux Users Group (NoGLUG).

Education/Credentials
Bachelors of Science in Computer Science, California State University, San Bernardino.

Awards and Honors
Multiple Commendations from Northrop Grumman Mission and Space Systems,

©2012 About.com, a part of The New York Times Company. All rights reserved.