quest-ce que la programmation système exactement?

Je nai jamais compris ce que signifiait la programmation système. La définition habituelle donnée est « … faire quelque chose près des OS ou étendre les fonctionnalités dOs … ».

Est-ce que lutilisation de lAPI Windows directement plutôt que de certaines bibliothèques pour dire les entrées / sorties de fichiers en fait une programmation système? Écrit la programmation du système Android OS? Si jécris quelque chose qui exposerait le noyau Linux via une console comme une application sur Android, est-ce que je fais de la programmation système? Si jécris un logiciel pour contrôler une machine à laver, est-ce que jécris de la programmation système?

Je suis un débutant en programmation et cela me déroute infiniment. Veuillez expliquer le contraste avec la « programmation dapplication ».

Commentaires

  • Cette définition a changé et les programmeurs système eux-mêmes ne ‘ t semble être sûr dune définition unique aujourdhui. Ce problème survient généralement lorsque les gens se demandent si le langage X est pratique pour la programmation système …
  • @Denys S é guret – Ironique si personne ne peut sentendre sur par quoi  » programmation système  » doit commencer.
  • Citation du livre de recettes Perl – Chapitre 16. Gestion des processus et Communication:  » Ce chapitre concerne le lancement de commandes et la connexion de processus séparés ensemble. Il s’agit de gérer leur création, leur communication et leur disparition définitive. Il sagit de la programmation de systèmes.  »

Réponse

Personnellement, je comme la définition de Wikipedia :

La programmation système (ou programmation système) est la activité de logiciel de système de programmation. La principale caractéristique distinctive de la programmation de systèmes par rapport à la programmation dapplication est que la programmation dapplication vise à produire un logiciel qui fournit des services à lutilisateur (par exemple, un traitement de texte), tandis que la programmation de systèmes vise à produire un logiciel qui fournit des services au matériel informatique (par exemple un défragmenteur de disque). ). Cela nécessite une plus grande connaissance du matériel.

Réponse

Il y a plusieurs questions que vous pouvez vous poser pour vous familiariser avec cette question.

  • Le système a-t-il été initialement vendu sans ce programme? Angry Birds est peut-être une «application tueuse» pour un téléphone intelligent (la raison pour laquelle quelquun lachète), mais il sagit toujours dune application tierce distincte écrite longtemps après lintroduction du téléphone. Lécrire aurait été la programmation dapplications. Mais le pilote daffichage du même téléphone intelligent est essentiel à son utilisation, donc cela aurait été de la programmation système.
  • Pouvez-vous imaginer porter le code sur une autre plate-forme sans le réécrire en grande partie? TeX et troff ont été portés sur pratiquement nimporte quel système avec peu de changements, ce sont donc des applications, même si elles sont situées vers le bas de la chaîne doutils que les gens utilisent généralement. Le système de fichiers dans lequel TeX écrit sa sortie, par exemple UFS ou VFAT, est un cas limite. Vous pourriez porter un système de fichiers vers un système dexploitation différent sil était totalement génial, mais en général, les gens prennent simplement en charge des idées géniales et écrivent leur propre système de fichiers pour leur propre système dexploitation. Cela rend le logiciel de système de fichiers.
  • La fonctionnalité est-elle implémentée dans le noyau ou dans des binaires séparés? (Les systèmes de fichiers occupent ici aussi un terrain dentente. De nombreuses parties de nombreux systèmes de fichiers sont en fait du code noyau, mais beaucoup ont des parties substantielles dans lespace utilisateur.) Les pilotes daffichage graphique peuvent en principe être des composants externes enfichables, mais ils sont souvent implémentés dans le noyau ou du moins avec un accès direct privilégié au noyau (ou même au matériel). Ce serait la programmation des systèmes. Dun autre côté, les jeux informatiques qui utilisent la pile daffichage graphique sont des applications.

À vos questions, écrire le système dexploitation Android était définitivement de la programmation système. Lécriture dun programme qui utilise des appels dAPI Windows est une programmation dapplication. Ce nest pas aussi portable que si vous utilisiez des bibliothèques multiplateformes telles que SDL ou OpenGL, mais il peut en principe être porté, il sagit dun code tiers et il fonctionne dans lespace utilisateur. Une application console qui expose létat du noyau Linux est une expérience de réflexion intéressante. Je dirais sans aucun doute que cela implique de la programmation système, car il « faudrait en savoir beaucoup sur la structure de Linux (notez que » Linux « nest proprement que le noyau, pas la distribution) pour écrire, et probablement même pour lutiliser!

Réponse

En bref: Ecrire des logiciels qui étendent ou améliorent le fonctionnement dun système dexploitation, comme les pilotes, les utilitaires système mettent à jour le système dexploitation  » es ou même tout nouveau système dexploitation « es.

Il implique principalement la gestion de la mémoire; Les opérations dE / S au sens le plus large du terme comme la mise en réseau, laccès aux fichiers et la gestion des périphériques; gestion des processus (multi-tâches, administration des processus, etc.); user < -> méthodes dinteraction système (à la fois dentrée et de sortie) et administration des utilisateurs. Fondamentalement, tout ce qui fait partie du système dexploitation qui nest pas une application est de la programmation système.

Réponse

Utilisation directe de lAPI Windows était, à un moment donné, une façon courante décrire des applications pour Windows. Donc non, ce nest pas de la programmation système.

La programmation système nest pas seulement « proche du système dexploitation » – cest quelque chose dessentiel au fonctionnement de base du système informatique. Lécriture dun système dexploitation est donc de la programmation système. Lécriture de pilotes vidéo, de pilotes de système de fichiers, de pilotes réseau pour ce système dexploitation est de la programmation système. Lécriture dun compilateur pour une combinaison particulière de langage / chipset est de la programmation système.

Réponse

Normalement, il se réfère à « des choses de bas niveau que les utilisateurs finaux non techniques ne savent pas ou ne savent pas » très clairement quils utilisent ou ce quils font « .

Quelques exemples qui seraient souvent considérés comme de la programmation système:

  • les systèmes dexploitation et les pilotes
  • compilateurs
  • émulateurs et d virtualisation
  • création de distribution, cest-à-dire création dimages userland.

    Cela implique notamment de sélectionner normalement la bibliothèque standard C, le système init et les composants de base du userland comme un shell.

La programmation des systèmes est souvent effectuée dans des langages de niveau compilé inférieur sans garbage collection automatique comme C ou assembly, et a tendance à accéder souvent aux appels système moins courants via Interfaces POSIX C .

Je » mets à jour un tutoriel pratique qui couvre plusieurs sujets de programmation système ici .

Réponse

En définissant ceci, je méloignerais de tous les détails techniques. Ensuite, cela devient facile.

Une application permet à un utilisateur de faire quelque chose dutile avec une technologie. La programmation dapplication vise donc à fournir des fonctionnalités à un utilisateur, assez directement.

La programmation système, dautre part, jetterait les bases pour rendre la programmation dapplication possible. Il fournit des fonctionnalités au programmeur dapplication plutôt quà lutilisateur.

Cette définition sera valable, mais cest une question de perspective, de contexte et de rôles. Pour un programmeur informatique, les outils de programmation sont des applications. Pour un utilisateur final, ils nont aucun sens, juste hors de limage.

Réponse

En bref, la programmation du système par rapport à la programmation dapplication est que le SP gère le logiciel OS pour travailler avec les ressources matérielles et AP gère lactivité des utilisateurs finaux.

Commentaires

  • cela ne ‘ t semble offrir quelque chose de substantiel sur les points soulevés et expliqués dans les 4 réponses précédentes

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *