Donc tu penses qu'en Java, Python, Ruby... tu peux crasher un processus en faisant un accès hors limites de tableau, sous prétexte qu'il n'y a pas de CPU idoine ?
C'est simple, si ça plante pas, c'est que les accès aux éléments d'un tableau sont vérifiés à l’exécution. Bonjour les perfs quand tu fais que manipuler des structures de données comme dans ... un kernel?
Si ça te laisse faire (depuis quand ça devrait crasher le processus? C'est juste quand tu sors des pages mémoires qui t'ont été mappées par le kernel dans ta mémoire virtuelle que tu te récupères un segfault), alors c'est que c'est pas vérifié. C'est ce que fais C/C++.
On peut avoir le meilleur des 2 mondes (le débug facile de Python/Ruby/Java) et les perfs de C grâce à valgrind (userland uniquement) qui te vérifiera tous tes accès mémoires. Mais faudra coder en C pour avoir les perfs de C.
[^] # Re: Bonne interview
Posté par Martin Peres (site web personnel) . En réponse à la dépêche Linus Torvalds : l’interview anniversaire des 20 ans du noyau. Évalué à 1.
C'est simple, si ça plante pas, c'est que les accès aux éléments d'un tableau sont vérifiés à l’exécution. Bonjour les perfs quand tu fais que manipuler des structures de données comme dans ... un kernel?
Si ça te laisse faire (depuis quand ça devrait crasher le processus? C'est juste quand tu sors des pages mémoires qui t'ont été mappées par le kernel dans ta mémoire virtuelle que tu te récupères un segfault), alors c'est que c'est pas vérifié. C'est ce que fais C/C++.
On peut avoir le meilleur des 2 mondes (le débug facile de Python/Ruby/Java) et les perfs de C grâce à valgrind (userland uniquement) qui te vérifiera tous tes accès mémoires. Mais faudra coder en C pour avoir les perfs de C.