diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2024-08-28 00:58:13 +0200 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2024-08-28 01:02:36 +0200 |
commit | 0646123b37c644652f09136e23fc7cfa252ad924 (patch) | |
tree | 8275f0207c88a6266886b0a81813d4e9477613be /papers/LOCO-24 | |
parent | 60fd8618d127d2af2216ce0bb1684eb209ac90e6 (diff) |
LOCO: organize proposal better
Diffstat (limited to 'papers/LOCO-24')
-rw-r--r-- | papers/LOCO-24/contents.latex | 74 |
1 files changed, 64 insertions, 10 deletions
diff --git a/papers/LOCO-24/contents.latex b/papers/LOCO-24/contents.latex index b17c0f6..800c4d4 100644 --- a/papers/LOCO-24/contents.latex +++ b/papers/LOCO-24/contents.latex @@ -115,6 +115,7 @@ 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 @@ -275,19 +276,72 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom } paradigms to succeed. -\section{Proposal} +\section{Embracing the language} -\section{CPU} -\subsection{Optimization for tree structures} -\subsection{Hardware garbage collection} -\subsection{Extendable CPU} -\subsection{No kernel/interpreter separation} -\subsection{No threads/processes but tasks} -\subsection{No virtual memory} -\subsection{Capability based security "lambda-style"} - Reduces the amount of permission issues inherited from Von Neumann style and +%% TODO: embracing the language means embracing the people + +From what we just discussed we can see most interesting things in Unix's ideas +are dangerous from von Neumann to shared-resource concurrency and others are +not comfortable for programmers, who prefer to use interpreted languages +instead as the abstractions they provide are easier to deal with. But CPUs are +optimized for the Unix case, instead of embracing the facilities the +programmers prefer to use. + +\subsection{Personal computers} + +%% TODO: What's `personal` in personal computer? embrace the user-programmer +%% TODO: make sure dates are right + +Personal computers like those before the late 90s were simple. A user could +maintain them and even manipulate the electronics. The introduction of larger +RAM memories and more complex CPUs, made the personal computing industry pivot +towards Unix-based operating systems, as they were proven to work in complex +scenarios. This shift contributed to the extinction of many \textit{simple} +operating systems that flourished during the previous era but facilitated the +galloping increase personal computing specs of the 90s and beginning of the +2000s, doubling in performance every 2 years\cite{EvolutionComputing:Larus}. + +%% TODO graphical user interfaces hid the programming part + +Graphical User Interfaces, \textit{GUI}, became widespread with the +introduction of the Apple Macintosh computer in the early 1980s. This user +interface change made computers accessible and useful to many more +people\cite{EvolutionComputing:Larus} but at the expense of the access to lower +level capabilities, as \textit{protecting the user}, and the computing literacy +that traditional text-oriented usage encouraged. + +%% TODO: explain the GUI apparition and how before everyone was a vernacular +%% programmer and now it's not like that +%% TODO: if we want to improve the connection with the vernacular programmer, +%% we need to ask ourselves: what's a language? \cite{MythsPL:Shaw} + +For \textit{vernacular programmers}, because they represent the vast majority +of programmers \cite{MythsPL:Shaw}: simplicity (few concepts), explorability +(repl), flexible, practical, also valid for professional programmers, +extendable, can represent other kind of goals like \textit{HDLs} and even +\textit{data} via DSLs. + +Operating systems like Oberon \cite{Oberon:Wirth} blur the line between +\textit{GUI}s and programming, making them work together instead of hiding the +programming part of the system, while keeping a simple core in its design that +keeps the system maintainable. + + +\subsection{Operating System} +\subsubsection{No kernel/interpreter separation} +\subsubsection{No threads/processes but tasks} +\subsubsection{No virtual memory} +\subsubsection{Capability based security "lambda-style"} + Reduces the amount of permission issues inherited from von Neumann style and Unix. +\subsection{CPU} +\subsubsection{Optimization for tree structures} +\subsubsection{Hardware garbage collection} +\subsubsection{Extendable CPU} + + \cite{riscvSelfHostingComputer:Somlo} + %% The acknowledgments section is defined using the "acks" environment %% (and NOT an unnumbered section). This ensures the proper |