Articles of système d’exploitation

comment définir char tableau à chaîne en c

donc j’ai un appel struct Process_Info struct Process_Info { char name[128]; int pid; int parent_pid; int priority; int status; }; et un tableau d’informations sur les appels Process_Info. Je règle pid dans info sur un entier, cela fonctionne mais quand j’essaie de définir name dans info sur “{kernel}” comme ceci info[i].name=”{kernel}”; et cela me donne […]

appel système sysinfo ne renvoyant pas la valeur freeram correcte

J’ai récemment écrit le code C suivant en utilisant sysinfo systemcall pour afficher les statistiques du système. Ce qui m’a amusé, c’est que la variable freeram de la structure sysinfo ne renvoie pas la quantité de RAM disponible, mais renvoie l’utilisation actuelle de la RAM. J’ai dû utiliser une solution de contournement pour afficher la […]

La méthode CreateProcess se termine avec une erreur

J’ai un problème avec mon code suivant: int main(int argc, char **argv) { PROCESS_INFORMATION pi; STARTUPINFO si; printf(“Process %d reporting for duty\n”,GetCurrentProcessId()); GetStartupInfo(&si); CreateProcess(NULL,”notepad.exe”, NULL,NULL,FALSE,DETACHED_PROCESS, NULL,NULL, &si, &pi); printf(“New Process ID: %d\n”,pi.dwProcessId); return(0); } Et au moment de l’exécution, j’ai exécuté cela pendant le débogage et il se bloquait sur la méthode CreateProcess, avec le […]

Obtenir l’adresse MAC des périphériques à scope du routeur

Est-il possible pour un routeur d’obtenir l’adresse MAC des périphériques à proximité qui ne s’y sont pas connectés? Je veux écrire une application qui me notifie (email ou autre chose) quand une adresse MAC spécifique est à la scope d’un routeur que j’ai (l’application est beaucoup plus spécifique que cela, donc je ne peux pas […]

Combien de processus sont créés avec ces instructions fork ()?

Je crois que cela crée 24 processus; Cependant, j’ai besoin d’une vérification. Ces questions m’étouffent souvent. Merci pour l’aide! #include #include #include int main(void) { pid_t pid = fork(); pid = fork(); pid = fork(); if (pid == 0) { fork(); } fork(); return 0; }

GDB Step Over Command

J’ai le code C suivant: #include #include #define SECTSIZE 512 #define ELFHDR ((struct Elf *)0x10000) // scratch space void readsect(void*, unit32_t); void readsec(uint32_t, uint32_t, uint32_t); void bootmain(void) { struct Proghdr *ph, *eph; // read 1st page off disk readseg((uint32_t) ELFHDR, SECTSIZE*8, 0); . . // REST OF CODE . } J’utilise gdb pour entrer dans […]

Execvp persistant sur le tuyau?

Je travaille actuellement sur une tâche pour ma classe de système d’exploitation (Posix & C), la construction d’un mini-shell et je ne sais pas comment résoudre le problème suivant: Mon mini-shell doit accepter deux commandes, par exemple, ls | grep a ls | grep a . Pour cela je crée un tuyau de taille deux […]

La carte mémoire montre plus de RAM que physiquement disponible

Je travaille sur un petit kernel x86. J’accède et tente de lire la mappe de mémoire fournie par GRUB dans l’en-tête de démarrage multiple. J’ai un processeur Intel i3 et 4 Go de RAM. Pendant que je cours sur cette machine, je lis la carte mémoire suivante: –Base Address– –Length– –Type– 0x0000000000000000 0x000000000009d000 0x1 0x000000000009d000 […]

Qu’est-ce qu’un fil de kernel?

Je viens tout juste de commencer à coder le pilote de périphérique et à découvrir le threading, j’ai parcouru de nombreux documents pour avoir une idée des threads. J’ai encore des doutes. qu’est-ce qu’un fil de kernel? en quoi cela diffère-t-il du fil utilisateur? Quelle est la relation entre les deux threads? Comment puis-je implémenter […]

Puis-je exécuter n’importe quel programme créé sans aucune plate-forme OS?

J’ai googlé à ce sujet et quelque part j’ai lu … Oui, vous pouvez. Cela se produit dans le cas des systèmes embarqués Je pense que non, ce n’est pas possible. Toute plate-forme doit avoir un système d’exploitation. Sinon, votre programme doit être lui-même un système d’exploitation. Soit doux ou câblé. Sans système d’exploitation, votre […]