I have been using Linux both on my personal computer and as solutions for various business since the late 1990's. I have a very firm grasp of the most widely used suite of Linux tools, the GNU coreutils based systems.
Linux commonly refers to the entire suite of software required to boot and operate your computer. Technically speaking, Linux is the bare “kernel”, or core, that provides a framework for software to interact with the computer hardware and the user. However, when most people refer to Linux, they are referring to the entire suite of software to make the computer usable. It's in this context that I will use the name.
Linux is a POSIX compatible system that consists of five major parts. The kernel consists of the necessary coding to allow the component parts of a computer to interact with each other and the user. It would be an error to refer to the kernel itself as a program. A typical modern Linux kernel configured for basic everyday home use is around 5MB.
The filesystem is the way in which the physical hard drive is addressed and accessed by the kernel. The concept of a filesystem is further expanded to include the actual way files are handled, and in part the way the entire system of files appears to the user and programs, other wise known as the logical structure. Most Linux implementations follow a standard of which files go where, known as the Filesystem Hierarchy Standard which is maintained by the Linux Foundation.
The base system creates a working environment in which the user can perform various tasks with the computer. These tasks would include moving, deleting, copying, creating, changing, and viewing files. The base system is also typically defined as a way to handle users of the system, and provide a means to add, change, and remove additional services and applications. A base system, also known as minimal, is typically agreed to be command line interface only.
Services are bit and parcel to Linux systems, the concept of which originated well before Linux came into existence. Services are a special class of software that when executed, they remain running although their presence may not be known to users of the computer. The function of a particular service is to wait until a specific computer event happens, then the service responds by providing information, initiating a task, changing something, or other similar things that happen seemingly automatically. One example of a very common Linux service is “sshd.” Sshd is a service that listens on a network for other users or computers to create a connection to the computer sshd is running on. Upon receipt of that connection attempt, sshd responds by asking the initiator of the connection to authenticate with the system. If this authentication is successful, sshd presents a working environment where the initiator can do most anything with the system while maintaining the same security provisions as if the initiator were physically at the computer.
Applications are programs that allows the computer to do tasks. There are a great many types of applications. Some of the classes of applications are:
-> Graphical User Interface environments, for providing a graphical way to interact with the computer
-> Common data management programs, colloquially called office applications
-> Internet applications such as web browsers, chatting programs, downloading programs, and so on.
-> Audio/Video applications for handling audio and video files.
-> Graphics applications for handling image files
Within each of these and other classes, there are standard tools that a person can reasonably expect to find, or have available for installation.