From 4371a6e83c5c3e0401d2c5e038271b061beff882 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Sat, 21 Sep 2024 23:58:08 +0200
Subject: LOCO: Environmental impact

---
 papers/LOCO-24/contents.latex | 135 +++++++++++++++++++++---------------------
 1 file changed, 67 insertions(+), 68 deletions(-)

(limited to 'papers/LOCO-24/contents.latex')

diff --git a/papers/LOCO-24/contents.latex b/papers/LOCO-24/contents.latex
index 992ff26..3046d45 100644
--- a/papers/LOCO-24/contents.latex
+++ b/papers/LOCO-24/contents.latex
@@ -125,8 +125,10 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   rooted on the simplification of personal computers by embracing the
   programming language \textit{Scheme}, and describes how this strategy
   provides a high level of abstraction and opens the door to many research
-  topics that directly challenge common misconceptions and ideas that Unix's
-  influence imposed.
+  topics that directly challenge the current computing ecosystem, where
+  industry relies in the continuous delivery of heavily specialized hardware to
+  support the ever growing software demands, mainly coming from Unix's
+  heritage.
 \end{abstract}
 
 %% Document outline:
@@ -171,13 +173,11 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 \section{Context}
 
 %% We need to understand context ...
-  All engineering decisions are taken in a context and those that are adopted
-  by any industry are oftentimes driven by previous decisions taken in the same
-  subject. Specifically, the computing industry, arguably due to its rapid
-  emergence, has been heavily influenced by previous technology and
-  \textit{backwards compatibility}.
+  The computing industry, arguably due to its rapid emergence, has been driven
+  by \textit{backwards compatibility}. This section summarizes the most
+  influential milestones in computing history and their impact in modern
+  computer hardware.
 
-%% TODO: remove this and put some personal computing instead?
 \subsection{Von Neumann model}
   The von Neummann model introduced in 1945 proposes a general purpose device
   consisting of a \textit{Central Processing Unit} (CPU) and a \textit{Store}.
@@ -275,13 +275,15 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   the computing systems, taking advantage of that, many research areas open.
   Most of them confront Unix's heritage and modern computing but could provide
   a powerful but simple set of constructs that allow to create simple computers
-  that can be maintained by an individual.
+  that can be maintained by an individual and reduce the economical and
+  environmental costs of infrastructure of the modern CPU fabrication.
 
 \subsection{Embracing the language: Scheme}
-  \textit{Scheme} is a simple language, with a minimal standard, but that
-  enables a huge level of abstraction thanks to its minimal but powerful core
-  concepts which are also present in mainstream programming languages today
-  (Python, JavaScript).
+
+  \textit{Scheme} is a simple language, with a minimal standard, that enables a
+  huge level of abstraction thanks to its minimal but powerful core concepts
+  which are also present in mainstream programming languages today (Python,
+  JavaScript).
 
   The \textit{Lisp} family of languages have proven to be flexible and powerful
   for system design \cite{LispMachine:Greenblatt} and particularly
@@ -290,11 +292,10 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 
   The nature of the Lisp family of languages also makes them suitable as file
   formats\cite{SXML:Kiselyov} for storage and configuration files, for
-  extending the language to the users' needs or writing DSLs
-  \cite{LanguageOriented:Culpepper}, eliminating the need to rely on
-  unstructured text.
+  extending the language or writing DSLs \cite{LanguageOriented:Culpepper},
+  eliminating the need to rely on unstructured text.
 
-\subsection{An Operating System that embraces the language}
+\subsection{Operating System}
 
   An Operating System that embraces the language becomes a bare metal
   interpreter, eliminating the duplication of tasks present in Unix operating
@@ -330,29 +331,30 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 
 
 
-\subsection{Computer hardware that embraces the language}
-  Attempts have been done to run Scheme in a bare-metal environment using
-  commodity hardware\cite{MIMOSA:Yvon}\cite{Loko:Weinholt}, but they do not
-  take advantage of hardware optimized for \textit{Scheme}, which would provide
-  huge performance benefits and simplify the interpreter and potentially the
-  CPU.
+\subsection{Computer hardware}
+
+  Attempts have been done to run \textit{Scheme} in a bare-metal environment
+  using commodity hardware\cite{MIMOSA:Yvon}\cite{Loko:Weinholt}, but they do
+  not take advantage of hardware optimized for \textit{Scheme}, which would
+  provide huge performance benefits and simplify the interpreter and
+  potentially the CPU.
 
 \subsubsection{Optimization for tree structures}
   \textit{Scheme} is profoundly based on the \textit{cons cell}, similar to a
   \textit{linked-list} node, and the data structures that can be created from
   it (\textit{lists} and \textit{trees}). Optimizing the CPU for that case,
   with fast lookups and \code{car} and \code{cdr} operations would impact its
-  performance. This might require developing new caching and memory access
-  mechanism, but could simplify the ones present in mainstream CPUs and
-  reduce its security concerns.
+  performance.
 
 \subsubsection{CPU as a reducer}
-  \textit{Scheme} supports many paradigms but the basis of the language is the
-  expression reduction, in opposition to imperative language, where the basis
+  Like other functional programming languages, \textit{Scheme} is based on
+  expression reduction, in opposition to imperative languages, where the basis
   is the \textit{statement}, that matches current processor architectures
-  better. This opens a full research area, that was mainly abandoned after the
-  modern CPU architectures flooded the market, but has a long
-  history\cite{LiberateFromVonNeumann:Backus}.
+  better. This research area, was mainly abandoned after the modern CPU
+  architectures flooded the market, but has a long
+  history\cite{LiberateFromVonNeumann:Backus} and has been revived with the
+  introduction of Field Programmable Gate Arrays,
+  \textit{FPGA}\cite{Heron:Ramsay}.
 
 \subsubsection{Hardware garbage collection}
   When the whole system uses managed memory, the Garbage Collection,
@@ -365,30 +367,31 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   \cite{HWAssistedGC:Maas} and Lisp Machines\cite{LispMachine:Greenblatt}.
 
 \subsubsection{Exploration via reconfigurable Hardware}
-  Computer processors specialized on functional programming have been designed
-  before\cite{FPhardware:Stoye}, trying to liberate them from the von Neumann
-  style\cite{LiberateFromVonNeumann:Backus}, but modern technologies like Field
-  Programmable Gate Arrays, \textit{FPGA}, became widely available after this
-  research area was displaced due to its cost and long wait times.
-
   A design based on a FPGA would facilitate incremental testing and evaluation
   of the impact of the proposed optimizations. If a Hardware Description
   Language, \textit{HDL}, and support for Partial and Dynamic
   Reconfiguration\cite{FPGAReconf:Vipin} are provided within the system, it
-  could be updated with no distinction between hardware and software. A
-  \textit{rollback} system\cite{Guix:Courtes} could always recover the state of
-  both hardware and software as a whole.
-
-  FPGAs are more power hungry and expose a lower performance than Application
-  Specific Integrated Circuits, \textit{ASIC}, but an aggressive reduction of
-  complexity has been proven to have acceptable performance even in simplified
-  processors running in a baseline FPGA\cite{Oberon:Wirth}.
-
-  Designing with an FPGA in mind would carry other benefits that are widely
-  overlooked nowadays: it reduces the need for constant hardware upgrades, uses
-  commodity hardware instead of very specialized devices and reduces the chance
-  of a supply chain attack in many levels \cite{riscvSelfHostingComputer:Somlo}.
-
+  could be updated with no distinction between hardware and software, while
+  making the system more resistant to trusting-trust and supply-chain
+  attacks\cite{riscvSelfHostingComputer:Somlo}. A \textit{rollback}
+  system\cite{Guix:Courtes} could always recover the state of both hardware and
+  software as a whole.
+
+\subsection{Environmental implications}
+  A computing system designed around its reconfigurability is less likely to
+  become obsolete in the short term and encourages its repurpose once it
+  happens. This attenuates the \textit{embodied} environmental impact of the
+  device, which nowadays accounts for the majority of computing systems'
+  \(CO_{2}\) emissions \cite{Carbon:Gupta}.
+
+  While FPGAs are not as efficient as Application Specific Integrated Circuits,
+  \textit{ASIC}, which would increase the \textit{operational} impact of the
+  system, an aggressive simplification has been proven to have acceptable
+  performance and energy usage in minimalistic processors running in a baseline
+  FPGA\cite{Oberon:Wirth}, even without the optimization level proposed in this
+  document. Additionally, the low-power nature of personal
+  computing facilitates the decarbonization of its energy sources, reducing the
+  environmental impact of the device operation to negligible levels.
 
 \section{Conclusion}
 
@@ -397,23 +400,19 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   programming language \textit{Scheme} and proposes several optimizations and
   research areas that its design would enable.
 
-  The cited literature demonstrates systems with a similar level of
-  simplification to the one proposed in this document can be implemented and
-  maintained by a single individual, meaning that the proposed computing system
-  would be possibly created and maintained by anyone, down to the hardware,
-  while keeping it secure, accessible and bootstrappable if carefully designed.
-
-  %% TODO: mention FPGAs are commodity hardware today, and don't require
-  %% special manufacturing facilities: autonomy and sovereignty
-
-  %% TODO: only if cite vernacular programmers properly?
-  Literature also supports that extending the reach of the language enriches
-  the relationship the user has with the computer. If the selected language is
-  powerful in terms of the level of abstraction it can provide, like the one
-  selected in this paper, it could become the only tool a user needs for every
-  single administration task, including hardware upgrade or optimization,
-  providing a solid foundation for more human-centered design where
-  the antiquities from the times of Unix can be displaced.
+  The cited literature demonstrates systems with a level of simplification
+  analogous to the one proposed in this document can be implemented and
+  maintained by a single individual, down to the hardware, while keeping it
+  secure, accessible and bootstrappable if carefully designed.
+
+  The reconfigurability of the system directly challenges the current computer
+  processor supply chain that relies on very specialized \textit{ASIC}
+  manufacture. The proposed generalization of the hardware attenuates its
+  embodied environmental impact pushing the specialization to the software
+  side, the malleable part of the system, where a language with high level of
+  abstraction can provide a solid foundation for a more human-centered design
+  that finally obsoletes the antiquities from the times of Unix.
+
 
 \clearpage
 
-- 
cgit v1.2.3

