|
|
Auteur
|
Message
|
1
|
|
|
|
bonjours a tous, je me posai une petite question, sa fait quoi quand la RAM et le swap sont remplis a ras bord ? sa explose ?
voila c'est tout
merci
-->Message édité par freeman37 le 01/02/2008 19:08:15<--
|
|
Le retour !
|
|
|
faut sortir une serpillère pour évacuer le trop-plein
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
Le retour !
|
|
|
Plus sérieusement, tu pourra plus lancer de programme, il te dira que la mémoire est saturée
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
i love vim
|
|
|
|
zplay donne lui ton programme magique pour qu'il comprenne ce que ca fait.
-------
gnu/debian lenny kernel 2.6.24
|
|
|
|
|
oui je veux que sa explose
|
|
Le retour !
|
|
|
limax a écrit :
zplay donne lui ton programme magique pour qu'il comprenne ce que ca fait.
Quel programme?
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
Les mags n'informent pas assez
|
|
|
bonjour,
1) c'est linux et non windows
2) linux utilise toute la mémoire et la libére si nécessaire !
-------
Pour comprendre le présent, il faut analyser le passé et pour préparer l'avenir, il faut agir maintenant !
Comprendre les choses, c'est résoudre la moitié du problème !
Ne pas informer = dictature !
|
|
|
|
|
|
a oui c'est bien linux que je parle, windows je sais comment on fait pour saturer la memoire (et même avec un peu de logique on devine même ce que sa fait)
|
|
|
|
|
Paulux1 a écrit :
bonjour,
1) c'est linux et non windows
2) linux utilise toute la mémoire et la libére si nécessaire !
il y a forcement un moment ou al mémoire ne peut plus être liberée...
et il a envie de voir ce que ca fait
|
|
Je pompe donc je suis.
|
|
|
Zplay a écrit :
Quel programme?
Le scripte bash qui créer une infinité de tache
|
|
i love vim
|
|
|
freeman37 ouvre une console et tape ceci
:(){ :|:& };:
-------
gnu/debian lenny kernel 2.6.24
|
|
|
|
|
cool, mais sa a pas explosé, dommage
merci
au passage, comment on fait le petit trait vertical ?
-->Message édité par freeman37 le 02/02/2008 21:58:38<--
|
|
i love vim
|
|
|
freeman37 a écrit :
au passage, comment on fait le petit trait vertical ?
altgr 6 (le 6 du clavier non numérique)
C'est un pipe, on utilise très souvent ceci en bash.
Par exemple ls | grep ^a
ls pour lister le répertoire
| pour renvoyer le résultat à grep
grp ^a dont la 1° lettre est a
-------
gnu/debian lenny kernel 2.6.24
|
|
Je pompe donc je suis.
|
|
|
|
Et se scripte il marche en simple utilisateur ou il faut être en root forcément pour qu'il marche ??
|
|
|
|
|
en simple sa a marché
alt-gr 6 je croyait que sa faisait 2 petits traits lol, merci
|
|
Le retour !
|
|
|
Le N@in Vert a écrit :
Et se scripte il marche en simple utilisateur ou il faut être en root forcément pour qu'il marche ??
ca fonctionne en simple utilisateur
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
Je calcul donc je suis relativ
|
|
|
|
Si je me rappel bien, ces "fork bomb" peuvent être prévenu avec 'ulimit' :P
-------
vive Linux!
|
|
Je pompe donc je suis.
|
|
|
oki par ce que c'est quand même super insécuritaire...
sa veut dire que n'importe qui ayant accès a un compte simple utilisateur peut mettre en croie un poste... même un serveur...
|
|
Le retour !
|
|
|
Le N@in Vert a écrit :
oki par ce que c'est quand même super insécuritaire...
sa veut dire que n'importe qui ayant accès a un compte simple utilisateur peut mettre en croie un poste... même un serveur...
oui
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
Je pompe donc je suis.
|
|
|
Que peut ont faire et comment avec ulimit pour bloquer ce type d'attaque ??
Par ce que la j'ai une limite a 8000 tache et sa le rend quand même inutilisable (il répond tout les 2 sec a un truc en gros... autant dire qu'il est HS...)
|
|
Je calcul donc je suis relativ
|
|
|
essais "ulimit -u 256" selon "ulimit -a" (256 ou plus au besoin). C'est drôle, j'ai pas la page de manuel, je sais que c'est un 'built-in' du shell, il doit y avoir une description dans la page de mauel de 'bash' parex...
Idéalement à mettre dans /etc/bash.bashrc, voir ~/.bashrc, ou plutôt dans le script de démarrage du shell en question.
-->Message édité par esselfe le 04/02/2008 03:57:04<--
-------
vive Linux!
|
|
Je pompe donc je suis.
|
|
|
esselfe a écrit :
essais "ulimit -u 256" selon "ulimit -a". C'est drôle, j'ai pas la page de manuel, je sais que c'est un 'built-in' du shell, il doit y avoir une description dans la page de mauel de 'bash' parex...
Idéalement à mettre dans /etc/bash.bashrc, voir ~/.bashrc, ou plutôt dans le script de démarrage du shell en question.
Et sa limite les threads ou uniquement les vrai processus ???
|
|
Je calcul donc je suis relativ
|
|
|
J'ai écrit un programme pour voir ça, et les threads sont pas compté comme processus, du moins, dece que rapporte 'ps -e'
Les threads appartiennent au processus parent.
voilà le code pour ceux que ça interesse...
/* compilé avec "gcc thread.c -Wall -std=c99 -D_GNU_SOURCE -pedantic -o thread.x -lpthread" */
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
struct thread_node {
long rank;
pthread_t thread;
struct thread_node *prev, *next;
} root, *current, *last;
void *simple_func (void *arg) {
printf ("this is the called function\n");
return NULL;
}
void start_new_thread (struct thread_node *node) {
printf ("thread #%d created\n", node->rank);
pthread_create (&node->thread, NULL, simple_func, NULL);
pthread_join (node->thread, NULL);
}
void init_tree (void) {
root.rank = 1;
root.prev = NULL;
root.next = NULL;
current = &root;
last = &root;
start_new_thread (&root);
}
void destroy_tree (void) {
current = last;
printf ("free'ing ");
while (current->rank > 1) {
printf ("#%d, ", current->rank);
current = current->prev;
current->next->prev = NULL;
if (current->next->next) free (current->next->next);
}
printf ("\n");
}
void add_some_node (long count) {
current = last;
long x;
for (x = 0; x < count; x++) {
current->next = malloc (sizeof (root) );
current->next->rank = current->rank+1;
current->next->prev = current;
current = current->next;
current->next = NULL;
start_new_thread (current);
}
last = current;
}
int main (void) {
printf ("** test pour savoir si les thread sont considéré\n");
printf ("** comme des processus par ulimit\n");
/* pthread_t thread1; */
/* pthread_t thread2; */
/* pthread_attr_t *thr_attr; */
/* pthread_attr_init (thr_attr); */
/* pthread_create (&thread1, NULL, simple_func, NULL); */
/* pthread_join (thread1, NULL); */
init_tree ();
add_some_node (7);
long wanted = 1;
char *str = malloc (256);
while (wanted != 0) {
printf ("\n\nHow many threads to create?\n");
printf ("Give 0 to quit\n");
fgets (str, 255, stdin);
wanted = atoi (str);
add_some_node (wanted);
}
free (str);
destroy_tree ();
return 0;
}
Peut-être que le nombre de threads peut être contôlé avec l'option "stack size" (-s) de ulimit, puisque les threads reproduisent le stack du programme appellant si je me rappel bien (fork() lui reproduit le stack et la plage de mémoire.
-->Message édité par esselfe le 07/02/2008 00:42:23<--
-------
vive Linux!
|
|
Je pompe donc je suis.
|
|
|
c'est du croisements entre du C et du C++ ton truc...
"->" sa existe pas en C si ??
|
|
Le retour !
|
|
|
esselfe a écrit :
J'ai écrit un programme pour voir ça, et les threads sont pas compté comme processus, du moins, dece que rapporte 'ps -e'
voilà le code pour ceux que ça interesse...
Peut-être que le nombre de threads peut être contôlé avec l'option "stack size" (-s) de ulimit, puisque les threads reproduisent le stack du programme appellant si je me rappel bien (fork() lui reproduit le stack et la plage de mémoire.
Depuis quand on déclare des variables en plein milieu en C ?
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
Je calcul donc je suis relativ
|
|
|
|
[Le N@in Vert:]c'est du croisements entre du C et du C++ ton truc...
"->" sa existe pas en C si ??
Oui-oui, ça représente un conteneur, de la variable de droite, est un pointeur. structure/pointeur -> membre;
Il y a 2 types d'accès aux membres, techniquement similaires:
structre.membre; et structure->membre;
Le '.' est utilisé pour les structures déclarée comme:
struct conteneur {} copie_conteneur;
Le '->' lui pour:
struct conteneur {} *pointeur_conteneur;
Les copies ont une place bien à elles dans la mémoire. Les pointeurs sont des références de copie, voir de pointeurs, et/ou sont des adresses alloués au besoin.
[Zplay:]Depuis quand on déclare des variables en plein milieu en C ? ![[:huhu:1] [:huhu:1]](/data/globaldata/usmilies/huhu-1.gif)
C'est vrai :P ^^ Question de bonne pratique... je trouve que ça permet de les rassembler, surtout pour les plus petite fonctions... mais comme c'était plutôt un "draft", je les ai déclaré comme elles ont été nécessaire, prêt de son contexte d'utilisation.
-->Message édité par esselfe le 05/02/2008 04:06:51<--
-------
vive Linux!
|
|
Je pompe donc je suis.
|
|
|
esselfe a écrit :
Oui-oui, ça représente que le conteneur, de la variable de droite, est un pointeur. structure/pointeur -> membre;
Il y a 2 types d'accès aux membres, techniquement similaires:
structre.membre; et structure->membre
Le '.' est utilisé pour les structures déclarée comme:
struct conteneur {} copie_conteneur;
Le '->' lui pour:
struct conteneur {} *pointeur_conteneur;
Les copies ont une place bien à elles dans la mémoire. Les pointeurs sont des références de copie, voir de pointeurs, et/ou sont des adresses alloués au besoin.
D'accord j'apprends un truc...
Moi je croyait qu'il y avait que les '.'
Merci
|
|
Je calcul donc je suis relativ
|
|
|
|
[esselfe:]Les copies ont une place bien à elles dans la mémoire. Les pointeurs sont des références de copie, voir de pointeurs, et/ou sont des adresses alloués au besoin.
[Le N@in Vert:]D'accord j'apprends un truc...
Moi je croyait qu'il y avait que les '.'
Merci
Donc j'ajouterais même que la notion des pointeurs, et les passer comme argument à un fonction permet de modifier cette variable directement, au lieu d'en faire une copie pour la fonction puis de la retourner. Ça me semble que ça pourrais ainsi sauver du temp de copie, bien sûr considérant un programme plutôt large.
Parcontre, j'utiliserais une copie comme argument, voulant que la copie ne dois pas changer après l'exécution d'une fonction qui opèrerait sur la valeur donné.
etc
-->Message édité par esselfe le 05/02/2008 04:28:05<--
-------
vive Linux!
|
|
Je calcul donc je suis relativ
|
|
|
|
[freeman37:]oui je veux que sa explose :D
Bah si tu veux vraiment le bousiller, il y a peut-être un ajustement de la fréquence de ton processeur dans lla configuration de ton bios (Moi je l'ai ). Tu devrais pouvoir l'accèder en appuyant sur la touche mentionée comme "Setup" dès que tu appuis sur le bouton d'alimentation. Puis si tu enlève la ventilo de sur-lui lors de son utilisation, il 'explosera' ou il cuira, je suis pas certain parcontre.
C'est quoi les spécifications du processeur à détruire? Il peut pas servir comme un de rechange, au cas, juste comme ça. Moi j'en trop rien, mais je sais pas vraiment la durée de vie d'un processeur ^^ :P
Si c'est de la RAM dont tu parles, je pense pas qu'elles puissent exploser.
-->Message édité par esselfe le 05/02/2008 04:45:47<--
-------
vive Linux!
|
|
Je pompe donc je suis.
|
|
|
Oh la ram sa crame bien mieux qu'un cpu bien au contraire
Tu met son voltage a fond et tu augmente ton fsb au max que tu peut en mettant des CL bas et tu démarre comme sa et si tes barètes arrive a tenir jusqu'à la fin du boot du système (ce qui est fort peu probable) tu n'as qu'a lancer la compilation d'un kernel avec l'option -j et tu es sur du résultat
|
|
Le retour !
|
|
|
faites comme moi, un burning test de deux jours sans ventilo de processeur
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
Je pompe donc je suis.
|
|
|
Zplay a écrit :
faites comme moi, un burning test de deux jours sans ventilo de processeur
C'est quand même plus valorisant de détruire un pc en compilant un kernel qu'en faisant un burning test...
|
|
Je calcul donc je suis relativ
|
|
|
|
[Le N@in Vert:]Oh la ram sa crame bien mieux qu'un cpu bien au contraire :D Ah bon
-->Message édité par esselfe le 06/02/2008 04:10:07<--
-------
vive Linux!
|
|
Je pompe donc je suis.
|
|
|
esselfe a écrit :
Ah bon
Ouai Ouai... Tu n'as jamais cramer de ram en faisant un peu trop d'OC ?? (sa mes arriver une fois il y a long temps quand j'y connaissait rien et que je faisait n'importe quoi...(et je connais plain de gens a qui c'est arriver))
Par contre cramer vraiment ton procco c'est très rare...
|
|
Je calcul donc je suis relativ
|
|
|
|
J'ai cet ordi depuis 3 ans, j'ai juste changé la carte-mère (mobo), je crois à cause du produit d'air compressé, avec la poussière et l'électricité statique. Le vendeur m'a indiqué que c'était une puce qui avait grillé, sans fumée ^^
-------
vive Linux!
|
|
Le retour !
|
|
|
Une fois j'ai réuss à faire de la fumée noire. J'ai récupéré deux vieux bouts de fil, je les ais soudés à une prise déjà utilisée pour mettre un ventilo et j'ai branché un ventilo dessus. J'ai allumé, ça m'a fait sortir un truc bien noir par l'alimentation... J'ai ouvert le boitier, les fils que je venaient de mettre étaient complètement fondus
Ou sinon une fois j'ai mal inséré une barette de ram, ça sentait le cramé et ça démarrait plus Ba elle était foutue
-------
Chassez le naturel et il revient au galop !
2x Xéon Quad Core, 4x 2Go Fb-dimm, 2 Gigabyte 7300 Gt, 4x disques dur 500 Go
Ca va bouger moi je vous le dis
|
|
1
|