0% found this document useful (0 votes)
3 views4 pages

11 Assignment 01 ROSP

The document consists of an assignment by Hemesh Chopade discussing Open Source Software (OSS), its significance for developers, and debugging techniques for performance issues in operating systems. OSS is defined as software with freely available source code that promotes collaboration and community development. The assignment emphasizes the importance of contributing to OSS for skill development and professional visibility, and outlines a systematic approach to debugging performance issues in a newly released OS version.

Uploaded by

hemesh7204
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)
3 views4 pages

11 Assignment 01 ROSP

The document consists of an assignment by Hemesh Chopade discussing Open Source Software (OSS), its significance for developers, and debugging techniques for performance issues in operating systems. OSS is defined as software with freely available source code that promotes collaboration and community development. The assignment emphasizes the importance of contributing to OSS for skill development and professional visibility, and outlines a systematic approach to debugging performance issues in a newly released OS version.

Uploaded by

hemesh7204
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

Assignment 01

Name: Hemesh Chopade

Roll No. 11

Q1 (Bloom’s Level 1 – Remembering):

What does the term Open Source Software (OSS) mean?

Open Source Software (OSS) refers to software whose source code is made freely available to
the public, allowing anyone to view, use, modify, and distribute the code without restrictions.
Unlike proprietary software—where the code is kept secret and controlled by a company—OSS
encourages transparency, collaboration, and community-driven development.

OSS is usually released under special licenses such as GPL, MIT, Apache, BSD, etc. These licenses
define what users are allowed to do with the software. The core idea of open source is that
software should be developed in a way that anyone can improve it, fix issues, or create new
versions (forks).

Examples of open-source software include:

• Linux operating system

• Android OS

• Python language

• Django, [Link], React

• Mozilla Firefox

In simple terms, OSS empowers users with freedom—freedom to learn from the code, freedom
to innovate, and freedom to share improvements back with the community.

Q2 (Bloom’s Level 2 – Understanding):

Describe in your own words why contributing to open-source projects is important for
developers.

Contributing to open-source projects is important because it allows developers to grow


technically, gain real-world experience, and become part of a global community. When
developers contribute, they get the opportunity to work on large-scale projects, understand
complex architectures, and collaborate with experienced programmers. This helps them
improve skills such as coding, debugging, testing, documentation, and version control.

Open-source contribution also builds a developer’s professional reputation. Recruiters and


companies often look at GitHub contributions as proof of practical skills. By contributing,
developers can showcase their work publicly, which helps in internships, jobs, and networking.

Another important aspect is that open source encourages a culture of sharing and learning.
Developers benefit from others’ code, and in return, help improve the tools that everyone uses.
This creates a positive cycle of knowledge and innovation.

In simple terms:
Open-source contribution helps developers learn, collaborate, gain visibility, and give back to
the technology community.

Q3 (Bloom’s Level 3 – Applying):

How would you apply debugging techniques to identify and resolve performance issues in a
newly released OS version?

To identify and resolve performance issues in a newly released operating system (OS) version, I
would apply systematic debugging techniques in the following way:

1. Reproduce the Performance Issue

The first step is to reliably reproduce the problem. This involves running the OS under similar
hardware and software conditions reported by users. Once the issue can be observed
consistently, analysis becomes easier.

2. Use Performance Profiling Tools

I would apply tools such as:

• CPU profilers (to check high CPU usage)

• Memory analyzers (to detect memory leaks or excessive RAM consumption)

• Disk I/O monitors

• Network analyzers

These tools help identify which processes or system calls are creating bottlenecks.

3. Analyze System Logs


Operating systems generate extensive logs. By examining logs, I can trace:

• Unexpected errors

• Slow system calls

• Kernel-level warnings

• Crashes or timeouts
This helps locate the exact point where performance degrades.

4. Apply Code Tracing and Breakpoint Debugging

I would trace critical modules of the OS and use breakpoints to inspect:

• Variable values

• Function execution time

• Resource allocation patterns

This helps pinpoint inefficient code segments, loops, or functions that cause delays.

5. Compare With Previous OS Version

By comparing the performance of the new version with the previous stable version, I can
identify:

• Newly added modules or features causing slowdown

• Changes in kernel scheduling or memory management

• Differences in system resource usage

This comparative debugging helps isolate the root cause faster.

6. Fix the Identified Issue

Once the issue is found, I would:

• Optimize slow algorithms

• Reduce unnecessary system calls

• Fix memory leaks or dangling pointers

• Modify kernel parameters

• Improve thread or process scheduling

The goal is to eliminate the bottleneck at the source.


7. Test the Fix Thoroughly

After applying the fix, I would perform:

• Stress testing

• Load testing

• Regression testing

• Compatibility testing

This ensures the fix does not introduce new bugs and that the OS performs efficiently under all
conditions.

You might also like