diff options
Diffstat (limited to 'writeup/writeup.tex')
-rw-r--r-- | writeup/writeup.tex | 387 |
1 files changed, 172 insertions, 215 deletions
diff --git a/writeup/writeup.tex b/writeup/writeup.tex index e35e4fb..c6fa8ef 100644 --- a/writeup/writeup.tex +++ b/writeup/writeup.tex @@ -1,46 +1,28 @@ \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} +\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,} +\titleformat{\section} {\Huge} {} {0em} {}[\titlerule] \geometry{a4paper,total={170mm,257mm},left=25mm,right=25mm,} -\author{Lucas Standen} -\title{Why FOSS software is preferred in the development and privacy space?} +\author{Lucas Standen} \title{Why FOSS software is preferred in the development and privacy space?} -\begin{document} -\maketitle +\begin{document} \maketitle \newpage -\section{Using this document} -This document is written using the {\LaTeX} text compiler. The compiler has set up clickable links, -clickable references and a clickable table of contents, so please use these to your advantage. -The Tex source and Bib Tex bibliography is available for all at -\url{https://github.com/standenboy/epq/} under the MIT/X document license. +\section{Using this document} This document is written using the {\LaTeX} text compiler. The compiler has set up +clickable links, clickable references and a clickable table of contents, so please use these to your advantage. +The Tex source and Bib Tex bibliography is available for all at \url{https://github.com/standenboy/epq/} under +the MIT/X document license. -\tableofcontents -\newpage +\tableofcontents \newpage \setlength{\parskip}{1em} @@ -48,215 +30,190 @@ The Tex source and Bib Tex bibliography is available for all at \section{A brief introduction} -\section{Used language in this paper} -Throughout this paper I will use language specific to the field of computer science, and as such -it makes sense to provide a brief overview for those who don't know what specific terms mean. +\section{Used language in this paper} Throughout this paper I will use language specific to the field of computer +science, 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 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[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 "\textbf{F}ree and \textbf{O}pen \textbf{S}ource \textbf{S}oftware". \end{description} -\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. +\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: +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 + \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 Freeware. Free Software defends the users rights to use and modify software and -is not focused on its cost. - -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}, but often the tools -they use most often are 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 major email providers and is Free Software. 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}, 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, -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. - -A key figure in \textit{hacker culture}, as previously mentioned, is Richard Stallman. In the +It is important that one does not confuse Free Software with software that is monetarily free, this is known as +Freeware. Free Software defends the users rights to use and modify software and is not focused on its cost. + +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}, but often the tools they use most +often are 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 major email providers and is Free +Software. 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}, 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, 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. + +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 BSD Net1 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. It 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 linage of Open Source operating systems which are now the base -of MacOS, FreeBSD and OpenBSD and is often deamed 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 Valves \textit{steam deck} gaming -handheld\cite{STEAMdeck}. - -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, with a large jump over Covid. 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 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}, which is also Free Software. +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 BSD Net1 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. It +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 linage of Open Source operating systems +which are now the base of MacOS, FreeBSD and OpenBSD and is often deamed 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 Valves \textit{steam deck} gaming handheld\cite{STEAMdeck}. + +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, with a large jump over Covid. 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 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}, which is also 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, to compare this paper -will look at programming IDE's, web browsers, and office software, as there make up a large amount -of software, that are used by the majority of computer users. - -\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. -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}. +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, +to compare this paper will look at programming IDE's, web browsers, and office software, as there make up a large +amount of software, that are used by the majority of computer users. + +\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. 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 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. +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 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. -\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 billions every day, one can look at their performance and usability to compare -these projects. +\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 billions every day, one can look at their performance +and usability to compare these projects. \begin{figure}[h] \caption{Comparing speed of browsers, time \textit{(lower is better)}} - \includegraphics[width=\textwidth]{webbrowserperfomace.png} - \center{\cite{BROWSERperformace}} + \includegraphics[width=\textwidth]{webbrowserperfomace.png} \center{\cite{BROWSERperformace}} \end{figure} -This 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 under many eyes, 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, which are now at an equal state to the alternative. - -\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 optimisation and -speed may become more important than it is to the common computer user. - -\section{What makes Free Software so appealing to developers?} -\section{What makes Free Software so appealing to privacy experts?} -\section{Where else is Free Software used and why?} -\section{What's next for the Free Software space?} -\section{Final thoughts} - -\newpage -\printbibliography -} -\end{document} +This 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 under many +eyes, 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, which are now at +an equal state to the alternative. + +\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 optimisation and speed may become more important than it is to +the common computer user. + +\section{What makes Free Software so appealing to developers?} \section{What makes Free Software so appealing to +privacy experts?} \section{Where else is Free Software used and why?} \section{What's next for the Free Software +space?} \section{Final thoughts} + +\newpage \printbibliography } \end{document} |