{
  "chapter": {
    "id": "systemes-exploitation",
    "level": "premiere",
    "theme": "Architectures",
    "title": "Systèmes d'exploitation",
    "description": "Rôle d'un système d'exploitation : gestion des\nprocessus, gestion de la mémoire, gestion des\nfichiers et des périphériques, rôle du noyau,\nprincipaux systèmes (Linux, Windows, macOS,\nAndroid, iOS).",
    "prerequisites": [],
    "references": []
  },
  "questions": [
    {
      "id": "q01",
      "difficulty": 1,
      "skills": [
        "definition"
      ],
      "title": "Définition d'un système d'exploitation",
      "statement": "Qu'est-ce qu'un **système\nd'exploitation** ?",
      "options": [
        {
          "text": "Un type particulier de processeur",
          "correct": false,
          "feedback": "Un système d'exploitation est\nun logiciel ; le processeur\nest un composant matériel.\nLes deux notions sont\ndistinctes.\n"
        },
        {
          "text": "Une mémoire électronique de l'ordinateur",
          "correct": false,
          "feedback": "Un système d'exploitation est\nun logiciel, et non un\ncomposant matériel. La\nmémoire est une notion\ndistincte.\n"
        },
        {
          "text": "Un logiciel fondamental qui gère le matériel et fournit des services aux applications (gestion des fichiers, des processus, de la mémoire, des périphériques)",
          "correct": true,
          "feedback": "C'est l'**intermédiaire**\nentre le matériel et les\napplications. Sans système\nd'exploitation, chaque\nprogramme devrait gérer\nlui-même chaque détail du\nmatériel.\n"
        },
        {
          "text": "Un logiciel d'application comme un traitement de texte",
          "correct": false,
          "feedback": "Un système d'exploitation est\nplus fondamental qu'une\napplication. C'est lui qui\nfait fonctionner les\napplications, et non\nl'inverse.\n"
        }
      ],
      "explanation": "Le terme anglais correspondant\nest *Operating System*. Quelques\nexemples courants : Linux,\nWindows, macOS, Android, iOS,\nChromeOS. Tout appareil\ninformatique en est doté."
    },
    {
      "id": "q02",
      "difficulty": 1,
      "skills": [
        "exemples"
      ],
      "title": "Exemples de systèmes d'exploitation",
      "statement": "Lequel des noms suivants\ndésigne un **système\nd'exploitation** ?",
      "options": [
        {
          "text": "Microsoft Word",
          "correct": false,
          "feedback": "Microsoft Word est une\napplication de traitement de\ntexte, qui fonctionne\nau-dessus d'un système\nd'exploitation, mais qui\nn'en est pas un.\n"
        },
        {
          "text": "Linux",
          "correct": true,
          "feedback": "Linux est un noyau de\nsystème d'exploitation\nlibre, à la base de\nnombreuses distributions\ncomme Ubuntu, Debian, Fedora,\nou encore Android.\n"
        },
        {
          "text": "Firefox",
          "correct": false,
          "feedback": "Firefox est un navigateur\nWeb, donc une application,\net non un système\nd'exploitation.\n"
        },
        {
          "text": "Excel",
          "correct": false,
          "feedback": "Excel est un tableur, donc\nune application, et non un\nsystème d'exploitation.\n"
        }
      ],
      "explanation": "On distingue plusieurs grandes\nfamilles de systèmes : les\nsystèmes de type Unix (Linux,\nmacOS, BSD), Windows, et les\nsystèmes mobiles (Android,\nreposant sur Linux ; iOS,\nreposant sur Darwin/Unix).\nTous partagent les mêmes\nfonctions de base."
    },
    {
      "id": "q03",
      "difficulty": 1,
      "skills": [
        "processus"
      ],
      "title": "Notion de processus",
      "statement": "Qu'est-ce qu'un **processus** ?",
      "options": [
        {
          "text": "Une fonction Python",
          "correct": false,
          "feedback": "Une fonction est une partie\nd'un programme, mais un\nprocessus correspond à\nl'exécution complète d'un\nprogramme, avec toutes ses\nressources.\n"
        },
        {
          "text": "Un fichier stocké sur le disque",
          "correct": false,
          "feedback": "Un fichier sur disque est\nstatique. Un processus, lui,\nest dynamique : c'est un\nprogramme effectivement en\ncours d'exécution.\n"
        },
        {
          "text": "Un programme en cours d'exécution, accompagné de sa mémoire, de ses ressources et de son contexte",
          "correct": true,
          "feedback": "Un même programme peut être\nlancé plusieurs fois, et\nchaque lancement crée un\nnouveau processus\nindépendant.\n"
        },
        {
          "text": "Un type particulier de mémoire",
          "correct": false,
          "feedback": "Un processus utilise de la\nmémoire, mais il n'est pas\nlui-même un type de\nmémoire.\n"
        }
      ],
      "explanation": "Il faut bien distinguer la\nnotion de **programme** (un\nfichier sur le disque) de\ncelle de **processus** (une\ninstance en cours d'exécution).\nSous Linux, on utilise les\ncommandes `ps` ou `top` pour\nafficher la liste des\nprocessus ; sous Windows, on\nouvre le Gestionnaire des\ntâches."
    },
    {
      "id": "q04",
      "difficulty": 1,
      "skills": [
        "memoire"
      ],
      "title": "Gestion de la mémoire",
      "statement": "Pourquoi le système\nd'exploitation gère-t-il la\n**mémoire** ?",
      "options": [
        {
          "text": "Pour nettoyer la mémoire chaque jour",
          "correct": false,
          "feedback": "Le système d'exploitation\nn'effectue aucun nettoyage\nrégulier programmé. Il\nalloue et libère la\nmémoire au fil des besoins\ndes processus.\n"
        },
        {
          "text": "Pour allouer de la mémoire à chaque processus, isoler les processus entre eux pour la sécurité, et partager efficacement la mémoire vive disponible",
          "correct": true,
          "feedback": "Sans isolation, un processus\npourrait lire ou écrire\ndans la mémoire d'un autre\nprocessus, ce qui créerait\ndes bugs et des failles de\nsécurité majeures. Le\nsystème d'exploitation\nempêche précisément cela.\n"
        },
        {
          "text": "Pour augmenter la capacité physique de la mémoire",
          "correct": false,
          "feedback": "La capacité physique de la\nmémoire est fixée par le\nmatériel. Le système\nd'exploitation peut\nsimuler une mémoire plus\ngrande grâce au mécanisme\nde mémoire virtuelle, mais\nil ne change pas la\ncapacité physique.\n"
        },
        {
          "text": "Pour rendre la mémoire plus rapide d'accès",
          "correct": false,
          "feedback": "La rapidité de la mémoire\nest une caractéristique\nmatérielle. Le rôle du\nsystème d'exploitation est\nd'organiser son\nutilisation, et non de\nmodifier ses performances\nintrinsèques.\n"
        }
      ],
      "explanation": "Le mécanisme clé est celui de\nla **mémoire virtuelle**.\nChaque processus voit un\nespace mémoire continu qui\nlui est propre, alors que cet\nespace est en réalité projeté\nsur la mémoire physique par\nle système d'exploitation\n(techniques de segmentation\nou de pagination)."
    },
    {
      "id": "q05",
      "difficulty": 1,
      "skills": [
        "fichiers"
      ],
      "title": "Système de fichiers",
      "statement": "Que permet un **système de\nfichiers** ?",
      "options": [
        {
          "text": "D'envoyer des courriels",
          "correct": false,
          "feedback": "L'envoi de courriels relève\ndes protocoles réseau\ncomme SMTP, et n'a aucun\nrapport avec un système\nde fichiers.\n"
        },
        {
          "text": "De compresser les données stockées",
          "correct": false,
          "feedback": "Certains systèmes de\nfichiers peuvent\ncompresser les données,\nmais ce n'est pas leur\nfonction principale. Leur\nrôle premier est\nl'organisation.\n"
        },
        {
          "text": "De jouer de la musique",
          "correct": false,
          "feedback": "La lecture de musique est\nune fonction d'application,\nsans rapport avec un\nsystème de fichiers (qui\nse contente de stocker les\nfichiers concernés).\n"
        },
        {
          "text": "D'organiser les données stockées sur un support (disque dur, disque à mémoire flash) sous forme de fichiers et de dossiers",
          "correct": true,
          "feedback": "Sans système de fichiers,\nun disque ne serait qu'une\nlongue suite d'octets. Le\nsystème de fichiers\nstructure ces octets en\nnoms, chemins, hiérarchies,\npermissions et dates.\n"
        }
      ],
      "explanation": "Quelques exemples de systèmes\nde fichiers : NTFS (Windows),\next4 (Linux), APFS (macOS),\nFAT32 (clés USB), exFAT (gros\nvolumes). Chacun possède ses\npropres caractéristiques,\ncomme la taille maximale ou\nla journalisation."
    },
    {
      "id": "q06",
      "difficulty": 1,
      "skills": [
        "peripheriques"
      ],
      "title": "Accès aux périphériques",
      "statement": "Comment un programme accède-t-il\nà un **périphérique** comme une\nimprimante, une caméra ou un\nmicrophone ?",
      "options": [
        {
          "text": "Directement, en parlant au matériel",
          "correct": false,
          "feedback": "Cette approche serait\nimpraticable : chaque\nprogramme devrait connaître\nle détail de chaque modèle\nde matériel existant.\n"
        },
        {
          "text": "En débranchant et en rebranchant l'appareil",
          "correct": false,
          "feedback": "Le débranchement n'a aucun\nrapport avec l'accès\nlogiciel à un\npériphérique.\n"
        },
        {
          "text": "Par l'intermédiaire d'une carte mémoire amovible",
          "correct": false,
          "feedback": "Une carte mémoire est\nelle-même un\npériphérique, mais elle\nn'a aucun rapport avec\nl'accès à d'autres\npériphériques.\n"
        },
        {
          "text": "Par l'intermédiaire du système d'exploitation, qui fournit une interface uniforme grâce à des pilotes",
          "correct": true,
          "feedback": "Le pilote traduit les\nappels génériques du\nsystème d'exploitation en\ncommandes spécifiques au\nmatériel. C'est un\nmécanisme d'abstraction\ntrès puissant.\n"
        }
      ],
      "explanation": "Sous Unix, on adopte le\nprincipe « tout est fichier » :\nles périphériques sont\naccessibles par\nl'intermédiaire de fichiers\nspéciaux situés dans le\ndossier `/dev`, comme\n`/dev/sda` pour un disque ou\n`/dev/audio` pour la sortie\naudio."
    },
    {
      "id": "q07",
      "difficulty": 1,
      "skills": [
        "noyau"
      ],
      "title": "Noyau d'un système d'exploitation",
      "statement": "Qu'est-ce que le **noyau** d'un\nsystème d'exploitation ?",
      "options": [
        {
          "text": "Le centre du processeur",
          "correct": false,
          "feedback": "Cette description évoque\nplutôt le « cœur » d'un\nprocesseur multi-cœurs,\nnotion matérielle sans\nrapport avec le noyau d'un\nsystème d'exploitation.\n"
        },
        {
          "text": "Une partie du processeur",
          "correct": false,
          "feedback": "Le noyau est un logiciel,\net non un composant\nmatériel du processeur.\n"
        },
        {
          "text": "La partie centrale et privilégiée du système d'exploitation, qui contrôle directement le matériel et fait l'interface avec les applications",
          "correct": true,
          "feedback": "Le noyau s'exécute en\n**mode noyau**, qui dispose\nde toutes les permissions.\nLes applications, elles,\ns'exécutent en **mode\nutilisateur**, avec des\npermissions limitées.\n"
        },
        {
          "text": "Une application graphique",
          "correct": false,
          "feedback": "Le noyau n'a pas\nd'interface graphique.\nC'est au contraire un\ncomposant logiciel de bas\nniveau, sans interaction\ndirecte avec\nl'utilisateur.\n"
        }
      ],
      "explanation": "Linus Torvalds a créé le noyau\nLinux en $1991$. Une\ndistribution complète comme\nUbuntu ou Debian ajoute de\nnombreux outils autour de ce\nnoyau : interpréteur de\ncommandes, bibliothèques,\ngestionnaire de paquets,\ninterface graphique."
    },
    {
      "id": "q08",
      "difficulty": 1,
      "skills": [
        "multitache"
      ],
      "title": "Exécution multitâche",
      "statement": "Comment un système\nd'exploitation parvient-il à\nexécuter **plusieurs programmes\nen même temps** sur un\nprocesseur monocœur ?",
      "options": [
        {
          "text": "Cette exécution simultanée est techniquement impossible",
          "correct": false,
          "feedback": "C'est précisément ce que\nréalise tout système\nd'exploitation moderne,\ncomme expliqué dans la\nbonne réponse.\n"
        },
        {
          "text": "Par commutation rapide de contexte : le système alterne entre les processus toutes les quelques millisecondes, donnant l'illusion d'un parallélisme",
          "correct": true,
          "feedback": "On parle de\n**partage de temps**.\nAvec plusieurs cœurs, on\najoute en plus du\n**vrai** parallélisme.\n"
        },
        {
          "text": "En ignorant tous les programmes sauf un",
          "correct": false,
          "feedback": "Cette description correspond\nau mode monotâche, qui\nn'existe plus depuis\nlongtemps dans les systèmes\nd'exploitation modernes.\n"
        },
        {
          "text": "En les fusionnant en un seul",
          "correct": false,
          "feedback": "Aucune fusion n'est\nréalisée. Les programmes\nrestent indépendants ;\nc'est leur exécution qui\nest entrelacée.\n"
        }
      ],
      "explanation": "Vocabulaire associé :\nl'**ordonnanceur** est le\ncomposant du noyau qui décide\nquel processus s'exécute à\nchaque instant. Plusieurs\nstratégies existent : tour de\nrôle, priorité, etc."
    },
    {
      "id": "q09",
      "difficulty": 1,
      "skills": [
        "permissions"
      ],
      "title": "Permissions sur les fichiers",
      "statement": "Pourquoi un système\nd'exploitation gère-t-il des\n**permissions** sur les fichiers ?",
      "options": [
        {
          "text": "Pour ranger les fichiers par couleur",
          "correct": false,
          "feedback": "Les permissions sont une\nnotion de sécurité, sans\nrapport avec un\nquelconque classement\nesthétique.\n"
        },
        {
          "text": "Pour compresser les fichiers",
          "correct": false,
          "feedback": "La compression est une\nautre fonctionnalité,\ngérée séparément des\npermissions.\n"
        },
        {
          "text": "Pour gagner de l'espace de stockage",
          "correct": false,
          "feedback": "Les permissions occupent\nune place négligeable et\nn'ont aucun rapport avec\nl'économie d'espace.\n"
        },
        {
          "text": "Pour la sécurité : limiter qui peut lire, écrire ou exécuter chaque fichier (utilisateur propriétaire, groupe, autres utilisateurs)",
          "correct": true,
          "feedback": "Cette gestion empêche un\nutilisateur d'accéder aux\nfichiers d'un autre, ou\nd'altérer les fichiers\nsystème. Elle est\nindispensable sur les\nserveurs partagés entre\nplusieurs utilisateurs.\n"
        }
      ],
      "explanation": "Sous Unix, la commande\n`chmod` modifie les\npermissions, et la commande\n`chown` change le\npropriétaire d'un fichier.\nUne notation classique des\npermissions est `rwxr-xr--`,\noù chaque triplet décrit les\ndroits du propriétaire, du\ngroupe et des autres\nutilisateurs."
    },
    {
      "id": "q10",
      "difficulty": 1,
      "skills": [
        "exemple-mobile"
      ],
      "title": "Systèmes d'exploitation mobiles",
      "statement": "Quels sont aujourd'hui les\n**deux principaux systèmes\nd'exploitation mobiles** ?",
      "options": [
        {
          "text": "Windows et macOS",
          "correct": false,
          "feedback": "Ce sont des systèmes\nd'exploitation pour\nordinateurs de bureau,\npas pour téléphones\nmobiles.\n"
        },
        {
          "text": "Android et iOS",
          "correct": true,
          "feedback": "Android domine largement\nle marché (environ $70 \\%$\ndes parts de marché\nmondiales) ; il repose\nsur un noyau Linux. iOS,\nd'Apple, occupe environ\n$28 \\%$ du marché ; il\nrepose sur Darwin, lui-même\ndérivé d'Unix.\n"
        },
        {
          "text": "Symbian et BlackBerry OS",
          "correct": false,
          "feedback": "Ces systèmes ont quasi\ndisparu du marché\naujourd'hui. Ils étaient\ndominants dans les\nannées $2000$, mais ont\nété éclipsés par Android\net iOS.\n"
        },
        {
          "text": "Linux et BSD",
          "correct": false,
          "feedback": "Linux est le **noyau**\nd'Android, mais Android\nn'est pas qu'un Linux :\nc'est tout un système\nmobile bâti par-dessus.\nQuant à BSD, son usage\nsur mobile reste très\nmarginal.\n"
        }
      ],
      "explanation": "Android et iOS dominent\nquasiment tout le marché.\nTous deux dérivent\nd'ancêtres de la famille\nUnix, à travers des couches\nd'abstraction différentes."
    },
    {
      "id": "q11",
      "difficulty": 2,
      "skills": [
        "memoire-virtuelle"
      ],
      "title": "Mémoire virtuelle",
      "statement": "Qu'est-ce que la **mémoire\nvirtuelle** ?",
      "options": [
        {
          "text": "De la mémoire qui n'existerait pas vraiment",
          "correct": false,
          "feedback": "La mémoire virtuelle est\nun mécanisme bien réel,\nqui repose sur une\ncorrespondance entre des\nadresses logiques et des\nadresses physiques.\n"
        },
        {
          "text": "Un mécanisme par lequel chaque processus voit un espace mémoire propre et continu, projeté par le système d'exploitation sur la mémoire physique (avec parfois extension sur le disque, le fichier d'échange)",
          "correct": true,
          "feedback": "Ce mécanisme permet\nl'**isolation** entre\nprocessus et autorise\nl'utilisation de plus de\nmémoire que la mémoire\nphysique disponible (au\nprix d'un ralentissement\nquand le système doit\néchanger des données\nentre la mémoire et le\ndisque).\n"
        },
        {
          "text": "Une mémoire partagée à travers le réseau",
          "correct": false,
          "feedback": "La mémoire virtuelle est\nune notion locale à une\nmachine, sans rapport\navec le réseau.\n"
        },
        {
          "text": "Une partition cachée sur le disque dur",
          "correct": false,
          "feedback": "Le fichier d'échange\n(*swap*) est\neffectivement stocké sur\nle disque, mais il ne\nconstitue qu'une petite\npartie du concept de\nmémoire virtuelle.\n"
        }
      ],
      "explanation": "Le mécanisme clé est la\n**pagination** : la mémoire\nest divisée en pages\n(typiquement de quatre\nkibioctets). Le système\nd'exploitation maintient\npour chaque processus une\ntable des pages qui projette\nles adresses virtuelles sur\nles adresses physiques."
    },
    {
      "id": "q12",
      "difficulty": 2,
      "skills": [
        "scheduler"
      ],
      "title": "Ordonnanceur",
      "statement": "Quel composant du système\nd'exploitation décide **quel\nprocessus** s'exécute à un\nmoment donné ?",
      "options": [
        {
          "text": "Le pilote",
          "correct": false,
          "feedback": "Un pilote sert à faire la\nmédiation avec le\nmatériel, et non à\nchoisir quel processus\ns'exécute.\n"
        },
        {
          "text": "L'ordonnanceur",
          "correct": true,
          "feedback": "C'est un composant clé du\nnoyau. Plusieurs\nstratégies existent :\ntour de rôle,\npriorité, etc. Sous\nLinux, l'ordonnanceur en\nplace est appelé\n*Completely Fair\nScheduler*.\n"
        },
        {
          "text": "La table de hachage",
          "correct": false,
          "feedback": "Une table de hachage est\nune structure de\ndonnées utilisée\nnotamment par les\ndictionnaires Python,\nsans rapport avec\nl'ordonnancement des\nprocessus.\n"
        },
        {
          "text": "Le gestionnaire de fichiers",
          "correct": false,
          "feedback": "Le gestionnaire de\nfichiers se charge de\nl'organisation des\nfichiers sur le disque,\npas de l'ordonnancement\ndes processus.\n"
        }
      ],
      "explanation": "Les critères classiques d'un\nordonnanceur sont l'équité,\nla priorité, la latence\n(temps de réaction\nperçu par l'utilisateur) et\nle débit. Le compromis\nentre ces critères dépend\ndu type de système\nd'exploitation : temps réel,\nserveur, bureau ou\nembarqué."
    },
    {
      "id": "q13",
      "difficulty": 2,
      "skills": [
        "shell"
      ],
      "title": "Interpréteur de commandes",
      "statement": "Qu'est-ce qu'un **interpréteur\nde commandes** ?",
      "options": [
        {
          "text": "Un programme qui constitue une interface en mode texte entre l'utilisateur et le système d'exploitation, par exemple Bash, Zsh ou PowerShell",
          "correct": true,
          "feedback": "L'utilisateur tape des\ncommandes (`ls`, `cd`,\n`cp`, etc.) que\nl'interpréteur exécute.\nCet outil est très\npuissant pour\nl'automatisation, grâce\naux scripts.\n"
        },
        {
          "text": "Un protocole réseau",
          "correct": false,
          "feedback": "Cette description peut\névoquer le protocole SSH\n(*Secure Shell*), mais\nun interpréteur de\ncommandes est un\nprogramme local, et non\nun protocole réseau.\n"
        },
        {
          "text": "Un fichier exécutable quelconque",
          "correct": false,
          "feedback": "Un interpréteur de\ncommandes est bien un\nprogramme, mais c'est un\nprogramme particulier,\ndédié à l'interprétation\ndes commandes saisies\npar l'utilisateur.\n"
        },
        {
          "text": "Un type particulier de mémoire",
          "correct": false,
          "feedback": "Un interpréteur de\ncommandes est un\nprogramme, et non un\ntype de mémoire.\n"
        }
      ],
      "explanation": "Sous Linux ou macOS,\nl'interpréteur le plus\ncourant est Bash, suivi de\nZsh ou Fish. Sous Windows,\non dispose de l'invite de\ncommande historique, de\nPowerShell, ou du\nsous-système Linux pour\nWindows. Les scripts\nécrits dans ces\ninterpréteurs permettent\nd'automatiser de nombreuses\ntâches répétitives."
    },
    {
      "id": "q14",
      "difficulty": 2,
      "skills": [
        "logiciel-libre"
      ],
      "title": "Linux et logiciel libre",
      "statement": "Quelle particularité\ndistingue **Linux** des autres\ngrands systèmes\nd'exploitation ?",
      "options": [
        {
          "text": "Il est plus rapide à l'exécution",
          "correct": false,
          "feedback": "Cette affirmation est\nimprécise et n'est pas\nvraie de manière\nuniverselle. La\nperformance dépend\nfortement du contexte\nd'utilisation.\n"
        },
        {
          "text": "Il est libre et à code source ouvert : son code est librement consultable, modifiable et redistribuable, sous licence GPL",
          "correct": true,
          "feedback": "C'est une différence\nphilosophique majeure.\nLinux a été créé par\nLinus Torvalds en\n$1991$. Il est\naujourd'hui omniprésent :\nserveurs,\nsuper-calculateurs,\ntéléphones (via\nAndroid), objets\nconnectés.\n"
        },
        {
          "text": "Il fonctionne sans aucun matériel",
          "correct": false,
          "feedback": "Comme tout système\nd'exploitation, Linux\nrequiert du matériel\npour s'exécuter.\n"
        },
        {
          "text": "Il ne possède pas de noyau",
          "correct": false,
          "feedback": "Au contraire : Linux est\nprécisément un noyau de\nsystème d'exploitation.\n"
        }
      ],
      "explanation": "Le logiciel **libre** au\nsens des quatre libertés\nde la *Free Software\nFoundation* est plus\ncontraint que le simple\nlogiciel à code source\nouvert. Les deux notions\nse confondent souvent dans\nla pratique. Cette\nouverture favorise\nl'innovation collaborative."
    },
    {
      "id": "q15",
      "difficulty": 2,
      "skills": [
        "boot"
      ],
      "title": "Démarrage d'un ordinateur",
      "statement": "Que se passe-t-il quand on\n**démarre** un ordinateur ?",
      "options": [
        {
          "text": "Rien de particulier",
          "correct": false,
          "feedback": "De nombreuses étapes\ns'enchaînent au\ndémarrage, comme\ndétaillé dans la\nbonne réponse.\n"
        },
        {
          "text": "Le système d'exploitation se met automatiquement à jour",
          "correct": false,
          "feedback": "La mise à jour n'est pas\nsystématique au\ndémarrage. Elle peut\nintervenir\nponctuellement, selon\nles configurations.\n"
        },
        {
          "text": "Le système d'exploitation s'éteint",
          "correct": false,
          "feedback": "Cette interprétation est\ncontradictoire avec\nl'idée même de\ndémarrage.\n"
        },
        {
          "text": "Le BIOS (ou UEFI) initialise le matériel, puis charge le chargeur d'amorçage, qui charge le noyau du système, lequel démarre les services et l'interface utilisateur",
          "correct": true,
          "feedback": "Cette séquence en chaîne\nva du BIOS au chargeur\nd'amorçage, puis au\nnoyau, à l'`init` et\nenfin à l'interpréteur\nde commandes ou à\nl'interface graphique.\nCette organisation\npermet une grande\nflexibilité (par\nexemple, le démarrage\nalternatif entre\nplusieurs systèmes).\n"
        }
      ],
      "explanation": "Quelques chargeurs\nd'amorçage connus : GRUB\n(sous Linux) ou le\ngestionnaire d'amorçage\nWindows. La technologie\nUEFI a remplacé l'ancien\nBIOS sur les machines\nmodernes."
    },
    {
      "id": "q16",
      "difficulty": 2,
      "skills": [
        "api-syscalls"
      ],
      "title": "Appels système",
      "statement": "Comment une application\ndemande-t-elle un service au\nnoyau, par exemple pour lire\nun fichier ?",
      "options": [
        {
          "text": "Elle envoie un courriel au noyau",
          "correct": false,
          "feedback": "Cette interprétation est\nfantaisiste : aucun\nmécanisme de\nmessagerie électronique\nn'intervient ici.\n"
        },
        {
          "text": "Elle redémarre le système",
          "correct": false,
          "feedback": "Le redémarrage est une\nopération extrême et\nn'a aucun rapport avec\nla demande d'un\nservice au noyau.\n"
        },
        {
          "text": "Elle accède directement au matériel",
          "correct": false,
          "feedback": "Cet accès direct est\ninterdit par le\nmécanisme d'isolation,\nprécisément pour des\nraisons de sécurité.\n"
        },
        {
          "text": "Par l'intermédiaire d'un appel système, qui fait passer brièvement l'exécution en mode noyau le temps de réaliser le service, puis revient en mode utilisateur",
          "correct": true,
          "feedback": "C'est une interface\ncontrôlée entre les\napplications et le\nnoyau. Quelques\nexemples : `read`,\n`write`, `open` ou\n`fork`. En Python, la\nfonction `open` utilise\nplusieurs de ces\nappels en interne.\n"
        }
      ],
      "explanation": "La distinction entre\napplication et noyau\nrepose sur des\npermissions différentes.\nL'appel système est un\n« point de passage »\ncontrôlé qui élève\ntemporairement les\npermissions, ce qui\ngarantit la sécurité\nd'ensemble."
    },
    {
      "id": "q17",
      "difficulty": 2,
      "skills": [
        "systeme-temps-reel"
      ],
      "title": "Système temps réel",
      "statement": "Qu'est-ce qu'un système\nd'exploitation **temps réel** ?",
      "options": [
        {
          "text": "Un système qui garantit des temps de réponse prévisibles, indispensable pour l'embarqué critique : freinage automobile, avionique, contrôle industriel",
          "correct": true,
          "feedback": "On distingue le **temps\nréel dur** (avec des\néchéances strictes\nimpossibles à manquer)\net le **temps réel\nmou** (au mieux).\nQuelques systèmes\ntemps réel connus :\nVxWorks, RTLinux,\nFreeRTOS.\n"
        },
        {
          "text": "Un système d'exploitation très rapide",
          "correct": false,
          "feedback": "La rapidité brute\nn'est pas le critère.\n« Temps réel » signifie\nsurtout\n**prévisibilité** des\ndélais d'exécution.\n"
        },
        {
          "text": "Un système sans interface graphique",
          "correct": false,
          "feedback": "La présence ou non\nd'une interface\ngraphique n'a aucun\nrapport direct avec la\nnotion de temps réel.\n"
        },
        {
          "text": "Un système qui affiche l'heure courante",
          "correct": false,
          "feedback": "Tous les systèmes\nd'exploitation affichent\nl'heure courante. Ce\nn'est pas la\ncaractéristique d'un\nsystème temps réel.\n"
        }
      ],
      "explanation": "Linux et Windows ne sont\n**pas** des systèmes\nd'exploitation temps réel.\nPour piloter un cœur\nartificiel, par exemple,\non n'utilise pas Windows\nen raison de son\nimprévisibilité\nponctuelle."
    },
    {
      "id": "q18",
      "difficulty": 2,
      "skills": [
        "systeme-fichiers-arbre"
      ],
      "title": "Arborescence des fichiers",
      "statement": "Comment un **système de\nfichiers** est-il\ngénéralement organisé ?",
      "options": [
        {
          "text": "Sous forme d'une table à deux dimensions",
          "correct": false,
          "feedback": "Une organisation en\ntable serait beaucoup\ntrop limitée pour des\nmilliers ou des\nmillions de fichiers.\n"
        },
        {
          "text": "De manière aléatoire",
          "correct": false,
          "feedback": "Une organisation\naléatoire ne\npermettrait pas de\nretrouver un fichier\nde manière fiable.\n"
        },
        {
          "text": "Sous forme d'arbre, c'est-à-dire d'une hiérarchie de dossiers et de sous-dossiers, avec une racine",
          "correct": true,
          "feedback": "Sous Linux et macOS,\non a une seule racine\nnotée `/`. Sous\nWindows, on a une\nracine par lecteur,\ncomme `C:\\` ou `D:\\`.\n"
        },
        {
          "text": "Sous forme d'une grande liste plate",
          "correct": false,
          "feedback": "Cette organisation\nserait très difficile\nà parcourir au-delà\nde quelques dizaines\nde fichiers.\n"
        }
      ],
      "explanation": "Vocabulaire associé : un\n**chemin absolu** part de\nla racine, par exemple\n`/home/alice/doc.txt`,\ntandis qu'un **chemin\nrelatif** part du dossier\ncourant, par exemple\n`../doc.txt`."
    },
    {
      "id": "q19",
      "difficulty": 2,
      "skills": [
        "ressources-partage"
      ],
      "title": "Partage de ressources",
      "statement": "Pourquoi deux processus ne\npeuvent-ils pas écrire\n**simultanément** dans le\nmême fichier sans\nprécaution ?",
      "options": [
        {
          "text": "Parce que les écritures peuvent se mélanger, ce qui crée des courses critiques et conduit à des données corrompues",
          "correct": true,
          "feedback": "Ces bugs sont\ndifficiles à\nreproduire. Pour les\néviter, on utilise\ndes verrous (mutex,\nverrous de fichier)\nou des structures\natomiques.\n"
        },
        {
          "text": "Parce que le disque dur ne le permet pas",
          "correct": false,
          "feedback": "Techniquement, le\ndisque accepte les\nécritures\nsuccessives. Le\nproblème est plutôt\nd'ordre logique :\nles écritures peuvent\nse mélanger si elles\nne sont pas\ncoordonnées.\n"
        },
        {
          "text": "Parce que c'est interdit par la loi",
          "correct": false,
          "feedback": "Cette interprétation\njuridique n'a aucun\nrapport avec la\nquestion technique.\n"
        },
        {
          "text": "Aucun risque n'est associé à cette situation",
          "correct": false,
          "feedback": "Les risques de\ncorruption de\ndonnées sont au\ncontraire bien\nréels, comme expliqué\ndans la bonne\nréponse.\n"
        }
      ],
      "explanation": "La notion essentielle\nest la\n**synchronisation** :\nlorsque plusieurs\nprocessus ou plusieurs\nfils d'exécution\naccèdent à une ressource\npartagée, il faut\nsérialiser les accès\ncritiques pour garantir\nla cohérence."
    },
    {
      "id": "q20",
      "difficulty": 2,
      "skills": [
        "virtualisation"
      ],
      "title": "Machine virtuelle",
      "statement": "Qu'est-ce qu'une **machine\nvirtuelle** ?",
      "options": [
        {
          "text": "Un programme antivirus",
          "correct": false,
          "feedback": "Un antivirus protège\ncontre les logiciels\nmalveillants, ce qui\nest sans rapport\navec la virtualisation.\n"
        },
        {
          "text": "Une simulation d'un ordinateur complet (avec son propre système d'exploitation) à l'intérieur d'un autre, ce qui permet d'exécuter plusieurs systèmes sur une même machine physique",
          "correct": true,
          "feedback": "Les machines\nvirtuelles sont très\nutiles pour le\ndéveloppement, les\ntests, la sécurité\net l'informatique en\nnuage. Quelques\nlogiciels populaires :\nVirtualBox, VMware,\nKVM, Hyper-V.\n"
        },
        {
          "text": "Un ordinateur qui n'existe pas réellement",
          "correct": false,
          "feedback": "Cette description est\nimprécise. La machine\nvirtuelle est une\nsimulation, comme\ndétaillé dans la\nbonne réponse.\n"
        },
        {
          "text": "Une carte graphique particulière",
          "correct": false,
          "feedback": "Une carte graphique\nest un composant\nmatériel, sans\nrapport avec la\nvirtualisation\nlogicielle.\n"
        }
      ],
      "explanation": "Plusieurs variantes\nexistent : la machine\nvirtuelle complète\n(qui simule l'intégralité\nd'un ordinateur, donc\nassez lourde) et le\n**conteneur** (plus\nléger, qui partage le\nnoyau de l'hôte). Docker\nest l'outil de\nréférence pour les\nconteneurs. L'informatique\nen nuage moderne repose\nlargement sur ces\ntechnologies."
    },
    {
      "id": "q21",
      "difficulty": 3,
      "skills": [
        "thread-vs-processus"
      ],
      "title": "Fil d'exécution et processus",
      "statement": "Quelle est la différence\nentre un **fil d'exécution**\net un **processus** ?",
      "options": [
        {
          "text": "Un processus possède sa propre mémoire (forte isolation), tandis que plusieurs fils d'exécution d'un même processus partagent la mémoire (plus léger, mais aussi plus risqué)",
          "correct": true,
          "feedback": "Les fils d'exécution\npermettent un\nparallélisme fin\npartageant les\ndonnées ; les\nprocessus offrent\nune forte isolation.\nC'est un compromis\nclassique en\nconception\nlogicielle.\n"
        },
        {
          "text": "Un fil d'exécution est plus lent qu'un processus",
          "correct": false,
          "feedback": "C'est en général\nl'inverse : un fil\nd'exécution est plus\nléger qu'un\nprocessus, car il\npartage la mémoire\nplutôt que d'avoir\nla sienne propre.\n"
        },
        {
          "text": "Le concept de processus n'existe que sous Linux",
          "correct": false,
          "feedback": "Tous les systèmes\nd'exploitation\nmodernes manipulent\ndes processus.\n"
        },
        {
          "text": "Aucune différence",
          "correct": false,
          "feedback": "Une distinction\nimportante existe\nentre ces deux\nnotions, comme\nexpliqué dans la\nbonne réponse.\n"
        }
      ],
      "explanation": "Le multithreading est\nutile pour les calculs\nparallélisables ne\nnécessitant pas\nd'isolation forte\n(calcul scientifique,\nanimations). Le\nmultiprocessing convient\npour les services\nisolés (serveurs Web,\nbases de données)."
    },
    {
      "id": "q22",
      "difficulty": 3,
      "skills": [
        "interruption"
      ],
      "title": "Interruption",
      "statement": "Qu'est-ce qu'une\n**interruption** dans un\nsystème d'exploitation ?",
      "options": [
        {
          "text": "Une erreur fatale du programme",
          "correct": false,
          "feedback": "Une erreur fatale\npeut effectivement\ndéclencher une\ninterruption, mais le\nterme « interruption »\nrecouvre aussi de\nnombreux cas qui ne\nsont pas des\nerreurs.\n"
        },
        {
          "text": "Une coupure de courant",
          "correct": false,
          "feedback": "Une coupure de\ncourant peut être une\ncause matérielle\nd'arrêt, mais le\nterme « interruption »\nen informatique a un\nsens plus large et\nplus technique.\n"
        },
        {
          "text": "La fin normale d'un programme",
          "correct": false,
          "feedback": "La fin normale\nd'un programme n'est\npas appelée une\ninterruption.\n"
        },
        {
          "text": "Un signal envoyé au processeur, par le matériel ou par un programme, qui suspend le travail en cours pour exécuter un gestionnaire approprié",
          "correct": true,
          "feedback": "C'est un mécanisme\nessentiel pour\nréagir aux\névénements (touche\nappuyée, paquet\nréseau reçu,\nminuteur expiré, etc.)\nsans avoir à les\nsurveiller en\npermanence.\n"
        }
      ],
      "explanation": "Il faut distinguer les\n**interruptions\nmatérielles** (signalées\npar les périphériques)\net les **interruptions\nlogicielles** (appels\nsystème, erreurs\narithmétiques, etc.). Le\nsystème d'exploitation\ndéfinit un\n« gestionnaire » pour\nchaque type\nd'interruption."
    },
    {
      "id": "q23",
      "difficulty": 3,
      "skills": [
        "permissions-unix"
      ],
      "title": "Permissions sous Unix",
      "statement": "Sous Unix, que signifie\nla chaîne de permissions\n`rwxr-xr--` ?",
      "options": [
        {
          "text": "Tous les utilisateurs peuvent tout faire",
          "correct": false,
          "feedback": "Cette description est\ninexacte. Les droits\nsont précisément\nspécifiés selon\nl'utilisateur,\ncomme détaillé dans\nla bonne réponse.\n"
        },
        {
          "text": "Le propriétaire a les droits de lecture, d'écriture et d'exécution (`rwx`) ; le groupe a les droits de lecture et d'exécution (`r-x`) ; les autres utilisateurs ont seulement le droit de lecture (`r--`)",
          "correct": true,
          "feedback": "La chaîne se lit en\ntrois triplets, qui\ncorrespondent aux\ntrois catégories\nd'utilisateurs. La\nnotation octale\néquivalente est\n$754$ ($4$ pour la\nlecture, $2$ pour\nl'écriture, $1$ pour\nl'exécution).\n"
        },
        {
          "text": "Tout le monde peut exécuter le fichier",
          "correct": false,
          "feedback": "Le caractère `x`\nn'apparaît que pour\nle propriétaire et\nle groupe. Les\nautres utilisateurs\nne peuvent pas\nexécuter le\nfichier.\n"
        },
        {
          "text": "Personne ne peut lire le fichier",
          "correct": false,
          "feedback": "Le caractère `r`\napparaît dans\nchacun des trois\ntriplets : tous les\nutilisateurs peuvent\nlire le fichier.\n"
        }
      ],
      "explanation": "La commande `chmod`\nmodifie les permissions :\n`chmod 755 fichier` ou\n`chmod u+x fichier` pour\najouter le droit\nd'exécution au\npropriétaire. Cette\ncommande est très\nutilisée dans la\npratique."
    },
    {
      "id": "q24",
      "difficulty": 3,
      "skills": [
        "securite-isolation"
      ],
      "title": "Isolation des processus",
      "statement": "Pourquoi l'**isolation**\ndes processus est-elle\ncruciale pour la sécurité ?",
      "options": [
        {
          "text": "Pour faciliter la copie de fichiers",
          "correct": false,
          "feedback": "C'est plutôt\nl'inverse :\nl'isolation rend la\ncopie entre\nprocessus plus\ndélicate, car elle\nempêche l'accès\ndirect.\n"
        },
        {
          "text": "Pour empêcher qu'un programme malveillant ou simplement bogué accède à la mémoire ou aux fichiers d'autres processus, et puisse compromettre l'ensemble du système",
          "correct": true,
          "feedback": "Si un processus de\nnavigation\ncompromis pouvait\nlire les mots de\npasse d'autres\napplications, ce\nserait\ncatastrophique. Le\nsystème\nd'exploitation\nassure cette\nisolation grâce à\nla mémoire\nvirtuelle, aux\npermissions, aux\nespaces de noms et\naux conteneurs.\n"
        },
        {
          "text": "Pour rendre les programmes plus rapides",
          "correct": false,
          "feedback": "La rapidité n'est\npas le but de\nl'isolation. Au\ncontraire, isoler\nles processus a un\nléger coût en\nperformance.\n"
        },
        {
          "text": "Pour économiser de l'électricité",
          "correct": false,
          "feedback": "La consommation\nélectrique n'est\npas reliée à\nl'isolation.\n"
        }
      ],
      "explanation": "Plusieurs couches\nd'isolation existent :\nla mémoire virtuelle, les\npermissions sur les\nfichiers, les espaces de\nnoms, les bacs à sable\n(utilisés par exemple\ndans les navigateurs),\nles conteneurs Docker et\nles machines virtuelles."
    },
    {
      "id": "q25",
      "difficulty": 3,
      "skills": [
        "synthese"
      ],
      "title": "Synthèse",
      "statement": "Parmi les affirmations\nsuivantes sur les\nsystèmes d'exploitation,\nlaquelle est **fausse** ?",
      "options": [
        {
          "text": "Le rôle d'un système d'exploitation est de gérer les processus, la mémoire, les fichiers et les périphériques",
          "correct": false,
          "feedback": "Cette affirmation est\ncorrecte. Ce sont\nprécisément les\nmissions principales\nd'un système\nd'exploitation.\n"
        },
        {
          "text": "Une application accède directement au matériel sans passer par le système d'exploitation",
          "correct": true,
          "feedback": "Cette affirmation est\nfausse (donc c'est la\nbonne réponse). C'est\nprécisément l'inverse :\ntoutes les\napplications passent\npar le système\nd'exploitation, via\nles appels système,\npour accéder au\nmatériel. Cela\ngarantit l'isolation\net la sécurité de\nl'ensemble.\n"
        },
        {
          "text": "La virtualisation permet d'exécuter plusieurs systèmes d'exploitation sur une même machine physique",
          "correct": false,
          "feedback": "Cette affirmation est\ncorrecte. C'est l'une\ndes technologies\nfondamentales de\nl'informatique en\nnuage actuelle.\n"
        },
        {
          "text": "Linux est un noyau de système d'exploitation libre",
          "correct": false,
          "feedback": "Cette affirmation est\ncorrecte. Linux a\nété créé par Linus\nTorvalds en $1991$\net est diffusé sous\nlicence GPL.\n"
        }
      ],
      "explanation": "Une maxime architecturale :\n« tout passe par le\nsystème d'exploitation ».\nCe principe d'indirection\nest ce qui garantit la\nsécurité, la portabilité\net la modularité des\nprogrammes."
    },
    {
      "id": "q26",
      "difficulty": 2,
      "skills": [
        "mode-noyau",
        "mode-utilisateur",
        "securite"
      ],
      "title": "Mode utilisateur et mode noyau",
      "statement": "Un processeur moderne distingue deux modes d'exécution :\nle **mode utilisateur** et le **mode noyau**. Quelle est\nla différence essentielle entre les deux ?",
      "options": [
        {
          "text": "Le mode noyau permet d'accéder à toutes les ressources matérielles, tandis que le mode utilisateur restreint l'accès à la mémoire et aux périphériques",
          "correct": true,
          "feedback": "Bonne réponse : le mode noyau donne au système\nd'exploitation un contrôle total sur la machine\n(mémoire, processeur, périphériques). Le mode\nutilisateur, au contraire, isole chaque application\ndans une « bulle » contrôlée, ce qui empêche un\nprogramme défaillant d'endommager le système ou\nd'autres programmes.\n"
        },
        {
          "text": "Le mode noyau ne fonctionne que sur Linux",
          "correct": false,
          "feedback": "Erreur : la distinction utilisateur/noyau existe sur\ntous les systèmes d'exploitation modernes (Linux,\nWindows, macOS, BSD). C'est une caractéristique du\nprocesseur, pas du système d'exploitation.\n"
        },
        {
          "text": "Le mode utilisateur n'est utilisé que pour les jeux vidéo",
          "correct": false,
          "feedback": "Erreur : tous les programmes ordinaires (navigateur,\ntraitement de texte, console Python) tournent en\nmode utilisateur. Le mode noyau est réservé au\nsystème d'exploitation lui-même.\n"
        },
        {
          "text": "Le mode noyau est plus rapide que le mode utilisateur",
          "correct": false,
          "feedback": "Erreur : la différence ne tient pas à la vitesse,\nmais au niveau de privilèges. Les mêmes instructions\ns'exécutent à la même cadence, quel que soit le\nmode.\n"
        }
      ],
      "explanation": "Cette séparation des privilèges est l'un des piliers\nde la sécurité moderne. Elle empêche par exemple\nqu'un navigateur compromis prenne le contrôle de la\ncarte réseau ou efface les fichiers d'autres\nutilisateurs. Le passage du mode utilisateur au mode\nnoyau passe par les **appels système**, contrôlés\npar le noyau."
    },
    {
      "id": "q27",
      "difficulty": 2,
      "skills": [
        "couches",
        "architecture-logicielle"
      ],
      "title": "Couches logicielles d'un système",
      "statement": "Dans quel ordre se superposent les couches logicielles\nd'un système informatique typique, du plus bas niveau\n(matériel) au plus haut niveau (utilisateur) ?",
      "options": [
        {
          "text": "Matériel, applications utilisateur, bibliothèques, noyau",
          "correct": false,
          "feedback": "Erreur : le noyau ne se trouve pas au-dessus des\napplications. Il en est au contraire le support :\nil s'intercale entre le matériel et tout le reste.\n"
        },
        {
          "text": "Matériel, noyau du système d'exploitation, bibliothèques et services, applications utilisateur",
          "correct": true,
          "feedback": "Bonne réponse : c'est le modèle en couches usuel.\nLe noyau dialogue directement avec le matériel ;\nles bibliothèques s'appuient sur le noyau via les\nappels système ; les applications appellent les\nbibliothèques. Chaque couche masque la complexité\nde la précédente.\n"
        },
        {
          "text": "Noyau, matériel, applications utilisateur, bibliothèques",
          "correct": false,
          "feedback": "Erreur : le noyau ne se situe pas en dessous du\nmatériel. C'est l'inverse : le matériel est la\ncouche la plus basse, le noyau s'exécute dessus.\n"
        },
        {
          "text": "Applications, noyau, matériel, bibliothèques",
          "correct": false,
          "feedback": "Erreur : l'ordre n'est pas cohérent. Les\napplications utilisateur sont la couche la plus\nhaute, et les bibliothèques système se situent\nentre le noyau et les applications.\n"
        }
      ],
      "explanation": "Cette organisation en couches (parfois appelée\n« pile logicielle ») est ce qui permet aux mêmes\napplications de tourner sur des matériels différents :\nseules les couches inférieures sont à adapter. Elle\npermet aussi à plusieurs applications de partager les\nressources sans se gêner."
    },
    {
      "id": "q28",
      "difficulty": 2,
      "skills": [
        "bios",
        "uefi",
        "demarrage"
      ],
      "title": "BIOS, UEFI et système d'exploitation",
      "statement": "Quelle est la **différence** entre le BIOS (ou son\nsuccesseur UEFI) et un système d'exploitation comme\nWindows ou Linux ?",
      "options": [
        {
          "text": "Le BIOS/UEFI est un micrologiciel intégré à la carte mère qui initialise le matériel puis lance le système d'exploitation",
          "correct": true,
          "feedback": "Bonne réponse : à la mise sous tension, c'est le\nBIOS/UEFI qui prend la main. Il vérifie le matériel\n(mémoire, périphériques) puis charge le démarreur\nde système d'exploitation depuis le disque. Le\nsystème d'exploitation prend alors le relais.\n"
        },
        {
          "text": "L'UEFI est un système d'exploitation libre, comme Linux",
          "correct": false,
          "feedback": "Erreur : l'UEFI est un micrologiciel, pas un\nsystème d'exploitation. Il n'exécute pas\nd'applications utilisateur et n'offre pas\nd'interface graphique de bureau.\n"
        },
        {
          "text": "Aucune, il s'agit du même logiciel sous deux noms différents",
          "correct": false,
          "feedback": "Erreur : ce sont deux logiciels distincts. Le BIOS\nou l'UEFI est un programme stocké en mémoire morte\nsur la carte mère ; le système d'exploitation est\ninstallé sur le disque et chargé au démarrage.\n"
        },
        {
          "text": "Le BIOS/UEFI remplace le système d'exploitation sur les serveurs",
          "correct": false,
          "feedback": "Erreur : le BIOS/UEFI ne remplace jamais le système\nd'exploitation. Sur un serveur comme sur un poste\nde travail, son rôle se limite au démarrage et à\nquelques services bas niveau.\n"
        }
      ],
      "explanation": "Le BIOS (ancien) et l'UEFI (moderne) constituent ce\nqu'on appelle un **firmware**. Ils sont stockés dans\nune puce de mémoire morte de la carte mère et restent\nprésents même quand le disque est vide. Sans eux, la\nmachine ne pourrait pas démarrer."
    },
    {
      "id": "q29",
      "difficulty": 2,
      "skills": [
        "pilotes",
        "peripheriques"
      ],
      "title": "Rôle d'un pilote",
      "statement": "Que désigne-t-on par **pilote** (en anglais *driver*)\ndans un système d'exploitation ?",
      "options": [
        {
          "text": "Un programme qui exécute les calculs scientifiques en parallèle",
          "correct": false,
          "feedback": "Erreur : ce serait plutôt une bibliothèque de\ncalcul (BLAS, NumPy, etc.). Un pilote a une mission\ntrès différente : faire le lien entre le système et\nun périphérique.\n"
        },
        {
          "text": "Un programme spécialisé permettant au système d'exploitation de communiquer avec un périphérique matériel précis",
          "correct": true,
          "feedback": "Bonne réponse : chaque modèle de périphérique\n(carte graphique, imprimante, capteur) parle un\ndialecte spécifique. Le pilote traduit les\nrequêtes générales du noyau dans ce dialecte\nparticulier. Sans pilote, le matériel n'est pas\nreconnu.\n"
        },
        {
          "text": "La cadence d'horloge du processeur",
          "correct": false,
          "feedback": "Erreur : la cadence d'horloge est une grandeur\nphysique mesurée en hertz. Un pilote est un\nlogiciel, pas une fréquence.\n"
        },
        {
          "text": "La personne qui utilise l'ordinateur",
          "correct": false,
          "feedback": "Erreur : en informatique, le terme « pilote »\n(*driver*) désigne un module logiciel, pas une\npersonne. La personne qui utilise l'ordinateur\nest appelée « utilisateur ».\n"
        }
      ],
      "explanation": "Quand on branche une nouvelle imprimante ou une\nnouvelle carte graphique, il est parfois nécessaire\nd'installer un pilote dédié. Les systèmes modernes\nembarquent des centaines de pilotes génériques pour\nreconnaître automatiquement la plupart des\npériphériques courants."
    }
  ]
}