From 6bdc0c985a78b063d88f87572c7bf667838c0fc1 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Sat, 14 Sep 2024 13:53:03 +0200 Subject: LOCO: references and wording --- papers/LOCO-24/contents.latex | 56 +++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 23 deletions(-) (limited to 'papers') diff --git a/papers/LOCO-24/contents.latex b/papers/LOCO-24/contents.latex index c87c992..604b4bc 100644 --- a/papers/LOCO-24/contents.latex +++ b/papers/LOCO-24/contents.latex @@ -285,7 +285,7 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } The \textit{Lisp} family of languages have proven to be flexible and powerful for system design \cite{LispMachine:Greenblatt} and particularly \textit{Scheme} has a long history of research in language and CPU design - (lambda papers). + \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 @@ -304,9 +304,9 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } facilities. \subsubsection{Capability based security "lambda-style"} - Most modern computers do not have more than a single user, - but they preserve an antique user management system, inherited from Unix, - recycled for program permission. + Most modern computers do not have more than a single user, but they preserve + an antique user management system, inherited from Unix, recycled for program + permissions. 3L \cite{3L:Hintz} explored an OS where permission control is reduced to \textit{environments} with access to a limited set of bindings \cite{securityKernelLambda:Rees}. A program can only access the bindings @@ -325,15 +325,17 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } Unix-style concurrency, reinforced by modern \textit{multi-core} CPU design and threads, is hard to reason about\cite{Threads:Lee}. A multitasking system can be approached in terms of \textit{Scheme}'s - \textit{continuations}\cite{ContinuationsConcurrency:Hieb}. + \textit{continuations}\cite{ContinuationsConcurrency:Hieb}, embracing its + first-class constructs. \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} [LOKO], but they do not take advantage - of hardware optimized for \textit{Scheme}, which would provide huge - performance benefits and simplify the interpreter and possibly also the CPU. + 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 @@ -348,21 +350,26 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } \textit{Scheme} supports many paradigms but the basis of the language is the expression reduction, in opposition to imperative language, where the basis is the \textit{statement}, that matches current processor architectures - better. This opens the door for optimizations like those applied in current - \textit{Scheme} interpreters but in a hardware level. [REDUCER CPUs] + 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}. \subsubsection{Hardware garbage collection} -% TODO LANGUAGE When the whole system uses managed memory, the Garbage Collection, - \textit{GC}, can be pushed down in the stack. Oberon\cite{Oberon:Wirth} and - MIMOSA \cite{MIMOSA:Yvon} propose a OS-level GC, but it can be done directly - in hardware[HARDWARE GC], reducing the requirements of the OS and the CPU. - -\subsubsection{FPGA} + \textit{GC}, can be pushed down in the stack. Both Oberon\cite{Oberon:Wirth} + and MIMOSA \cite{MIMOSA:Yvon} propose Garbage Collector as part of the + Operating System. A computing device that embraces \textit{Scheme} in its + core may take a more radical approach and involve the hardware in the Garbage + Collection process. Hardware assisted GC has been proven to improve the + performance of managed memory in von Neumann style processors + \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. Instead of making real machines, we could - just go for FPGAs, they are powerful nowadays, and we could do it + 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. @@ -375,9 +382,9 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } 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}[GUIX/NIX] mechanism could - always recover the state of both hardware and software as if they were the - same thing. + 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 @@ -397,8 +404,11 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } 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, while keeping it secure, - accessible and bootstrappable if carefully designed. + 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 -- cgit v1.2.3