En informatique, ioctl, raccourci signifiant input-output control (contrôle d'entrée-sortie), est un appel système pour des opérations d'entrée-sortie spécifiques à un périphérique qui ne peuvent être exécutées par un appel système classique. Il reçoit un paramètre spécifiant un code-requête à exécuter ; l'effet de cet appel dépend complètement du code-requête. Les codes-requêtes sont souvent spécifiques au périphérique. Par exemple, un pilote de CD-ROM qui souhaite éjecter un disque d'un lecteur doit fournir un code-requête à un ioctl pour faire cela. Des codes-requêtes indépendants du périphérique sont quelquefois utilisés pour donner un accès, depuis l'espace utilisateur, à des fonctions du noyau utilisées uniquement par le cœur du système ou encore en développement.
L'appel système ioctl est apparu pour la première fois dans la version 7 d'Unix sous ce nom. il est supporté par la plupart des systèmes Unix et apparentés, dont Linux et OS X, bien que les codes-requêtes proposés diffèrent d'un système d'exploitation à l'autre. Microsoft Windows fournit une fonction similaire, nommée DeviceIoControl, dans son API Win32.
Les systèmes d'exploitation conventionnels divisent la mémoire en 2 espaces : l'espace utilisateur et l'espace noyau. Le code d'une application telle qu'un éditeur de texte réside dans l'espace utilisateur, tandis que les fonctionnalités sous-jacentes du système d'exploitation, telles que la pile réseau, résident dans le noyau. Le code du noyau gère les ressources sensibles et met en œuvre les barrières de sécurité et de fiabilité entre les applications. Pour cette raison, les applications dans l'espace utilisateur ne peuvent pas accéder directement aux ressources du noyau.
Les applications en espace utilisateur font généralement des requêtes au noyau par l'intermédiaire des appels système, dont le code se trouve dans l'espace noyau. Un appel système prend généralement la forme d'un « vecteur d'appels système », dans lequel l'appel système désiré est indiqué par un numéro d'index.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
ifconfig est une commande Unix qui permet de configurer et d'afficher les informations des interfaces réseau IP à partir de l'interpréteur de commandes. Le nom ifconfig vient de l'anglais interface configurator. ifconfig est apparu en tant que composant de la suite TCP/IP de 4.2BSD. Cette commande a donc été intégrée à la boîte à outils originale d'Internet. On utilise généralement ifconfig pour configurer l'adresse IP et le masque de sous-réseau d'un ordinateur, pour afficher des informations sur les interfaces réseau, et pour activer ou désactiver une interface réseau.
Un fichier spécial (special file), ou fichier de périphérique (device file), est la manière dont certains systèmes d'exploitation permettent d'accéder à un périphérique — unité d'entrée-sortie (écran, imprimante, clavier, souris, modem...), unité de stockage (disque dur, clef USB, CD-ROM, DVD-ROM, disquette...). Pour l'utilisateur, le périphérique quel qu'il soit est vu de la même manière qu'un fichier ; par exemple, l'écriture sur un écran se fait de la même manière que l'écriture d'un fichier sur un disque dur.
Unix, officiellement UNIX, est une famille de systèmes d'exploitation multitâche et multi-utilisateur dérivé du Unix d'origine créé par AT&T, le développement de ce dernier ayant commencé dans les années 1970 au centre de recherche de Bell Labs mené par Kenneth Thompson. Il repose sur un interpréteur ou superviseur (le shell) et de nombreux petits utilitaires, accomplissant chacun une action spécifique, commutables entre eux (mécanisme de « redirection ») et appelés depuis la ligne de commande.
We argue that ongoing research in extensible kernels largely fails to address the real challenges facing the OS community. Instead, these efforts have become entangled in trying to solve the safety problems that extensibility itself introduces into OS desi ...
1997
, ,
Double-fetch bugs are a plague across all major operating system kernels. They occur when data is fetched twice across the user/kernel trust boundary while allowing concurrent modification. Such bugs enable an attacker to illegally access memory, cause den ...
2022
,
Writing a correct operating system kernel is notoriously hard. Kernel code requires manual memory management and type-unsafe code and must efficiently handle complex, asynchronous events. In addition, increasing CPU core counts further complicate kernel de ...