Skip to content

Basics

Basics of Linux

What is Linux?

Linux is based on the Unix operating system developed in the 1970s at AT\&T Bell Labs. Unix is known for being a powerful and reliable operating system that is used on a wide range of computers, from small devices like smartphones to large servers that run websites and other services. Linux is a version of Unix that was created by Linus Torvalds in the 1990s. It is an open-source operating system, which means that the source code is available for anyone to view, modify, and distribute. This has made Linux popular with developers and others who want to customize their operating systems to meet their specific needs. It support multitasking, multiuser, n/w and virtual application & wide varieties of n/w networking protocols & configurations

Linux has mainly two parts, Kernel & Set of commands and applications.

Kernel deals with program execution, memory management, and I/O operations.

Set of commands and applications deals with language compilers, video tools, web browsers etc.

Features of Linux

  • Multi-User & Multi-Tasking
  • GUI
  • No constant rebooting required
  • Hierarchical file system
  • Downloadable Applications
  • Start/Stop services without interrupting others

Architecture

  • Hardware
  • Kernel
    • Shell
    • Utilities
      • Apps
      • Compiler
      • Group
      • UI etc

Hardware Layer It is the core of Linux. It consists of all peripheral devices.

Kernel layer A collection of routines. It is loaded into memory management when the system is booted. Communicates directly with the hardware. It also has various tasks, such as task scheduling, resource management, and I/O operation.

Shell It is a user interface that helps users interact with Linux O.S. we can also call it the UI between the User and OS.

Utilities & Application Programs These allow us to interact with the system in a better manner. User-customized applications are included in this layer. e.g. Text Editor, Video applications.

On Linux, the extensions for executables are typically either .sh for shell scripts, or .bin for binary executables. However, there is no requirement for executables to have any particular extension on Linux, and it is common for executables to have no extension at all.

In addition to .sh and .bin, other common extensions for executables on Linux include .out, .elf, and .run. However, these extensions are not universally used, and an executable may have any or no extension.

You can use the command to determine whether a file is executable on Linux. For example:

$ file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=9b17e52b45b2f7b2a0a40a7c27ed9a9a7cc8c485, stripped

The output of the file command indicates that /usr/bin/ls is an ELF (Executable and Linkable Format) binary executable for 64-bit systems.

Alternatively, you can use the ls -l command to display a file's permissions. It is executable if a file has \ permission set for the owner, group, or other users. For example:

$ ls -l /usr/bin/ls
-rwxr-xr-x 1 root root 113592 Dec  16  2022 /usr/bin/ls

The -rwxr-xr-x permissions string indicates that the file is an executable, as the x permission is set for the owner, group, and other users.