Rendre le Mac multitâche en 1985, une vraie galère…

Jean-Baptiste Leheup |

Alors que l'on se plaignait récemment d'iOS 13.2 qui avait parfois tendance à fermer un peu trop vite les applications en tâche de fond, il est bon de rappeler qu'à une époque, le multitâche était tout simplement inexistant…

Le kernel, ou noyau, est l'élément fondamental d'un système d'exploitation. Il permet aux différents composants, logiciels et matériels, d'interagir entre eux. Le développement du noyau est une étape cruciale dans la création d'un système d'exploitation, car de sa qualité dépendra la stabilité et l'évolutivité de tout le système.

Or, durant le développement du premier Macintosh, commercialisé en 1984, le noyau n'avait pas fait l'objet de toute l'attention nécessaire, alors même que des systèmes Unix avaient déjà posé les règles modernes de la mémoire protégée et du multitâche préemptif ; le noyau distribue l'accès au processeur et à la mémoire entre les applications, et peut à tout moment interrompre un processus pour donner la priorité à un autre, ou interdire certaines interactions entre les logiciels et les ressources matérielles de l'ordinateur.

Le premier Macintosh faisait tout l'inverse. Chaque application prenait la main sur l'ordinateur, comme si elle était seule au monde. D'ailleurs, elle était seule au monde : pour lancer un programme, le Macintosh fermait le précédent. Même le Finder, avec son bureau et ses icônes, disparaissait pour laisser la place à MacWrite, MacPaint ou MacDraw. Le Finder n'était pas seulement masqué, ou suspendu : il était quitté !


avatar macinoe | 

Attention aux faux amis.

La traduction de deprecated c'est obsolète et pas déprécié.

avatar marc_os | 

@macinoe

Autant pour moi.
Merci pour le rappel !
En même temps, un truc obsolète c’est a priori plutôt déprécié également ! ;-)

avatar BeePotato | 

@ iPop : « Rectification, il ne s’en est pas sorti du tout. »

À travers ses évolutions directes, il s’en est sorti pendant près de 20 ans.
Pas si mal pour un machin parti sur des bases aussi peu tournées vers l’avenir. :-)

« OSX alias NEXT STEP (UNIX) n’est pas Mac OS qui tournait sur 68000. Il n’a que le nom. »

Il en a bien plus que le nom, fort heureusement.

avatar DahuLArthropode | 

@BeePotato

Tout à fait! Les machines personnelles de l’époque, celles qu’ils s’agit de supplanter ou de remplacer, ce sont encore les TRS80, Pet, AppleII et AppleIII, diverses tentatives oubliées de tous les constructeurs (Osborne, Rainbow de Digital, je crois) le tout avec des OS propriétaires ou DOS 3.3 ou CPM et les PC sous MS-Dos. Tout ça me revient de loin, c’est sans doute truffé d’erreurs, mais le tout était clairement mono-utilisateur. Unix tournait par exemple sur un PDP-11, pas tout à fait le même public ou le même budget. Et ça marchait avec des consoles du genre VT100…

avatar areayoko | 

Merci MacG pour cet article !

avatar bunam | 

Quelques mois plus tard sortait l'Amiga avec un vrai système multitâche préemptif, des applications dans un même "écran" ou réparties sur d'autres écrans propres

avatar bunam | 

@bunam

une démo

https://www.youtube.com/watch?v=uSk7QMRNY-I

avec une virtualisation de MacOS en prime

avatar lolonoeli | 

@bunam

L’Amiga ... plus jamais je n’ai ressenti la même fébrilité à l’achat d’un ordinateur après lui ...

Un monde incroyable s’ouvrait à nous ....

Et puis shadow of the beast....

avatar yellocabb | 

@lolonoeli

Et bien le Hackintosh me rappelle cette période. J’adore mon hack autant que mon Amiga 4000!

avatar melaure | 

@lolonoeli

Idem pour moi, et c’est toujours de participer a une expo Amiga de nos jours.

Merci pour cet article, je me souviens très bien de tout ça a cette époque !

avatar GaspardNic92 | 

@bunam

Merci pour cette tranche d’émotion !
Quelle vidéo Geek !
Bluffant pour moi qui l’ai vécu ... sur atari ST plutôt.

Bonne continuation .

avatar Zefram | 

@bunam

😉👍🏻

avatar pagaupa | 

« il est bon de rappeler qu'à une époque, le multitâche était tout simplement inexistant… »
Oui et en 1850, il n’y avait pas d’électricité! Que ne faut-il pas écrire pour défendre Apple!

avatar armandgz123 | 

@pagaupa

C’est pas pour défendre Apple, loin de là. Macge est toujours objectif sur ces problèmes.
C’est juste pour introduire le sujet, l’article

avatar pagaupa | 

@armandgz123

Oui oui bien sûr! ...😇

avatar J'en_crois Pas_mes yeux | 

@ pagaya "Que ne faut-il pas écrire pour défendre Apple!

C'est bien vrai :
Rien de plus chiant à lire que ces défenseurs systématiques d'Apple...
Par contre il y a les execos : les décérébrés qui attaquent systématiquement Apple...
Pourtant si on fait une analyse de ces deux populations, seule la seconde devrait pouvoir prétendre à un traitement psychiatrique pour améliorer son état général.
Joyeux dimanche Pagaya :-)

avatar Lax | 

@J'en_crois Pas_mes yeux

😂😂 magnifique

avatar pagaupa | 

@J'en_crois Pas_mes yeux

Bonjour docteur! Toujours pas rayé de l’ordre des médecins?

avatar pagaupa | 

Oups! 1820 autant pour moi!
On n’est plus à 30 près de toutes façons ici! 😜

avatar pim | 

@ pagaupa :

Pour moi, le début de l'électricité se doit d'être fixé en 1800, quand Volta a présenté son empilement de métaux et de feutre, appelé pile voltaïque.

Quant au multitâche préemptif, c'est Unix et c'est la fameuse date du 1er janvier 1970, date à laquelle reviennent tous les systèmes d'exploitation dignent de ce nom, quand il n'y a personne pour leur indiquer que l'on est en fait en 2019 !

;-)

avatar magic.ludovic | 

Et ces p.... de system 7, 8 et 9 qui se figeait lorsqu'une appli plantait ... Fallait redémarrer ...🤪😩🥺

avatar flafarge | 

Super article bravo

avatar flafarge | 

Super article bravo

avatar marc_os | 

Au lieu de « dégagement et la RAM », lire « défragmenter la RAM »

Malheureusement l’app iGen est boguée. : impossible de corriger mon commentaire précédent !
« Une erreur est survenue », voilà ce qu’elle me répond à chaque fois.

avatar pim | 

@marc_os

Un problème de RAM, à n’en point douter !!!

🤭😄

Intéressant sinon ton commentaire ; mais pourquoi le système aurait eut besoin de defragmenter la RAM, si une seule application l’utilisait ? Pour l’accélérer ?

avatar marc_os | 

@pim

Même problème en interne qu’entre apps: avec des pointeurs classiques et un espace mémoire limité, au bout d’un moment le plus gros bloc de mémoire disponible est très inférieur au total libre. Et si le logiciel a besoin de se réserver un très gros bloc mémoire par exemple pour charger un gros document, il ne pourra pas. Avec la défragmentation de la RAM grâce aux handles, le plus gros bloc disponible est égal à la mémoire libre, et non pas très inférieur.

avatar pim | 

@marc_os

D’accord ! Je viens de piger quelque chose. Merci !

avatar fte | 

@pim

"Intéressant sinon ton commentaire ; mais pourquoi le système aurait eut besoin de defragmenter la RAM, si une seule application l’utilisait ? Pour l’accélérer ?"

Imagine une mémoire totale de 32 bytes. Une application alloue des blocs de 4 bytes jusqu’à remplir la mémoire, 8 au total. Puis elle libère un bloc sur deux, 4 donc. La moitié de la mémoire, 16 bytes, est libre, mais en 4 blocs de 4 bytes disjoints. Pas moyen d’allouer un bloc de 8 bytes, alors que 16 bytes sont libres.

Voilà pourquoi il faut pouvoir defragmenter. Pour assembler les blocs libres.

avatar marc_os | 

Doublon

avatar Ouri91 | 

On ne dit pas « d’interagir entre eux » mais « d’interagir » ... tout court 😘

avatar frankm | 

Et dire que jusqu’à Windows 7 Paint est le même que le vieux MacPaint de 1984

avatar macinoe | 

Et ? Le credo de Microsoft a toujours été différent d'Apple.
Apple fournissait hardware +système d'exploitation +suite logicielle. Un tout en un prêt à l'utilisation tel quel.
Microsoft c'était un système d'exploitation et éventuellement une suite bureautique.
Et quand il lui prenait l'envie de fournir des logiciels comme un navigateur internet, c'était des procès à n'en plus finir pour abus de position dominante.
Difficile dans ces conditions de reprocher à Ms de ne pas livrer de logiciels avec son OS.

avatar armandgz123 | 

@frankm

Bah c’est toujours le même, il y a juste 2/3 trucs en plis avec les objets 3D

avatar mk3d | 

Je me souviens des interminables impressions, qui bloquait la machine pendant deux trois ou quatre heure suivant les maquettes à flasher. Ah les années 90.. on savait attendre! 🤣

avatar pocketalex | 

J'ai débuté l'informatique avec des ordinateurs type commodore 64 et pour charger un jeu, comme Mister Do, il fallait attendre en moyenne 30 min

Sachant que parfois, le chargement plantait

avatar JLG01 | 

Tout de même, 128 ou 512, les premiers mono disquette ne facilitaient pas la tâche.
Une seul disquette opérationnelle avec tout, système, application et documents.
Éjecter la disquette pour changer d’application.
Un des rares remèdes restait le copier-coller.
Mais l’évolution a été foudroyante avec les SE, double lecteur et disque dur.

avatar J'en_crois Pas_mes yeux | 

@ JLG01
Je dirai que c'est avec le Mac plus que c'est devenu véritablement un ordinateur professionnel. (disque dur)

avatar fredsoo | 

Super article ! 👍🏻

avatar ShugNinx | 

"– Tu n'as pas pu écrire cela sans utiliser des informations confidentielles dont tu as eu connaissance quand tu travaillais chez Apple. Tu ne peux donc pas nous demander de te payer."

Ah le fumier... 🤦‍♂️

avatar fabricepsb71 | 

@ShugNinx
chez Apple, ce ne sont pas les premiers développeurs du Mac des années 80 qui sont devenus riches mais les développeurs venus de chez Next

avatar marc_os | 

@ShugNinx

Euh... il a tout de même touché un bon pactole au final !

avatar sekaijin | 

Je me souviens de discussion houleuse avec Apple.
A qui on demandait quand nous aurions enfin un système multitâche préemptif, et qui nous répondait que ça ne servait à rien. le multitâche coopératif était selon eux bien meilleur.

Je dois tout de même avouer que les principes du mode coopératif mon servis par la suite.
lorsque JavaScript a commencé à être stable j'ai repris ces principes pour faire des applications JS qui donnaient l'impression d'être multitâche.
j'ai simplement comme le faisait System 6 utilisé la boucle d'événement.
lorsqu'un événement se produit il est mis sur la pile. le manager exécute alors le handler qui lui est associé et passe au suivant. lorsque une tâche est longue tout comme nous le faisions dans system 6 on traite une partie des données ou de l'algo et on place un événement sur la pile pour que la suite soit traité plus tard.
du coup un autre événement peut être traité.
el claire l'idée consistait à découper les traitements en petits lots (de données ou fonctionnels) et à les faire traiter par des handler d'événement.

l'exemple le plus simple est le traitement de 1000 lignes d'un tableau. on met sur la pile "traiter les lignes du tableau à partir de 0" le manager traite les événements déjà sur la pile.
l'utilisateur a l'impression de la tâche est en arrière plan.
il arrive sur l'événement des lignes à traiter. il lance le traitement et traite 10 lignes et place sur la pile "traiter les lignes du tableau à partir de 0" et le cycle recommence. s'il y a d'autres événements ils sont traité et on revient au traitement de des lignes on en traite 10 et on met "traiter les lignes du tableau à partir de 20" etc.

pour rendre system6 le plus fluide possible il convenait de "rendre la main" le plus souvent possible. en clair laisser le système gérer la pile des événements. cela avait une influence importante sur le code. plutôt que d'enchainer les fonctions et les méthodes on lançait des événement.
et cela c'est avéré payant dans les application JS. car en agissant ainsi on avait des applications qui avaient une IHM très réactive et qui donnait l'impression d'être multitâche. depuis JS a intégré une certaine forme de multitâche.

A+JYT

avatar occam | 

@sekaijin

"discussion houleuse avec Apple.
A qui on demandait quand nous aurions enfin un système multitâche préemptif, et qui nous répondait que ça ne servait à rien."

Eu la même expérience, je confirme.
Elle me laissa pantois.

avatar fte | 

@occam

"Eu la même expérience, je confirme.
Elle me laissa pantois."

J’ai moi-meme affronté des meetings avec des gens d’Apple qui m’ont laissé estomaqué.

Ce meeting mythique par exemple où il était question de l’USB, on nous a écouté exposer notre point et rien n’a été dit ni aucune discussion n’a eu lieu. Seul commentaire : on ne dira rien, on ne peut rien dire. Ils n’ont rien dit. Une seule personne nous a accueilli, une seule personne nous a parlé pour dire bonjour, on ne dira rien, fini au revoir. Ils n’ont pas dit bonjour. Ils ne se sont pas présentés. Ils n’ont pas hoché la tête. Il n’ont pas pris de notes. Ils n’ont pas dit bye. Des pierres tombales.

Le problème qui nous avait amené a été fixé deux ans plus tard.

avatar J'en_crois Pas_mes yeux | 

Merci pour l'article, mais aussi merci pour toutes ces réactions enrichissantes.

avatar Lemmings | 

Pendant ce temps, la même année, l'Amiga proposait un véritable multitâche sur des machines aux pris sensiblement équivalents (voire moins cher), avec tout aussi peu de mémoire vive. Bon la mémoire n'était pas protégée, mais ça fonctionnait du feu de dieu !
(ha oui et l'OS était en couleur :D)

avatar lulubotine | 

Vive RamDoubler et SpeedDoubler lol !!!!

avatar Osei Tutu | 

Amazing la reaction de Steve Jobs !🤔

avatar iPop | 

Et dire qu’à la sortie de l’iPad, qui permettait d’écouter sa musique tout en imprimant et lire ses mails, qu’il n’était PAS multitâche. 🤔

avatar pim | 

@iPop

En fait il était multitâche par essence, et totalement. Même une Apple Watch est multitâche, car comme l’iPad il s’agit d’un système UNIX qui fait tourner des tonnes de processus en parallèle.

Le fait que l’utilisateur ait face à lui une seule application ouverte ne signifie pas un retour à une architecture mono tache.

En revanche ce choix de design créé un effet « tunnel » très notable, qui pousse à se consacrer à la tâche sans autres distractions. C’est d’ailleurs à la suite de cela que le Mac a vraiment récupéré un mode plein écran généralisé et digne de ce nom : c’est finalement une assez bonne idée ergonomique.

Pages

CONNEXION UTILISATEUR