> Je voulais juste savoir ce que voulais dire ksymoops > dans /var/log >
c'est marrant je me suis posé la même question hier ! Vu que mon répertoire ksymoops faisait 130 Mo j'ai cherché avant de tout virer, voilà ce que j'ai trouvé ( à http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=p6rk8amwj7z.fsf%40platon.univ-lille1.fr&rnum=1&prev=/groups%3Fhl%3Dfr%26lr%3D%26ie%3DISO-8859-1%26q%3D%252Fvar%252Flog%252Fksymoops%252F%26btnG%3DRecherche%2BGoogle%26meta%3Dgroup%253Dfr.* ) "Le noyau a plusieurs méthodes de détection de ses propres erreurs (qu'elles soient dues à ses bugs ou à un matériel au comportement aléatoire), et la plus courante est ce qu'on appelle un "oops". Typiquement, un morceau de code du noyau accède à la mémoire d'adresse 0, ce qui pour un programme classique voudrait dire "segmentation fault" immédiate. Le noyau intercepte l'exception soulevée par le matériel, s'aperçoit de son incurie, et veut l'indiquer, en créant un "oops", c'est-à-dire quelques messages du noyau qui indiquent diverses informations sur l'état de la machine au moment du oops. Parmi ces informations, il y a le contenu des registres et le "backtrace" sur la pile, ce qui donne l'adresse de l'instruction qui a déclenché l'erreur, et les adresses des différents appels de fonctions qui ont amené jusqu'à cette instruction. Tout ça c'est bien joli, mais dans la pratique, celui qui veut débugguer son noyau voudrait bien savoir le nom de la fonction où sa se passe, et pas seulement son adresse dans le code compilé du noyau (cette adresse pouvant changer à chaque compilation). Il y a donc, d'habitude, un fichier System.map qui indique, pour chaque fonction, son adresse (par exemple, dans un noyau que j'ai sous la main, la fonction sys_iopl() du noyau est à l'adresse 0xc010c394). Le programme ksymoops, fourni avec les sources du noyau (dans linux/scripts/ksymoops/), s'occupe de prendre un oops, un System.map, et de traduire les adresses numériques en adresses symboliques plus utiles pour le programmeur (par exemple, il transformera 0xc010c3b0 en <sys_iopl+1c>, indiquant que c'est à l'adresse 0x1c par rapport au début de la fonction sys_iopl()). Tout cela marche bien pour le noyau lui-même. Mais il y a les modules : les modules, tant qu'ils ne sont pas chargés, n'ont pas d'adresse, et même, l'adresse à laquelle sera le module (et donc les fonctions qu'il définit) dépend des autres modules chargés précédemment et de la mémoire allouée par le noyau, autrement dit, du sens du vent. C'est non prédictible tant que le module n'est pas chargé effectivement. En conséquence, tu as quelque chose dans ton système qui, au moment du chargement d'un module, envoie ses symboles (les adresses des fonctions) dans un fichier dans /var, pour que tu puisses, au cas où il y aurait un bug dans le module, savoir exactement où et le débugguer. Dans la mesure où tu ne savais pas ce qu'était ksymoops, j'en déduis que tu n'as pas la moindre intention de débugguer le noyau, et donc tu peux sans problème effacer tous ces fichiers qui ne te serviront jamais à rien. Le générateur de ces fichiers doit être caché dans un script lancé par modprobe depuis le /etc/conf.modules, ou éventuellement dans une crontab ; il ne te reste qu'à le trouver et à l'anihiler. --Thomas Pornin " > Et oui, et aussi comment ça ce prononce parce > qu'actuellement je prononce ça : > > KazimoumoupéEsse > kassim-oups pour moi ! > Merci d'avance ! > > > -- > _ _ _ ___ _ ____ > _ > ____ | \ | | (_) ___ / _ \ | | / __ \ > | | ____ > ____ |____|| \| | | | / __| | | | | | | / / _` > | / __) |____| ____ > |____||____|| |\ | | | | (__ | |_| | | | | | (_| > | \__ \ |____||____| > |_| \_| |_| \___| \___/ |_| \ > \__,_| ( / > \____/ > |_| > > > -- > To UNSUBSCRIBE, email to > [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact > [EMAIL PROTECTED] > ___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com