%%
%% Introduction à SVN pour les utilisateurs de CVS
%%
%%
%% Copyright (C) 2005 Association ResEl <gestion@resel.enst-bretagne.fr>
%% Ce document est un document libre ; vous pouvez le redistribuer et/ou
%% le modifier au titre des clauses de la Licence Publique Générale GNU,
%% telle que publiée par la Free Software Foundation ; soit la version 2
%% de la Licence, ou (à votre discrétion) une version ultérieure
%% quelconque. Ce docuement est distribué dans l'espoir qu'il sera utile,
%% mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de
%% COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. Voir
%% la Licence Publique Générale GNU pour plus de détails. Vous devriez
%% avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce
%% programme ; si ce n'est pas le cas, écrivez à la Free Software
%% Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%% 02110-1301, USA.

%\documentclass[xcolor=pst,compress]{beamer}
\documentclass{beamer}
% xcolor = bst pour pouvoir utiliser PSTricks et Beamer

\usepackage[francais]{babel}
\usepackage[latin1]{inputenc}
\usepackage{pstricks,xspace}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{color}

%% Rajoute un \strut pour que la couleur résiste à un \item devant...
\newcommand{\vavers}{\strut{\red$\leadsto$}\xspace}

\mode<presentation>
{
  %\usetheme{Warsaw}

  % Variation sur le thème de Warsaw
  % (principalement à cause du rappel du plan en haut
  %  qui est devenu trop long)
  \useinnertheme{rounded}
  \useoutertheme{infolines}
  \usecolortheme{orchid}
  \usecolortheme{whale}

  \setbeamercovered{transparent}

  % On supprime la barre de navigation
  \setbeamertemplate{navigation symbols}{}
}



\title[Introduction à Linux]
{ResEl 101 : Présentation des fonctionnalités de Linux utilisées au ResEl}

\author[Association ResEl]
{
  Association ResEl\\
  \texttt{<gestion@resel.enst-bretagne.fr>}
}

\institute[Réseau des Élèves]
{
  Réseau des Élèves de l'ENST Bretagne
}

\date{23 Septembre 2005}


\subject{ResEl 101 : Présentation des fonctionnalités de Linux utilisées au ResEl}
\keywords{ResEl,Linux}


% Logo du ResEl
\pgfdeclareimage[height=0.4cm]{resel}{logo_ResEl}
\logo{\pgfuseimage{resel}}


% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
\AtBeginSection[]
{
  \begin{frame}<beamer>
    \frametitle{Plan}
    \scriptsize
    \tableofcontents[currentsection]
    \normalsize
  \end{frame}
}


% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
%\AtBeginSubsection[]
%{
%  \begin{frame}<beamer>
%    \frametitle{Plan}
%    \scriptsize
%    \tableofcontents[currentsection,currentsubsection]
%    \normalsize
%  \end{frame}
%}


% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command:
%\beamerdefaultoverlayspecification{<+->}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
  \frametitle{Licence}

  \begin{block}{}
    Ces slides sont sous licence GPL (General Public Licence). Ils
    sont disponibles, avec leur code source sur le site de
    l'Association ResEl
    (\href{http://resel.enst-bretagne.fr}{http://resel.enst-bretagne.fr}).

\vspace{1cm}

    Ils ont été créés à partir de logiciels libres (\LaTeX -beamer).
  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
  \frametitle{Plan}
  \scriptsize
  \tableofcontents
  \normalsize
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Introduction}
\subsection{GNU}

\begin{frame}
  \frametitle{GNU}

  \begin{block}{}
    \begin{itemize}
    \item Projet Lancé en 1984 aux États-Unis par Richard Stallman
    \item Sous licence GPL (General Public Licence) :
    \begin{itemize}
	\item utilisation~;
	\item copie~;
	\item modification~;
	\item redistribution sous la même licence~;
    \end{itemize}
    \item Partenariat avec la FSF (Free Software Fondation)
    \end{itemize}
  \end{block}
\end{frame}


\subsection{Linux}
\begin{frame}
  \frametitle{Linux}

  \begin{block}{}
  \begin{itemize}
    \item Projet lancé en 1992 par Linus Torvalds, sous licence GPL,
    basé sur Unix
    \item Noyau le plus utilisé pour le système GNU, mais d'autres
    existent GNU/Hurd, NetBSD, FreeBSD
    \item Le noyau :
    \begin{itemize}
	\item fait le lien entre les applications et le matériel
	\item gère les processus qui tournent
	\item gère les fichiers, les droits
	\item et bien d'autres choses, cf. Majeure INF
   \end{itemize}
   \item Plusieurs distributions GNU/Linux (Debian, Ubuntu, Mandriva,
   Fedora, etc.)
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Linux vs. Windows}
\begin{frame}
  \frametitle{Linux vs. Windows}

  \begin{block}{}
  \begin{itemize}
    \item Plus sécurisé et réactif (énorme communauté de développeurs)
    \item Choix de l'interface graphique (aucune, Gnome, KDE, etc.)
    \item Légèreté du système
    \item Le système GNU permet une mise à jour automatique de tous
    les logiciels
    \item De plus en plus de périphériques reconnus
    \item Mais il manque des applications professionnelles, des jeux
    et le support de certains périphériques
  \end{itemize}
  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Connaissances de base}

\subsection{Arborescence type}

\begin{frame}
  \frametitle{Arborescence type}

  \begin{block}{}
  \begin{itemize}
    \item Arborescence standardisée (FHS : Filesystem Hierarchy Standard)
    \item Arborescence commençant par \texttt{/} contenant principalement~:
    \begin{itemize}
	\item \texttt{/bin}~: binaries, contient le minimum vital des
	commandes
	\item \texttt{/etc}~: contient les fichiers de configuration
	généraux
	\item \texttt{/home}~: contient les répertoires personnels des
	utilisateurs
	\item \texttt{/root}~: répertoire personnel de l'utilisateur
	root
	\item \texttt{/boot}~: contient le noyau et le nécessaire pour
	le démarrage
	\item \texttt{/var}~: contient les données qui varient
	souvent, et les logs
	\item \texttt{/srv}~: contient les données qui se servent du
	système
	\item \texttt{/tmp}~: répertoire accessible par tout le monde
	pour stocker des fichiers temporaires
	\item \texttt{/dev}~: répertoire contenant les fichiers des
	périphériques
	\item \texttt{/usr}~: contient les programmes
    \end{itemize}
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Utilisateurs et groupes}

\begin{frame}
  \frametitle{Utilisateurs et groupes}

  \begin{block}{}
  \begin{itemize}
    \item Gestion simple et efficace des utilisateurs, identifiés par
    un numéro (uid)
    \item Les utilisateurs peuvent se regrouper dans des groupes
    \item Le superutilisateur root a tous les droits
    \item Les autres ne peuvent pas modifier le système
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Permissions des fichiers}

\begin{frame}
  \frametitle{Permissions des fichiers}

  \begin{block}{}
  \begin{itemize}
    \item Chaque fichier et répertoire possède des permissions
    \item Les droits peuvent être~: lecture, écriture, éxecution
    \item Chaque fichier a un utilisateur et un groupe propriétaire
    \item Exemple :\\ 
      \only<1>{\texttt{rw-r-xr-- eroux www-data
      monfichier}
    \begin{itemize}
	\item l'utilisateur eroux a les droits d'écriture et de
	lecture
	\item les utilisateurs du groupe www-data ont les droits de lecture
	et d'exécution
	\item les autres ont seulement le droit en lecture
    \end{itemize}} 
	\only<2->{\texttt{\uncover<2-2>{rw-}\uncover<3-3>{r-x}\uncover<4-4>{r--}
	\uncover<2-2>{eroux} \uncover<3-3>{www-data} monfichier}
    \begin{itemize}
	\item \uncover<2-2>{l'utilisateur eroux a les droits
	d'écriture et de lecture}
	\item \uncover<3-3>{les utilisateurs du groupe www-data ont les
	droits de lecture et d'execution}
	\item \uncover<4-4>{les autres ont seulement le droit en lecture}
    \end{itemize}} 
    \item le droit d'éxecution pour un répertoire permet d'y entrer
    \item une gestion des droits plus fine est possible avec les ACL
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Entrées et sorties standard}

\begin{frame}
  \frametitle{Entrées et sorties standard}

  \begin{block}{}
  \begin{itemize}
    \item Chaque programme a une entrée (STDIN) et une sortie (STDOUT)
    standard
    \item le STDIN est par exemple une liste d'arguments
    \item le STDOUT peut être un affichage à l'écran en console, un son, etc.
    \item Des redirections de ces entrées et sorties peuvent être
faites vers d'autres programmes ou des fichiers, par exemple \\
\texttt{ls > toto.text} va écrire la liste des fichiers du repertoire
courant dans le fichier toto.text
        \item Un pipe redirige le STDOUT d'un programme vers le STDIN
d'un autre, par exemple \\ \texttt{ls -l /dev | more}\\ va afficher la
list des fichiers de \texttt{/dev} page par page
  \end{itemize}
  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Gestion des disques durs}

\subsection{Fichiers des partitions}

\begin{frame}
  \frametitle{Fichiers des partitions}

  \begin{block}{}
  \begin{itemize}
    \item En Unix tout est fichier, même les périphériques, et les partitions :
    \begin{itemize}
	\item \texttt{/dev/hda} représente le premier disque dur IDE
	\item \texttt{/dev/hdb1} représente la première partition
	primaire du second disque dur IDE
	\item \texttt{/dev/hda5} représente la première partition
	logique du premier disque dur
	\item \texttt{/dev/mda} représente le premier disque dur raid
	SCSI
	\item etc.
    \end{itemize}
    \item il existe même des fichiers de périphériques virtuels
    (\texttt{/dev/zero}, \texttt{/dev/random}, etc.)
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Montage}

\begin{frame}
  \frametitle{Montage}
%parler du /mnt
  \begin{block}{}
  \begin{itemize}
    \item Une partition peut-être \emph{montée} à un endroit de
l'arborescence, c'est à dire que le système va interpréter les données
sur le disque dur et faire pointer un répertoire vers ces données, par
exemple\\ \texttt{mount -t vfat /dev/hda1 /windows}\\ va faire
aparaître votre partition windows dans \texttt{/windows}.
    \item \texttt{mount} est un utilitaire puissant qui permet de
    monter des images iso par exemple
  \end{itemize}
  \end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Noyau et compilation}

\subsection{Compilation}

\begin{frame}
  \frametitle{Compilation}

  \begin{block}{}
  \begin{itemize}
    \item Dans 90\% des distributions, le système et les programmes
    sont installés à partir de paquets déjà compilés (\texttt{.deb},
    \texttt{.rpm})
    \item Possibilité de compiler soi-même ses programmes à partir des
    sources
    \item Compilation en 3 étapes :
    \begin{itemize}
	\item \texttt{./configure} pour vérifier les dépendances et
	choisir les options de compilation, qui vont influencer le
	programme final
	\item \texttt{make} qui compile avec les options choisies
	\item \texttt{make install} qui procède à l'installation des
	fichiers ainsi compilés dans le système
    \end{itemize}
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Noyau}

\begin{frame}
  \frametitle{Noyau}

  \begin{block}{}
  \begin{itemize}
    \item Le noyau est lui-aussi un logiciel et peut-être compilé avec
    différentes configurations
    \item Les développeurs Linux sont très nombreux et issus de toutes
    les distributions, de nouvelles versions de plus en plus
    sécurisées et supportant de plus en plus de matériel sont
    disponibles sur \texttt{kernel.org}
    \item La plupart des distributions intègrent un noyau précompilé
    et patché pour optimiser les performances de la distribution
    \item Le noyau est le fichier \texttt{/boot/vmlinuz-x}, x étant le
    numéro de version
  \end{itemize}
  \end{block}
\end{frame}

\subsection{Modules}

\begin{frame}
  \frametitle{Modules}

  \begin{block}{}
  \begin{itemize}
    \item Certaines parties du noyau peuvent prendre la forme de
    modules, afin d'alléger le noyau
    \item On peut activer ou désactiver des modules à sa guise
    \item Une image (initrd) des modules peut être créée pour activer
    le support de matériel qui n'est accessible qu'en module
  \end{itemize}
  \end{block}
\end{frame}

\end{document}

