« Ndless » : différence entre les versions

De TI-Planet Wiki
Aller à la navigation Aller à la recherche
(Page créée avec « {{Infobox Logiciel | nom = Ndless | logo = Ndless3.png | screenshot = 250px | legende = Ndl3s... »)
 
(4.5 update)
 
(13 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Infobox Logiciel
{{Infobox Logiciel
| nom                  = Ndless
| nom                  = Ndless
| logo                = Ndless3.png
| logo                = Logo de Ndless 3
| screenshot          = [[File:Ndless3.png|250px]]
| screenshot          = [[File:Ndless3.png|250px]]
| legende              = Ndl3ss, version de Ndless pour OS 3.1
| legende              = Ndl3ss, version de Ndless pour OS 3.1
| développeur          = Olivier Armand (ExtendeD) avec le soutien de Levak et de la communauté
| développeur          = Depuis quelques versions, principalement Vogtinator. Avant, principalement Olivier Armand (ExtendeD) et GeoGeo encore avant.
| sortie              =  
| sortie              = {{Start date and age|15|03|2014}}
| latest preview version = Ndless 3.1 beta r884
| latest preview version = Ndless 4.5
| latest preview date    = {{Start date and age|26|08|2013}}
| latest preview date    = {{Start date and age|03|09|2017}}
| latest release version = Ndless 3.1 beta r877
| latest release version = (beta)
| latest release date    = {{Start date and age|18|08|2013}}
| latest release date    = (beta)
| langage              = [[Asm]]
| langage              = ARM [[ASM]], C, C++
| os                  = 1.1 - 1.3 - 1.4 - 1.7 - 2.0.1 - 2.1.0 - 3.1
| os                  = 1.1 - 1.3 - 1.4 - 1.7 - 2.0.1 - 2.1.0 - 3.1 - 3.6 - 3.9 - 4.0 - 4.2 - 4.4 - 4.5
| language count      = English
| statut              = indev, beta, stable, et abandonné (selon les versions)
| statut              = indev, stable, et abandonné
| genre                = Kernel (via jailbreak)
| genre                = Kernel (jailbreak)
| licence              = Mozilla Public License v1.1
| licence              =  
| site                = https://ndless.me/
| site                = http://ndlessly.wordpress.com/
}}
}}


'' '''Ndless''' est le plus grand succès des programmes dans l'histoire de la [[TI-Nspire]], que ce soit sur le plan technique ou sur la popularité. Ce programme est en fait un [[kernel]], c'est à dire un programme exploitant une faille du système pour autoriser l'exécution d'autres programmes, qui ne fonctionneraient pas sans.
'''Ndless''' (aussi orthographié "Ndl3ss" à partir de sa version 3.x) est un programme communautaire à grand succès au sein des utilisateurs de la [[TI-Nspire]] souhaitant faire "plus" avec leur machine que ce que TI propose par défaut.<br />
Ndless a ainsi permis l'exécution sur [[TI-Nspire]] de programmes en [[Asm]], en [[C]] et depuis la révision 3.1 beta r825, en [[C++]].''
Ce programme est en fait un [[kernel]], qui exploite des failles de la plateforme pour autoriser l'exécution de programmes dont le format n'est pas celui de TI, et qui ne fonctionneraient pas sans. On peut ainsi le comparer aux "jailbreak" présents sur certaines plateformes mobiles comme iOS.<br />
Ndless ouvre en effet la porte à la programmation directement en [[Asm|Assembleur]], en [[C]], et officiellement depuis la révision 3.1 beta r825 en [[C++]].''


==Fonctionnalités==
==Fonctionnalités==


* Jailbreak de la [[TI-Nspire]], installant une interruption capable de lancer des programmes écrits en langage  [[Asm]], [[C]] ou [[C++]] et compilés pour Ndless via son SDK.
* ''Jailbreak'' des calculatrices [[TI-Nspire]], installant une interruption capable de lancer des programmes écrits en langage  [[Asm]], [[C]] ou [[C++]] et compilés pour Ndless via son SDK.
* Autorise le lancement automatique d'un programme au démarrage de la calculatrice, si ce programme est placé dans /ndless/startup
* Autorise le lancement automatique d'un programme au démarrage de la calculatrice, si ce programme est placé dans /ndless/startup


''Ces deux fonctionnalités de Ndless permettent, en utilisants les-dits programmes en C ou Asm, de démultiplier les fonctionnalités de la [[TI-Nspire]]. Il est alors possible :''
''Ces deux fonctionnalités de Ndless permettent, en utilisants les-dits programmes natifs, de démultiplier les fonctionnalités de la [[TI-Nspire]]. Il est alors entre autre possible :''


* De lire des images ou des vidéos sur la calculatrice
* De lire des images ou des vidéos sur la calculatrice
* De connecter un clavier ou une souris à la calculatrice
* De connecter un clavier et/ou une souris à la calculatrice
* De lancer des émulateurs de consoles de jeu sur la calculatrice (NES, Gameboy, Gameboy Color, Gameboy Advance)
* De lancer des émulateurs de consoles de jeu sur la calculatrice (NES, Gameboy, Gameboy Color, Gameboy Advance)
[[Fichier:Nspire_CX_ou_Game_Boy_Advance.jpg|thumb|[[gpSp]], émulateur de Gameboy Advance, en [[C]]]]
[[Fichier:Nspire_CX_ou_Game_Boy_Advance.jpg|thumb|[[gpSP]], émulateur de Gameboy Advance, en [[C]]]]
* De dumper le contenu de la calculatrice pour pouvoir l'émuler sur ordinateur (OS, diags, boot 1 et 2)
* De dumper le contenu de la calculatrice pour pouvoir l'émuler sur ordinateur (OS, diags, boot1 et 2)
* D'installer de nouveaux OS inadaptés, tiers, ou modifiés, comme [[Linux]] grâce au programme [[nLaunch]]
* D'installer de nouveaux OS originellement inadaptés, tiers, ou modifiés, comme Linux grâce au programme [[nLaunch]]
* Plein d'autres choses encore...
* De profiter d'une console Python (via [https://tiplanet.org/forum/archives_voir.php?id=89439 Micro Python]), JavaScript (via [https://tiplanet.org/forum/archives_voir.php?id=153555 Duktape])
* ...


==Problématique de l'anti-downgrade==
==Problématique de l'anti-downgrade==
Depuis des années, la communauté [[TI-Nspire]] oeuvre pour l'ouverture de cette plate-forme, c'est-à-dire pour que les utilisateurs puissent exploiter ce matériel au maximum de ses capacités.
Depuis des années, la communauté [[TI-Nspire]] oeuvre pour l'ouverture de cette plate-forme, c'est-à-dire pour que les utilisateurs puissent exploiter ce matériel au maximum de ses capacités.


Ainsi est né Ndless, un canevas permettant d'exécuter des programmes en langage machine prenant le contrôle total de la machine et notamment de ce que fait le processeur.
Ainsi est né, quelques années après la sortie de la plateforme, Ndless, un canevas permettant d'exécuter des programmes en langage machine ayant le contrôle total de la machine (pas limité par l'OS de TI) et donc notamment de ce que fait le processeur.


L'absence d'une version transversale de Ndless est due au fait que Ndless n'est pas un programme officiel, et que [[Texas Instruments]] le combat activement depuis le système 2.1.
L'absence d'une version transversale de Ndless est due au fait que Ndless n'est pas un programme officiel, et que [[Texas Instruments]] le combat activement depuis le système 2.1.
En effet, pour s'installer Ndless exploite des failles du système TI-Nspire. Mais toute faille exploitée se voit alors rapidement ou corrigée ou bloquée par [[Texas Instruments]] dans la version suivante du système, ce qui force Ndless à toujours utiliser de nouvelles failles.
En effet, pour s'installer Ndless exploite des failles du système TI-Nspire. Mais toute faille exploitée se voit alors rapidement ou corrigée ou bloquée par [[Texas Instruments]] dans la version suivante du système, ce qui force Ndless à toujours utiliser de nouvelles failles (et leurs découverte et exploitation prend un temps considérable aux développeurs).


* Il suffit de ne pas mettre à jour son système TI-Nspire, penserez-vous?
* Il suffit de ne pas mettre à jour son système TI-Nspire, penserez-vous?
Ligne 52 : Ligne 52 :
* Il suffit de réinstaller une version antérieure du système, me direz-vous?
* Il suffit de réinstaller une version antérieure du système, me direz-vous?
''C'était en effet possible jusqu'en juillet 2010. A cette date-là, le dernier système 2.1 a activé une protection dormante, prévue dès la conception mais non utilisée jusque là, que nous avons appelée la "protection anti-downgrade du système".
''C'était en effet possible jusqu'en juillet 2010. A cette date-là, le dernier système 2.1 a activé une protection dormante, prévue dès la conception mais non utilisée jusque là, que nous avons appelée la "protection anti-downgrade du système".
Le système 2.1 ainsi que tous les systèmes ultérieurs depuis, inscrivent dans une zone mémoire non accessible à l'utilisateur et non réinitialisable par aucun menu officiel, une version minimale de système installable.
Le système 2.1 ainsi que tous les systèmes ultérieurs depuis, inscrivent dans une zone mémoire non accessible à l'utilisateur et non réinitialisable par un menu officiel, une version minimale de système installable ; toute version de système antérieur à cette version étant systématiquement refusé.''
Tout système antérieur à cette version était systématiquement refusé.''


Le dernier OS actuel supportant Ndless, l'OS 3.1, ne peut plus être installé sur les calculatrices récentes possédant le boot2 3.2.4 sur [[TI-Nspire CX]].
La plateforme [[TI-Nspire]] reste donc bloquée, jusqu'à la prochaine découverte de faille.


==Historique des Versions==
==Historique des Versions==
Ligne 64 : Ligne 61 :
! Version !! Date !! Compatible OS !! Nouveautés
! Version !! Date !! Compatible OS !! Nouveautés
|-
|-
| 1.0 || || 1.1 ||  
| 1.0 || 26/02/2010 || 1.1 ||  
|-
|-
| 1.1 || || 1.1 ||  
| 1.1 || 31/07/2010 || 1.1 ||  
|-
|-
| 1.1 ''prototypes'' || || 1.1 ''prototypes non-CAS'' ||  
| 1.1.1 || 16/10/2010 || 1.1 ||  
|-
|-
| 1.2 ''prototypes'' || || 1.2 ''prototypes CAS'' ||  
| 1.1 ''prototypes'' || 13/03/2011 || 1.1 ''prototypes non-CAS'' ||  
|-
|-
| 1.2 || || 1.2 ||  
| 1.2 ''prototypes'' || 07/03/2011 || 1.2 ''prototypes CAS'' ||  
|-
|-
| 1.3 || || 1.3 ||  
| 1.2 || 11/11/2011 || 1.2 ||  
|-
|-
| 1.4 || || 1.4 ||  
| 1.3 || 26/12/2010 || 1.3 ||  
|-
|-
| 1.7 || || 1.7 ||  
| 1.4 || 26/12/2010 || 1.4 ||  
|-
|-
| 2.0 || || 1.7
| 1.7 || 04/12/2010 || 1.7 ||
|-
| 2.0 || 26/02/2011 || 1.7
2.0.1
2.0.1
2.1.0 ||  
2.1.0
||
|-
|-
| 3.1 || 19/01/2012 || 3.1 || Support des [[TI-Nspire CX]]
| 3.1 || 19/01/2012 || 3.1 || Support des [[TI-Nspire CX]]
Ligne 102 : Ligne 102 :
|-
|-
| 3.1 r848 || 18/07/2013 || 3.1 || Debugging en C, C++ et Asm
| 3.1 r848 || 18/07/2013 || 3.1 || Debugging en C, C++ et Asm
|-
| 3.1 r914 || 02/2014 || 3.1 ||
|-
| 3.6 r1006 || 15/03/2014 || 3.6 || Pour OS 3.6. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
|-
| 3.9 r2000 || 23/02/2015 || 3.9 || Pour OS 3.9 (Clickpad) et 3.9.1 (CX). Non reboot-proof.
|-
| 4.0.3 r2001 || 02/01/2016 || 4.0.3 || Pour OS 4.0.3 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
|-
| 4.2 r2004 || 19/02/2016 || 4.2.0 || Pour OS 4.2.0 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
|-
| 4.4 r2005 || 21/01/2017 || 4.4.0 || Pour OS 4.4.0 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
|-
| 4.5 r2010 || 03/09/2017 || 4.5.0 || Pour OS 4.5.0 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
|}
|}


==Voir Aussi==
* [[nLaunch]], [[HIDn]], [[mViewer]], [[ThemeEditor]], [[Polydumper]]...<br /><br />


* [http://ndless.me Site officiel de Ndless]
* [https://github.com/ndless-nspire/Ndless/ Code source de Ndless sur GitHub]
* [https://tiplanet.org/ndless/ Page "portail" de Ndless sur TI-Planet]
* [https://tiplanet.org/forum/viewforum.php?f=20 Sous-forum dédié à la programmation native, sur TI-Planet]




==Voir Aussi==
* [[nlaunch]]
* [[HIDn]]
* [[Mviewer]]
* [[ThemeEditor]]
* [[Polydumper]]
* [[Asm]], [[C]] et [[C++]]
<references/>
<references/>






{{Logiciels}}
{{Logiciels}}

Dernière version du 3 septembre 2017 à 13:00

Ndless
Logo de Ndless 3
Développeur Depuis quelques versions, principalement Vogtinator. Avant, principalement Olivier Armand (ExtendeD) et GeoGeo encore avant.
Sortie le 15 mars 2014, il y a 10 années
Version Stable (beta) / (beta)
Version de Preview Ndless 4.5 / le 3 septembre 2017, il y a 6 années
Etat du développement indev, beta, stable, et abandonné (selon les versions)
Programmé en ARM ASM, C, C++
OS 1.1 - 1.3 - 1.4 - 1.7 - 2.0.1 - 2.1.0 - 3.1 - 3.6 - 3.9 - 4.0 - 4.2 - 4.4 - 4.5
Genre Kernel (via jailbreak)
Licence Mozilla Public License v1.1
Site Internet https://ndless.me/

Ndless (aussi orthographié "Ndl3ss" à partir de sa version 3.x) est un programme communautaire à grand succès au sein des utilisateurs de la TI-Nspire souhaitant faire "plus" avec leur machine que ce que TI propose par défaut.
Ce programme est en fait un kernel, qui exploite des failles de la plateforme pour autoriser l'exécution de programmes dont le format n'est pas celui de TI, et qui ne fonctionneraient pas sans. On peut ainsi le comparer aux "jailbreak" présents sur certaines plateformes mobiles comme iOS.
Ndless ouvre en effet la porte à la programmation directement en Assembleur, en C, et officiellement depuis la révision 3.1 beta r825 en C++.

Fonctionnalités

  • Jailbreak des calculatrices TI-Nspire, installant une interruption capable de lancer des programmes écrits en langage Asm, C ou C++ et compilés pour Ndless via son SDK.
  • Autorise le lancement automatique d'un programme au démarrage de la calculatrice, si ce programme est placé dans /ndless/startup

Ces deux fonctionnalités de Ndless permettent, en utilisants les-dits programmes natifs, de démultiplier les fonctionnalités de la TI-Nspire. Il est alors entre autre possible :

  • De lire des images ou des vidéos sur la calculatrice
  • De connecter un clavier et/ou une souris à la calculatrice
  • De lancer des émulateurs de consoles de jeu sur la calculatrice (NES, Gameboy, Gameboy Color, Gameboy Advance)
gpSP, émulateur de Gameboy Advance, en C
  • De dumper le contenu de la calculatrice pour pouvoir l'émuler sur ordinateur (OS, diags, boot1 et 2)
  • D'installer de nouveaux OS originellement inadaptés, tiers, ou modifiés, comme Linux grâce au programme nLaunch
  • De profiter d'une console Python (via Micro Python), JavaScript (via Duktape)
  • ...

Problématique de l'anti-downgrade

Depuis des années, la communauté TI-Nspire oeuvre pour l'ouverture de cette plate-forme, c'est-à-dire pour que les utilisateurs puissent exploiter ce matériel au maximum de ses capacités.

Ainsi est né, quelques années après la sortie de la plateforme, Ndless, un canevas permettant d'exécuter des programmes en langage machine ayant le contrôle total de la machine (pas limité par l'OS de TI) et donc notamment de ce que fait le processeur.

L'absence d'une version transversale de Ndless est due au fait que Ndless n'est pas un programme officiel, et que Texas Instruments le combat activement depuis le système 2.1. En effet, pour s'installer Ndless exploite des failles du système TI-Nspire. Mais toute faille exploitée se voit alors rapidement ou corrigée ou bloquée par Texas Instruments dans la version suivante du système, ce qui force Ndless à toujours utiliser de nouvelles failles (et leurs découverte et exploitation prend un temps considérable aux développeurs).

  • Il suffit de ne pas mettre à jour son système TI-Nspire, penserez-vous?

Sauf que Texas Instruments incite à la mise à jour du système via nombre de popups automatisées. De plus, les nouvelles TI-Nspire commercialisées finissent toujours par venir préchargées avec le dernier système - ce n'est donc pas une solution pour les nouveaux utilisateurs.

  • Il suffit de réinstaller une version antérieure du système, me direz-vous?

C'était en effet possible jusqu'en juillet 2010. A cette date-là, le dernier système 2.1 a activé une protection dormante, prévue dès la conception mais non utilisée jusque là, que nous avons appelée la "protection anti-downgrade du système". Le système 2.1 ainsi que tous les systèmes ultérieurs depuis, inscrivent dans une zone mémoire non accessible à l'utilisateur et non réinitialisable par un menu officiel, une version minimale de système installable ; toute version de système antérieur à cette version étant systématiquement refusé.


Historique des Versions

Version Date Compatible OS Nouveautés
1.0 26/02/2010 1.1
1.1 31/07/2010 1.1
1.1.1 16/10/2010 1.1
1.1 prototypes 13/03/2011 1.1 prototypes non-CAS
1.2 prototypes 07/03/2011 1.2 prototypes CAS
1.2 11/11/2011 1.2
1.3 26/12/2010 1.3
1.4 26/12/2010 1.4
1.7 04/12/2010 1.7
2.0 26/02/2011 1.7

2.0.1 2.1.0

3.1 19/01/2012 3.1 Support des TI-Nspire CX

Résistance aux reboot Nouvelles fonctions: on_key_pressed(), show_msgbox_2b(), show_msgbox_3b(), is_cx, is_classic, has_colors, hwtype, IO, IO_LCD_CONTROL, lcd_incolor(), lcd_ingray(), lcd_isincolor() Nouveaux syscalls: ftell(), truncate()

3.1 r538 08/02/2012 3.1 Support des associations de fichiers (extensions *.*.tns)
3.1 r540 11/02/2012 3.1 Support des programmes au démarrage, fonction nl_isstartup()
3.1 r611 14/04/2012 3.1 Ajout des fonctions show_msg_user_input(), show_1numeric_input() and and show_2numeric_input() grâce à Levak
3.1 r765 20/04/2013 3.1 Support de HIDn
3.1 r786 08/05/2013 3.1 Support des TI-Nspire CM
3.1 r825 15/06/2013 3.1 Support du C++
3.1 r848 18/07/2013 3.1 Debugging en C, C++ et Asm
3.1 r914 02/2014 3.1
3.6 r1006 15/03/2014 3.6 Pour OS 3.6. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
3.9 r2000 23/02/2015 3.9 Pour OS 3.9 (Clickpad) et 3.9.1 (CX). Non reboot-proof.
4.0.3 r2001 02/01/2016 4.0.3 Pour OS 4.0.3 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
4.2 r2004 19/02/2016 4.2.0 Pour OS 4.2.0 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
4.4 r2005 21/01/2017 4.4.0 Pour OS 4.4.0 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation
4.5 r2010 03/09/2017 4.5.0 Pour OS 4.5.0 sur CX et CX CAS. Non reboot-proof, mais pas besoin d'ordinateur pour l'installation

Voir Aussi