Final Year Project Thesis COLOR
Final Year Project Thesis COLOR
L K LIVINGSTONE (URK20EC1054)
in partial fulfillment for the award of the degree
of
BACHELOR OF TECHNOLOGY
in
ELECTRONICS AND COMMUNICATION ENGINEERING
under the supervision of
April 2024
ii
BONAFIDE CERTIFICATE
This is to certify that the project report entitled, “An Optimized Linux
Distribution system for low end devices” is a bonafide record of work of the
following candidate who carried out the project work under my supervision during
the academic year 2023-2024
L K LIVINGSTONE (URK20EC1054)
………………………. …………………….
(Internal Examiner) (External Examiner)
Figure 1.1 Kernel Architecture
In essence, the kernel serves as the linchpin of the operating system, providing essential
services and abstractions that enable the execution of applications, the management of
hardware resources, and the enforcement of system policies and security mechanisms.
RAM vs. CPU Usage: RAM serves as a temporary storage medium for actively running
programs and data, while the CPU executes instructions and performs computations.
The relationship between RAM and CPU utilization can vary depending on the nature
of tasks being performed.
High RAM Usage, Low CPU Usage: Activities that involve loading large datasets into
memory or opening multiple applications simultaneously may result in high RAM usage
without significantly taxing the CPU, as the CPU may be idle while waiting for data to
be processed.
High RAM Usage, High CPU Usage: Tasks that involve intensive computational
operations, such as image processing, video rendering, or scientific simulations, may
3
CHAPTER 3
FOUNDATIONS OF LINUX AND KERNEL ARCHITECTURE
Customization: One of the defining features of Linux distributions is the ability for users
to customize their experience according to their preferences and requirements. Whether
it's selecting a desktop environment, choosing specific software packages, or
configuring system settings, distributions offer flexibility and adaptability to meet
diverse user needs.
Kernel Consistency: While distributions may vary in terms of bundled software and
configurations, they all share a common foundation: the Linux kernel. This ensures
compatibility and interoperability across different distributions, allowing users to switch
between them seamlessly while retaining core functionality.
8
Figure 3.2 Growth of Linux Distribution over time
Among the plethora of Linux distributions available, Arch Linux stands out for several
reasons.
Customization and Optimization: Arch Linux empowers users to build their system from
the ground up, selecting only the components and configurations they need. This
minimalist approach allows for maximum flexibility and optimization tailored to
specific requirements.
Rolling Release Model: Arch follows a rolling-release model, meaning users receive
continuous updates to software packages without the need for version upgrades. This
ensures access to the latest features, bug fixes, and security patches, keeping the system
current and up-to-date.
AUR (Arch User Repository): The Arch User Repository provides a vast collection of
community-maintained packages, offering an extensive range of software beyond the
official repositories. This allows users to easily install and manage additional software
packages tailored to their preferences and needs.
10
Modern monolithic kernel architecture consists of different modules which can be
dynamically loaded and un-loaded. In this way maintainability is very easy because
kernel needs to take care of only loaded module. Recompilation is not required upon
added feature or some changes. Monolithic kernel is faster than micro kernel.
Micro Kernels
Monolithic kernel architecture supports the modular approach. All service modules are
not run in kernel space as compared to monolithic kernel. Device driver management,
protocol stack, file system etc are run in user space. This reduces the kernel code size
and also increases the security.
User Space
All user programs and applications run in the user space. User space cannot directly
access memory or hardware; it interacts with hardware through the kernel space.
Processes or programs executing in user space can only access specific portions of
memory via system calls. Due to robust protection mechanisms, crashes occurring in
user mode are recoverable.
The GNU C library facilitates the transition of user space applications to kernel space.
12
Kernel Space
Kernel programs operate exclusively in kernel space. Kernel space has full access to
memory and directly communicates with hardware components such as RAM and hard
disks. It is organized into various blocks and modules responsible for managing critical
operations (e.g., file management, memory management, process management) within
the kernel space.
13
CHAPTER 4
DEVELOPMENT PROCESS
17
4.1.2 SDDM (SIMPLE DESKTOP DISPLAY MANAGER)
SDDM is a lightweight and highly customizable display manager designed for use with
the KDE Plasma desktop environment. It provides a sleek and modern login interface,
allowing users to authenticate and access their desktop environments with ease. SDDM
offers a minimalist design, fast startup times, and low resource usage, making it suitable
for low-end devices and systems with limited hardware capabilities.
Overall, SDDM serves as a lightweight and efficient display manager for KDE Plasma-
based distributions, offering a streamlined login experience and minimal resource
overhead.
18
Plasma desktop environment. It includes the core Plasma desktop environment, along
with a suite of applications, utilities, and frameworks developed by the KDE
community. Plasma-meta provides a modern, feature-rich, and customizable desktop
environment, offering users a rich set of tools and functionalities for productivity,
multimedia, and system management tasks.
19
directory. This file may contain settings to configure KDE (K Desktop Environment)
specific options, such as screen resolution, font preferences, or display settings.
16. Create then edit "sddm.conf": This step involves creating and editing the main
configuration file for the SDDM login manager, named sddm.conf. This file is
typically located in the /etc directory and contains global settings for SDDM, such as
authentication methods, display settings, and session management options.
17. Create then edit "gshadow file": The /etc/gshadow file is a system file that stores
information about group accounts, including group passwords and membership lists.
Creating and editing this file allows you to manage group accounts and define group
membership and permissions.
18. Create then edit "group file": The /etc/group file is a system file that stores
information about user groups on the system. Creating and editing this file allows you
to add, remove, or modify group entries, including group names, group IDs
24
Figure 4.5 Custom Linux Profile
Menuconfig
make menuconfig is a command-line utility used for configuring the Linux kernel during
the build process. It provides an interactive menu-based interface that allows developers
to customize kernel options, features, and modules according to specific hardware
requirements and use cases.
1. General setup:
a) Kernel compression mode: ZSTD: This setting determines the compression
algorithm used to compress the kernel image. ZSTD (Zstandard) is a modern
compression algorithm known for its high compression ratio and fast decompression
speed, making it a popular choice for kernel compression.
b) Disable Postfix Message Queue: Postfix is a mail transfer agent (MTA) used for
routing and delivering email on Unix-like systems. Disabling the Postfix message
queue removes support for Postfix's message queuing functionality, which may not
be necessary on systems where email services are not needed.
25
CHAPTER 5
RESULTS AND DISCUSSIONS
29
Figure 5.2 Memory Management After Kernel Configurations
Figure 5.3 CPU Optimization. Before and After (Middle and Bottom)
30
5.1.3 DISK CHECKS AFTER KERNEL CONFIGURATIONS
31