IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Est il possible de faire planter un système Unix


Sujet :

Administration système

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut Est il possible de faire planter un système Unix
    Bonjour,
    Après un débat, sur un autre forum, avec une personne. Celle ci m'affirme qu'il est impossible de faire planter un système Unix en général, par exemple en programmant un serveur en C et en oubliant de librerer de la mémoire par un "free". C'est vrai que sur un serveur la mémoire serait à un moment ou à un autre saturée. Donc, cette personne me dit que SIGSEGV et/ou le Kernel viendra, en cas de saturation mémoire ou autres problèmes, "killer" le processus, le serveur en l'occurence.

    Ces termes ne me sont pas familiés car je débute sous Linux. Est ce vrai, qu'il est impossible, via la programmation, de faire planter un Linux ? Car sur un Windows® l'oublie d'un free peut, dans certain cas, être catastrophique.

    PS : Je ne cherche pas un moyen de faire planter un système Unix, mais juste quelques explications car je doute qu'un système soit implantable ! J'avoue qu'un peu de source C me conforterai !

    Merci d'avance pour vos réponses.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Je me rappelle avoir fait planté avec une simple boucle sans fin, en shell (pas besoin du C), une Knoppix 3.3 : j'ai juste fait un buffer overflow

    Enfin tout ca pour dire que même Linux peut planter !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Rien ne t'empêche de tester ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
           int i = 0;
           do
          {
                  char *p = malloc(1024);
                   ++i;
                    if(!(i % 10))
                     {
                           printf("%d eme allocation\n", i);
                      }
           }while(p != NULL);
     
           return EXIT_SUCCESS;
    }
    Mais c'est vrai que les quelques serveurs que j'ai codé n'ont jamais planté sur le temps, si ils étaient mal codés (enfin je pense surtout à des serveurs multi-thread qui accèdent en même temps en lecture / écriture à la même zone mémoire), le kernel les killait très vite

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par Francois Trazzi
    Je me rappelle avoir fait planté avec une simple boucle sans fin, en shell (pas besoin du C), une Knoppix 3.3 : j'ai juste fait un buffer overflow

    Enfin tout ca pour dire que même Linux peut planter !
    Et tu as essaié les "touches magiques" (cf post-it) ? Je veux bien te croire que le shell en lui-même ait planté, mais pas le kernel ...

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Citation Envoyé par Yabo
    Et tu as essaié les "touches magiques" (cf post-it) ? Je veux bien te croire que le shell en lui-même ait planté, mais pas le kernel ...
    Il me semble que j'avais essayé les touches magiques (mais ca fait un moment que j'avais testé ca.. donc bon je me souviens pas trop), ce qui ne donnait rien.. mais je ne sais pas si ces options (kernel hacking) sont activés dans le noyau pour Knoppix..

  6. #6
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Plntage de Unix : 3 expériences :
    • En root : montage d'un appareil photo numérique en veille qui ne rends pas la main ne se kill pas... J'enlève l'appareil, pas mieux, je remet l'appareil (Car je dois bien recupérer mes photos quand même) : fermture de toutes les applications et redémarrage du système
    • En utilisateur : je met une clé USB, FreeBSD commence a détecter la chose et créé les devices nécéssaires, pendant que moi je remarque aue je me suis planté de clé et je la retire avant la fin de la détection... Fermeture de toutes les applications et reboot.
    • En utilisateur : imcompatibilité matérielle... Aléatoirement au démarrage de X, frizze (Semble fixé en supprimant les ACPI).


    Bref, un serveur sans matériel exotique ne *devrait* pas planter....

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par Francois Trazzi
    Il me semble que j'avais essayé les touches magiques (mais ca fait un moment que j'avais testé ca.. donc bon je me souviens pas trop), ce qui ne donnait rien.. mais je ne sais pas si ces options (kernel hacking) sont activés dans le noyau pour Knoppix..
    Et de plus je rappel que le kernel ne comprends pas les programmes qui tournent dessus. Donc si X ou quoi plante ca n'a rien à voir ...

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    Merci à tous pour vos réponses.
    Pour être plus précis, dans le débat d'origine je pense que ma septicité, envers un OS implantable, a froissé ce monsieur. Il m'a donc assommé d'arguments pour dire qu'un programme "userland" (je pense qu'il voulait dire par là, un programme comme Yabo le montre) ne pouvait pas faire planter un système Unix en général et que le Kernel, face à l'oublit volontaire d'un "free(p);", finirait par terminer le processus posant problème.

    Citation Envoyé par Yabo
    Mais c'est vrai que les quelques serveurs que j'ai codé n'ont jamais planté sur le temps, si ils étaient mal codés (enfin je pense surtout à des serveurs multi-thread qui accèdent en même temps en lecture / écriture à la même zone mémoire), le kernel les killait très vite
    Donc, c'est vrai le kernel (noyau) ne plante pas ?

    Ensuite la discution, ou plutôt le monologue a dérivé et je me suis fait prèsque insulté car j'ai eu, le malheure, de dire que dans l'industrie Windows® NT® était encore utilisé. Bien sur étant débutant sous Linux je n'ai guère eu d'arguments pour le convaincre ni d'arguments pour aller dans son sens d'ailleur. C'est pourquoi je me tourne vers vous pour avoir quelques explications.

    Dit il vrai : "un programme userland ne peut faire planter un système Unix en général" ?

    Je vais faire le test avec le source de Yabo sur une Mandrake 9.0
    Merci encore,
    Cordialement Patrick.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par Patrick PETIT
    dans l'industrie Windows® NT® était encore utilisé.
    Les serveurs racine d'Internet sont des UNIX et jusqu'à preuve du contraire jamais un serveur NT ou ce que tu veux arriverais à tenir le rythme (notemment au niveau du up-time).

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    Oui oui, je sais. Mais quand je dis
    dans l'industrie Windows® NT® était encore utilisé.
    je faisais référence à mon travail. Je suis concépteur en électronique et toutes les machines aussi diverses quelles soient, vernisseuse automatique de circuits imprimés électroniques, soudeuse à vagues etc possèdent toutes des stations NT®. Il y a même un robot extrêmement récent qui vient d'arriver (prise de photo d'une carte électronique, sortant de la soudeuse à vague, analyse de l'image par le PC et pointage laser sur la carte électronique afin que le câbleur retire le court-circuit éventuel causé par la soudeuse) et bien même ce robot est équipé d'un PC avec NT®. Bref !

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par Patrick PETIT
    je faisais référence à mon travail [...] bien même ce robot est équipé d'un PC avec NT®. Bref !
    Je ne dit pas que NT est une mauvaise plateforme. Mais comme dirait l'autre:

    Citation Envoyé par L'autre
    Linux ? Il y a moins bien mais c'est plus cher.

  12. #12
    Membre habitué
    Avatar de zdra
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Théoriquement ni linux ni windows ne devrait planter. Si il plante dans certains cas c'est la cause de bugs, de manipulations non prévues, etc...

    Surtout sous un systeme unix où les utilisateurs sont bien séparé et n'ont théoriquement pas le droit de faire ce qu'il veut. Donc théoriquement oui un processus utilisateurs ne peut pas planter le systeme, c'est théoriquement impossible... mais dans la pratique c'est totalement différent.

    En tout cas moi le seul cas d'un vrai plantage complet du kernel que j'ai eu c'est en copiant un cd raié, avec une méchante griffe. Sous un kernel 2.4 il freezait completement, mais mtn avec le 2.6.x j'ai refais le teste il me sorts gentillement une erreur sans trop se plaindre.

    Evidement il faut distinguer plantage et plantage ! Il se peut que X plante et que ta souris/clavier ne répondent plus, que rien ne bouge à l'écran... mais souvent les mp3 continuent, et au pire les touches magiques fonctionnent car ce sont des combinaisons qui déclanchent un interupt kernel imédiatement (si le support est compilé dans le kernel évidement) et donc si le kernel est encore vivant il réagira. Un autre teste c'est venir en ssh sur le pc planté depuis un autre pc en réseau pour faire un simple "killall -9 X" et dans 90% des cas c'est reparti.

    Pour ce qui est de la mémoire, un utilisateur peut pas tout prendre, le kernel refusera une réservation de mémoire et ejectera le processus utilisateur avant que tout la mémoire soit utilisée, en gardant se qu'il faut pour que le kernel puisse encore fonctionner. En comptant évidement qu'il peut accroitre la mémoire RAM avec la partition swap, donc la limite de mémoire et loiiiiins derriere, et souvent t'auras de graves problemes de swap (acces disk non stop, ce qui ralentit énormément le systeme, sans le planter) avant que ton systeme ne crash véritablement.

    Sous windows normalement c'est pareil, sauf que bon qd on accumule les bugs on commence à croire que c'est ptretre un feacture...
    This message was powered by:
    Ubuntu GNU/Linux

  13. #13
    Membre habitué
    Avatar de zdra
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Ben voilà, on en parlait jsutement : http://www.linuxreviews.org/news/2004-06-11_kernel_crash/index.html

    Voilà un jolie bug qui fait crasher presque tout les kernel linux.
    This message was powered by:
    Ubuntu GNU/Linux

  14. #14
    m@
    m@ est déconnecté
    Membre actif
    Avatar de m@
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 292
    Points
    292
    Par défaut
    à mon avis il est ridicule de dire qu'un OS est implantable, car un code quel qu'il soit contient forcément des erreurs et des bugs potentiels, et cela augmente avec sa longueur. (linux 2.2 = 1 000 000 de lignes de code)
    en parlant de programme userland, ton interlocuteur voulait parler des programmes lançés par l'utilisateur, et disposant de droits restreints, à l'opposition du code du noyau.
    toutefois le post précédent montre bien que même eux peuvent faire planter le sys, car ils appellent des fonctions du noyau, et si ces fonctions sont mal codées tout plante.

    mandrake 9.1 refusait de démarrer et finissait en kernel panic quand je laissais une clé USB branchée avant de démarrer...
    Si vous fermez la porte à toutes les erreurs, la vérité restera dehors. (Tagore)

    Mandrake 10.1 up to date
    OpenBSD 3.5
    Win XP SP 2

  15. #15
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    Merci à tous pour vos réponses.
    J'en sais maintenant beaucoup plus, grace à vous.

    Cordialement
    Patrick

  16. #16
    Membre averti
    Avatar de berry
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2002
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2002
    Messages : 251
    Points : 308
    Points
    308
    Par défaut
    Citation Envoyé par Yabo
    Citation Envoyé par Patrick PETIT
    dans l'industrie Windows® NT® était encore utilisé.
    Les serveurs racine d'Internet sont des UNIX et jusqu'à preuve du contraire jamais un serveur NT ou ce que tu veux arriverais à tenir le rythme (notemment au niveau du up-time).
    et pour donner une preuve, allez voir les plus grands "uptimes" http://uptime.netcraft.net/up/today/top.avg.html (pas un seul nt en vue ! ) .
    Pensez au tag [Résolu]
    FAQ PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tkinter] Est-il possible de faire pivoter des PhotoImage ?
    Par sigmar_avenger dans le forum Tkinter
    Réponses: 9
    Dernier message: 06/01/2007, 15h18
  2. Réponses: 10
    Dernier message: 05/05/2006, 08h32
  3. Réponses: 5
    Dernier message: 28/04/2006, 09h20
  4. Est il possible de faire une fusion
    Par boy569 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 07/02/2006, 13h58
  5. est il possible de faire un trie sur un paramètre donné
    Par chtiboss dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/03/2004, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo