more blabla again and again
This commit is contained in:
parent
76c10fe9f4
commit
8684520c5a
@ -1,8 +1,6 @@
|
||||
\chapter{Fedora}
|
||||
\label{chap:Fedora} \index{Fedora}
|
||||
|
||||
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
\section{Gestion des paquets}
|
||||
|
||||
@ -18,12 +16,29 @@ Pour chercher un binaire précis~:
|
||||
|
||||
\texttt{\# dnf provides '*/interpolator'}
|
||||
|
||||
Pour installer un nouveau jouet~:
|
||||
|
||||
\texttt{\# dnf install gfortran}
|
||||
|
||||
\subsection{trucs}
|
||||
|
||||
<blz\_rg\_> faut sans doute passer le enable de 0 à 1 dans le fichier
|
||||
/etc/yum.repo.d/le\_repo\_en\_question dans le paragraphe
|
||||
[fedora***-debuginfo]
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
\section{Firewall}
|
||||
|
||||
Krkrkr, UPD\index{UDP} est bloqué en entrée ? Wtf ?
|
||||
Krkrkr, UDP\index{UDP} est bloqué en entrée ? Wtf ?
|
||||
|
||||
\textsf{\textsc{<doug713705> welcome to firewalld}}
|
||||
\textsf{\textbf{<doug713705> welcome to firewalld}}
|
||||
|
||||
\begin{quote}
|
||||
firewalld provides a dynamically managed firewall with support for network/firewall zones to define the trust level of
|
||||
network connections or interfaces. It has support for IPv4, IPv6 firewall settings and for ethernet bridges and has a
|
||||
separation of runtime and permanent configuration options. It also supports an interface for services or applications to add
|
||||
firewall rules directly.
|
||||
\end{quote}
|
||||
|
||||
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
\section{Include dir}
|
||||
@ -42,7 +57,9 @@ portabilité est à vérifier.
|
||||
\section{Gni ?}\index{memtest86}
|
||||
\label{memtest86:fedora}
|
||||
|
||||
Ayant des soucis de \textsf{kernelpanic} avec une ancienne machine
|
||||
Ayant des soucis de \textsf{kernelpanic}%
|
||||
\footnote{[90821.154795] fonderie: Corrupted page table at address 7f58478cd000}
|
||||
avec une ancienne machine
|
||||
Dell\footnote{d'origine catalano-ariégeoise} j'ai voulu faire un
|
||||
test approfondi de la RAM. DNF m'a permis de trouver le paquet
|
||||
\texttt{memtest86+}, puis de l'installer (comme je procède
|
||||
|
@ -88,6 +88,28 @@ Bah non, il nous avait bien prévenu :
|
||||
|
||||
% ==============================================================
|
||||
|
||||
\section{Valgrind}
|
||||
|
||||
Reprenons le premier exemple précédemment traité avec Gdb, et
|
||||
tentons de résoudre l'énigme avec Valgrind.
|
||||
|
||||
\begin{verbatim}
|
||||
(gdb) quit
|
||||
[tth@laserbox]$ man valgrind
|
||||
[tth@laserbox]$ valgrind fonderie -I 'G/?????.fimg' -O 'Png' \
|
||||
-w 0 -x 0 -T 80
|
||||
==2388== Memcheck, a memory error detector
|
||||
==2388== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
|
||||
==2388== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
|
||||
|
||||
\end{verbatim}
|
||||
|
||||
Là, on attend vingt heures que le logiciel tripote plein
|
||||
d'images en virgule flottante. C'est très long. Je me
|
||||
demande même si ce n'est pas un roblock total.
|
||||
|
||||
% ==============================================================
|
||||
|
||||
\section{Strace}\index{strace}
|
||||
|
||||
Strace permet de tracer les appels systèmes d'un processus.
|
||||
|
@ -25,6 +25,10 @@ Question : qui tombe à l'eau ?
|
||||
printf '\033]11;lemonchiffon2\a'
|
||||
\end{verbatim}
|
||||
|
||||
Pour être honnete, je n'ai pas la moindre idée de ce que
|
||||
cela veut dire. Mais j'imagine que le \texttt{*a} à la
|
||||
fin est destiné à activer la cloche.
|
||||
|
||||
% ==============================================================
|
||||
\section{fdupes}
|
||||
\index{fdupes}\label{fdupes}
|
||||
@ -33,5 +37,21 @@ Un utilitaire pour découvrir les fichiers dupliqués dans
|
||||
votre disque dur qui se remplit trop vite à votre gout.
|
||||
|
||||
% ==============================================================
|
||||
\section{g77: Command not found}
|
||||
|
||||
Lors d'une fin de soirée, je me suis retrouvé à fouiller
|
||||
dans ma portion du Ternet, et je suis tombé sur un très
|
||||
vieux truc. Des fractales en \textsc{fortran77}, avec
|
||||
des incantations comme celle-ci dans le Makefile~:
|
||||
|
||||
\begin{verbatim}
|
||||
map_henon: map_henon.f
|
||||
g77 $(G77OPT) map_henon.f -o map_henon -limage
|
||||
\end{verbatim}
|
||||
|
||||
Hélas, je n'ai pas de commande \texttt{g77} dans ma machine,
|
||||
que faire ?
|
||||
|
||||
|
||||
% ==============================================================
|
||||
|
||||
|
@ -4,6 +4,8 @@
|
||||
\chapter{Gnuplot}
|
||||
\index{Gnuplot}\label{chap:gnuplot}
|
||||
|
||||
Gnuplot - an interactive plotting program
|
||||
|
||||
\section{Exemple : le phytotron}
|
||||
\index{phytotron}
|
||||
|
||||
|
@ -20,8 +20,38 @@ memory (data and heap segments), but each thread has its own stack
|
||||
|
||||
Et c'est là que les ennuis potentiels débarquent :
|
||||
\textit{share the same global memory}, ce qui veut dire en gros
|
||||
«~se partagent la même mémoire globale~».
|
||||
«~se partagent la même mémoire globale~». Et en français de tous
|
||||
les jours, «~ils vont se marcher sur les pieds~».
|
||||
|
||||
D'un autre coté, ce paradigme permet de faire des choses assez
|
||||
choupi, comme un synthétiseur d'évènement.
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
\section{Un exemple}
|
||||
|
||||
Nous allons partir sur un exemple peu réaliste, mais simple
|
||||
à comprendre. Nous aurons un seul fil d'exécution qui affichera
|
||||
un compteur, puis l'incrémentera. Pendant ce temps, la branche
|
||||
principale du programme mettra du random dans le compteur, en
|
||||
espérant perturber l'autre branche.
|
||||
|
||||
\lstinputlisting[language=c]{code/thread-demo.c}
|
||||
|
||||
Voilà, nous avons là deux \textsl{race conditions} qui
|
||||
peuvent avoir des effets pervers~: Ils vont
|
||||
effectivement se marcher sur les pieds.
|
||||
|
||||
Dans le thread
|
||||
(la fonction \texttt{fil}), le
|
||||
compteur est incrémenté, \textbf{puis} il est affiché.
|
||||
Si la branche principale poke du random dans le compteur
|
||||
entre ces deux opérations, *paf* le chien.
|
||||
Et réciproquement, si le \texttt{main} pose son aléa dans
|
||||
le compteur, \textbf{puis} l'affiche, cet aléa peut avoir
|
||||
été incrémenté par l'autre partie du processus.
|
||||
|
||||
|
||||
%
|
||||
% ----------------------------------------------------------------
|
||||
|
||||
\section{ITC}
|
||||
@ -40,11 +70,6 @@ Comment allons-nous procéder\footnote{Et c'est une vraie question !} ?
|
||||
Une première piste : http://tools.ietf.org/html/rfc3117
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
\section{Un exemple}
|
||||
|
||||
XXX\index{XXX}
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
32
code/thread-demo.c
Normal file
32
code/thread-demo.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* thread-demo */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/* ---------------------------------------------------- */
|
||||
int compteur; /* shared variable */
|
||||
/* ---------------------------------------------------- */
|
||||
int fil(void *ptr)
|
||||
{
|
||||
int foo;
|
||||
|
||||
for (foo=0; foo<100; foo++) {
|
||||
compteur++;
|
||||
printf("= %d\n", compteur);
|
||||
sleep(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/* --------------------------------------------------- */
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int foo;
|
||||
|
||||
for (foo=0; foo<20; foo++) {
|
||||
compteur = rand()%1000;
|
||||
printf("r %d\n", compteur);
|
||||
sleep(7);
|
||||
}
|
||||
return 0;
|
||||
}
|
7
main.tex
7
main.tex
@ -62,13 +62,16 @@ d'un nouveau paquet plus approprié.
|
||||
Ensuite, je passe pas mal de temps à téléglander, et je tombe
|
||||
parfois sur de petites perles que je m'empresse d'incruster
|
||||
dans un chapitre.
|
||||
|
||||
Et pour finir, il y a quelques ouvrages de référence.
|
||||
Citons, par exemple, le K\&R, ceux de Christophe Blaess,
|
||||
le Christian Pelissier, et bien d'autres.
|
||||
|
||||
\vspace{3em}
|
||||
|
||||
Your mileage may vary\dots
|
||||
Le code \LaTeX{} et les fichiers d'exemples sont disponibles
|
||||
en ligne sur le site du Tetalab. Your mileage may vary\dots
|
||||
|
||||
\texttt{https://git.tetalab.org/tTh/TetaTricks}
|
||||
|
||||
|
||||
% ==============================================================
|
||||
|
Loading…
Reference in New Issue
Block a user