Linux

Linux is a #free and #open source Kernel# based on Unix, first initiated and developed by Linus Torvalds. Most of the time, Linux is coupled alongside with GNU utilities to compose a complete operating system which are contributed by Richard Stallman and Free Software Foundation (FSF) where they prefer to refer such combination as GNU/Linux or GNU+Linux.

In the following section, I will use Linux to refer to the kernel and the operating system interchangeably.

The superuser in Linux is called root, which will have a user ID of 0. It has the highest possible privileges within the operating system.

As Linux follows the Unix Philosophy# (or partly), almost all devices or objects are treated as a file. File is an important logic entity in Linux that one should pay attention if they want to master it. The following topics are related to file or its operation.

Graphical User Interface (GUI)

Linux has several GUI to display bitmap. There are several implementations as shown below:

Resource Control and Security Facilities

Linux provides some facilities to simplify the resource management and fine control on security. The framework or facilities are shown below:

Distributions

There are tons of Linux distributions with different flavour of desktop environment and default programs. The following shows them:

Links to this page
  • openSUSE

    openSUSE is a #202204081225 distro that is mainly developed by SUSE which at the same time develop SUSE Linux.

  • X Window System

    For remote access to the X server, it implements 202205182136# which listen to port 177. Usually, #202204081225 distro will provide a 202205182153# for login. You can run programs in GUI even in remote by using the protocol.

    X Window System (X11) is a graphical user interface (GUI) for #202204081225. It can display windows, fonts#, games or any graphical components. Its configuration files could be seen at /etc/ or /etc/X11/. It has several implementations as shown below:

  • X Display Manager Control Protocol (XDMCP)

    The alternative to XDMCP model is 202205201001# where not only #windows or #macos computer is able to connect to 202204081225 computer, but the reverse is also true.

    We can choose the so-called 202205182153#, formally XDMCP server, by changing the variable DISPLAYMANAGER defined in the directory /etc/sysconfig or the SysV, Upstart or Systemd script (Debian and Arch). Depending on the Linux distro, this variable could be found and/or defined in the file desktop (Fedora) or displaymanager (openSUSE). The variable can be either the executable file that start up the server (Fedora) or the name of that server (openSUSE). These servers are listed below:

  • X Display Manager (XDM)

    XDM is a #202205182153 available in 202204081225. All configuration files can be found in the directory /etc/X11/xdm. xdm-config is the main configuration file where the variable DisplayManager.requestPort could be set to 0 to disable remote access or 177 which is the port to listen for connection. The file Xaccess is used to restrict the access to the #202205182136 server. The following shows the example:

  • X Core Font

    Modern 202204081225 distribution has replaced X Core Font with 202205052008#.

  • Virtual Network Computing (VNC)

    VNC is a graphical desktop-sharing system that could be used cross-platform (202204081225, #windows, #macos). It uses the protocol Remote Frame Buffer protocol (RFB) for the connection. The server reside on the computer that the user want to access where the user is sat on the client side. The role is reversed in contrast to #202205182136 model.

  • Unix System Call

    System Call could be called in order to obtain services from Unix-based operating system such as Linux and #macos.

  • Ubuntu

    Ubuntu is a #Debian-based #Linux distribution developed by Canonical that aim for providing user-friendly access to the Linux desktop.

  • Time Zone

    For the remote 202204081225 system to display the local time, we can export the variable TZ (example: TZ=:/usr/share/zoneinfo/Asia/Kuala_Lumpur) in the shell.

  • TTP3121 Chapter 2: Introduction to Unix Based OS
  • Security Computer Mode (Seccomp)

    Security Computer Mode is a #202204081225 security facility that restricts system call that could be made or requested by processes. The extension seccomp-bpf can provide an easy management of the system call filtering using configurable policy.

  • Red Hat Enterprise Linux

    Red Hat Enterprise Linux is an open source commercial #Linux distribution developed by Red Hat.

  • Red Hat Ansible Automation Platform

    Red Hat Ansible Automation Platform provides 202204272021# automation, cloud services , and content in 202204300837# which includes infrastructure like 202204081225#, cloud or container technologies (202110201636# and 202201291535#), network (CISCO) and security including devices and how they fit in the environment.

  • Program

    Program is an executable file in Unix-based system such as Linux# and #macos, which could be a shell script, shell command, compiled file or object code file. It is created by a link editor and stored on a disk, and can be executed by the exec System Call# which will create a Process#.

  • Printing in Linux

    #202204081225 uses several unique print queues that can hold dozens of files waited to be printed. The files could be submitted by the program lpr which typically found in the directory /var/spool/cups. Print Queues are managed by 202205301742# (newer system that replaces LPD and LPRng) which will in turn sends them to the printers.

  • PostScript Printer Definition (PPD)

    PPD are usually shipped with 202204081225 distribution. If this is not the case, you can find them in Foomatic, Gutenprint, CUPS Driver Development Kit (DDK) or from printer manufacturers (especially for proprietary drivers).

  • Mach Memory Management

    Unlike monolithic kernels such as 202204081225, #202203021657 relies on user-level memory managers instead of kernel-level virtual memory pager. Following the OOP principle, it treats memory objects like all other components in the system. These objects are fairly independent of the kernel since there is no assumption made on their contents and importance.

  • Linux’s Storage Management

    #202204081225 usually treat PATA and SATA disks as if they are SCSI devices.

  • Linux Video Card Drivers

    Video Card Drivers for #202204081225 are resided on the directory /usr/X11R6/lib[64]/modules/drivers/ or /usr/lib[64]/xorg/modules/drivers/ for #202205051707 and #202205051716 respectively.

  • Linux Security Modules (LSM)

    LSM is a #202204081225 framework that allows modules mediates the access to internal objects in the Kernel. To do so, they place hooks in the kernel code just before the access happen. They will impose several checks against access to see whether the request is valid and legal. LSM provides MAC-based controls without modifying the kernel.

  • Linux Memory Management

    For virtual memory, #202204081225 can use either a file or dedicated partition for the paging in or out. The file or the partition are usually named as a swap.

    The resource management for newly recreated child process by fork system call will be done in #202203251058. They will point to the same process structure that their parent is using. This is crucial for I/O instructions since copying the file contents into the child’s memory space can be costly. If the child wants to modify the process structure, #202204081225 will then copy the process structure and other necessary system resources for it to prevent #202112061109.

  • Linux File Types

    #Linux follows the Unix Philosophy where almost all things are treated as a file. The file could be:

  • Linux File Systems

    #Linux has several file systems that are used to manage storage#.

  • Linux Directory Structure

    /bin is used to store program binaries. Though by editing the PATH variable, #Linux will be able to find the binaries stored in the directories specified in the variable.

  • Linux CPU Scheduler

    #202204081225 use mainly 2 CPU scheduler:

  • Job Control

    Job Control allows user to start multiple processes from a terminal and have some control over their execution. It is introduced in 4.3BSD which is then widely adopted by other Unix-like operating system including #Linux. It requires support from the terminal driver, the signal mechanism and the shell, meaning if the shell supports the Job Control mechanism, but the underlying operating system doesn’t, then it is not possible to do Job Control on it.

  • Internet Control Message Protocol (ICMP)

    Command ping, exists in #windows and Linux#, utilises ICMP to detect the response time and time to live (TTL) of the target destination to the source.

  • HashiCorp Terraform

    Terraform is an #open source automation tool used for #Infrastructure as Code (IaC) which is available in multiple platforms such as Windows, Apple and Linux. It can manage on-premise server, Cloud Computing# (AWS, Azure, Google Could Platform), #Virtual Machine (VM) (VMWare), Version Control System (VCS) and protocol (HTTP, TLS, Domain Name Server (DNS)) using Terraform Providers# available in Terraform Registry#.

  • Git

    Git is a free and open source #Version Control System (VCS) that was developed by Linus Torvalds, who is also the creator of Linux, and now maintained by the community. The repository can be hosted on various provider such as GitHub and GitLab.

  • File Descriptor

    A unique File Descriptor is assigned to an opened file in order for Unix or Unix-like operating system such as #Linux to identify it. There are some default file descriptors reserved for system usage:

  • Fedora

    Fedora is a #Linux distribution developed by Red Hat primarily for desktop usage unlike its server counterpart Red Hat Enterprise Linux.

  • Encoding

    iconv -f {original_encoding} -t {target_encoding} {file} in 202204081225 could be used to convert the input file’s encoding to another encoding.

  • Display Manager

    Display manager is a #202205182136 server that deliver GUI login session to the user. The following shows several display managers available in 202204081225:

  • Debugging Tools

    Iterative debuggers are useful tool in debugging a program by analysing their information in binary or sometimes ELF files in Linux environment. These debuggers could let you set breakpoints in between the sequence of the control flow. Some have even great ability to visualise the data that you’re set to inspect.

  • Debian

    Debian is a #Linux distribution developed by community-driven Debian Project. Ubuntu# is one of the derivation of it.

  • Control Groups (Cgroups)

    Cgroups is a #202204081225 kernel feature that set resource utilisation limits on processes on the system. Default cgroups and their data could be found in /sys/fs/cgroup/.

  • Braille Display

    For 202204081225#, there is an available program named BRLTTY that use daemonized process to support redirection of the text-mode console output to Braille Display.

  • Ansible

    Ansible is an open source automation tool for system administration especially in 202204081225. It could be used for system monitoring, #202205041217, disaster recovery, system maintenance, policy enforcement etc. It is one of the widely adopted #202206061419 tool.

#operating-system #linux #floss