Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
nombre réponses : 25

#0 -1 »  Faire un md5 sur la Freebox V6 (Revolution) » Le 13/04/2014, à 12:02

Zakhar
Réponses : 0

La Freebox V6 disposent d'API qui permettent de faire un md5.

Chose étrange, cet API n'est pas exposé dans l'interface "Freebox OS".

Pourtant, pouvoir vérifier qu'un fichier a bien été copié sur la Freebox en récupérant un md5 est très intéressant, surtout quand on est à distance. En effet, en local on peut toujours relire le fichier copié et comparer/faire le md5, mais à distance, avec l'upload ADSL limité, cela s'avère bien vite limitant pour des gros fichiers.

J'ai donc construit un script qui vous permet de faire un md5 de fichiers sur la Freebox.

Le voici :

#! /bin/sh
#           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#                    Version 2, December 2004

# Copyright (C) 2014 Zakhar @ ubuntu.fr

# Everyone is permitted to copy and distribute verbatim or modified
# copies of this license document, and changing it is allowed as long
# as the name is changed.

#            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

#  0. You just DO WHAT THE FUCK YOU WANT TO.

# This program is free software. It comes without any warranty, to
#      the extent permitted by applicable law. You can redistribute it
#      and/or modify it under the terms of the Do What The Fuck You Want
#      To Public License, Version 2, as published by Sam Hocevar. See
#      http://www.wtfpl.net/ for more details.
#===========================================================
#
# Fonction :
# ----------
# Réalise un md5 du/des fichier(s) passé(s) en paramètre.
# Ce script fonctionne uniquement avec une Freebox V6 (Révolution).
#
# Important :
# -----------
# Vous devez avoir autorisé votre application et inscrite dans les
# variables ci-dessous app_id/app_token
#
# Usage :
# -------
#  fb5sum Fichier [...Fichiers]
#
# Version : 1.0
# -------
#
# Tested : Ubuntu Precise, Synology DSM4.2 (+coreutils)
# ------
#
# Date : 2014-04-13
# -----
#
# Author : Zakhar
# ------
#
# History : 
# -------
#
# TODO:
# Il faudrait automatiser l'autorisation de l'appli... mais comme c'est l'affaire d'une seule commande :
# curl http://mafreebox.freebox.fr/api/v1/login/authorize -d '{"app_id":"fbxmd5","app_name":"Freebox MD5","app_version":"1.0","device_name":"Terminal"}'
#
# TODO
# On pourrait aussi afficher le temps restant et la vitesse de traitement, comme c'est affiché dans le panneau des tâches.

freebox="http://mafreebox.freebox.fr"  #IP de la freebox
app_id="fbxmd5"                        #Valeur indiquée lors de l'autorisation en local
app_token="Mettez votre app_token ici" #Valeur retournée par la freebox lors de l'autorisation en local
session_token=''
id=0
cleaning=0
status=0


##################        Usage          ##################
  if [ -z "${1}" ]; then
    echo "Usage   : fb5sum Fichier [...Fichiers]"
    echo "Fichier : chemin complet du fichier ex. /Disque dur/Téléchargement/fichier.txt"
    exit 1
  fi


################## Nettoyage à la sortie ##################
cleanup()
{
  cleaning=1
  if [ -n "${session_token}" ]; then
    [ ${id} -ne 0 ] && deleteTask 

    ###################       Logout        ###################
    out="$(curl -i -s "${freebox}/api/v${version}/login/logout" -H "X-Fbx-App-Auth: ${session_token}" -d '')"
    session_token=''
    successIsTrue "${out}" 'Erreur au logout !'

  fi
  exit $status
}

trap cleanup HUP INT QUIT ABRT TERM EXIT

################## Test HTTP 200         ##################
## @param 1: output de curl
## @param 2: chaine à afficher en cas d'erreur

http200()
{
  if ! printf '%s' "${1}" | head -n1 | grep -q 'HTTP/1.1 200 OK'; then
    echo
    echo "${2}"
    echo "${1}"
    status=1
    [ ${cleaning} -eq 0 ] && exit 1
  fi
}


################## Test JSON success     ##################
## @param 1: output de curl
## @param 2: chaine à afficher en cas d'erreur

successIsTrue()
{
  http200 "${1}" "${2}"
  if ! printf '%s' "${1}" | grep -q '"success":true'; then
    echo
    echo "${2}"
    echo "${1}"
    status=1
    [ ${cleaning} -eq 0 ] && exit 1
  fi
}


################## Test chaine non vide  ##################
## @param 1: chaine à tester
## @param 2: chaine à afficher en cas d'erreur
## @param 3: output de curl

notEmpty()
{
  if [ -z "${1}" ]; then
    echo
    echo "${2}"
    echo "${3}"
    status=1
    [ ${cleaning} -eq 0 ] && exit 1
  fi
}


################### Suppression de la tâche ###############

deleteTask()
{
  out="$(curl -i -s -X DELETE "${freebox}/api/v${version}/fs/tasks/${id}" -H "X-Fbx-App-Auth: ${session_token}")"
  id=0
  successIsTrue "${out}" "Erreur suppression de la tâche."
}



###########################################################
################## Début de la connexion ##################
###########################################################


################## Lecture de la version ##################

  printf "Connexion ... 1/3"
  out="$(curl -i -s "${freebox}/api_version")"
  http200 "${out}" "Erreur HTTP."

  version="$(printf "%s" "${out}" | sed  '/api_version/ !d;s/.*api_version":"//;s/\([0-9]*\)\..*/\1/')"
  notEmpty "${version}" "Impossible de lire la version." "${out}"



################## Obtention du challenge #################
  printf "\b\b\b2/3"
  out="$(curl -i -s "${freebox}/api/v${version}/login")"
  successIsTrue "${out}" "Erreur, impossible d'initier un login."

  challenge="$(printf "%s" "${out}" | sed '/"success"/ !d;s|.*"challenge":"||;s|",.*||;s|\\/|/|g')"
  notEmpty "${challenge}" "Impossible d'obtenir le challenge." "${out}"


#### Création du password = hash($challenge,$app_token) ######
  password="$(printf '%s' "${challenge}" | openssl dgst -sha1 -hmac $app_token | sed 's/(stdin)= //')"


################## Ouverture de la session ################
  printf "\b\b\b3/3"
  out="$(curl -i -s "${freebox}/api/v${version}/login/session/" -d "{\"app_id\":\"${app_id}\",\"password\":\"${password}\"}")"
  successIsTrue "${out}" "Erreur, impossible d'ouvrir la session."

  session_token="$(printf '%s' "${out}" | sed '/"success"/ !d;s|.*"session_token":"||;s|",.*||;s|\\/|/|g')"
  notEmpty "${session_token}" 'Impossible de lire le token de session.' "${out}"

  printf "\b\b\bOK \n"


###########################################################
################### fin de la connexion ###################
###########################################################


###########################################################
################## Calcul des MD5        ##################
###########################################################

  for f in "$@"; do

    ################## Soumission de la tâche #################
    out="$(curl -i -s "${freebox}/api/v${version}/fs/hash/" -H "X-Fbx-App-Auth: ${session_token}" -d "{\"src\":\"$(printf '%s' "${f}" | base64 -w0)\",\"hash_type\":\"md5\"}")"
    successIsTrue "${out}" 'Soumission de la tâche impossible.'

    id="$(printf '%s' "${out}" | sed '/"success"/ !d;s|.*"id":||;s|,.*||')"
    notEmpty "${id}" "Impossible de lire l'ID de la tâche." "${out}"

    while :; do

      ########### Récupération de l'avancement ###############
      out="$(curl -i -s "${freebox}/api/v${version}/fs/tasks/${id}" -H "X-Fbx-App-Auth: ${session_token}")"
      successIsTrue "${out}" "Lecture de l'avancement de la tâche impossible."

      progress="$(printf '%s' "${out}" | sed '/"success"/ !d;s|.*"progress":||;s|}.*||')"
      notEmpty "${progress}" 'Impossible de lire la progression de la tâche.' "${out}"
      printf "\b\b\b%2u%%" $progress

      state="$(printf '%s' "${out}" | sed '/"success"/ !d;s|.*"state":"||;s|",.*||')"
      notEmpty "${state}" "Impossible de lire l'état de la tâche." "${out}"

      case "${state}" in
        'queued')  printf "\rEn attente."
                   ;;
        'running') printf "\rEn cours : %2u%% " ${progress}
                   ;;
        'paused')  printf "\rEn pause : %2u%% " ${progress}
                   ;;
        'done')    printf "\rTerminé  : 100%%"
                   break
                   ;;
        'failed')  printf "\rEchoué.        "
                   break
                   ;;
        *)         printf "\rEtat inconnu : %s" "${state}"
                   break
      esac

      sleep 2
    done

    if [ "${state}" = 'done' ]; then
      ################## Lecture du résultat (md5) ###############
      out="$(curl -i -s "${freebox}/api/v${version}/fs/tasks/${id}/hash" -H "X-Fbx-App-Auth: ${session_token}")"
      successIsTrue "${out}" "Erreur lecture du hash."

      hash="$(printf '%s' "${out}" | sed '/"success"/ !d;s|.*"result":"||;s|".*||')"
      printf "\r%s  %s\n" "${hash}" "${f}"

    else
      ################## Lecture de la cause d'erreur ############
      error="$(printf '%s' "${out}" | sed '/"success"/ !d;s|.*"error":"||;s|",.*||')"
      printf  "\rEchec: %s  %s\n" "${error}" "${f}"

    fi

    deleteTask
  done

L'usage est simple, une fois que vous avez récupéré le source et que vous l'avez rendu exécutable, vous lancez avec :

./fbxmd5.sh 'Disque dur/Téléchargement/mon_Fichier.iso'

IMPORTANT: au préalable, vous devez autoriser l'application et obtenir un 'token'.
Pour cela, exécutez la ligne de commande indiquée en commentaire dans les TODO, autorisez l'application, récupérez le token affiché et mettez le dans la variable app_token.
Au niveau des autorisations, vous pouvez restreindre l'application à l'accès aux fichiers seulement, cela suffit.

Testé sur Ubuntu et sur Synology (DSM4.2, nécessite l'installation des coreutils)

#1 Re : -1 »  Déplacer TMP dans un autre disque dur » Le 11/04/2014, à 16:19

Zakhar
Réponses : 7

Sinon, si tu as assez de RAM (genre 4G), tu peux faire encore mieux : /tmp en RAM !..

Ligne à rajouter dans le /etc/fstab pour cela :

none           /tmp		tmpfs   size=2G,nr_inodes=200k,mode=01777,noatime       0       0

Puis une fois la ligne rajoutée, redémarrer.
(P.S., le paramètre "size" dans la commande est par défaut la moitié de ta RAM, tu peux cependant le faire varier à ta guise... ou le supprimer, auquel cas c'est la moitié de la RAM qui sera prise).

C'est encore plus rapide que le SSD, et ça évite d'user le SSD en écrivant dessus des machins temporaires.

#2 Re : -1 »  Déplacer TMP dans un autre disque dur » Le 11/04/2014, à 22:24

Zakhar
Réponses : 7

Je suis (presque) sûr que tu peux même faire un montage 'bind' pour éviter la création d'une partition de plus... en tout cas c'est à tester !

#3 Re : -1 »  Résolu] Quel ram pour mon PC ? » Le 10/04/2014, à 10:11

Zakhar
Réponses : 25

C'est un ordinosaure !..

Peux-tu nous dire quel est ton besoin (ce que tu veux corriger/améliorer) au lieu de nous dire la solution que tu envisages (la mémoire) sans explications.

En effet, si tu as espoir que ça aille bien plus vite, ou si tu veux lancer en parallèle tout un tas de programme sur ce type d'ordinosaure... oublie !

Si c'est pour la "vitesse", tu as d'autres options gratuites, comme installer un dérivé plus léger d'Ubuntu (Lubuntu, Xubuntu....)

De plus, investir sur ce type de matériel largement hors d'âge est un peu comme jeter de l'argent par les fenêtres... sauf si tu sais que c'est un élément que tu pourras récupérer plus tard (exemple : un disque externe USB3).

... après, à toi de voir. C'est ton argent, tu l'utilises comme bon te semble. tongue

#4 Re : -1 »  Résolu] Quel ram pour mon PC ? » Le 10/04/2014, à 17:57

Zakhar
Réponses : 25

Si le besoin est de le donner, une MàJ sous Xubuntu comme conseillée par nam (c'était sûr qu'il allait venir dire ça ! tongue) et tu fais un super cadeau.

Pas besoin de RAM en plus ça ne servira pas à grand chose sur ce type de PC.

Par exemple, tu ne vas pas accélérer le temps de démarrage, ni le lancement des programmes, car ça dépend essentiellement de la vitesse (ou plutôt lenteur !) de ton disque dur de l'époque, et un peu de la vitesse (ou lenteur !) de ton processeur.

D'ailleurs tu peux certainement le vérifier avec le moniteur système, je doute que tu remplisses la mémoire actuelle avec un usage "normal" de ce PC.

Et si tu avais des usages "poussés" du genre traiter des images volumineuses (ça peut prendre plein de RAM...), là, vu le processeur, il vaut de toute façon mieux éviter de le faire sur l'ordinosaure.

Par conséquent, ne dépenses pas tes sous pour rien, l'amélioration sera totalement insignifiante en passant à 3G de RAM.

#5 Re : -1 »  [Résolu]Le volume "Boot" plein !!! ???? » Le 07/04/2014, à 23:36

Zakhar
Réponses : 25

Je plussoie Qid !

Il faudrait nous faire un :

df -h

qu'on voie ça de plus près !

#6 Re : -1 »  [Résolu] [iptables] Utiliser un serveur mail distant » Le 07/04/2014, à 23:26

Zakhar
Réponses : 19

Ce que tu cherches à faire n'est pas très clair.

Une fois que tu auras mieux posé le problème... je suis quasi sûr que tu auras trouvé la solution toi même parce que ça va devenir évident !

Par contre, est-ce que je fais une erreur... mais tes règles FORWARD finissant par un ACCEPT all / anywhere / anywhere ... les règles ACCEPT qui précèdent ne servent à rien, pas plus que la policy DROP par défaut puisqu'elle ne sera jamais atteinte.

#7 Re : -1 »  [Résolu] [iptables] Utiliser un serveur mail distant » Le 08/04/2014, à 13:28

Zakhar
Réponses : 19
tiramiseb a écrit :
Zakhar a écrit :

tes règles FORWARD finissant par un ACCEPT all / anywhere / anywhere ... les règles ACCEPT qui précèdent ne servent à rien, pas plus que la policy DROP par défaut puisqu'elle ne sera jamais atteinte.

Ça dépend, il n'a pas fait ça en mode verbose. Il y a pas mal d'éléments qu'on ne voit pas sur une sortie simple. Pour être sûr que tu es dans le vrai, il faudrait le retour de :

sudo iptables -vnL

Oops oui ! Comme je mets toujours le -v dans mon listage d'iptables, je présumais qu'il y était. wink

#8 Re : -1 »  [RESOLUE]probleme carte wifi+ carte reseau » Le 07/04/2014, à 23:33

Zakhar
Réponses : 3

Encore la fameuse connaissance réseau qui est... négative...

L'explication de toutafai est parfaite.

Il est effectivement préférable, si on veut fixer l'IP et continuer à utiliser NM de le faire avec NM.

Cependant LA bonne solution pour fixer ton IP est un bail permanent. S'il s'agit d'un PC chez toi et que tu es derrière une box (ou ton propre routeur), en principe tu devrais pouvoir le faire.
Tu relèves l'adresse MAC de ton interface ethernet ou Wifi selain le cas (par ifconfig) et tu donne ça à manger à ta box en fixant l'IP que tu souhaites.

A chaque démarrage suivant de ton PC, il va aller demander une IP à la box (DHCP) et comme tu as fixé un bail permanent, il récupérera toujours la même adresse.

C'est solution est la plus "propre". Tu n'as absolument RIEN à toucher dans ton PC, tu demandes juste à ta box de te donner toujours la même IP.

#9 Re : -1 »  [Script/Tuto] Amorcer une image iso sans clé USB ni lecteur de CD-ROM » Le 07/04/2014, à 23:43

Zakhar
Réponses : 38

Intéressant ça, je ne savais pas que Grub savait faire cela... je vais m'y pencher de plus près !

#10 Re : -1 »  [Résolu] accès SSH hors réseau local. » Le 04/04/2014, à 23:24

Zakhar
Réponses : 17

Hum pourtant on voit que ton adresse est 192.168.1.72... je te confirme, c'est bien de l'IP V4 !..

(Après tu peux aussi avoir les deux, V4 et V6... et sur la V6 j'avoue mon incompétence à peu près totale !)

#11 Re : -1 »  [Résolu] accès SSH hors réseau local. » Le 07/04/2014, à 23:18

Zakhar
Réponses : 17

Je le dis souvent... la connaissance informatique générale est très très basse... mais la connaissance en réseau... je crois qu'il faudrait donner une note négative pour être pas loin de la réalité !

Bon, en tout cas grâce à la pédagogie de la communauté, au moins kinezana a un peu fait progresser cette connaissance globale en réseau !

Merci à tous.

P.S. : allez, à la prochaine question on te parle de iptables (non je blague !...)  tongue

#12 Re : -1 »  [RESOLU] Nom des partitions HDD étrange lors de l'installations » Le 04/04/2014, à 23:25

Zakhar
Réponses : 10

C'est une machine chiffrée ?

(/dev/mapper ça me fait penser à ce que fait truecrypt par exemple).

#13 Re : -1 »  [RESOLU] Nom des partitions HDD étrange lors de l'installations » Le 05/04/2014, à 08:51

Zakhar
Réponses : 10

Oui c'est effectivement du raid donc !

Pour le clavier, c'est en principe assez simple sur une Live USB, il te suffit d'aller dans les réglages (Paramètres Système) là tu as l'option pour le clavier. Tu rajoutes l'agencement Français qui correspond le mieux à ton clavier, tu enlèves le clavier anglais, et tu appliques.

C'est hélas à faire à chaque reboot (car Live)... sauf si tu as fait un Live avec partie persistante.

Cela dit, avec des SSD, l'intérêt d'un RAID 0 est à mon avis plus que limité. Le SSD est déjà super rapide et rajouter une couche (le logiciel qui gère le raid) dans l'espoir d'aller encore plus vite... bah il faut réellement prouver que l'overhead de la couche rajoutée ne bouffe pas tout le gain espéré.
D'un autre côté, on a les inconvénients à coup sûr : dès qu'un des deux SSD meurt, tout est mort !.. Or ces bestioles (les SSD), ça a tendance à mourir plus vite qu'un disque classique vu qu'il y a un nombre d'écriture limité par construction.

Donc je suis d'accord avec les propos au dessus, je trouve que ce n'est pas vraiment une bonne idée de garder ce Raid 0.

#14 Re : -1 »  about DROPBOX » Le 05/04/2014, à 09:04

Zakhar
Réponses : 16
tiramiseb a écrit :

cette affaire semble ne pas constituer une "preuve" qu'ils fouillent en clair dans les fichiers des utilisateurs.

Qu'ils le fassent ou qu'ils ne le fassent pas, ils sont capables de le faire et c'est déjà trop.

Et de toute façon, même sans leur prêter de mauvaises intentions (pour ne pas faire précisément un procès d'intention), on sait qu'ils le font, comme pas mal de keylockers, pour une question dédoublonnement de fichier. Ca leur permet de gagner pas mal d'espace, c'est un algorithme "normal" pour ce genre de service de stockage en ligne.

Personnellement j'utilise Wuala. Eux ne font pas ce genre d'algo puisque tout est chiffré depuis le client. Par conséquent, même si Bob et Alice disposent du même fichier, comme la clé de chiffrement est différente, ce qui est stocké sur le serveur est différent et l'algorithme de dédoublonnement échoue. Aussi Wuala c'est en Suisse, donc pas soumis (directement) à la NSA !.. Mais cela dit, ça ne m'empêche pas de rajouter mon chiffrement personnel par dessus.

#15 Re : -1 »  WD20EARS 2To ne fonctionne plus » Le 02/04/2014, à 23:17

Zakhar
Réponses : 18

Oui, on a une idée très précise.

Quand on vous le dit que les Green de WD sont de la merde en tranche, vous n'écoutez pas.

Ton disque a probablement lâché mort de trop de LoadCycle (193).

C'est un problème hyper connu des Green qu'il NE FAUT PAS ACHETER (je le répète en plus gros des fois que tu aies loupé la première fois !)

Du reste, ne pas acheter ces merdes, c'est le meilleur message que tu peux passer à WD pour qu'il fassent des disque "normaux".

Une petite recherche sur ce forum et tu trouveras aisément le problème du LoadCycle.

Désolé. mad

#16 Re : -1 »  WD20EARS 2To ne fonctionne plus » Le 03/04/2014, à 17:52

Zakhar
Réponses : 18
moko138 a écrit :

@ Zakhar : ketinu59 étant inscrit d'aujourd'hui, on peut envisager qu'il n'ait pas encore lu les quarante-douze mille pages de la doc et du forum...  big_smile

  Par contre si dans 48 heures ketinu59 est toujours incapable de les réciter par coeur,  à l'endroit et à l'envers, là je suis d'accord, on le donnera à manger aux lions.

Certes certes, il a des excuses... mais le post est aussi là : http://community.wd.com/t5/Desktop-Mobi … td-p/15731

Il s'agit du forum officiel de la communauté Western Digital où l'information sur la faiblesse des Green figure en clair.

En gros, ils ont rajouté une "fonctionnalité", mais c'est surtout de l'obsolescence programmée pour que le disque tombe en panne.

Si tu veux un bon disque chez Western, tu prends un Red (Special NAS). En gros c'est pareil que les "green" mais sans la "fonctionnalité" qui les fait tomber en panne au bout de 3 ans... et du coup tu le payes un peu plus cher puisque tu es un méchant consommateur qui va acheter des disques moins souvent ! tongue

C'est assez dégoûtant toutes ces manoeuvres bassement commerciales, et je persiste, la meilleure façon d'agir c'est de bien se renseigner avant et de toucher au porte-monnaie (il n'y a que ça qu'ils comprennent) en cessant d'acheter des "green" tant que le "fonctionnalité" stupide ne sera pas retirée (ce qui est le cas sur les Red).

#17 Re : -1 »  WD20EARS 2To ne fonctionne plus » Le 04/04/2014, à 22:09

Zakhar
Réponses : 18
ketinu59 a écrit :

Tes interventions n'apportent rien...

Si ça a apporté au moins que le prochaine fois tu te renseignes ici avant d'acheter un matériel, on pourra te dire rapidement sa compatibilité Linux et les problèmes connus... ce n'est donc pas "rien".

Maintenant, si ça ne te sert pas pour la prochaine fois parce que de toute façon ce qu'on te dit t'est égal, là je suis 100% avec toi, ça ne t'a rien apporté. tongue

Bonne chance pour ton disque en tout cas !

#18 Re : -1 »  commande unzip sur nombreux fichiers » Le 04/04/2014, à 23:19

Zakhar
Réponses : 2

Il faut que tu fasses un "mini-script"

En une ligne :

for f in *.zip; do dir="$(echo "$f" | head -c-4)"; mkdir "$dir"; cd "$dir"; unzip "../$f"; cd ..; done

Explications :
- le 'for' va prendre en argument tous les .zip de ton répertoire et donner tour à tour la valeur d'un élément à la variable f
- la premièce commande retire l'extension .zip de la variable f
- la suivante crée le répertoire
- on va dans ce répertoire
- on dézippe
- on remonte au répertoire

C'est brut de décoffrage sans test d'erreurs.
Ca se plantera par exemple si tu as déjà une répertoire qui porte le même nom qu'un fichier .zip... mais c'était pour faire simple !

#19 Re : -1 »  VM Distante » Le 04/04/2014, à 23:09

Zakhar
Réponses : 3
tiramiseb a écrit :

Ce projet sera-t-il fini avant mardi prochain ? big_smile

Ah oui... la date à laquelle XP eXPlose lol

#20 Re : -1 »  Virtualisation - Exercice » Le 15/03/2014, à 11:50

Zakhar
Réponses : 27

L'exercice est mal posé.

Supposons que tu aies un programme pour Motorola 6809. Il s'agit du processeur qui animait les Thomson MO5... il y a 25 ans !
Sur le MO5, le processeur tournait à 1MHz. Oui j'ai bien dit MHz, pas GHz !..

Donc si tu as un hyperviseur sur un PC à base de core i7, il te faut traduire les instructions 6809 en instructions i686 pour que ton ancien programme fonctionne. Comme le dit l'exercice, tu as peut-être alors besoin de 5 instructions (en moyenne) i686 pour "émuler" les instructions 6809.

Sauf que le core i7 tourne à plusieurs GHz, et sait exécuter plusieurs instructions par cycle. Donc, même avec 5 instructions (moyenne) pour émuler une instruction 6809, ton programme émulé tournera plusieurs centaines de fois plus vite que le programme d'origine sur le 6809.

C'est d'ailleurs en général le cas lorsque tu utilises des émulateurs de console par exemple.

Il manque donc des donnés importantes dans l'énoncé pour déterminer le résultat, c'est :
- quel est le processeur émulé
- sur quel processeur on émule

Si les deux sont identiques la réponse est triviale, le programme va 5 fois moins vite. Mais c'est aussi trivialement idiot, car si tu as un programme qui tourne sur le processeur dont tu dispose, émuler les instructions n'est pas une bonne idée, et de toute façon ce serait plutôt 1 pour 1, donc la moyenne de 5 est n'importe quoi.

Donc en résumé, la réponse est celle que je t'ai faite en #2 :

ça dépend !

(et l'énoncé tel que tu nous l'as mis, ne permet pas de déterminé la réponse... à moins que tu n'aies oublié de nous recopier un bout de cet énoncé !)

#21 Re : -1 »  Virtualisation - Exercice » Le 15/03/2014, à 17:48

Zakhar
Réponses : 27

Bien sûr que si tu peux ajouter une carte réseau.

En réalité tout dépend du bus où elle est branchée et s'il supporte le hotplug ou pas.

J'ajoute régulièrement mon dongle Wifi-USB dans ma VM. Wifi = carte réseau, mais en l'occurrence il est en USB et pour l'USB c'est tout à fait prévu de rajouter/supprimer à la volée.

Maintenant si tu parles d'une carte PCI, comme ce n'est pas prévu de rajouter/enlever des choses sur le bus PCI à la volée, eh bien ça demande effectivement à redémarrer la machine.

@Korak, je ne suis pas d'accord avec ton raisonnement. Regarde bien l'énoncé. Il n'est indiqué nulle part que le programme virtualisé est sur le même jeu d'instructions que l'hyperviseur. Ta réponse paraît juste, mais elle compare des choux et des carottes en supposant que le programme virtualisé tournerait en non-virtualisé comme si c'était du 1 pour 1 sur la machine cible. Rien ne le précise. L'énoncé est donc bancal.
Si effectivement on est sur le même jeu d'instruction, ta réponse est alors correcte (et la chose est superbement ridicule, pourquoi utiliser un tel hyperviseur dans ce cas !)
Si on n'est pas sur le même jeu d'instructions, la chose a un intérêt, mais dans ce cas le programme d'origine il faut mesurer son temps sur la machine d'origine qui n'est pas celle sur laquelle tourne l'hyperviseur. Et selon la machine d'origine, l'allongement sera N%, ou ce sera un raccourcissement si l'origine est ancienne.

Exemples (même si ce n'est pas un hyperviseur) : faire tourner un programme pour mobile ARM dans QEMU. En général ça va moins vite que dans l'ARM d'origine. A contrario, PCSX qui émule une Playstation sur i686 va bien plus vite que la PSX d'origine.

Donc réponse : ça dépend !

#22 Re : -1 »  Virtualisation - Exercice » Le 15/03/2014, à 18:45

Zakhar
Réponses : 27

Oui, et l'énoncé n'est pas très pédagogique donc.

Effectivement, si comme tu le supposes (car c'est omis dans l'énoncé) les jeux d'instructions sont similaires, la réponse est effectivement celle que tu donnes. Mais dans ce cas là quel intérêt !

Bref, si c'est bien ça qui est attendu, je trouve ça assez idiot comme exercice et donc pas du tout pédagogique... à moins que ce ne soit pour te faire réfléchir à l'ineptie de la chose. big_smile

#23 Re : -1 »  Virtualisation - Exercice » Le 16/03/2014, à 10:54

Zakhar
Réponses : 27

Tout à fait d'accord avec la solution de Maxire big_smile

#24 Re : -1 »  Problème d'installation DELUGE » Le 15/03/2014, à 18:42

Zakhar
Réponses : 3

Sinon sur Ubuntu, Deluge est tout simplement dans la logithèque. wink