\documentclass{beamer} \usetheme{Madrid} \usecolortheme{whale} \usepackage{tikz} \usepackage{graphicx} \usepackage{listings} \title[Morinaga OS]{From Project Athena to Plan 9, and back to Morinaga} \author{Narantuya, Mohamed Suhree, Ramirez} \date{\today} \begin{document} \begin{frame} \titlepage \end{frame} \begin{frame}{Project Athena - The Beginning} \begin{itemize} \item MIT's hacker culture during the 80's \item Multics, Unix, John Lions, and Berkeley \item MIT, DEC, and IBM \item Athena's Goals: \begin{itemize} \item Develop a campus-wide computing environment \item Create platform-independent interfaces \item Enable distributed computing \end{itemize} \end{itemize} \vspace{0.5cm} \begin{center} \begin{tikzpicture} % Create a timeline from 1983 to 1991 \draw[thick,->] (-4.5,0) -- (4.5,0); % Add years as markers \node[below] at (-4.5,-0.2) {1983}; \node[below] at (-1.5,-0.2) {1985}; \node[below] at (1.5,-0.2) {1988}; \node[below] at (4.5,-0.2) {1991}; % Add tick marks \draw (-4.5,0.2) -- (-4.5,-0.2); \draw (-1.5,0.2) -- (-1.5,-0.2); \draw (1.5,0.2) -- (1.5,-0.2); \draw (4.5,0.2) -- (4.5,-0.2); \end{tikzpicture} \end{center} \end{frame} \begin{frame}{X Window System Evolution} \begin{columns} \column{0.5\textwidth} \begin{itemize} \item X10 Release (1985) \item X11 Protocol (1987) \item X Consortium Formation \item XFree86 Development \end{itemize} \column{0.5\textwidth} \begin{tikzpicture} \draw[fill=blue!20] (0,0) rectangle (4,0.5); \node at (2,0.25) {X11}; \draw[fill=green!20] (0,0.7) rectangle (3,1.2); \node at (1.5,0.95) {Window Managers}; \draw[fill=red!20] (0,1.4) rectangle (2,1.9); \node at (1,1.65) {Applications}; \end{tikzpicture} \end{columns} \end{frame} \begin{frame}{Dynamic Window Management} \begin{itemize} \item Evolution from static to dynamic management \item DWM Philosophy: \begin{itemize} \item Minimal resource usage \item Tag-based workspace management \item Dynamic layouts \end{itemize} \item Suckless tools ecosystem \end{itemize} \vspace{0.5cm} \begin{center} \begin{tikzpicture}[node distance=2cm] % Centered DWM node \node[draw, circle] (dwm) at (0,0) {DWM}; % Tools around DWM in a more balanced layout \node[draw, circle] (st) at (2,0) {st}; \node[draw, circle] (dmenu) at (-1,-1.5) {dmenu}; \node[draw, circle] (tools) at (1,-1.5) {tools}; % Connections \draw[->] (dwm) -- (st); \draw[->] (dwm) -- (dmenu); \draw[->] (dwm) -- (tools); \end{tikzpicture} \end{center} \end{frame} \begin{frame}{The Abundance Paradox} \begin{center} \begin{tikzpicture} % Create a logarithmic timeline showing cost vs performance \draw[thick,->] (-4,0) -- (4,0) node[right] {Time}; \draw[thick,->] (0,-2) -- (0,3) node[above] {Performance per \$}; % Plot exponential curve \draw[blue, thick] plot[domain=-3:3,smooth] (\x,{0.1*exp(\x)}); % Add key points \node[below] at (-3,-0.2) {1970}; \node[below] at (3,-0.2) {2024}; % Add annotations \node[right] at (2,2.5) {\small Mobile SoCs}; \node[left] at (-2,0.5) {\small Early Computers}; \end{tikzpicture} \end{center} \end{frame} \begin{frame}{Unprecedented Growth} \begin{columns} \column{0.6\textwidth} \begin{itemize} \item 1970s Computer: \begin{itemize} \item Cost: \$10 million \item Speed: 1 instruction/second \end{itemize} \item 2024 Mobile Device: \begin{itemize} \item Cost: \$1000 \item Speed: 10+ million instructions/second \end{itemize} \item Price/Performance gain: $10^{11}$ \end{itemize} \column{0.4\textwidth} \begin{center} \begin{tikzpicture} % Create a visual representation of growth \draw[fill=blue!20] (0,0) rectangle (0.5,0.2); \node[right] at (0.6,0.1) {1970}; \draw[fill=blue!20] (0,1) rectangle (2,1.2); \node[right] at (2.1,1.1) {2024}; \end{tikzpicture} \end{center} \end{columns} \end{frame} \begin{frame}{Why Morinaga?} \begin{itemize} \item Modern devices are vastly underutilized \begin{itemize} \item Artificial limitations in mobile OSes \item Hardware capabilities exceed typical usage \end{itemize} \item Equivalent analogy by Professor Tanenbaum: \begin{center} \begin{quote} \small "If cars had improved at this rate, a Rolls Royce would now cost \$10 and get a billion miles per gallon. (Unfortunately, it would probably also have a 200-page manual telling how to open the door.)" \end{quote} \end{center} \end{itemize} \end{frame} \begin{frame}{Development Challenges} \begin{itemize} \item Initial virtualization approach faced performance issues \item Quote from Theo de Raadt: \begin{center} \begin{quote} \small "You've been smoking something really mind altering, and I think you should share it. virtualization is about basically placing another nearly full kernel, full of new bugs, on top of a nasty architecture which barely has correct page protection. Then running your operating system on the other side of this brand new pile of crap. You are absolutely deluded" \end{quote} \end{center} \item Fundamental rethinking of our approach \end{itemize} \end{frame} \begin{frame}{Adapted Solution} \begin{itemize} \item Shifted focus to dual window manager development: \begin{itemize} \item Android Window Manager optimization \item X11 environment within Android \end{itemize} \item Direct integration instead of virtualization \item Improved performance and resource utilization \end{itemize} \end{frame} \begin{frame}{Plan9 Protocol Integration} \begin{itemize} \item Plan9 influence on modern window management \item Everything is a file philosophy \item Integration with modern systems: \begin{itemize} \item Window naming conventions \item Inter-process communication \end{itemize} \end{itemize} \end{frame} \begin{frame}[fragile]{Custom Window Management Flow} \begin{itemize} \item Instance/Title-based window management \item MPV integration: \begin{itemize} \item Custom named instances \item Automatic bookmarking \item Category-based window placement \end{itemize} \item Tag-based organization \end{itemize} \begin{columns} \column{0.5\textwidth} % Adjust the width as needed \vspace{0.5cm} \begin{lstlisting}[language=C, basicstyle=\tiny\ttfamily, columns=fixed] static const Rule rules[] = { { "mpv_0", NULL, 1 << 1, 0, 0, 0, -1 }, { "mpv_1", NULL, 1 << 10, 0, 0, 0, -1 } }; \end{lstlisting} \end{columns} \end{frame} \begin{frame}{Watson and Stenographic Input} \begin{itemize} \item Watson's Stenographic Integration: \begin{itemize} \item Direct computer control through chord combinations \item Window management via steno commands \item Context-aware command interpretation \item Real-time response system \end{itemize} \vspace{0.3cm} \item Example Commands: \begin{itemize} \item TPAO: Focus window \item TKPWR: Move window \item STPR: Split view \item KPA*: Switch workspace \end{itemize} \vspace{0.3cm} \item Benefits: \begin{itemize} \item Faster than traditional keyboard input \item Reduced physical strain \item Natural language-like interaction \item Customizable command patterns \end{itemize} \end{itemize} \end{frame} \begin{frame}{Tag-Based File Organization} \begin{center} \begin{tikzpicture} % Center hub representing the file system \node[draw, circle, fill=blue!10] (fs) at (0,0) {Btrfs-t}; % Workspace nodes \node[draw, rectangle, fill=green!10] (docs) at (-3,2) {Documents}; \node[draw, rectangle, fill=red!10] (media) at (3,2) {Media}; \node[draw, rectangle, fill=yellow!10] (code) at (-3,-2) {Code}; \node[draw, rectangle, fill=purple!10] (comm) at (3,-2) {Communication}; % Simple arrows \draw[->] (fs) -- (docs); \draw[->] (fs) -- (media); \draw[->] (fs) -- (code); \draw[->] (fs) -- (comm); % Tags as simple text nodes \node at (-1.8,1.2) {\small \#PXC}; \node at (1.8,1.2) {\small \#VTC}; \node at (-1.8,-1.2) {\small \#STT}; \node at (1.8,-1.2) {\small \#XMC}; % Example files \node[draw, dashed] at (-1.5,0.5) {\small thesis.pdf}; \node[draw, dashed] at (1.5,0.5) {\small lecture.mp4}; \node[draw, dashed] at (-1.5,-0.5) {\small script.sh}; \node[draw, dashed] at (1.5,-0.5) {\small meeting.mia}; \end{tikzpicture} \end{center} \begin{itemize} \item Files automatically sorted by tags \item Multiple tags per file possible \item Dynamic workspace organization \item No traditional directory hierarchy \end{itemize} \end{frame} \begin{frame}{Target User Profile} \begin{center} \includegraphics[width=0.20\textwidth]{new-bh.jpg} \vspace{0.5cm} {\large Dr. Brian Harvey} \end{center} \begin{itemize} \item Target Demographics: \begin{itemize} \item Experienced Unix users \item Computer science educators \item Technical professionals \item Users seeking portable Unix workstations \end{itemize} \item Primary Need: "A portable Unix machine that just works" \end{itemize} \end{frame} \begin{frame}{References} \begin{thebibliography}{9} \bibitem{athena} Athena Documentation Project (1989). Project Athena Technical Plan \bibitem{xorg} X.Org Foundation Documentation \bibitem{suckless} Suckless.org Philosophy and Documentation \bibitem{plan9} Pike, R. et al. (1995). Plan 9 from Bell Labs \bibitem{dwm} DWM: Dynamic Window Manager Documentation \end{thebibliography} \end{frame} \end{document}