commit a4835bc3418a3afdf14e881b9c61c31469770f73 Author: Sergio Durigan Junior Date: Sun Mar 23 20:23:13 2014 -0300 Importando o repositório. Esse é o import inicial do repositório. Criei ele depois de ter terminado de fazer os slides, então não existe um histórico (por enquanto). diff --git a/30-anos-gnu.tex b/30-anos-gnu.tex new file mode 100644 index 0000000..93e418d --- /dev/null +++ b/30-anos-gnu.tex @@ -0,0 +1,437 @@ +\documentclass{beamer} + +\usepackage{ae,aecompl} +\usepackage[brazil]{babel} +\usepackage[T1]{fontenc} + +\usepackage{url} +\usepackage{hyperref} +\usepackage{xcolor} +\usepackage[utf8]{inputenc} +\usepackage{textcomp} % for right arrow + +\usetheme{Darmstadt} + +\title{30 anos depois, e o que é esse tal GNU?} +\author{Sergio Durigan Junior \\ \url{sergiodj@sergiodj.net}} +\date{\today} + +\newcommand{\gnu}{\texttt{GNU}} + +\begin{document} + +\begin{frame} + \titlepage + \begin{center} + \includegraphics[width=0.3\textwidth]{img/lp-br-sp-logo.png} + \end{center} +\end{frame} + +\section{Licença} +\begin{frame} + \frametitle{Licença desta Apresentação} + \begin{itemize} + \item{Licença: \textbf{Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)}} + \item{\url{http://creativecommons.org/licenses/by-sa/3.0/}} + \end{itemize} +\end{frame} + +\section{Tópicos} +\begin{frame} + \frametitle{Tópicos} + \begin{itemize} + % Explicar o que é SL + \item{Introdução, ou ``O que é Software Livre?''} + + % História breve do UNIX, linguagem C + \item{Multics, UNIX, e a revolução do S.O.} + + % Carta do Bill Gates aos hobbyistas + \item{De Bill Gates, para os hobbyistas, em 1976} + + % Explicar como começou o projeto GNU. Filosofia + % UNIX, liberdade, sistema operacional completo, etc. + \item{O \texttt{G} do \gnu{}} + + \item{O que é um S.O.?} + + \item{O Kernel: várias dores, uma adoção} + + \item{GLIBC: Início do território GNU} + + \item{GCC: Compilando o mundo} + + \item{GDB: O melhor amigo do desenvolvedor} + + \item{Bash: O entendedor dos comandos} + + \item{E não acabou! Tem GNU/mais!} + + \item{O GNU/futuro...} + + \item{... e os GNU/problemas} + + \item{Conclusão} + + \item{Agradecimentos} + \end{itemize} +\end{frame} + +\section{Introdução, ou O que é Software Livre?} +\begin{frame} + \frametitle{Introdução, ou ``O que é Software Livre?''} + \centering + \textbf{Software Livre} é qualquer software que garanta ao usuário + a liberdade de usá-lo, distribuí-lo e modificá-lo, de forma a atender + todas as suas necessidades. +\end{frame} + +\begin{frame}{Introdução, ou ``O que é Software Livre?''$^2$} + \centering + A definição formal de \textbf{Software Livre} foi proposta por Richard + M. Stallman e baseia-se em \textbf{4 liberdades}, consideradas + fundamentais (\textit{GNU Manifesto}): + \newline + \begin{itemize} + \item{\textbf{Liberdade 0}: A liberdade de executar o programa + para qualquer propósito.} + \item{\textbf{Liberdade 1}: A liberdade de estudar como o + programa funciona e alterá-lo para fazê-lo funcionar + como desejar.} + \item{\textbf{Liberdade 2}: A liberdade de redistribuir cópias + do programa.} + \item{\textbf{Liberdade 3}: A liberdade de melhorar o programa + e redistribuir a melhoria para toda a comunidade.} + \end{itemize} +\end{frame} + +\begin{frame}{Introdução, ou ``O que é Software Livre?''$^3$} + \begin{itemize} + \item{\textbf{Não confunda Software Livre com Open Source}!!} + \pause + \item{\textbf{Software Livre} é um movimento técnico, social, + filosófico e político. Incentiva uma cultura de + \textbf{respeito} à liberdade de todos, e não aceita + imposições e restrições ditadas por empresas, + entidades ou pessoas com objetivos excusos. + \textbf{Sua liberdade não lhe dá permissão para tirar a + liberdade do outro}.} + \pause + \item{\textbf{Open Source} é uma metodologia de + desenvolvimento de software. Incentiva a + \textit{abertura do código-fonte} de programas, + mas não toma partido em questões cruciais como + privacidade, neutralidade na rede, ou abusos + contra a liberdade de usuários de software cometidos + por empresas em nome de uma suposta ``conveniência''.} + \end{itemize} +\end{frame} + + +\section{Multics, UNIX, e a revolução do S.O.} +\begin{frame}{Multics, UNIX, e a revolução do S.O.} + \begin{itemize} + \item{Ken Thompson, Dennis Ritchie, em 1969.} + \item{K.I.S.S.} + \item{Software gratuito, acadêmico, código-fonte + disponível nos primórdios.} + \item{\textit{To C, or not to C?}} + \end{itemize} +\end{frame} + + +\section{De Bill Gates, para os hobbyistas, em 1976} +\begin{frame}{De Bill Gates, para os hobbyistas, em 1976} + \begin{center} + \includegraphics[width=0.55\textwidth]{img/Bill_Gates_Letter_to_Hobbyists.pdf} + \end{center} +\end{frame} + + + +\section{O G do GNU} +\begin{frame}{O \texttt{G} do \gnu{}} + \begin{itemize} + \item{Projeto criado por Richard M. Stallman em 27 de + Setembro de 1983.} + \item{Objetivo: um Sistema Operacional completamente + livre.} + \item{Ainda estamos na luta :-).} + \item{Compõe a maior parte do S.O. \textbf{GNU/Linux}.} + \end{itemize} +\end{frame} + + + +\section{O que é um S.O.?} +\begin{frame}{O que é um S.O.?} + \begin{itemize} + \item{Pense num Lego :-)} + \item{\textbf{Kernel}: Comunica-se com os + periféricos/\textit{hardwares}, provendo + acesso a recursos a partir do \textit{espaço + de usuário}.} + \item{\textbf{Biblioteca C}: Abstrai o acesso ao + \textbf{kernel}, oferecendo funções mais + complexas para lidar com problemas.} + \item{\textbf{Toolchain}: Conjunto formado por um + \textbf{compilador}, \textbf{linker/loader}, + \textbf{montador}, \textbf{depurador}, e, por vezes, + algumas outras ferramentas.} + \item{\textbf{Interpretador de comandos}: É o programa + que realiza a interface entre o usuário e o S.O.} + \end{itemize} + \begin{center} + Em cima do S.O., temos os aplicativos que utilizamos para + nossas tarefas, como um navegador, editor de textos, + processador de textos, jogos, etc. + \end{center} +\end{frame} + + + +\section{O Kernel: várias dores, uma adoção} +\begin{frame}{O Kernel: várias dores, uma adoção} + \includegraphics[width=0.2\textwidth]{img/hurd_sm_mf.jpg} + \begin{itemize} + \item{\textbf{GNU Hurd}: 1990, microkernel, poucos + desenvolvedores, um tanto desacreditado.} + \item{Sistema \textit{bootável}, suporta apenas + \texttt{i386}.} + \item{Desenvolvimento ainda ativo, apesar de lento.} + \end{itemize} +\end{frame} + +\begin{frame}{O Kernel: várias dores, uma adoção$^2$} + \includegraphics[width=0.1\textwidth]{img/Tux.jpg} + \begin{itemize} + \item{\textbf{Linux}: 1991, kernel monolítico, + pragmatismo e uma pitada de desrespeito.} + \item{\emph{Sadly, a kernel by itself gets you + nowhere. To get a working system you need a shell, + compilers, a library etc. These are separate parts + and may be under a stricter (or even looser) + copyright. Most of the tools used with linux are + GNU software and are under the GNU copyleft.}} + \item{Situação atual: \textit{blobs} binários, + desenvolvimento acelerado, \textit{open + source}, péssimo exemplo de liberdade.} + \item{\textbf{Linux-libre!!!!}} + \end{itemize} +\end{frame} + + +\section{GLIBC: Início do território GNU} +\begin{frame}{GLIBC: Início do território GNU} + \begin{itemize} + \item{Roland McGrath, final da década de 1980, + \texttt{GNU LGPL}.} + \item{Ulrich Drepper mandava desde 2001. Vários + \textit{forks}, xingamentos, também com uma pitada + de desrespeito.} + \item{Em março de 2012, o processo de desenvolvimento + foi todo reformulado. Comunidade em primeiro + lugar.} + \item{Portabilidade extrema.} + \end{itemize} +\end{frame} + + +\section{GCC: Compilando o mundo} +\begin{frame}{GCC: Compilando o mundo} + \includegraphics[width=0.2\textwidth]{img/gccegg-65.png} + \begin{itemize} + \item{\textbf{G}NU \textbf{C}ompiler + \textbf{C}ollection.} + \item{Andrew S. Tanenbaum, Amsterdam Compiler Kit, + não-livre. Richard Stallman, 1986-7.} + \item{\textbf{EGCS} fork, várias otimizações, até que + FSF decide usá-lo como o ``próximo'' GCC.} + \item{Front-ends, plugins (em Python!), melhorias em + informação de depuração (com otimização -- Alexandre + Oliva), código legado, competição com LLVM...} + \end{itemize} +\end{frame} + + +\section{GDB: O melhor amigo do desenvolvedor} +\begin{frame}{GDB: O melhor amigo do desenvolvedor} + \includegraphics[width=0.3\textwidth]{img/archer.jpg} + \begin{itemize} + \item{Richard Stallman, em 1986. ``Pra começar a + escrever o sistema, preciso de um depurador e de um + editor de texto.''} + \item{\textit{Steering Committee}, mantenedores, + comunidade pequena, código legado...} + \item{Suporte a várias linguagens além de C/C++. + Pouca competição com LLDB. Extensões em Python. + Grandes refatorações de código!} + \end{itemize} +\end{frame} + + +\section{Bash: O entendedor dos comandos} +\begin{frame}{Bash: O entendedor dos comandos} + \includegraphics[width=0.3\textwidth]{img/bash-org.jpg} + \begin{itemize} + \item{Brian Fox, em 1988. Brian foi contratado pela + FSF para o trabalho, tamanha a importância de um + shell livre!} + \item{Grande maioria dos usuários de linha de comando + utilizam o Bash.} + \item{Scriptagem no seu mais alto nível. Muitas vezes + seu programa GUI está usando Bash por baixo :-).} + \end{itemize} +\end{frame} + + +\section{E não acabou! Tem GNU/mais!} +\begin{frame}{E não acabou! Tem GNU/mais!} + \begin{itemize} + \item{Montador (\textit{assembler}), \textit{linker}, + \textit{loader}... Tudo isso é GNU.} + \pause + \item{Quer ambiente gráfico? Tem o \textbf{GNOME}.} + \pause + \item{Quer editor de texto? Tem o \textbf{GNU + Emacs}.} + \pause + \item{Quer editor de imagem? Tem o \textbf{GIMP}.} + \pause + \item{Biblioteca de interação com o usuário pra linha + de comando? Sem problema! Tem a + \textbf{GNU readline}.} + \pause + \item{Alternativa pro Android? \textbf{GNU + Replicant}.} + \pause + \item{Alternativa pro Flash? \textbf{Gnash}.} + \pause + \item{Quer se libertar do Matlab? \textbf{GNU + Octave}.} + \pause + \item{Sua BIOS não é livre, sabia??? Mas o + \textbf{GNU coreboot} é!} + \end{itemize} +\end{frame} + +\begin{frame}{E não acabou! Tem GNU/mais!$^2$} + \begin{itemize} + \item{Curte Lisp? Common Lisp? \textbf{GNU clisp}!} + \pause + \item{Curte linha de comando? Já usou \texttt{ls}, + \texttt{cd}, \texttt{cat}, \texttt{sort}, + \texttt{dd}, \texttt{df}... ? Todos parte do + \textbf{GNU coreutils}!} + \pause + \item{Dual boot? \textbf{GNU GRUB}.} + \pause + \item{É desenvolvedor? Aplica \textit{patches}? + \textbf{GNU patch}.} + \pause + \item{Vai descompactar um arquivo? \textbf{GNU tar}.} + \pause + \item{Procurar uma palavra em algum texto? + \textbf{GNU grep}.} + \pause + \item{... ou talvez \textbf{GNU sed}.} + \pause + \item{Seu programa está traduzido? Provavelmente + culpa do \textbf{GNU gettext}.} + \end{itemize} +\end{frame} + +\begin{frame}{E não acabou! Tem GNU/mais!$^3$} + \begin{itemize} + \item{Alternativa pro YouTube? \textbf{GNU + Mediagoblin}.} + \pause + \item{E pro Twitter? \textbf{GNU Social}.} + \pause + \item{Computação estatística? \textbf{GNU R}.} + \pause + \item{Programação Linear? \textbf{GNU GLPK}.} + \pause + \item{Criptografia? \textbf{GnuPG}.} + \item{...} + \end{itemize} +\end{frame} + + + +\section{O GNU/futuro...} +\begin{frame}{O GNU/futuro} + \begin{itemize} + \item{Opinião pessoal :-).} + \item{Foco em celulares e dispositivos móveis. + \textbf{GNU Replicant}. \textbf{F-Droid} e + alternativas. Quem sabe um GNU para o celular? + :-)} + \item{Mais foco em ``sociais'': \textbf{GNU Social}. + Federação, descentralização. \textbf{Gnunet}.} + \end{itemize} +\end{frame} + + + +\section{... e os GNU/problemas} +\begin{frame}{... e os GNU/problemas} + \begin{itemize} + \item{Stallman insiste em ser o ``Chief GNUisance'' + (título apropriado). Decisões arbitrárias e + polêmicas. Alguns projetos conseguiram se + desvencilhar disso.} + \begin{itemize} + \item{Desistência de alguns desenvolvedores + importantes.} + \end{itemize} + \item{Pouco reconhecimento por parte da comunidade + \textrightarrow{} pouco conhecimento a respeito da + liberdade.} + \item{O projeto GNU e a FSF fecham os olhos pra + questões importantíssimas, como hardware livre e, em + certo grau, questões de privacidade e neutralidade + de rede.} + \item{Excesso de ``orgulho'' por seus próprios + softwares (até que ponto é um problema?).} + \end{itemize} +\end{frame} + + + +\section{Conclusão} +\begin{frame}{Conclusão} + \begin{itemize} + \item{Você usa \textbf{GNU/Linux}. Ou deveria usar :-).} + \item{O projeto GNU é muito maior do que a maioria das + pessoas pensa.} + \item{Existem problemas no projeto, mas também existem + soluções, e a GNU/esperança ainda vive.} + \item{A liberdade é algo pelo qual vale a pena lutar + :-). (desculpem a pieguice!)} + \end{itemize} +\end{frame} + + + +\section{Agradecimentos} +\begin{frame}{Agradecimentos} + \begin{itemize} + \item{Ao pessoal da \textbf{SECCOMP}, especialmente ao + Marcel!} + \item{Ao pessoal do \textbf{LibrePlanet São Paulo}, + por manter vivo um ideal.} + \item{A vocês, pela audiência e paciência.} + \item{E ao \textbf{projeto GNU}, pelos 30 anos de luta!} + \end{itemize} +\end{frame} + +\begin{frame}{Dúvidas?} + \begin{center}\textbf{Dúvidas?}\end{center} +\end{frame} + +\begin{frame}{Momento denúncia} + \begin{center}\alert{\textbf{A FSF USA TWITTER!}}\end{center} +\end{frame} + +\end{document} diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f73dc99 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +.PHONY : all + +all: 30-anos-gnu.pdf + +%.pdf: %.tex + pdflatex $< ; pdflatex $< + +clean: + rm -f *.{aux,log,nav,out,pdf,snm,toc} diff --git a/img/Bill_Gates_Letter_to_Hobbyists.pdf b/img/Bill_Gates_Letter_to_Hobbyists.pdf new file mode 100644 index 0000000..6fc1004 Binary files /dev/null and b/img/Bill_Gates_Letter_to_Hobbyists.pdf differ diff --git a/img/Tux.jpg b/img/Tux.jpg new file mode 100644 index 0000000..1d18dab Binary files /dev/null and b/img/Tux.jpg differ diff --git a/img/archer.jpg b/img/archer.jpg new file mode 100644 index 0000000..c90eb01 Binary files /dev/null and b/img/archer.jpg differ diff --git a/img/bash-org.jpg b/img/bash-org.jpg new file mode 100644 index 0000000..e47360a Binary files /dev/null and b/img/bash-org.jpg differ diff --git a/img/gccegg-65.png b/img/gccegg-65.png new file mode 100644 index 0000000..cd59029 Binary files /dev/null and b/img/gccegg-65.png differ diff --git a/img/hurd_sm_mf.jpg b/img/hurd_sm_mf.jpg new file mode 100644 index 0000000..6fd1fa3 Binary files /dev/null and b/img/hurd_sm_mf.jpg differ diff --git a/img/lp-br-sp-logo.png b/img/lp-br-sp-logo.png new file mode 100644 index 0000000..fbab0f2 Binary files /dev/null and b/img/lp-br-sp-logo.png differ