From 59c0112e037ff302565a91d899e758ee859b02e4 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Sat, 14 Sep 2024 21:08:14 +0200
Subject: LOCO: Prepare first version

---
 papers/LOCO-24/contents.latex | 108 ++++++++++++++++++++----------------------
 1 file changed, 52 insertions(+), 56 deletions(-)

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

diff --git a/papers/LOCO-24/contents.latex b/papers/LOCO-24/contents.latex
index 604b4bc..992ff26 100644
--- a/papers/LOCO-24/contents.latex
+++ b/papers/LOCO-24/contents.latex
@@ -118,14 +118,15 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 %% The abstract is a short summary of the work to be presented in the
 %% article.
 \begin{abstract}
-%% TODO
-  Computing, as any other field, evolved from the previous work on the matter.
-  During its development huge advancements have been done in many areas but
-  only some are in use today, due to the inertia industry already had, which
-  forced some sort of retrocompatibility. In this document a new computing
-  platform is presented, one that makes use of some of the ideas that did not
-  reach the mainstream and uses our current computing capabilities in order to
-  achieve a personal computing device that embraces the programming language.
+  Unix based Operating Systems have dominated the computer market since its
+  inception and its concepts and needs have impregnated almost every aspect of
+  modern computing.
+  In this paper a novel approach for optimization is proposed, one that is
+  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.
 \end{abstract}
 
 %% Document outline:
@@ -145,7 +146,7 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 
 %% Keywords. The author(s) should pick words that accurately describe
 %% the work being presented. Separate the keywords with commas.
-\keywords{Operating Systems, Programming Languages, Interpreters}
+\keywords{Operating Systems, Programming Languages, Interpreters, CPU}
 %% A "teaser" image appears between the author and affiliation
 %% information and the body of the document, and typically spans the
 %% page.
@@ -186,7 +187,7 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   In the von Neumann model the data and the program are both written to and
   read from the \textit{Store}. This fact imposes limitations in any design
   that aims to have direct access to memory and multitasking, as any running
-  program could read and manipulate other running program's, and even
+  program could read and manipulate other running program's memory, and even
   manipulate its behavior, overwriting the program itself.
 
 \subsection{Unix's heritage}
@@ -271,10 +272,10 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 \section{Simplification enables optimization}
 
   Choosing a language and committing to it enables aggressive simplification of
-  the computing systems, taking advantage of that, many research areas open,
-  most of them confront Unix's heritage and modern computing but which could
-  provide a powerful but simple set of constructs that allow to create simple
-  computers that can be maintained by an individual.
+  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.
 
 \subsection{Embracing the language: Scheme}
   \textit{Scheme} is a simple language, with a minimal standard, but that
@@ -288,20 +289,19 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   \cite{Lambda:Steele}.
 
   The nature of the Lisp family of languages also makes them suitable as file
-  formats (sxml) for storage and configuration files, writing DSLs (language
-  oriented programming), or extending the language (GOOPS, WISP) to the users'
-  needs (Typed Racket, Kawa). This eliminates the need to rely on unstructured
-  text.
+  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.
 
 \subsection{An Operating System that embraces the language}
 
   An Operating System that embraces the language becomes a bare metal
   interpreter, eliminating the duplication of tasks present in Unix operating
-  systems \cite{MIMOSA:Yvon}. The Operating System is just accessible in the
-  runtime environment of the programs. \textit{System calls} become
-  \textit{procedure calls}. The \textit{Shell} is a system \textit{REPL}, an
-  interactive environment for programming that exposes Operating System's
-  facilities.
+  systems \cite{MIMOSA:Yvon}. The Operating System is accessible in the runtime
+  environment of the programs. \textit{System calls} become \textit{procedure
+  calls}. The \textit{Shell} is a system \textit{REPL}, an interactive
+  environment for programming that exposes Operating System's facilities.
 
 \subsubsection{Capability based security "lambda-style"}
   Most modern computers do not have more than a single user, but they preserve
@@ -315,11 +315,11 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
 
 \subsubsection{Managed memory}
   Virtual memory is an attempt to isolate programs from each other and provide
-  a permission system on top of a flawed von Neumann model but it is a
+  a permission system on top of a flawed von Neumann model, but it is a
   leaky abstraction that can be exploited\cite{SpectreMeltdown:HillMasters}.
-  Removing direct access to memory, replacing it with managed memory, removes
-  the need of virtual memory and decouples underlying implementations from user
-  programs.
+  Preventing direct access to memory, replacing it with managed memory,
+  obviates the need of virtual memory and decouples underlying implementations
+  from user programs.
 
 \subsubsection{Concurrency}
   Unix-style concurrency, reinforced by modern \textit{multi-core} CPU design
@@ -344,7 +344,7 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   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
-  reducing its security concerns.
+  reduce its security concerns.
 
 \subsubsection{CPU as a reducer}
   \textit{Scheme} supports many paradigms but the basis of the language is the
@@ -365,33 +365,29 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   \cite{HWAssistedGC:Maas} and Lisp Machines\cite{LispMachine:Greenblatt}.
 
 \subsubsection{Exploration via reconfigurable Hardware}
-% TODO LANGUAGE
-  SKIM \cite{FPhardware:Stoye} tries to go for custom hardware, with a
-  functional programming language and there have been more attempts
-  \cite{LiberateFromVonNeumann:Backus}. Instead of making real machines, we
-  could just go for FPGAs, they are powerful nowadays, and we could do it
-  incrementally, as our language is simple and can be represented using
-  imperative CPUs.
-
-  Focusing on personal computing can be a extremely powerful way to explore
-  optimization and simplification of computing systems to the point they can be
-  run in custom unoptimized CPUs implemented in FPGAs \cite{Oberon:Wirth}.
-
-  For our case, a FPGA facilitates the incremental testing and the evaluation
-  of the impacts of the proposed optimizations. If a Hardware Description
-  Language, \textit{HDL}, is provided with the system and the Operating System
-  has support for Partial and Dynamic Reconfiguration\cite{FPGAReconf:Vipin},
-  the whole system can be updated together, improving the OS and the needed
-  hardware at the same time. A \textit{rollback} system\cite{Guix:Courtes}
-  could always recover the state of both hardware and software as if they were
-  the same thing.
-
-  The FPGAs are more power hungry and not as fast as ASICs but
-  the reduction of complexity proposed in this paper should be enough for
-  personal computing. Also, letting the user configure the CPU from the
-  computer itself reduces the need for constant upgrades, uses commodity
-  hardware instead of very specialized devices and reduces the chance of a
-  supply chain attack in many levels \cite{riscvSelfHostingComputer:Somlo}.
+  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}.
 
 
 \section{Conclusion}
@@ -410,7 +406,7 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
   %% TODO: mention FPGAs are commodity hardware today, and don't require
   %% special manufacturing facilities: autonomy and sovereignty
 
-  %% TODO: only if cite vernacular programmers properly
+  %% 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
-- 
cgit v1.2.3

