8
votes

Comment tester le noyau pour le noyau panique?

Je teste le noyau Linux sur un dispositif intégré et souhaitez trouver des situations / des scénarios dans lesquels le noyau Linux émettrait des paniques.

Pouvez-vous suggérer des étapes de test (manuel ou code automatisé) pour créer des paniques de noyau?


2 commentaires

S'il y avait un moyen fiable de créer des paniques de noyau que n'a pas impliquent l'injection de code de panique dans le noyau, j'espère que ce bogue serait fixé à un moment donné.


Je débranchais le stockage avec l'appareil.


3 Réponses :


11
votes

Il existe une variété d'outils que vous pouvez utiliser pour essayer de planter votre machine:

Crashme tente d'exécuter du code aléatoire; Ceci est bon pour tester le code de cycle de vie du processus.

FSX est un outil pour essayer d'exercer largement le code du système de fichiers; C'est bon pour tester les pilotes, bloquer le code IO et le code du système de fichiers.

the projet de test Linux vise à créer un grand référentiel de cas de test de noyau; Il pourrait ne pas être conçu avec les systèmes les systèmes en particulier, mais cela peut contribuer à vous aider à vous aider et à garder tout ce qui fonctionne comme prévu. (Notez que le LTP n'est pas proscriptif - la communauté des noyaux ne traite pas leurs tests comme quelque chose d'important - mais l'équipe LTP tente très difficile d'être descriptives à propos de ce que le noyau fait et ne fait pas.)

Si votre appareil est connecté au réseau, vous pouvez exécuter NMAP contre elle, en utilisant une variété d'options de numérisation: < code> -sv --version-tout essaiera de trouver des versions de tous les services en cours d'exécution (cela peut être stressant), -O -SCAN-Devinez tentera de déterminer le système d'exploitation en jetant des paquets de réseau étranges sur la machine et en devinant par des réponses ce que la sortie est.

Le Nessus Tool de numérisation fait également une identification de la version des services de fonctionnement; Cela peut ou non offrir aucune amélioration sur NMAP, cependant.

Vous pouvez également remettre votre appareil aux utilisateurs; Ils comprennent les activités les plus folles à faire avec des logiciels, ils repéreront des bugs que vous ne pensez même jamais à rechercher. :)


3 commentaires

Merci, ceci est utile. Mais comment puis-je comprendre le O / P de Crashme et FSX? Existe-t-il une documentation sur la manière de comprendre la production de ces programmes?


Subbrocess 59: Got Signal 4 Instructions illégales Subgrocess 59: Subgrocess 59: Essayez 15, Badboy à 108472. 0x1A7B8 Subbecrocess 59: Signal de la segmentation Signal de la Segmentation Subgrocess 59: Essayez 16, Badboy à 110480. 0x1Af90 Subprocess 59: Signal 4 Instruction illégale Subgrocess 59: Subbrocess 59: Essayez 17, Badboy à 112488. 0x1b768 Subgrocessation 59: Signal 4: Sous-presse ecran clandestine 59: Essayez 18, Badboy à 114496. 0x1bf40 Subprocess 59: Signal 11 Violation de la segmentation Subgrocess 59: Grandes


@ABC, tous ceux qui ressemblent à des mécanismes différents pour cracer le noyau; Vous n'avez probablement besoin que d'enquêter sur la sortie lorsque le noyau commence à se comporter mal - les messages de diagnostic sont de vous aider à déterminer quelle séquence spécifique d'instructions a tué le noyau.



9
votes

Vous pouvez essayer de suivre la combinaison de touches suivante

sysrq + C

ou

echo c> / proc / sysrq-déclencheur


1 commentaires

C'est la meilleure approche. Merci. Voici plus de détails: accès.redhat.com/documentation/en-us/red_hat_enterprise_lin ux / ...



1
votes

Crashme a été connu pour trouver des situations de panique de noyau inconnu, mais elle doit être exécutée de manière puissante qui crée une variété d'exceptions de signaux traitées dans le processus et une variété de conditions de sortie de processus.

L'objectif principal des messages générés par Crashme est de déterminer si des choses suffisamment intéressantes se produisent pour indiquer une puissance possible. Par exemple, si l'appel MProtect est nécessaire pour autoriser la mémoire allouée avec malloc à exécuter comme instructions, et si vous n'avez pas le mprotect Activé dans le code source Crashme.ca pour votre plate-forme, puis Crashme est impuissant.

Il semble que les systèmes d'exploitation sur les architectures x64 ont tendance à être éteints pour les segments de données. Récemment, j'ai mis à jour le crashme.c sur http://crashme.codeplex.com/ à utiliser MProtect en cas de __ Apple __ et l'a testé sur un MacBook Pro exécutant Mac OS X Lion. Ceci est la première mise à jour sérieuse à Crashme depuis 1994. Attendez-vous à la mise à jour des CENTOS et FreeBSD Soutien bientôt.


0 commentaires