From b4e73c446e2f466fba9cf8f4c072d2f609ed5db8 Mon Sep 17 00:00:00 2001 From: thing1 Date: Tue, 11 Feb 2025 09:38:26 +0000 Subject: spell checked to all hell --- writeup/writeup.tex.bak | 395 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 writeup/writeup.tex.bak (limited to 'writeup/writeup.tex.bak') diff --git a/writeup/writeup.tex.bak b/writeup/writeup.tex.bak new file mode 100644 index 0000000..f304965 --- /dev/null +++ b/writeup/writeup.tex.bak @@ -0,0 +1,395 @@ +\documentclass[a4paper,12pt]{article} + +\usepackage[backend=bibtex]{biblatex} +\usepackage{geometry} +\usepackage{titling} +\usepackage{titlesec} +\usepackage[english]{babel} +\usepackage[hidelinks]{hyperref} +\usepackage{listings} +\usepackage{xcolor} +\usepackage{graphicx} +\usepackage{forest} +\usepackage{tikz-qtree} +\usepackage{setspace} + +\addbibresource{ref.bib} + +\graphicspath{ {./images} } + +\titleformat{\section} {\Huge} {} {0em} {}[\titlerule] +\geometry{a4paper,total={170mm,257mm},left=25mm,right=25mm,} + +\author{Lucas Standen} +\title{Why are FOSS tools preferred in the development and privacy space?} + +\begin{document} +\maketitle + +\newpage + +\section{Using this document} This document is written using the {\LaTeX} text compiler. The compiler has set up +click-able links, click-able references and a click-able table of contents, so please use these to your advantage. +The Tex source and Bib Tex bibliography is available for all at \url{https://git.seacrossedlovers.xyz/epq.git} under +the MIT/X document license. + +\tableofcontents +\newpage + +\setlength{\parskip}{1em} + +{\setlength{\parindent}{0cm} +\section{Used language in this paper} Throughout this paper, language specific to the field of computer +science will be used, and as such it makes sense to provide a brief overview for those who don't know +what specific terms mean. + +\begin{description} + \item[Licenses] In this setting a license is a legal document that is distributed with + almost all modern software, which describes how someone can use and redistribute a piece of software. + \item[Free Software] This term refers to software under specific licenses, making them + free for the user to use (free as in freedom, not the monetary cost). This will be covered further + in the next section. + \item[Open Source] This term refers to a piece of software, where the original code for it + is publicly available. This too will be covered further in the next section. + \item[FOSS] An acronym for \textit{"\textbf{F}ree and \textbf{O}pen \textbf{S}ource \textbf{S}oftware".} + + \item[IDE] An \textit{\textbf{I}ntegrated \textbf{D}evelopment \textbf{E}nvironment}, is a tool used by developers + to write code, it can be thought of as a text editor-like Word or Docs, but instead of spell checking, + it instead has syntax checking. +\end{description} + +\section{A brief introduction} +This paper will cover the advancements of FOSS tools and systems over time, discuss the benefits, its recent growth, +and the reasons developers and privacy experts find it to be a better tool for the job. This paper will cover a variety +of ways of how FOSS software is used compared to its proprietary counterparts. + + +\section{What is Free Software?} The Free Software movement is one that has been active for over 40 years +\cite{GNUmaifesto}, it has created some of the most important tools in computing that are used by billions on a +daily basis. It is so engraved in our lives, yet so few even know what the term means; In a simple note, it is +software for a computer, phone or other device that can be used without violating the users freedom. + +The definition of what counts Free Software and what is software freedom can vary depending on who you ask, but +it was originally written that software that allows the following freedoms is Free Software: + +\begin{description} + \item[0] The freedom to run a program for any purpose + \item[1] The freedom to study how a program works, and modify it to your needs + \item[2] The freedom to redistribute a piece of software + \item[3] The freedom to redistribute a edited version of software publicly +\end{description} +\textit{These freedoms were written by Richard Stallman\cite{FOSSdef} who is ever important in this space.} + +It is important that one does not confuse Free Software with software that is monetarily free, this is known as +Free-ware. Free Software defends the users rights to use and modify software and is not focused on its cost. +However Free Software often is also free in cost, so the confusion is easily made. + +One should also note the differences between Free Software and Open Source software. In Open Source software, +like Free Software, the original code for a program is available to anyone, however in Open Source, this is to +better the projects development and usability, whereas in Free Software it is to better the users freedom. They +both use the same methods to achieve differing goals; this often leads them to be commonly used together, as the +benefits a user gets from Free Software is much the same in Open Source software, and vice versa. + +The main goal of Free Software is to allow the user to have as much freedom as possible when using a piece of +software for any purpose. This is in contrast to the traditional alternative, called Proprietary Software, which +can be defined as software that the user can not edit, modify or redistribute without the original publishers +permission. This kind of software intentionally restricts the users freedom, usually for the purpose of profit or +control of the software. Some common examples of Proprietary Software, are Microsoft's \textit{Windows}, Apple's +\textit{iOS}, and Google's \textit{Chrome} web browser. + +Many people don't know that they already use Free Software\cite{COMMONfoss}, and sometimes the tools they use most +often are in fact Free Software. A few examples of this are, Krita\cite{KRITA}; a graphics design and art tool that is +used frequently in animation, and other digital art, is made and managed by the KDE foundation\cite{KDE}, who make +exclusively Free Software. Dovecot\cite{DOVECOT}; an email server used by many major email providers. +A final example is Firefox\cite{FIREFOX}; a Free Software web browser made by Mozilla that makes up 2.71\% +of the browser market share as of 2024, however in the past has had up to 30\%\cite{BROWSERmarketshare}. These +are all more modern examples of Free Software, however over the past 40 years, there have been countless others. + +\section{A brief history of FOSS} The term Free Software was first coined by Richard Stallman in 1983\cite{GNUproject}, +however even before this, examples of Free Software (and the disapproval of Proprietary Software), were already +starting to show. + +One of the earliest examples of the disapproval of Non-free Software, was the response to Microsoft's \textit{An +open letter to hobbyists}\cite{OPENletter}, which was written by Bill Gates in 1976. This letter detailed that +people had been stealing from Microsoft, as many people had brought hardware through them, but far fewer people +had brought required software for said hardware. The fact this was happening at a scale large enough to cause this +showed how many computing groups, also known as hacker groups/spaces at the time, weren't willing to pay for the software they +used, believing that if they brought the hardware they had done all that was needed\cite{OPENletter}. It is often +believed that this is one of the first examples of \textit{hacker culture}, which would become more common into the +80's and 90's, and was the starting point of the current Free Software movement, where people continued the view, +that software was not a commodity to be sold, but a resource to be shared. + +A key figure in \textit{hacker culture}, as previously mentioned, is Richard Stallman. In the + 1980's he left his job at MIT to work full time on the GNU project, which was designed +to be a full recreation of AT\&T's Unix operating system from the ground up as Free Software. The idea was to +allow anyone access to a Unix like machine without paying AT\&T's expensive license fees, and allow any user to +view it, redistribute or edit; it was to be the first fully free operating system. The early development of GNU +was relatively slow, and it was not a completely free system for many years, as some core parts of the operating +system were missing, meaning Non-free alternatives had to be used. However this would later change in 1991, when +final additions would be created. + +In 1988 the BSD Net1 operating system would release\cite{BSDnet1}, this was the first fully open version of the +Berkeley Software Distribution version of Unix. BSD was by no means new by this point, however it wasn't fully +free until this point. This version had completely rewritten all the code from the original Unix that previous +versions contained, meaning it was now completely free from AT\&T's licenses. It would be the start of a long +lineage of Open Source operating systems which are now the base of MacOS, FreeBSD and OpenBSD and is often deemed +as the first Open Source operating system. + +The GNU project, while still not fully finished, saw the final piece of the puzzle when Linux\cite{LINUX} released in +1991, it was a fully free kernel which GNU was still lacking (however it did get its own kernel called GNU hurd but +Linux is far more commonly used). With GNU and Linux paired together a user could finally get a fully free operating +system for general use, this combination of software is still in use today, having a 4.7\% market share globally +on desktop computers\cite{LINUXmarket}, and on web servers it is dominant. In recent years it has also shown some +use in gaming, with it being the operating system used by Valve's \textit{steam deck} gaming handheld\cite{STEAMdeck}. + +As one can see, the rise of Free Software has been tied to the rise of Unix, and this is no surprise; like many +Free Software projects, the goal of Unix was to make small reusable tools that together became a coherent operating system, +that could be modified and changed per any users needs. This happened to align with the Free Software movement, +and thus many early projects, were recreating or adding to Unix. + +Since Linux's release there haven't been as many major events in the space and more so a steady flow of updates +and new features, most likely due to the amount of people working on projects being high enough for constant +development, as opposed to one person sending in code every few days or weeks. There was another large jump +in development over the COVID lock downs. As of 2024 it would be hard not to say Free Software is fully viable +against its Proprietary counterpart. + +\section{How is Free Software developed?} +The process of developing Free Software has changed over time, especially +as the Internet came to be, allowing developers from all across the world to add to things. In modern terms the +development process is very simple, a developer can look at a piece of code, make changes to a local version of +it, then it can be uploaded to a central online version of the code, to be checked by lead maintainers, before +becoming the part of the main version (developers would say creating a local branch and submitting a pull request). +This method was popularized by version control systems; such as git\cite{GIT} and RCS, which are both Free Software. +What these tools allow for is the work of many people to brought together into one single code base. + +When code is submitted, it generally gets split into individual chunks (called patches) which each have an individual +purpose. Each patch added will fix 1 bug or add 1 feature, this leads to a simple development cycle that can easily +be used to fix bugs, by breaking them down into small patches that need to be written, and distributing the work +between many developers. + +Without going into too much detail, this is done by merging all contributions into the main code base by +comparing line numbers in differing versions, this is a fully automated process, managed by your version control +system. This pattern of development is liked amongst programmers as it allows many to submit code all at once, +which is invaluable if your project has many developers. This method is also commonly used in Non-free Software, +to manage large development teams\cite{NONFREEvcs}. + +\section{Comparing Free Software to its Proprietary counterparts} +As previously mentioned there are many different +examples of Free Software, often made to be an alternative to a common piece of Proprietary software, each have +their pro's and con's. To compare, one can look at performance data and usability. To show a wide range of software, +this paper will look at programming IDE's, web browsers, and office software, as most computer users have used at +least one of these, and thus will be familiar with them. + +\subsection{Programming IDE's} +\textit{An \textbf{IDE} is an \textbf{I}ntegrated \textbf{D}evelopment \textbf{E}nvironment} + +The main IDE's used by developers are Free Software, but there are a few Non-Free ones that are used according to +the Stack-overflow developer survey\cite{IDEusage}. To compare text editors, one can look at \textit{VS Code} as +an example of open software, with 73\% of developers claiming to have used it at some point, and \textit{IntelliJ}, +as an example of Non-Free Software, with 26\% of developers claiming to have used it at some point\cite{IDEusage}. + +These tools are both commonly used personally and professionally, and are of a similar size, making them ideal to +compare. On the performance side of the argument, VS Code has Intellij beat, being faster to open and generally +more lightweight than Intellij, this has been put up to the fact that VS Code is written in JavaScript, which is +faster than Java, which is what Intellij is written in\cite{VSCODEvsintellij}. + +On the usability side, things are more even, both editors have features that makes them better than each other, +each of them have plug-ins support, advanced text editing features and each have auto completion. However in this +sense VS Code still generally comes ahead, with its more main stream user base, more gets made for it, and as it is +Open Source, it is generally easier for users to add features, in the for of patches, and in the form of plug-ins, +although no definite numbers are available on exact plug-in counts publicly, VS Code is most defiantly ahead, +with this too. It becomes clear how projects like Vs Code become dominate. People want to use something that is +well supported, and then because they too are using it, its support can become better, which is an upward cycle, +that goes on until you reach the market cap. + +\begin{figure}[h] + \caption{Comparing speed of browsers, time \textit{(lower is better)}} + \includegraphics[width=\textwidth]{webbrowserperfomace.png} + \center{\cite{BROWSERperformace}} + \label{fig:graph} +\end{figure} + +\subsection{Web Browsers} +To compare web browsers, one can look at two commonly used browsers, Google Chrome, +and Firefox. Both of these are known projects, that are used by near billions every day combined, one can look at +their performance and usability to compare these projects. + +Figure \textbf{\ref{fig:graph}} denotes each browsers performance in encryption and decryption, while not fully +representative of all use cases, it is one of many things that goes into the final speed of the browser. As the +graph shows, Firefox's FOSS implementation of JavaScript has lead to a faster final product, most likely as more +people have had eyes on the code, and suggested optimizations over the past 20 years. On the front of performance +it is clear that the FOSS tool has beaten the Proprietary counterpart. + +In respect to usability things come more to user preference, so what one needs to look at, is customizability; the +ability to make a piece of software exactly fit their needs. In this yet again Firefox wins out, while both Firefox +and Google Chrome have plug-in capability's, Firefox is known for its completely open system to them, allowing any +and all extensions to be used. In contrast Google limits what can be used via the "manifest" documents, this series +of documents describes what is and isn't allowed in the Chrome browser, and is significant as it holds a large +market share. The most recent one of these documents, manifest V3\cite{MANIFESTv3}, has come to much disapproval +amongst users, as it will disallow AD blockers, and other extensions that selectively remove content from web pages. + +In today's world, the majority of browsers are based on Chrome in some way or another with Firefox being one of +the few exceptions to this rule. Due to this, most browsers will be effected by manifest V3 as it comes into full +effect in the coming years. As this happens it will become increasingly hard to deny that Firefox is easier to +customize and make usable to the users needs. + +\subsection{Office Software} +When looking at office software, their are two commonly used tools, Microsoft Office +(also known as 365), and Libreoffice. Microsoft Office is Proprietary software, and has been since its creation +in the early days of personal computing, Libreoffice on the other hand, has been FOSS software from the start +(libre actually means free in Spanish, so this is no surprise). They both provide advanced features, and for the +most part are completely cross compatible. In this sense they have become almost identical tools. + +As the tools are so similar one will find it's not worth comparing them, in this way we can say that there is no +difference, they are both mature, well used, effective suites of software, they are equal. This is something many +people struggle to see sometimes as they have been using one piece of Non-Free Software for so long, they don't +want to move to anything else. This has negative effects on the users, many Non-free tools are effected by cyber +attacks, and long lasting bugs, that could be fixed by switching to Free Software alternatives, as the technical +users of these tools fix these issues quickly compared to alternatives. This is usually put up to the fact that +most FOSS developers aren't working to new features and are instead working to making a tool that works for them. + +\subsection{General conclusions} +Overall one can see that in many areas of software use, FOSS tools are already +at an equal state or better, than the Non-free counterparts, for general users. One may find that this balance +begins to change in more specific fields, where optimization and speed may become more important than it is to +the common computer user or tools are only made by large companies and no free alternative exist. + +\section{What makes Free Software so appealing to developers?} +\subsection{What is appealing?} +Free Software is open to all for edits and changes, this has makes it a tinker playground for all who know how. +Many FOSS projects are used to learn how to code\cite{LEARNINGtocodewithfoss}, how to manage code and how to add to existing code; thus +FOSS software is appealing to developers, especially new ones. If a developer uses software they have edited/customized +them self, they may find that that software becomes easier to use as they can see its inner workings. + +Even outside the realms of learning resources FOSS tools are liked by professional developers\cite{FOSSinindistry}, for the same reasons. +In enterprise software development, there is often very specific tasks that need to be done, thus having full access to +a related tool, can lead to a solution coming from modifying something that already exists, or by observing inner workings. +This is very helpful in an enterprise setting for a number of reasons, such as: ones work is too specific to have a pre-existing +tool, or ones company may not be able to acquire a license to an existing piece of software. + +\subsubsection{What is not appealing?} +Many developers do however site issues with FOSS, often claiming it to be too hands on, which may not be ideal. While a large amount +of these claims are no longer true (especially around tools like Linux\cite{LINUXhard}), they do still hold weight over the Free Software +community. It is in a sense a double edged sword, because tools are more customizable\cite{FOSScustomize}, it can feel that without customizations, one +does not get a proper experience using FOSS if one wants something that just works. + +\subsection{Why is it more appealing than Non-free Software?} +Due to the closed down nature of Non-free Software, it is often hard to work with when a specific use cases is required, as it +is too locked down to customise. For a lot of developers they also find Non-free Software as a blight on the software space, +as they feel that it is objectively worse, due to the locked nature and corporate profits often being considered before user +experience, this is only an opinion, but it is held by many individuals in the space. + +\subsubsection{Why is the alternative still better for some people?} +For some people, the stable, static nature of Non-free tools is appealing over the draws of newer Free tools. Many people also worry +about the speratic nature of development in Free Software, as they are often held up by only a few individuals, these people aren't interested +in customising their software, and instead are trying to use something they are familiar with. + +\subsection{How does this effect other users?} +As repeated various times, a lot of what makes FOSS appealing is the fact it can be customised, far more than other pieces of +software. This often leads to developers using a piece of software, then as it open, they contribute to it, but it often ends up +being that the features added are developer focused and thus do not help general users, or in some cases, hinders them. +This has all lead to and \textit{echo chamber} effect, where features are added by developers for developers. One must be made +aware however that this is not true of all projects, it is just a trend among major projects. + +\subsection{Conclusions} +Overall a lot of this comes down to weather a project can be customised or not, as this is a feature key to developers +as it is often targeted towards them. This has given FOSS tools a strong hold in the developer space with a large amount +of them using tools like Linux, Vim\cite{STACKOVERFLOW}, and many others. + +\section{What makes Free Software so appealing to privacy enthusiasts?} +The reason that FOSS is preferred can be put up to many reasons, many of which are hard to say/know as privacy enthusiasts are +usually quite good at hiding, however a few known reasons, methods and individuals can be studied. + +\subsection{Who are privacy enthusiasts and why do they do what they do?} % needs an edit, "why do they do what they do" is clunky +Privacy enthusiasts are simply people who care for their privacy very heavily, they like to keep them self completely +anonymous when using technology; there are many reasons one may want to do this, for example, individuals in politically +tense countries may wish to remain hidden when reading outside news sources or talking to others from the rest of the world. +Another example could be those who have information that they wish to make public, as they deem it to be right to share, while +a legally dubious, it is a reason that people wish to be hidden. And finally it may be that people do not want information +going to large corporations, who are known for selling user data. + +\subsection{Some known examples} +When looking for privacy experts, historical examples are the best place to look; as these are well documented, and thus easier to study. +There are many examples of privacy being used to better situations, for a multitude of reasons, and here is a list of a few notable and well +documented examples. + +\begin{description} + \item[BBC reporters and readers: ] + While not an individual, a very interesting case, to ensure those who live in countries + with restrictive media, or communications, the BBC have began to host a version of their news site over + the TOR network\cite{BBCtor}, which means people from restrictive countries can read uncensored news without + their governments knowing. This service is also used by their reporters to feed back information from + countries with strict political monitoring. + \item[Edward Snowden: ] + In 2013 this man leaked many documents from the NSA \textit{(the American National Security Agency)}, + outlining how the USA had full access to email communications between the majority of major email providers in the USA. + He is known for using many privacy and security related FOSS tools when fleeing from America to avoid prosecution. + While this is obviously highly illegal, with the USA prosecuting him under the Espionage Act of 1917; he is often praised + for his work, pushing against mass surveillance. What is interesting about him as an individual is that he worked for + the NSA and CIA and says that the mass surveillance was thought of as common in these places\cite{EDWARDsnowden}. + \item[Lawrence Lessig: ] + He is known for pushing digital privacy and Free Software, creating the Creative Commons\cite{CC}. He cares for privacy for the sake + of it, not because he has things to hide like Edward Snowden, or because he is in a politically restrictive location. He has + appeared in/worked on films, books and other media trying to push for free digital speech and free digital use. He believes + digital privacy is one of many steps needed to achieve this\cite{LESSIG}. Creative Commons is known for its use adgacent + to Free Software, as they are both about sharing, reusing and avoiding limitations. +\end{description} +\subsection{What Free Software do they use?} +While many tools come to mind when thinking of privacy, the most prominent ones have to be TOR and Linux. + +TOR (\textit{\textbf{T}he \textbf{O}nion \textbf{R}outer}), is a Free Software tool that allows a user to encrypt their network +traffic, and send it through three other computers first. This is similar to a VPN (\textit{\textbf{V}irtual \textbf{P}rivate \textbf{N}etwork}), +which sends network traffic through an middle man before it is received at the server. The difference is that TOR, will go through +three random middle men nodes, instead of one constant node\cite{TOR}. Using TOR makes it almost impossible for a server to know where the original +connection came from, and makes it very hard to intercept signals between the user and server, thus hiding the user of the computer. +This \textit{connection masking} as it is called, can be used to hide website traffic, messaging traffic or in fact any kind of network +traffic, to someone trying to spy on the user, they will never know where they are connecting too, how often they are connecting, or for +how long. + +Linux \textit{(also known as GNU/Linux)}, as previously mentioned is a free and open source operating system, this is frequently used by privacy enthusiasts +as it has been vetted by countless individuals to ensure it contains no malicious code that could effect a users individual privacy. GNU/Linux +is split into many different distributions that are all individually maintained, some of them are designed for general use, while others are +meant for more specific use cases. All of them will be more private than Non-free alternatives as they are so rigorously checked. Some privacy +specific ones exist such as tails OS\cite{TAILSOS}, and some are designed for more offensive privacy and security such as Kali Linux \cite{KALIlinux}. + +\subsection{Why is Proprietary software not applicable for this use case?} +For privacy experts and enthusiasts, Free and open tools are preferable for the fact that they know what is happening internally. If a user were +using Non-free tools, it would be impossible to know weather the code running had their privacy in mind, or if it would be sending data to a large +corporation or other such entity. For this reason free and open software is perfect, there cant be any hidden malicious intentions as they would be +seen by all who vet these tools on a daily basis. Another reason that one can draw as to why someone would want to use free tools is that they are +less restricted in what they can do; Non-free tools are limited by corporate law and other such things, Free Software on the other hand is less limited +as restricting what individuals make and share, would end up making many things in common life illegal. Its under these rules that tools such as +TOR can exist. + +\section{Where else is Free Software used and why?} +Free Software is used in many places, it is versatile, and easy to modify, which is ideal for most corporate situations or public +services. For example Free Software is in libraries to allow for easy management of books and databases\cite{LIBRARIESFOSS}. In libraries, +it has made it easier to manage compared to alternatives, and people have been doing this for many years, via freeware and shareware, bother +older examples that are similar to Free Software. + +Another example is in the energy sector\cite{ENERGYsector}, where it is used to manage power distribution and preferred due to generally improved +security, and ability to adapt to newer hardware systems. It does all this, while costing far less (or nothing), compared to alternative softwares +which are known for being highly expensive, often sold as a yearly service. + +\section{What's next for the Free Software space?} +In the coming years it is clear the Free Software space is going to grow, with major projects like Linux becoming exponentially more popular. These +trends aren't showing any signs of stopping, and infact are increasing. From the growth in the space right now, one could assume that someone who is +using one or two pieces of Free Software today, might be using many more in the coming years. + +This recent up tick has been put up to many things, such as improved quality compared to the past. Many people say there is a lower barrier to entry, +with more user friendly software. Many also have become frustrated with the lack of control they have over there systems, data, and privacy; with things +changing without their control. All of these reasons, and many others have lead to the recent up tick in Free Software in the past 5 years. + +The same level of growth is being seen with developers, becoming a large community, commonly associated with the Free Software movement. Newer tools +are always being made, with the advancements in AI, including the first open models and frameworks, such as Llama; new IDE's and improving features in existing +ones, for example vim getting full/improved LSP features. + +\section{Closing thoughts} +After reading this paper, one can hopefully see there is some benefit to the use of Free Software by development and privacy experts, as it clearly tends +more to their needs, and is developed with them in mind, unlike alternative proprietary software software. It is clear that it is a growing space, with +more people entering, including non technical users, only getting better for specific use cases and more generic ones. + +\newpage +\printbibliography +} +\end{document} -- cgit v1.2.3