0% found this document useful (0 votes)
26 views15 pages

Final Year Project Thesis COLOR

The document discusses developing an optimized Linux distribution for low-end devices. It describes choosing the Xorg display server and SDDM display manager components and their functionalities in rendering graphics, managing input devices and supporting multiple monitors. The development process is also covered.

Uploaded by

C Rohith
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views15 pages

Final Year Project Thesis COLOR

The document discusses developing an optimized Linux distribution for low-end devices. It describes choosing the Xorg display server and SDDM display manager components and their functionalities in rendering graphics, managing input devices and supporting multiple monitors. The development process is also covered.

Uploaded by

C Rohith
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

AN OPTIMIZED LINUX DISTRIBUTION SYSTEM

FOR LOW END DEVICES

a project report submitted by

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

Dr. NARAIN PONRAJ D, M.E, Ph.D

DIVISION OF ELECTRONICS AND COMMUNICATION


ENGINEERING

KARUNYA INSTITUTE OF TECHNOLOGY AND SCIENCES


(Deemed to be university)
Karunya Nagar, Coimbatore - 641 114. INDIA

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)

Dr. Narain Ponraj D. Dr. D. Jude Hemanth


Supervisor Head of the Division

Division Of Electronics And


Communication Engineering

Submitted for the project Viva Voce examination held on ……………………….

………………………. …………………….
(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.

1.3 TRADE-OFFS BETWEEN RAM AND CPU UTILIZATION

The efficient utilization of system resources, particularly RAM (Random Access


Memory) and CPU (Central Processing Unit), is pivotal for achieving optimal
performance, responsiveness, and resource efficiency in computing systems.
Understanding the intricate trade-offs between these resources is essential for effective
system optimization and resource management.

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

3.1 UNDERSTANDING LINUX DISTRIBUTIONS


Linux distributions, often referred to as "distros," are comprehensive packages that
encompass the Linux kernel, a selection of software packages, libraries, and
configuration files. Each distribution is tailored to specific purposes, philosophies, and
target audiences, offering users a diverse range of choices and options to suit their needs.

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.

Variety: The Linux ecosystem boasts a multitude of distributions, each catering to


different use cases and user groups. From lightweight distributions optimized for
resource-constrained devices to robust distributions tailored for enterprise servers,
there's a distribution available for virtually every scenario.

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.

Figure 3.1 Linux Distribution Popularity

8
Figure 3.2 Growth of Linux Distribution over time

3.1.3 WHY ARCH LINUX?

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.

3.2.2 STUDY OF KERNEL

Figure 3.3 Kernel Architecture

The architecture of the kernel is divided into two primary parts:

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.

Key components of kernel space include:


a) System Call Interface: Acts as an intermediary layer between user space and kernel
space. Applications running in user space interact with the kernel through system
calls (e.g., file-related functions like open(), write(), and read()).
b) Kernel (Core Component): Independent of hardware, the kernel is compatible with
all supported processors (e.g., Intel, ARM, Atmel). It serves as a resource manager,
handling tasks like process management, file operations, memory management, and
interrupt handling.
c) Device Modules: Additional modules within kernel space that manage specific
hardware devices.

Figure 3.4 Detailed Architecture of Kernel

13
CHAPTER 4
DEVELOPMENT PROCESS

4.1 CHOSEN COMPONENTS AND THEIR FUNCTIONALITIES

4.1.1 XORG (X WINDOW SYSTEM)


Xorg, also known as the X Window System, is the standard display server for most
Linux distributions. It provides the framework for displaying graphical user interfaces
on Linux and Unix-like operating systems, handling tasks such as managing input
devices, rendering graphics, and communicating with the display hardware. Xorg serves
as the foundation for graphical desktop environments and applications, facilitating user
interaction with the system through windows, icons, and menus.

Key functionalities of Xorg include:


a) Graphics Rendering: Xorg is responsible for rendering graphics and displaying
graphical elements on the screen, providing the visual interface for users to interact
with.
b) Input Device Management: Xorg manages input devices such as keyboards, mice,
touchpads, and joysticks, translating user input into actions within the graphical
environment.
c) Multi-Monitor Support: Xorg supports multiple monitors and display
configurations, allowing users to extend or mirror their desktop across multiple
screens.
d) Extension Support: Xorg features an extensible architecture with support for various
extensions and protocols, enabling advanced features such as compositing, remote
display, and input event handling.

Figure 4.1 Screenshot of XORG in action

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.

Key functionalities of SDDM include:


a) User Authentication: SDDM handles the user authentication process, prompting
users to enter their credentials to log in to their accounts.
b) Session Management: SDDM manages user sessions and provides options for
selecting desktop environments or window managers during login.
c) Customization Options: SDDM offers extensive customization options, allowing
users to personalize the login screen appearance, theme, and layout to suit their
preferences.
d) Integration with KDE Plasma: SDDM integrates seamlessly with the KDE Plasma
desktop environment, providing a cohesive user experience for KDE users.

Overall, SDDM serves as a lightweight and efficient display manager for KDE Plasma-
based distributions, offering a streamlined login experience and minimal resource
overhead.

Figure 4.2 SDDM for User Authentication

4.1.3 PLASMA-META (KDE PLASMA DESKTOP META-PACKAGE)

Plasma-meta, also known as the KDE Plasma Desktop Meta-package, is a


comprehensive collection of software packages and components that constitute the KDE

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.

Key functionalities of Plasma-meta include:


a) Desktop Environment: Plasma-meta provides the KDE Plasma desktop
environment, featuring a visually appealing interface, customizable desktop
widgets, and intuitive navigation tools.
b) Applications and Utilities: Plasma-meta includes a wide range of applications and
utilities, such as Dolphin file manager, Konsole terminal emulator, KDE Connect
for device integration, and KDE System Settings for system configuration.
c) Frameworks and Libraries: Plasma-meta incorporates KDE frameworks and
libraries, providing developers with tools and resources for building desktop
applications, widgets, and plugins.
d) Customization and Theming: Plasma-meta offers extensive customization options,
allowing users to personalize their desktop environment with themes, icons,
wallpapers, and desktop widgets.

Figure 4.3 KDE Plasma: Tiling and Windows

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

Figure 4.4 Snapshot of Operating System being built

24
Figure 4.5 Custom Linux Profile

4.3 CUSTOM KERNEL DEVELOPMENT

4.3.1 DESCRIPTION OF DEVELOPMENT TOOLS

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.

4.3.2 KERNEL OPTIMIZATION

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

5.1 METRIC METHODOLOGY

The Phoronix Test Suite is a comprehensive benchmarking and performance testing


software suite designed primarily for Linux-based systems. Its versatile toolkit enables
users to conduct thorough evaluations of various system components, including the
kernel, CPU, and RAM. With a wide range of customizable test profiles and suites, users
can assess system performance across different workloads and scenarios, providing
valuable insights into system capabilities and optimizations. Whether analyzing kernel
efficiency, CPU throughput, or RAM latency, the Phoronix Test Suite offers detailed
metrics and comparative analysis, facilitating informed decision-making in system
configuration and optimization efforts.

5.1.1 MEMORY MANAGEMENT BENCHMARKS

Figure 5.1 Memory Management Before Kernel Configurations

29
Figure 5.2 Memory Management After Kernel Configurations

5.1.2 CPU BENCHMARKS

Figure 5.3 CPU Optimization. Before and After (Middle and Bottom)

30
5.1.3 DISK CHECKS AFTER KERNEL CONFIGURATIONS

Figure 5.4 Disk Checked Result

5.1.4 OS PERFORMANCE AFTER KERNEL CONFIGURATION

Figure 5.5 OS Performance Benchmark

31

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy