talks: Add FSF Hungary talk.

This commit is contained in:
Gábor Boskovits 2018-03-02 14:36:24 +01:00 committed by Ludovic Courtès
parent 74df37841f
commit 004c74d507
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
4 changed files with 314 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,314 @@
\documentclass{beamer}
\usetheme{default}
\usefonttheme{structurebold}
\usepackage{helvet}
\usepackage{multimedia} % movie
\usecolortheme{seagull} % white on black
\usepackage[utf8]{inputenc}
\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref,xspace,multicol}
\usepackage[absolute,overlay]{textpos}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes,trees,shadows,positioning}
\usepackage{fancyvrb} % for \Verb
% Remember the position of every picture.
\tikzstyle{every picture}+=[remember picture]
\tikzset{onslide/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{#2}} % \pgfkeysalso doesn't change the path
}}
% Colors.
\definecolor{guixred1}{RGB}{226,0,38} % red P
\definecolor{guixorange1}{RGB}{243,154,38} % guixorange P
\definecolor{guixyellow}{RGB}{254,205,27} % guixyellow P
\definecolor{guixred2}{RGB}{230,68,57} % red S
\definecolor{guixred3}{RGB}{115,34,27} % dark red
\definecolor{guixorange2}{RGB}{236,117,40} % guixorange S
\definecolor{guixtaupe}{RGB}{134,113,127} % guixtaupe S
\definecolor{guixgrey}{RGB}{91,94,111} % guixgrey S
\definecolor{guixdarkgrey}{RGB}{46,47,55} % guixdarkgrey S
\definecolor{guixblue1}{RGB}{38,109,131} % guixblue S
\definecolor{guixblue2}{RGB}{10,50,80} % guixblue S
\definecolor{guixgreen1}{RGB}{133,146,66} % guixgreen S
\definecolor{guixgreen2}{RGB}{157,193,7} % guixgreen S
\setbeamerfont{title}{size=\huge}
\setbeamerfont{frametitle}{size=\huge}
\setbeamerfont{normal text}{size=\Large}
% White-on-black color theme.
\setbeamercolor{structure}{fg=guixorange1,bg=black}
\setbeamercolor{title}{fg=white,bg=black}
\setbeamercolor{date}{fg=guixorange1,bg=black}
\setbeamercolor{frametitle}{fg=white,bg=black}
\setbeamercolor{titlelike}{fg=white,bg=black}
\setbeamercolor{normal text}{fg=white,bg=black}
\setbeamercolor{alerted text}{fg=guixyellow,bg=black}
\setbeamercolor{section in toc}{fg=white,bg=black}
\setbeamercolor{section in toc shaded}{fg=white,bg=black}
\setbeamercolor{subsection in toc}{fg=guixorange1,bg=black}
\setbeamercolor{subsection in toc shaded}{fg=white,bg=black}
\setbeamercolor{subsubsection in toc}{fg=guixorange1,bg=black}
\setbeamercolor{subsubsection in toc shaded}{fg=white,bg=black}
\setbeamercolor{frametitle in toc}{fg=white,bg=black}
\setbeamercolor{local structure}{fg=guixorange1,bg=black}
\newcommand{\highlight}[1]{\alert{\textbf{#1}}}
\title{GuixSD: a GNU disztribúció}
\author{Boskovits Gábor}
\date{\small{2018. február 20., Budapest, Magyarország}}
\setbeamertemplate{navigation symbols}{} % remove the navigation bar
\AtBeginSection[]{
\begin{frame}
\frametitle{}
\tableofcontents[currentsection]
\end{frame}
}
\newcommand{\screenshot}[1]{
\begin{frame}[plain]
\begin{tikzpicture}[remember picture, overlay]
\node [at=(current page.center), inner sep=0pt]
{\includegraphics[width=\paperwidth]{#1}};
\end{tikzpicture}
\end{frame}
}
\begin{document}
\maketitle
\setbeamercolor{normal text}{bg=white}
\begin{frame}[plain]
\begin{tikzpicture}[remember picture, overlay]
\node [at=(current page.center), inner sep=0pt]
{\includegraphics[width=0.7\paperwidth]{images/GuixSD-horizontal-print}};
\end{tikzpicture}
\end{frame}
\setbeamercolor{normal text}{fg=white,bg=black}
\begin{frame}[fragile]
\frametitle{Miben különöbözik a többi disztribúciótól}
\begin{itemize}
\item tiszteletben tartja a felhasználók szabadságát (user freedom)
\item egyszerű csomagkezelési műveleteken kívül lehetővé teszi a tranzakcionális frissítést és visszaállítást, felhasználói csomag és profilkezelést
\item a teljes rendszer API hozzáférhető, többek között magas szintű beágyazott nyelvek formájában csomagok és rendszerkonfigurációk definiálásához
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{A felhasználók szabadságának tiszteletben tartása}
A kontribútoraink nagy gonddal ügyelnek, hogy az upstream disztribúcióba csak szabad szoftver kerülhessen be. Ez nem jelenti azt, hogy nem alkalmas a rendszer bármilyen szoftver futtatására, de ne várjuk el a fejlesztőktől, hogy nem szabad szoftvert csomagoljanak vagy támogassanak. A felhasználók szabadságának (user freedom) tiszteletben tartásásnak a leglátványosabb megjelenése, hogy az alapértelmezett kernel a linux-libre, és nincs vanilla linux kernel csomag az alapértelezett repositoryban. Egy másik megjelenése ennek, hogy a disztribúció nem támogatja a meltdown és spectre biztonsági sebezhetőségek nem szabad mikrokód frissítéssel való javítását, csak a szabad forráskódú javításokat.
\end{frame}
\begin{frame}[fragile]
\frametitle{Csomagkezelési fogalmak}
\begin{itemize}
\item felhasználói csomagkezelés - a felhasználók rendszergazdai jogosultságok nélkül telepíthetnek, frissíthetnek, törölhetnek csomagokat
\item felhasználó profilok - minden felhasználónak van egy alapértelmezett profilja, és ezen kívül létrehozhat még tetszőleges számú profilt. Egy profil profilgenerációk egy lánca.
\item profilgeneráció - az adott profil egy adott állapota, például, hogy milyen csomagok és milyen konfigurációk vannak benne
\item manifest - egy teljes felhasználói konfiguráció leírása
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Manifest - példa}
\begin{semiverbatim}
(\alert{specifications->manifest}
'("emacs" "guile@2.2" "guile@2.2:debug"))
\end{semiverbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Tranzakcionális és funkcionális csomagkezelés}
\begin{itemize}
\item tranzakcionális csomagkezelés - egy csomagkezelési művelet vagy teljes mértékben sikeres, vagy nem változtat egyáltalán a rendszer állapotán. Ezért nem fordulnak elő részleges frissítések, nem marad a csomagadatbázis inkonzisztens állapotban.
\item funkcionális csomagkezelés - egy sikeres csomagkezelési művelet eredménye csak a művelet bemeneteitől függ, az állapottól független. Ez lehetővé teszi, hogy különböző gépeken, vagy különböző időpontokban teljesen azonos környezeteket hozzunk létre.
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Egyszerű csomagdefiníciók}
\begin{itemize}
\item egyszerű, jól definiált csomagleírások
\item könnyen kiterjeszthető rendszer
\item több ezer csomag
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Csomagdefiníció - példa}
\begin{semiverbatim}
\scriptsize{
(\alert{package}
(name "hello")
(version "2.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/hello/hello-" version
".tar.gz"))
(sha256
(base32
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
(build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package")
(description "Guess what GNU Hello prints!")
(home-page "http://www.gnu.org/software/hello/")
(license gpl3+))
}
\end{semiverbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Funkcionális rendszerkonfiguráció}
\begin{itemize}
\item egyszerű funkcionális konfiguráció leíró nyelv
\item konfigurálható és kiterjeszthető rendszerszolgáltatások
\item tranzakcionális frissítés/visszaállítás
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Rendszerkonfiguráció - példa}
\begin{semiverbatim}
\scriptsize{
(\alert{operating-system}
(host-name "schememachine")
(timezone "Japan")
(locale "ja_JP.utf8")
(bootloader (grub-configuration (device "/dev/sda")))
(file-systems (cons (\alert{file-system}
(device "my-root")
(title 'label)
(mount-point "/")
(type "ext4"))
%base-file-systems))
(users (cons (\alert{user-account}
(name "alice")
(group "users")
(home-directory "/home/alice"))
%base-user-accounts))
(services (cons* (dhcp-client-service)
(lsh-service #:port-number 2222)
%base-services)))
}
\end{semiverbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{Csomagok a GuixSD körül}
\begin{itemize}
\item Guix - funkcionális szoftverkörnyezet kezelő
\item Shepherd - init rendszer
\item Curiass - continuous delivery
\item Guile - scheme fordító
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Guix}
\begin{itemize}
\item a disztribúció csomagkezelője
\item képes izolált fejlesztői környezetek generálására
\item képes az adott csomagokat és függőségeiket tartalmazó konténerképek generálására
\item lehetőséget ad a szoftverkörnyezet teljesen azonos állapotba hozására
\item lehetővé teszi, hogy a szoftverek függőségi viszonyait vizsgáljuk
\item lehetővé teszi például azt is, hogy ellenőrizzük, hogy az adott szoftverre hatással van-e valamilyen ismert biztonsági sebezhetőség
\item lehetővé teszi, hogy meggyőződjünk róla, hogy az adott szoftver milyen forrásból származik
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Shepherd}
\begin{itemize}
\item a GuixSD init-je
\item lehetővé teszi rendszerszolgáltatások definiálását scheme nyelven
\item egy systemd kompatibilitási réteg jelenleg fejlesztés alatt van
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Curiass}
\begin{itemize}
\item jelenleg ez a berlin.guixsd.org build farm szoftvere
\item lehetővé teszi, hogy egy adott commitban szereplő csomagokat megépítsük
\item ezzel a helyettesítőcsomagok elérhetővé válnak, így a felhasználók binárisként letölthetik őket
\item jelenleg fejlesztés alatt áll az a technika, amivel a csomagok többségét tartalomcímezhetővé tehetjük
\item jelenleg fejlesztés alatt áll egy csatornákról szóló tervezet, amely lehetővé fogja tenni, hogy különböző szervezetek maguk is csomagszolgáltatók lehessenek
\item a guix publish parancs jelenleg is lehetővé teszi, hogy a csomagjainkat másokkal megosszuk
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Guile}
\begin{itemize}
\item a GNU scheme fordítója
\item a GuixSD rendszerben már az initrd képtől kezdve a rendszer része
\item ez lehetővé teszi hogy a rendszerállapot nagy részét kézben tudjuk tartani
\item ez a GNU projekt hivatalos kiterjesztési nyelve, rendkívül jó C integrációval
\end{itemize}
\end{frame}
\begin{frame}{Csatlakozzatok hozzánk, osszuk meg a zárójeleket!}
\vspace{0.7cm}
\Large{
\begin{itemize}
\item \textbf{telepítsétek a disztribúciót}
\item \textbf{használjátok}, jelentsétek a hibákat, adjatok hozzá csomagokat
\item osszátok meg velünk az \textbf{ötleteiteket}!
\end{itemize}
}
\end{frame}
\begin{frame}[plain]
\vfill{
\vspace{2.5cm}
\center{\includegraphics[width=0.3\textwidth]{images/GuixSD}}\\[1.0cm]
\texttt{boskovits@gmail.com}\hfill{\alert{\url{https://gnu.org/software/guix/}}}
}
\end{frame}
\begin{frame}{}
\begin{textblock}{12}(2, 8)
\tiny{
Copyright \copyright{} 2010, 2012--2016 Ludovic Courtès \texttt{ludo@gnu.org}.\\[3.0mm]
Copyright \copyright{} 2018 Gábor Boskovits \texttt{boskovits@gmail.com}.\\[3.0mm]
GNU GuixSD logo, CC-BY-SA 4.0, \url{https://gnu.org/s/guix/graphics}
Copyright of other images included in this document is held by
their respective owners.
\\[3.0mm]
This work is licensed under the \alert{Creative Commons
Attribution-Share Alike 3.0} License. To view a copy of this
license, visit
\url{http://creativecommons.org/licenses/by-sa/3.0/} or send a
letter to Creative Commons, 171 Second Street, Suite 300, San
Francisco, California, 94105, USA.
\\[2.0mm]
At your option, you may instead copy, distribute and/or modify
this document under the terms of the \alert{GNU Free Documentation
License, Version 1.3 or any later version} published by the Free
Software Foundation; with no Invariant Sections, no Front-Cover
Texts, and no Back-Cover Texts. A copy of the license is
available at \url{http://www.gnu.org/licenses/gfdl.html}.
\\[2.0mm]
% Give a link to the 'Transparent Copy', as per Section 3 of the GFDL.
The source of this document is available from
\url{http://git.sv.gnu.org/cgit/guix/maintenance.git}.
}
\end{textblock}
\end{frame}
\end{document}