{
  "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).",
    "parties": [
      {
        "id": "role",
        "title": "Rôle du système"
      },
      {
        "id": "commandes",
        "title": "Fichiers, droits et ligne de commande"
      }
    ],
    "prerequisites": [],
    "references": []
  },
  "questions": [
    {
      "id": "q01",
      "difficulty": 1,
      "skills": [
        "definition"
      ],
      "title": "Définition d'un système d'exploitation",
      "partie": "role",
      "statement": "Qu'est-ce qu'un **système d'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": "Le logiciel qui gère le matériel et sert les applications",
          "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",
      "partie": "role",
      "statement": "Lequel des noms suivants\ndésigne un **système d'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",
      "partie": "role",
      "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",
          "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",
      "partie": "role",
      "statement": "Pourquoi le système\nd'exploitation gère-t-il la\n**mémoire** ?",
      "options": [
        {
          "text": "Pour nettoyer la mémoire chaque jour automatiquement",
          "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": "Allouer la mémoire aux processus et les isoler",
          "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 organise son\nutilisation, mais il ne\nchange pas la capacité\nphysique.\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": "Chaque programme en cours\nd'exécution reçoit du système\nd'exploitation une zone de\nmémoire qui lui est propre ; le\nsystème interdit aux autres\nprogrammes d'y accéder et la\nrécupère quand le programme se\ntermine."
    },
    {
      "id": "q05",
      "difficulty": 1,
      "skills": [
        "fichiers"
      ],
      "title": "Système de fichiers",
      "partie": "commandes",
      "statement": "Que permet un **système de fichiers** ?",
      "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 systématiquement 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": "Organiser les données en fichiers et 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": "Grâce au système de fichiers, on\ndésigne une donnée par un nom et\nun chemin, par exemple\n`/home/eleve/nsi/tp1.py`, plutôt\nque par sa position sur le disque.\nIl mémorise aussi les droits\nd'accès de chaque fichier."
    },
    {
      "id": "q06",
      "difficulty": 1,
      "skills": [
        "peripheriques"
      ],
      "title": "Accès aux périphériques",
      "partie": "role",
      "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": "Via le système d'exploitation et ses 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",
      "partie": "role",
      "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",
          "correct": true,
          "feedback": "Le noyau gère directement\nle matériel : processeur,\nmémoire, périphériques. Les\napplications passent par lui\npour y accéder, ce qui\nprotège l'ensemble du système.\n"
        },
        {
          "text": "Une application graphique du bureau utilisateur",
          "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",
      "partie": "role",
      "statement": "Comment un système\nd'exploitation parvient-il à\nexécuter **plusieurs programmes en même temps** sur un\nprocesseur monocœur ?",
      "options": [
        {
          "text": "Cette exécution simultanée est techniquement impossible",
          "correct": false,
          "feedback": "C'est au contraire ce que\nréalise tout système\nd'exploitation moderne : les\nprogrammes progressent\nensemble en se partageant le\nprocesseur.\n"
        },
        {
          "text": "En alternant très rapidement entre les programmes",
          "correct": true,
          "feedback": "Bonne réponse : le système\nd'exploitation donne la main\nà chaque programme pendant un\ntrès court instant, à tour de\nrôle. L'alternance est si\nrapide que l'utilisateur a\nl'impression d'une exécution\nsimultanée.\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": "Le partage du processeur entre\nles programmes fait partie des\nfonctions du système\nd'exploitation, au même titre que\nla gestion de la mémoire, des\nfichiers et des périphériques."
    },
    {
      "id": "q09",
      "difficulty": 1,
      "skills": [
        "permissions"
      ],
      "title": "Permissions sur les fichiers",
      "partie": "commandes",
      "statement": "Pourquoi un système\nd'exploitation gère-t-il des\n**permissions** sur les fichiers ?",
      "options": [
        {
          "text": "Pour ranger joliment les fichiers par couleur à l'écran",
          "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": "Limiter qui peut lire, écrire ou exécuter un fichier",
          "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",
      "partie": "role",
      "statement": "Quels sont aujourd'hui les\n**deux principaux systèmes d'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": "q13",
      "difficulty": 2,
      "skills": [
        "shell"
      ],
      "title": "Interpréteur de commandes",
      "partie": "commandes",
      "statement": "Qu'est-ce qu'un **interpréteur de commandes** ?",
      "options": [
        {
          "text": "Une interface texte avec le système (Bash, 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 de communication réseau sécurisé",
          "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",
      "partie": "role",
      "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",
          "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": [
        "ligne-de-commande",
        "mkdir",
        "cd"
      ],
      "title": "Créer un dossier puis s'y placer",
      "partie": "commandes",
      "statement": "Dans un terminal Linux, Léa se trouve dans son dossier\npersonnel. Elle veut créer un nouveau dossier `tp` puis se\nplacer à l'intérieur. Quelle suite de commandes convient ?",
      "options": [
        {
          "text": "`mkdir tp` puis `cd tp`",
          "correct": true,
          "feedback": "Bonne réponse : `mkdir` (*make directory*) crée le\ndossier, puis `cd` (*change directory*) en fait le\nrépertoire courant.\n"
        },
        {
          "text": "`cd tp` puis `mkdir tp`",
          "correct": false,
          "feedback": "Erreur : l'ordre est inversé. Au moment du `cd tp`,\nle dossier n'existe pas encore : la commande échoue\navec le message `No such file or directory`.\n"
        },
        {
          "text": "`touch tp` puis `cd tp`",
          "correct": false,
          "feedback": "Erreur : `touch` crée un fichier vide, pas un\ndossier. On ne peut pas se placer dans un fichier :\n`cd tp` échoue avec le message `Not a directory`.\n"
        },
        {
          "text": "`mkdir tp` puis `ls tp`",
          "correct": false,
          "feedback": "Erreur : `ls tp` affiche le contenu du dossier `tp`,\nici vide, mais ne change pas le répertoire courant.\nLéa reste dans son dossier personnel.\n"
        }
      ],
      "explanation": "`mkdir` crée un dossier, `cd` change le répertoire courant\net `ls` affiche un contenu sans se déplacer. Pour entrer\ndans un dossier, il faut qu'il existe déjà."
    },
    {
      "id": "q18",
      "difficulty": 2,
      "skills": [
        "systeme-fichiers-arbre"
      ],
      "title": "Arborescence des fichiers",
      "partie": "commandes",
      "statement": "Comment un **système de fichiers** 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 (hiérarchie de dossiers)",
          "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 seule 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 relatif** part du dossier\ncourant, par exemple\n`../doc.txt`."
    },
    {
      "id": "q19",
      "difficulty": 2,
      "skills": [
        "ressources-partage"
      ],
      "title": "Partage de ressources",
      "partie": "role",
      "statement": "Pourquoi deux processus ne\npeuvent-ils pas écrire\n**simultanément** dans le\nmême fichier sans\nprécaution ?",
      "options": [
        {
          "text": "Les écritures se mélangent et corrompent les données",
          "correct": true,
          "feedback": "Ces erreurs sont\ndifficiles à reproduire,\ncar elles dépendent du\nmoment exact où chaque\nprocessus écrit. Pour les\néviter, les écritures\ndoivent être coordonnées :\nun seul processus écrit à\nla fois.\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 formellement interdit par la loi française",
          "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 : deux écritures\nnon coordonnées peuvent\ns'entremêler dans le\nfichier.\n"
        }
      ],
      "explanation": "Le système d'exploitation\ngère les ressources que se\npartagent les programmes,\ncomme les fichiers ou\nl'imprimante : lorsque\nplusieurs processus veulent\ny accéder, les accès doivent\nêtre organisés pour garder\ndes données cohérentes."
    },
    {
      "id": "q23",
      "difficulty": 3,
      "skills": [
        "permissions-unix"
      ],
      "title": "Permissions sous Unix",
      "partie": "commandes",
      "statement": "Sous Unix, que signifie\nla chaîne de permissions\n`rwxr-xr--` ?",
      "options": [
        {
          "text": "`rwx` pour les autres, `r-x` pour le groupe, `r--` pour le propriétaire",
          "correct": false,
          "feedback": "Erreur : l'ordre de lecture est\npropriétaire, groupe, autres. Le premier\ntriplet `rwx` concerne le propriétaire, le\ndernier `r--` les autres utilisateurs.\n"
        },
        {
          "text": "`rwx` pour le propriétaire, `r-x` pour le groupe, `r--` pour les autres",
          "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": "`rwx` pour le propriétaire, `r-x` pour les autres, `r--` pour le groupe",
          "correct": false,
          "feedback": "Erreur : le deuxième triplet (`r-x`) est\ncelui du **groupe**, le troisième (`r--`)\ncelui des autres utilisateurs. Ici les\nautres ne peuvent pas exécuter le fichier.\n"
        },
        {
          "text": "`r` pour le propriétaire, `w` pour le groupe, `x` pour les autres",
          "correct": false,
          "feedback": "Erreur : la chaîne ne se lit pas caractère\npar caractère mais par **triplets** de\ntrois caractères (`rwx`, `r-x`, `r--`), un\npar catégorie d'utilisateurs.\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",
      "partie": "role",
      "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": "Empêcher un programme d'atteindre la mémoire des autres",
          "correct": true,
          "feedback": "Si un processus de\nnavigation compromis\npouvait lire les mots de\npasse d'autres\napplications, ce serait\ncatastrophique. Le système\nd'exploitation l'empêche en\nattribuant à chaque\nprocessus sa propre zone de\nmémoire et en contrôlant les\npermissions.\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": "L'isolation repose sur deux\nfonctions du système\nd'exploitation : chaque\nprocessus dispose de sa\npropre mémoire, et les\npermissions contrôlent\nl'accès de chaque\nutilisateur aux fichiers."
    },
    {
      "id": "q25",
      "difficulty": 3,
      "skills": [
        "synthese"
      ],
      "title": "Synthèse",
      "partie": "role",
      "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 :\nles applications passent\npar le système\nd'exploitation pour\naccéder au matériel.\nCela garantit l'isolation\net la sécurité de\nl'ensemble.\n"
        },
        {
          "text": "Le système d'exploitation contrôle les droits d'accès des utilisateurs aux fichiers",
          "correct": false,
          "feedback": "Cette affirmation est\ncorrecte. Les droits de\nlecture, d'écriture et\nd'exécution sont vérifiés\npar le système à chaque\naccès à un fichier.\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": [
        "ligne-de-commande",
        "cp"
      ],
      "title": "Copier un fichier dans un dossier",
      "partie": "commandes",
      "statement": "Dans un terminal Linux, le répertoire courant contient un\nfichier `rapport.txt` et un dossier vide `archives`. Sami\ntape :\n\n```bash\ncp rapport.txt archives/\n```\n\nQue contiennent ensuite le répertoire courant et le dossier\n`archives` ?",
      "options": [
        {
          "text": "`rapport.txt` se trouve aux deux endroits",
          "correct": true,
          "feedback": "Bonne réponse : `cp` (*copy*) crée une copie du\nfichier dans `archives` et laisse l'original en\nplace.\n"
        },
        {
          "text": "`rapport.txt` n'est plus que dans `archives`",
          "correct": false,
          "feedback": "Erreur : c'est l'effet de `mv`, qui déplace le\nfichier. `cp` copie : l'original reste dans le\nrépertoire courant.\n"
        },
        {
          "text": "`archives` est renommé en `rapport.txt`",
          "correct": false,
          "feedback": "Erreur : `cp` ne renomme rien. Comme `archives/` est\nun dossier existant, le fichier y est copié sous son\npropre nom.\n"
        },
        {
          "text": "Rien ne change : `cp` ne copie pas vers un dossier",
          "correct": false,
          "feedback": "Erreur : `cp` accepte un dossier comme destination.\nLe fichier y est copié en gardant son nom, soit\n`archives/rapport.txt`.\n"
        }
      ],
      "explanation": "`cp source destination` copie un fichier : l'original reste en\nplace. Si la destination est un dossier, la copie y est créée\navec le même nom. Pour déplacer ou renommer, on utilise `mv`."
    },
    {
      "id": "q27",
      "difficulty": 2,
      "skills": [
        "couches",
        "architecture-logicielle"
      ],
      "title": "Couches logicielles d'un système",
      "partie": "role",
      "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, bibliothèques, applications",
          "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": "q29",
      "difficulty": 2,
      "skills": [
        "pilotes",
        "peripheriques"
      ],
      "title": "Rôle d'un pilote",
      "partie": "role",
      "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 : un tel programme est une application de\ncalcul, qui s'appuie sur le système d'exploitation.\nUn pilote a une mission très différente : faire le\nlien entre le système et un périphérique.\n"
        },
        {
          "text": "Un programme reliant le système à un périphérique",
          "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."
    },
    {
      "id": "q28",
      "difficulty": 3,
      "skills": [
        "synthese",
        "role-se"
      ],
      "title": "Pourquoi un système d'exploitation",
      "partie": "role",
      "statement": "Pourquoi est-il nécessaire qu'un **système d'exploitation**\ns'interpose entre les programmes utilisateurs et le matériel,\nplutôt que de laisser chaque programme accéder directement\nau processeur, à la mémoire et aux périphériques ?",
      "options": [
        {
          "text": "Mutualiser les ressources, isoler les programmes, abstraire le matériel",
          "correct": true,
          "feedback": "Bonne réponse : un système d'exploitation moderne\nremplit trois fonctions complémentaires. Il **partage**\nles ressources rares (processeur, mémoire, accès\ndisque) entre les programmes ; il **isole** chaque\nprogramme pour qu'un bug ou un acte malveillant ne\ncontamine pas les autres ; il **abstrait** le matériel\nen proposant une interface uniforme (fichiers,\nprocessus, sockets) qui marche sur des machines très\ndifférentes.\n"
        },
        {
          "text": "Pour ralentir volontairement les programmes et leur laisser le temps de se synchroniser entre eux",
          "correct": false,
          "feedback": "Erreur : le système d'exploitation n'est pas un\nralentisseur. Il introduit un léger surcoût, mais\nson objectif est au contraire d'ordonnancer\nefficacement les tâches.\n"
        },
        {
          "text": "Pour empêcher les programmes d'utiliser les périphériques d'entrée et de sortie",
          "correct": false,
          "feedback": "Erreur : c'est l'inverse. Le système d'exploitation\nrend possible l'accès aux périphériques en exposant\ndes appels système ; sans lui, chaque programme\ndevrait piloter directement le matériel.\n"
        },
        {
          "text": "Pour traduire automatiquement chaque programme dans un autre langage de programmation avant son exécution",
          "correct": false,
          "feedback": "Erreur : la traduction de code source est le rôle\nd'un compilateur ou d'un interpréteur, pas du\nsystème d'exploitation.\n"
        }
      ],
      "explanation": "Sans système d'exploitation, deux programmes lancés\nsimultanément se disputeraient le processeur, écriraient\nn'importe où en mémoire et entreraient en conflit sur les\npériphériques. C'est ce qui se passait sur les premiers\nmicro-ordinateurs des années $1970$, où un seul programme\ntournait à la fois."
    },
    {
      "id": "q30",
      "difficulty": 3,
      "skills": [
        "ligne-de-commande",
        "mv",
        "chemin-relatif"
      ],
      "title": "Un fichier déplacé vers un dossier voisin",
      "partie": "commandes",
      "statement": "Dans un terminal Linux, Tom se trouve dans le répertoire\n`/home/tom/cours`, qui contient le fichier `exo.py`. Le dossier\n`/home/tom/projets` existe déjà. Tom tape :\n\n```bash\nmv exo.py ../projets/\n```\n\nQuel est ensuite le chemin absolu du fichier `exo.py` ?",
      "options": [
        {
          "text": "`/home/tom/projets/exo.py`",
          "correct": true,
          "feedback": "Bonne réponse : `..` désigne le dossier parent de\n`/home/tom/cours`, soit `/home/tom`. Le fichier est\ndéplacé dans `/home/tom/projets` et ne se trouve plus\ndans `cours`.\n"
        },
        {
          "text": "`/home/tom/cours/projets/exo.py`",
          "correct": false,
          "feedback": "Erreur : le `..` du chemin est ignoré. Il fait\nremonter d'un niveau avant d'entrer dans `projets` :\nla destination est `/home/tom/projets`, pas un\nsous-dossier de `cours`.\n"
        },
        {
          "text": "`/home/projets/exo.py`",
          "correct": false,
          "feedback": "Erreur : `..` ne remonte que d'un seul niveau. Depuis\n`/home/tom/cours`, il mène à `/home/tom`, et non à\n`/home`.\n"
        },
        {
          "text": "`/home/tom/cours/exo.py`",
          "correct": false,
          "feedback": "Erreur : `mv` ne laisse pas l'original en place ;\nc'est `cp` qui copie. Le fichier quitte\n`/home/tom/cours` pour `/home/tom/projets`.\n"
        }
      ],
      "explanation": "Un chemin relatif se lit depuis le répertoire courant : `..`\nremonte d'un niveau, puis `projets/` descend dans ce dossier.\n`mv` déplace le fichier vers cette destination, alors que `cp`\nen ferait une copie."
    },
    {
      "id": "q31",
      "difficulty": 1,
      "skills": [
        "fichiers",
        "dossier",
        "arborescence"
      ],
      "title": "Le rôle d'un dossier",
      "partie": "commandes",
      "statement": "À quoi sert un dossier, aussi appelé répertoire, dans un système de\nfichiers ?",
      "options": [
        {
          "text": "À regrouper fichiers et sous-dossiers",
          "correct": true,
          "feedback": "Bonne réponse : les dossiers s'emboîtent et forment une\narborescence, dont chaque fichier a une place désignée par son\nchemin.\n"
        },
        {
          "text": "À compresser les fichiers qu'il contient",
          "correct": false,
          "feedback": "Erreur : un dossier ne modifie pas ses fichiers ; la compression\nest une opération distincte.\n"
        },
        {
          "text": "À stocker un seul fichier volumineux",
          "correct": false,
          "feedback": "Erreur : un dossier peut contenir autant de fichiers et de\nsous-dossiers que nécessaire.\n"
        },
        {
          "text": "À exécuter les programmes qu'il contient",
          "correct": false,
          "feedback": "Erreur : l'exécution relève du système, pas du dossier.\n"
        }
      ],
      "explanation": "Le système de fichiers organise les données en arbre : racine,\ndossiers, sous-dossiers, fichiers."
    },
    {
      "id": "q32",
      "difficulty": 2,
      "skills": [
        "droits",
        "permissions",
        "lecture"
      ],
      "title": "Lire une ligne de droits",
      "partie": "commandes",
      "statement": "Un fichier affiche les droits `rw-r--r--`. Que peut faire un\nutilisateur qui n'en est pas le propriétaire ?",
      "options": [
        {
          "text": "Le lire seulement",
          "correct": true,
          "feedback": "Bonne réponse : les trois derniers caractères, `r--`, concernent\nles autres utilisateurs : lecture autorisée, écriture et\nexécution refusées.\n"
        },
        {
          "text": "Le lire et le modifier",
          "correct": false,
          "feedback": "Erreur : seul le propriétaire, premier groupe `rw-`, peut\nécrire.\n"
        },
        {
          "text": "Le lire, le modifier et l'exécuter",
          "correct": false,
          "feedback": "Erreur : aucun `x` n'apparaît, personne ne peut l'exécuter, et\nseuls le propriétaire écrit.\n"
        },
        {
          "text": "Rien, le fichier étant privé",
          "correct": false,
          "feedback": "Erreur : un `r` dans le dernier groupe autorise la lecture à\ntous.\n"
        }
      ],
      "explanation": "Trois groupes de trois droits, `rwx`, pour le propriétaire, le\ngroupe et les autres : un tiret marque un droit absent."
    },
    {
      "id": "q33",
      "difficulty": 2,
      "skills": [
        "droits",
        "utilisateurs",
        "confidentialite"
      ],
      "title": "Le dossier d'un autre utilisateur",
      "partie": "commandes",
      "statement": "Sur l'ordinateur partagé du lycée, Lina ne peut pas ouvrir le\ndossier personnel de Sami. Quel mécanisme du système l'en empêche ?",
      "options": [
        {
          "text": "Les droits d'accès, réservés au propriétaire du dossier",
          "correct": true,
          "feedback": "Bonne réponse : chaque fichier et dossier porte des droits par\nutilisateur ; le dossier personnel de Sami n'accorde rien aux\nautres comptes.\n"
        },
        {
          "text": "Le chiffrement automatique de tous les dossiers personnels",
          "correct": false,
          "feedback": "Erreur : les dossiers ne sont pas chiffrés par défaut ; ce sont\nles droits qui bloquent l'accès.\n"
        },
        {
          "text": "La compression du dossier, qui le rend illisible",
          "correct": false,
          "feedback": "Erreur : la compression n'a rien à voir avec l'accès.\n"
        },
        {
          "text": "Le fait que les deux comptes utilisent des disques différents",
          "correct": false,
          "feedback": "Erreur : les deux dossiers sont sur le même disque ; le système\nles sépare par les droits.\n"
        }
      ],
      "explanation": "La gestion des utilisateurs et des droits est une fonction du\nsystème d'exploitation : elle protège les données de chacun sur une\nmachine partagée."
    },
    {
      "id": "q34",
      "difficulty": 3,
      "skills": [
        "droits",
        "ecriture",
        "refus"
      ],
      "title": "Un programme qui ne peut pas écrire",
      "partie": "commandes",
      "statement": "Un programme Python lancé par Théo tente de modifier un fichier sur\nlequel Théo n'a qu'un droit de lecture. Que se passe-t-il ?",
      "options": [
        {
          "text": "Le système refuse l'écriture et le programme reçoit une erreur",
          "correct": true,
          "feedback": "Bonne réponse : un programme agit avec les droits de\nl'utilisateur qui le lance. Le système applique les droits du\nfichier et renvoie une erreur de permission.\n"
        },
        {
          "text": "Le programme écrit quand même, les droits ne concernant que les humains",
          "correct": false,
          "feedback": "Erreur : les droits s'appliquent à toute action, qu'elle vienne\nd'un clic ou d'un programme.\n"
        },
        {
          "text": "Le système demande le mot de passe de l'administrateur",
          "correct": false,
          "feedback": "Erreur : aucune demande n'est faite ; l'action est simplement\nrefusée.\n"
        },
        {
          "text": "Une copie du fichier est créée pour Théo",
          "correct": false,
          "feedback": "Erreur : rien n'est copié automatiquement.\n"
        }
      ],
      "explanation": "Les programmes héritent des droits de leur utilisateur : c'est ce\nqui limite les dégâts d'un programme défectueux ou malveillant."
    },
    {
      "id": "q35",
      "difficulty": 1,
      "skills": [
        "ligne-de-commande",
        "interface"
      ],
      "title": "Terminal et interface graphique",
      "partie": "commandes",
      "statement": "Copier un fichier par glisser-déposer dans une fenêtre ou taper\n`cp rapport.txt sauvegarde/` dans un terminal : quelle différence ?",
      "options": [
        {
          "text": "Aucune sur le résultat, la même opération étant demandée",
          "correct": true,
          "feedback": "Bonne réponse : l'interface graphique et la ligne de commande\nsont deux façons de donner des ordres au même système\nd'exploitation.\n"
        },
        {
          "text": "Le terminal copie plus fidèlement le fichier, octet par octet",
          "correct": false,
          "feedback": "Erreur : la copie est identique.\n"
        },
        {
          "text": "L'interface graphique ne permet pas de copier des fichiers",
          "correct": false,
          "feedback": "Erreur : glisser-déposer copie ou déplace bien les fichiers.\n"
        },
        {
          "text": "Le terminal ne fonctionne que sous Linux, pas sous Windows",
          "correct": false,
          "feedback": "Erreur : tous les systèmes offrent un terminal.\n"
        }
      ],
      "explanation": "La ligne de commande permet de répéter, d'enchaîner et\nd'automatiser ; l'interface graphique est plus intuitive. Les deux\npilotent le même système."
    },
    {
      "id": "q36",
      "difficulty": 2,
      "skills": [
        "ligne-de-commande",
        "erreur"
      ],
      "title": "Une commande introuvable",
      "partie": "commandes",
      "statement": "Dans un terminal, Maya tape `copier rapport.txt` et obtient\n`command not found`. Que signifie ce message ?",
      "options": [
        {
          "text": "Aucun programme ne s'appelle `copier` ; la commande est `cp`",
          "correct": true,
          "feedback": "Bonne réponse : l'interpréteur cherche un programme portant le\nnom tapé. Les commandes ont des noms fixés, souvent abrégés de\nl'anglais.\n"
        },
        {
          "text": "Le fichier `rapport.txt` n'existe pas dans le dossier courant",
          "correct": false,
          "feedback": "Erreur : le message porte sur la commande, pas sur le fichier,\nqui n'a même pas été cherché.\n"
        },
        {
          "text": "Maya n'a pas le droit de copier des fichiers sur cette machine",
          "correct": false,
          "feedback": "Erreur : un refus de droit donnerait `permission denied`.\n"
        },
        {
          "text": "Le terminal est hors service et doit être relancé",
          "correct": false,
          "feedback": "Erreur : le terminal fonctionne, il répond précisément.\n"
        }
      ],
      "explanation": "Lire le message d'erreur du terminal indique presque toujours la\ncause : commande inconnue, fichier absent, droit manquant."
    },
    {
      "id": "q37",
      "difficulty": 3,
      "skills": [
        "ligne-de-commande",
        "script",
        "automatisation"
      ],
      "title": "Automatiser une suite de commandes",
      "partie": "commandes",
      "statement": "Chaque soir, Nora tape les mêmes cinq commandes pour sauvegarder\nson travail. Que lui propose la ligne de commande pour s'en\ndispenser ?",
      "options": [
        {
          "text": "Écrire les commandes dans un fichier exécuté par l'interpréteur",
          "correct": true,
          "feedback": "Bonne réponse : un tel fichier, appelé script, enchaîne les\ncommandes exactement comme si elles étaient tapées. C'est\nl'atout majeur de la ligne de commande sur l'interface\ngraphique.\n"
        },
        {
          "text": "Rien, chaque commande devant être tapée à la main chaque soir",
          "correct": false,
          "feedback": "Erreur : l'automatisation est précisément ce que permet un\nscript.\n"
        },
        {
          "text": "Enregistrer un film de l'écran et le rejouer",
          "correct": false,
          "feedback": "Erreur : un enregistrement ne rejoue aucune commande.\n"
        },
        {
          "text": "Taper les cinq commandes sur une seule ligne, ce qui les mémorise",
          "correct": false,
          "feedback": "Erreur : enchaîner sur une ligne ne conserve rien pour le\nlendemain.\n"
        }
      ],
      "explanation": "Un script shell transforme une suite de commandes en un programme\nréutilisable : c'est la raison d'être de la ligne de commande."
    },
    {
      "id": "q38",
      "difficulty": 2,
      "skills": [
        "fichiers",
        "casse",
        "nommage"
      ],
      "title": "Majuscules dans les noms de fichiers",
      "partie": "commandes",
      "statement": "Sous Linux, un dossier contient `Rapport.txt`. Lina tape\n`cat rapport.txt` et obtient une erreur. Pourquoi ?",
      "options": [
        {
          "text": "Les noms de fichiers distinguent majuscules et minuscules",
          "correct": true,
          "feedback": "Bonne réponse : `Rapport.txt` et `rapport.txt` sont deux noms\ndifférents pour le système de fichiers de Linux.\n"
        },
        {
          "text": "`cat` ne lit que les fichiers sans extension",
          "correct": false,
          "feedback": "Erreur : `cat` lit n'importe quel fichier texte.\n"
        },
        {
          "text": "Le fichier est protégé contre la lecture",
          "correct": false,
          "feedback": "Erreur : le message serait différent ; ici le fichier demandé\nn'existe pas sous ce nom.\n"
        },
        {
          "text": "Les noms de fichiers ne peuvent pas contenir de majuscules",
          "correct": false,
          "feedback": "Erreur : les majuscules sont permises, elles comptent\nsimplement comme des caractères différents.\n"
        }
      ],
      "explanation": "Les systèmes diffèrent sur ce point : Linux distingue la casse,\nWindows non. Nommer ses fichiers en minuscules évite les surprises."
    },
    {
      "id": "q39",
      "difficulty": 1,
      "skills": [
        "demarrage",
        "chargement"
      ],
      "title": "Ce qui se passe au démarrage",
      "partie": "role",
      "statement": "Que se passe-t-il, pour l'essentiel, entre l'appui sur le bouton\nd'allumage et l'apparition du bureau ?",
      "options": [
        {
          "text": "Le système est chargé du disque en mémoire vive, puis prend la main",
          "correct": true,
          "feedback": "Bonne réponse : au repos, le système est sur le disque. Au\ndémarrage, il est chargé en mémoire, démarre ses services et\naffiche la session.\n"
        },
        {
          "text": "Le processeur est configuré à nouveau pour la session qui s'ouvre",
          "correct": false,
          "feedback": "Erreur : le matériel ne change pas ; c'est le logiciel qui se\nmet en place.\n"
        },
        {
          "text": "Les programmes installés sont tous lancés en même temps",
          "correct": false,
          "feedback": "Erreur : seul le système et quelques services démarrent ; les\nprogrammes attendent d'être lancés.\n"
        },
        {
          "text": "Le disque est entièrement vérifié et réparé avant toute chose",
          "correct": false,
          "feedback": "Erreur : une vérification complète n'a lieu qu'en cas de\nproblème, pas à chaque démarrage.\n"
        }
      ],
      "explanation": "Le système d'exploitation est un programme comme les autres, à ceci\nprès qu'il est le premier chargé et qu'il reste maître de la\nmachine jusqu'à l'extinction."
    },
    {
      "id": "q40",
      "difficulty": 2,
      "skills": [
        "mise-a-jour",
        "securite"
      ],
      "title": "Pourquoi mettre à jour le système",
      "partie": "role",
      "statement": "Le système propose une mise à jour « de sécurité ». Quel est son\nintérêt principal ?",
      "options": [
        {
          "text": "Corriger des failles qui permettraient de prendre le contrôle",
          "correct": true,
          "feedback": "Bonne réponse : les failles connues sont exploitées rapidement.\nUn système à jour ferme les portes découvertes depuis la\nversion précédente.\n"
        },
        {
          "text": "Rendre l'ordinateur plus rapide au démarrage et à l'usage",
          "correct": false,
          "feedback": "Erreur : une mise à jour de sécurité ne vise pas les\nperformances.\n"
        },
        {
          "text": "Ajouter de nouvelles icônes et de nouveaux fonds d'écran",
          "correct": false,
          "feedback": "Erreur : l'apparence n'est pas l'objet d'une mise à jour de\nsécurité.\n"
        },
        {
          "text": "Effacer les fichiers inutiles de l'utilisateur pour gagner de la place",
          "correct": false,
          "feedback": "Erreur : le système ne touche pas aux fichiers personnels.\n"
        }
      ],
      "explanation": "Maintenir le système à jour est la première mesure de sécurité, sur\nun ordinateur comme sur un téléphone."
    },
    {
      "id": "q41",
      "difficulty": 2,
      "skills": [
        "utilisateurs",
        "comptes",
        "sessions"
      ],
      "title": "Plusieurs comptes sur une même machine",
      "partie": "role",
      "statement": "Un ordinateur familial a un compte par personne. Qu'apporte cette\norganisation gérée par le système ?",
      "options": [
        {
          "text": "Des fichiers et réglages séparés, chacun n'accédant qu'aux siens",
          "correct": true,
          "feedback": "Bonne réponse : le système associe à chaque compte un dossier\npersonnel, des préférences et des droits. Les sessions sont\nindépendantes.\n"
        },
        {
          "text": "Un ordinateur deux fois plus rapide pour chaque utilisateur",
          "correct": false,
          "feedback": "Erreur : les comptes partagent le même matériel.\n"
        },
        {
          "text": "Des systèmes d'exploitation différents pour chaque compte",
          "correct": false,
          "feedback": "Erreur : un seul système gère tous les comptes.\n"
        },
        {
          "text": "Une connexion Internet séparée et facturée par compte",
          "correct": false,
          "feedback": "Erreur : la connexion est commune ; ce sont les données et les\nréglages qui sont séparés.\n"
        }
      ],
      "explanation": "Un système multi-utilisateurs isole les personnes les unes des\nautres tout en partageant la machine."
    },
    {
      "id": "q42",
      "difficulty": 3,
      "skills": [
        "processus",
        "programme",
        "instances"
      ],
      "title": "Un même programme lancé deux fois",
      "partie": "role",
      "statement": "Sami ouvre deux fenêtres du même éditeur de texte. Du point de vue\ndu système d'exploitation, que se passe-t-il ?",
      "options": [
        {
          "text": "Deux processus distincts, chacun avec sa mémoire",
          "correct": true,
          "feedback": "Bonne réponse : un programme est un fichier ; un processus est\nson exécution. Lancer le programme deux fois crée deux\nprocessus indépendants.\n"
        },
        {
          "text": "Un seul processus gère les deux fenêtres, par obligation",
          "correct": false,
          "feedback": "Erreur : certains programmes choisissent de le faire, mais rien\nne l'impose ; deux lancements donnent en général deux processus.\n"
        },
        {
          "text": "Le second lancement est refusé, le programme étant déjà ouvert",
          "correct": false,
          "feedback": "Erreur : le système autorise plusieurs exécutions d'un même\nprogramme.\n"
        },
        {
          "text": "Le programme est copié deux fois sur le disque",
          "correct": false,
          "feedback": "Erreur : le fichier du programme reste unique ; seuls les\nprocessus se multiplient en mémoire.\n"
        }
      ],
      "explanation": "Le système gère des processus, pas des programmes : il en crée un à\nchaque lancement et leur attribue du temps de processeur et de la\nmémoire."
    },
    {
      "id": "q43",
      "difficulty": 3,
      "skills": [
        "role",
        "intermediaire",
        "materiel"
      ],
      "title": "Un programme n'écrit pas lui-même sur le disque",
      "partie": "role",
      "statement": "Un programme Python exécute `open(\"notes.txt\", \"w\")` puis écrit du\ntexte. Qui réalise concrètement l'écriture sur le disque ?",
      "options": [
        {
          "text": "Le système d'exploitation, auquel le programme adresse sa demande",
          "correct": true,
          "feedback": "Bonne réponse : le programme demande au système d'écrire ;\ncelui-ci vérifie les droits, trouve la place sur le disque et\npilote le matériel. Aucun programme ordinaire n'accède\ndirectement au disque.\n"
        },
        {
          "text": "Le programme Python, qui commande directement le disque",
          "correct": false,
          "feedback": "Erreur : l'accès direct au matériel est réservé au système, ce\nqui protège les données de tous.\n"
        },
        {
          "text": "Le processeur, sans intervention logicielle",
          "correct": false,
          "feedback": "Erreur : le processeur exécute des instructions ; écrire sur un\ndisque demande les pilotes et la gestion du système.\n"
        },
        {
          "text": "L'éditeur de texte dans lequel le programme a été écrit",
          "correct": false,
          "feedback": "Erreur : l'éditeur n'intervient pas dans l'exécution du\nprogramme.\n"
        }
      ],
      "explanation": "Le système d'exploitation est l'intermédiaire obligé entre les\nprogrammes et le matériel : fichiers, écran, réseau passent par lui."
    }
  ]
}