Sunday, February 12, 2023

CPU & GPU Internel components with explanation

Terminology : 

BIOS (Basic Input/Output System) is the first software that runs when you power on your system, performing an initial pack of diagnostic tests (POST, or Power On Self-Test) to see if there are any issues with the hardware. 
POST is the first step in your hardware's boot sequence. The machine won't continue with the boot sequence if the POST fails.

BIOS contains instructions on controlling various hardware components such as hard disks, keyboards, and display screens.

VBIOS (Video basic input/output system) is the BIOS of a graphics card in a computer. 
                    VBIOS initializes the graphics card at the computer's boot time.

SBIOS (System Management BIOS):

Defines data structures that can be used to read management information produced by the BIOS of a computer. 
SBIOS eliminates the need for the operating system to probe hardware directly to discover what devices are present in the computer

To check SBIOS version cmd:  sudo dmidecode -s bios-version


UEFI (Unified Extensible Firmware Interface) is a newer standard that replaces the legacy BIOS.
UEFI offers more features and benefits, such as faster boot times, better security, larger disk support, and graphical user interface.


Dynamic Kernel Module Support (DKMS) is a program/framework that enables generating Linux kernel modules whose sources generally reside outside the kernel source tree.  

CMD:  sudo dkms status   This  command will give GPU kernel & OS-kernel (C.P.U)
Ex: 
CMD:  uname -r    This  command will give OS-kernel only
Ex: 

CMD: /usr/lib/modules/6.x.x-xx-generic/kernel/drivers

This is the OS kernel path where all the drivers (input / tty / Bluetooth / GPU/ PCI ..... ) will be located

What is Swap memory?  and what is the purpose of Swap memory?
  • Swap space (virtual memory) is a designated area on a hard drive that is used as an extension of physical memory (RAM). 
  • When the system's RAM becomes full, inactive pages are moved to the swap space, freeing up RAM for active processes
  • While swap space can help machines with a small amount of RAM, it should not be considered a replacement for more RAM.
How do we check Swap memory in our machine?

   commands to check swap memory: free -h          or     sudo swapon --show
   the output of  free -h  
                     total        used        free      shared  buff/cache   available
Mem:           125Gi       9.0Gi       113Gi       112Mi       2.8Gi       115Gi
Swap:           93Gi          0B        93Gi
  
the output of   sudo swapon --show  
        
NAME      TYPE       SIZE USED PRIO
/dev/sda3 partition 93.1G   0B   -2

Can we increase the swap memory? Ans: Yes. 

How to increase/ resize swap memory? / How to increase Swap Space in Ubuntu 22.04 LTS Jammy?

Steps to add Swap area in Ubuntu 22.04 LTS Linux

1. Check the current Swap Space

            cmdsudo swapon -s 

            result: if there is no swap memory means it will not show anything (empty)

                        otherwise shown as below

                Filename                                Type            Size            Used            Priority

                /swapfile                               file            31457276        0               -2

2. Turn off Swap

            cmd: sudo swapoff -a                             Command output shows: Nothing 

3. Create a Swap file on Ubuntu 22.04 to increase the size

   Note: While using the given command keep one thing in mind 40G means, 40GB of space you are about to allocate for Swap       

            cmd: sudo fallocate -l 40G /swapfile        Command output shows: Nothing  

4. Change file permission

            cmd:  sudo chmod 600 /swapfile              Command output shows: Nothing  

5. Mark SWAP space and activate it

            cmd:  sudo mkswap /swapfile

                    mkswap: /swapfile: warning: wiping old swap signature.

                    Setting up swapspace version 1, size = 100 GiB (107374178304 bytes)

                    no label, UUID=0764024e-ac01-4c29-91ab-bb64f7af33a3

            cmdsudo swapon /swapfile               Command output shows: Nothing 

        Note: After activating, can you check whether the Swap space is added to your system? By using the below cmd.

          cmd: sudo swapon -s     or     free -h

6. Set Ubuntu 22.04 SWAP file as permanent

            cmd:  echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

7. Set swap usage or swappiness

            cmd: sysctl vm.swappiness                  Command output shows:  vm.swappiness = 60

         However, this change is forgotten by the system after a reboot unless the following is entered in the system file /etc/sysctl.conf:

            cmdsudo nano /etc/sysctl.conf     Command will open a file, at the end of the file add vm.swappiness = 60  then save the file with the help of the options shown there. just check again if your change is saved or not?

       8. Now reload the sysctl configuration file

            cmdsudo sysctl -p

            cmdsudo reboot

for any clarification use this link: https://linux.how2shout.com/how-to-increase-swap-space-in-ubuntu-22-04-lts-jammy/#1_Check_current_Swap_Space.


How to avoid hanging issues on our laptops/Personal computers?
 1. Delete unwanted /unnecessary files and folders 📂 in laptops /PCs 💻 

    We have to delete files & folders from 3 locations

              a. Delete files & folders present in the prefetch folder

                  press windows+r  type prefetch press Enter button ==> then try to delete all files & folders  

   b. Delete files & folders present in the temp folder

                  press windows+r  type temp press Enter button ==> then try to delete all files & folders 

   c. Delete files & folders present in the %temp% folder

                  press windows+r  type %temp%  press Enter button  ==> then try to delete all files & folders 

              d. Delete malicious softwares

                              press windows+r  type MRT  press Enter button  ==> click on YES  --> Next --> enable quick scan Radio button, automatically malicious softwares will be removed.


Request: If you find this information useful, please provide your valuable comments.


Dockers and containers

What is docker?

Docker is an environment with its own OS+ user space (related packages & modules) that resides on a bare-metal system and uses system HW/Kernel resources to serve a different purpose.


We must understand 3 environments (Bare metal,  Docker, virtualization)

·        Bare metal is one kind of environment where we test our GPUs directly

·        Docker is one kind of environment that is separated from Bare metal.

       Virtualization is software, that makes computing environments independent of physical infrastructure. In contrast, cloud computing is a service that delivers shared computing resources (software and/or data) on demand via the Internet.

·        If you launch Docker, it has its own user space with all dependent packages and its own OS.

The beauty of the docker concept :


   Docker is platform-independent and can run on any machine regardless of the operating system present.


      Docker is controlled by a kernel space.

·        Kernel sitting very close to the hardware.                                                 

·        If Kernel space/Firmware is broken/crashed, we can’t do anything.

·        Both Bare-metal and Docker have the packages, Except Docker does not have kernel space. Docker will use kernel space which is available on the bare metal.

Docker architecture components & How does docker work? 

Docker architecture comprises 3 main components

1. Docker Client: This is the interface through which users interact. It communicates with the docker daemon.

2. Docker Host: Here, Docker daemon listens for docker API requests and manages various docker objects, including images, containers, networks, and volumes

3. Docker Registry: This is where Docker images are stored. Docker hub, for instance, is a widely used public registry 

          Docker & container related commands

sudo docker pull <docker_name_based_on_OS> cmd will pull the specific doker into the machine

sudo docker images  ==> cmd will list the available dockers in the present machine

sudo docker rmi  -f  docker_id ==> cmd will delete a single specific docker in the present machine

sudo docker rmi  -f  docker_id_1 docker_id_2 docker_id_3 ==> Will delete multiple dockers

sudo docker ps -a ==> cmd will list the available containers in the present machine

sudo docker rm container_id ==>cmd will delete a single specific container present in the machine

sudo docker rm container_id_1 container_id_2 container_id_3 ==> will delete multiple containers

docker system prune -a   ==> It will clear space on your device by doing the following tasks 

     This command will remove: 

            - all stopped containers

            - all networks not used by at least one container

            - all images without at least one container associated with them

            - all build cache


Ø   sudo dmesg: dmesg contains all kernel-related information (loading /unloading, module loading firmware loading. etc. lot of information).

Ø  sudo dmesg | grep -i error if you search like this it will give kernel/firmware-related error messages 

Ø  Any kernel-related error & other information you want to see then you must run sudo dmesg from the home directory,

su sudo dmesg -C  --> It will clear all kernel error messages

Ø  cd /var/log/ èin this folder the dmesg log file & other kernel log files are present.

èFirmware not loaded/ kernel crashed all information, You can use the command sudo dmesg | grep -i error to see the error messages.


Request: If you find this information useful, please provide your valuable comments.