2010-03-22 6 views
2

Des programmes comme la page defrag par sysinternals ou l'utilitaire chkdsk qui s'exécute au démarrage. S'il te plaît, éclaire-moi. Quel type de langage de programmation utilisent-ils pour ce genre d'opérations?Comment font-ils les programmes qui s'exécutent au démarrage

+2

Habituellement, ils utilisent un langage de programmation Turing-Complete pour de telles opérations. – Earlz

+0

Avez-vous l'intention d'écrire un virus? Je suppose que non, car sinon vous connaissez déjà cette information. ;) –

+1

* "Quel type de langage de programmation utilisent-ils pour ce genre d'opérations?" * Voir aussi le choix de l'emplacement de couchage pour les gorilles de 800 lb. – dmckee

Répondre

2

En général, le développeur crée un chargeur de démarrage qu'il charge sur un périphérique de stockage (disque dur, CD/DVD, USB, etc.).

Le chargeur de démarrage a (si je me souviens bien, cela fait plus de 8 ans que je l'ai fait) adresse 512K pour pointer vers un registre de démarrage (généralement 08h). Cette adresse 512K va stocker votre adresse à vos variables d'environnement, adresse de démarrage, etc

Le développeur écrit alors un programme et définit sa méthode main pour pointer vers l'adresse de démarrage de démarrage (habituellement 08h mais ce n'est pas standard, il est spécifique au fournisseur) de sorte que lorsque le chargeur de démarrage pointe vers l'adresse de démarrage, le programme connecté à l'adresse de démarrage est démarré et exécuté.

Langage, hardcore C/C++/Assembly (ou Pascal puisqu'il est capable de le faire).

0

Il s'agit plus d'une fonction du système d'exploitation que du langage de programmation.

Par exemple, sous Windows, ces types de programmes s'installent souvent en tant que service. Un programme séparé est souvent exécuté en tant qu'utilisateur et défini (via le registre) pour démarrer à la connexion, afin d'interagir avec le service.

+1

Les services fonctionnent beaucoup plus tard, après que le système soit en grande partie opérationnel. – Richard

+0

@Richard: Vrai. Les services démarreront essentiellement après le démarrage du système, mais je n'appellerais pas cela "beaucoup plus tard" - car il n'y a pas beaucoup au niveau du noyau qui est chargé de nos jours ... –

3

Ils ont besoin de travailler avec une version de démarrage spécifique de l'API du noyau, d'où C ou C++ est le langage habituel.

Il y a une brève couverture de ceci dans "Windows Internals", mais rien de tel que suffisant pour écrire un tel utilitaire.

+0

Ah ... +1 Je pensais qu'il était juste parler de l'exécution de quelque chose quand un utilisateur se connecte, pas au type de pré-démarrage ... – Earlz

Questions connexes