Lab 1: Two Open Source Software Packages

Open-source is the term used to describe softwares or digital products that were designed with publicity in mind. To be more specific, anyone can view and modify the source code. However, this does not mean that they can sell open-source products for commercial purposes, there are licenses that come with the copyleft privilege. For instance, the GNU General Public License (GPL) authorizes developers to copy, modify and distribute source code of Linux under the condition that any derivative work must follow the equivalent requirement.

Including Linux kernel, many open-source projects are currently active and being improved daily by volunteers around the world. In order to receive contribution from volunteers around the world, the open-source project must sustain communication with them through a platform such as GitHub, GitBucket or email.

ZSH – Z Shell

A. Introduction

The shell is one of the basic utilities in Unix-like operating system, it provides a user command interface. By default, Bash is the preset shell but there are more extended shells were created to inherit Bash’s functions while adopting new features and interfaces. Zsh is an extended shell under MIT license with many features including those from Bash, ksh and tcsh. As of today, Zsh contains thousands of helpful functions, helpers, plugins and themes to give your terminal more features and a new appearance.

B. Patching process

The Zsh project’s main activities are mainly located on Github, all changes and discussions can be viewed there. Changes are made by volunteers but each change must be discussed and approved before being applied to the project.

This collaboration process on Github is called ‘Pull Request’, the goal of this process is to merge new or changed code to the official project after the changes were tested to ensure no error will occur. First, volunteers make a request by uploading the new version of the project. Then, the request will be reviewed by the community and changes can also be made during this period. Finally, when both the volunteers and the community is satisfy with the changes, it will be merged with the official project.

C. Advantages and Disadvantages of patching process

Using Github have the following benefits:

  • Have both version control system (VCS) and source code management system (SCMS) in the same platform
  • Easy for volunteers to see the process and work ethic of the project
  • Friendly-users platform, simple interactions and search feature
  • Github ultilizes Markdown language, simple editors can be used to write formatted documents
  • Github documentation is well-written
  • Can be used as a showcase for your employment process

On the other hand, Github also have several drawbacks:

  • The source code is public and can be used to exploit users using identical name and features
  • Everything is handled by Github, security might not be perfect especially other people also have access to the repository

TOR – The Onion Router

A. Introduction

Tor is a global network of servers initially developed with the U.S. Navy to allow people to browse the internet annonymously. At the present, Tor is licensed under “3-clause BSD” and mainly focus on the research and development of online privacy tools. Tor does not hide you completely while you are surfing the web, it just annonymize you by connecting to a chain of servers and encrypt the traffic so that it’s harder to trace back to you.

B. Patching process

The contribution for Tor project is performed under the hood, the developers within the project communicate via emails or more secure platforms such as Protonmail. However, you can easily apply to be a part of the community through emails.

C. Advantages and Disadvantages of patching process

Communicate through emails provide the following advantages:

  • It’s globalized, one developer can connect with users and other deveopers using the same platform
  • Spam filter to avoid phising scams and junk mail, developers can be more focus on the development of the project
  • Automated response in case the developer is busy or not available

However, there are several disadvantages that worth noticing:

  • Poor privacy, email can easily be referenced or send to other developers
  • Embedded virus potential in emails, it can be a malicious URL or media attachments
  • Messages are easily overlooked since there are too many coming the same period of time or filtered out

Leave a comment