Linuxtrent: Re: R: Re: R: Re: R: Come ti faccio crashare NT,2000 e XP con una printf()...

  • From: ianezz@xxxxxxxxxx
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 6 Mar 2002 17:47:20 +0100

Lo'oRiS il Kabukimono, pigiando tasti a caso sul citofono, ha scritto:
 > > per mandare a terra un sistema (la cura e` semplice: basta usare
 > > ``ulimit'', visto che c'e`).
 > 
 > cosa fa e come si usa?


Si possono impostare dei limiti `hard' e `soft' su 

1) quanta memoria puo` allocare un processo

2) quanti file descriptor un processo puo` tenere aperti

3) quanti processi puo` lanciare un certo processo

4) la dimensione massima dei file di core


Questi limiti sono attributi dei singoli processi, e normalmente i
nuovi processi li ereditano dai loro padri. Tali limiti si possono
visualizzare e cambiare con il comando di shell `ulimit'. 

Se da shell imposti (tramite ulimit) un limite piu` basso per
qualcosa, i processi avviati da quella shell avranno il nuovo limite
piu` basso, e a sua volta lo avranno i processi avviati da quei
processi, e cosi` via.

Mentre qualunque utente puo` abbassarsi i limiti (sia hard che soft),
solo root puo` alzare i limiti hard. Gli utenti normali, invece,
possono alzare i limiti soft solo finche` rientrano all'interno dei
limiti hard.

Se nel in /etc/profile (che e` scrivibile solo da root) abbassi il
limite hard, ogni utente che si logga si ritrova con quel limite hard
e non puo` andare oltre.

In aggiunta a cio`, quanto alla fork() ripetuta a raffica (per creare
nuovi processi e riempire d'un botto la process table del kernel,
comunemente chiamate ``fork bomb''), si possono anche usare delle
patch al kernel che si accorgono se un processo sta forkando
decisamente troppo rapidamente e lo sospendono (o lo ammazzano?).

-- 
 |   \    \  | ___|_  |_  | ianezz AT sodalia.it
 |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
_|_/  _\_|  _|____|___|___| http://www.linuxtrent.it
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: