Forum Linux.noyau impossible d'afficher des pixels via le mode reel

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
6
10
août
2019

Bonjour à tous,

voila je suis en train de faire mon petit systeme d'exploitation maison. J'ai réalisé un MBR tres simple qui charge mon noyau dans la RAM (via l'aide du bios) puis je saute à l'adresse de mon noyau. Le noyau par la suite affiche du texte via la carte graphic qui est mappé en mémoire, et ca marche.

Je veux maintenant par ce meme procédé rendre mon écran bleu puis ensuite afficher mon texte. Et la ca ne (…)

Forum Linux.débutant à quoi sert le répertoire /usr

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
6
29
sept.
2018

bonjour à tous,

dans le répertoire root, on voit plusieurs répertoire dont boot, lib, usr …

dans le répertoire lib on peut voir des programmes mais aucune library (.so ou .a) alors que dans /usr on a un répertoire lib qui contient plusieurs library (.so) et des programmes.

je me demande donc quelle est la différence entre les deux ? a premiere vu toutes les library sont dans /usr/lib et non dans /lib ce qui peut paraître bizarre.

Je precise (…)

Forum Programmation.c essayer de recupérer l'adresse de retour d'une fonction

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
6
22
juil.
2020

bonjour à tous,

J'essaye de récupérer l'adresse de retour stockée dans la pile puis de faire un jump sur cette adresse afin de revenir à mon main, je vous montre mon code puis vous explique ma démarche :

    int addOne ( int value )
    {
        char * ptr = (char*)&value; // la variable value est situé a RBP-0x14
        void (*adresseDeRetour) (void) = (ptr + 28);
        adresseDeRetour();
(…)

Forum Linux.général /dev/fb0 apparement j'ai pas tout compris

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
4
5
juil.
2021

Bonjour à tous,

j'aimerai en écrivant directement dans /dev/fb0 éteindre mon écran, en realité mettre toutes les leds de mon écran à 0. J'ai donc fait ce code :

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <string.h>
    #include <errno.h>
    #include <unistd.h>
    #include <sys/mman.h>
    #include <sched.h>
    #include <linux/fb.h>
    #include <sys/ioctl.h>

    int main(int argc, char const *argv[])
    {
        //set scheduler to max priority
        struct sched_param sch_param;
        sch_param.sched_priority = 99;

        if(
(…)

Forum Linux.noyau pourquoi je dois faire un free() alors que le noyau libere la mémoire à la fin de mon processus

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
3
13
fév.
2019

Bonjour,

je m’intéresse depuis peu au noyau et je tombe sur une incohérence dans ma facon de voir les choses.

Lorsque je lance un programme, c'est le noyau qui va allouer la mémoire pour mon processus. Et quand mon programme est fini, alors le noyau libere la mémoire pour qu'un autre processus puisse l'utilisé. Mais alors est ce que free() a une vrai utilité ?

Merci d'avance pour votre aide

Forum Linux.noyau de l'appel systeme au mode noyau

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
3
4
fév.
2019

Bonjour à tous,

voila quand je fais un appel systeme en C, mon code assembleur va placer dans un registre quel type d'appel systeme je fais, puis à l'instruction suivante lancer l'instruction (processeur x86) :
int 80h

quand le processeur voit cette instruction, il fait un saut en mémoire pour aller au niveau du code ou se trouve le noyau ? puis le code noyau fait son taff et met dans un registre la réponse de l'appel systeme qui était (…)

Forum Linux.général probleme avec syslog

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
5
juil.
2019

bonjour à tous,

voila j'essaye d'utiliser l'api syslog mais ca n'écrit pas mon texte "a = 1" dans un fichier.log
j'ai regardé dans mon répertoire courant et aussi dans /var/log mais il n'y a aucun fichier.

Avez vous une idée du probleme ?

voici mon code :

    #include <syslog.h>

    int main(int argc, char const *argv[])
    {
        int a = 1;
        openlog(argv[0], LOG_CONS | LOG_PID | LOG_NDELAY, LOG_USER);
(…)

Forum Linux.général comment un ordi avec un seul CPU peut faire du multi tache

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
7
jan.
2019

Bonjour à tous.

Voila je vais prendre l'exemple ci dessous, ca illustra bien mon probleme de compréhension.

je lance un programme (qui est une boucle infini) dans un shell via la commande ./mon_programme

le noyau va donc laisser la main à mon programme, et donc sur le CPU seulement mon programme tourne. Et donc le noyau ne tourne plus car le CPU exécute les instructions de mon programme. Comment le noyau peut reprendre la main alors que le seul processus (…)

Forum Linux.noyau SCHED_FIFO et signal alarme

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
1
jan.
2019

Bonjour à tous

je dispose d'un processeur quad-core.
je veux faire planter mon ordi en infectant a chaque processeur un processus avec une priorité maximale et avec comme politique d'ordonnancement SCHED_FIFO. Donc des que le noyau affecte mon processus a un processeur, le processus ne rend jamais la main.
voici mon code:

    int main(void)
    {       
        struct sched_param schedParam;
        schedParam.sched_priority = 99;

        if ( sched_setscheduler(getpid(), SCHED_FIFO, & schedParam) !=
(…)

Forum Linux.général impossible de modifier un exécutable lorsqu'il est en exécution

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
20
fév.
2019

Bonjour,

voila j'ai crée un script :
#!/bin/bash
echo "coucou"
sleep 100
exit 0

et pendant que le processus est endormi, je modifie le code :
#!/bin/bash
echo "coucou"
sleep 100
echo "script modifié pendant l'exécution"
exit 0
et je m'attend à une erreur et pourtant le terminal me retourne bien au bout de 100 secondes l'echo "script modifié pendant l'exécution".

Il me semblait qu'il était impossible sous linux de modifier le code d'un programme en cours d'exécution, principalement pour (…)

Forum Programmation.c probleme pour faire un timer précis de l'ordre de la milliseconde

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
26
jan.
2022

bonjour à tous,
je souhaite faire un timer via timerfd_create qui reveille mon programme toutes les 1 milliseconde (ms). j'aimerais une erreur que de 10% soit pas plus de 1.1ms. Mon programme à un timer moyen de 1ms (super :) ) mais a parfois des piques à 1,2 ms voir 1,4ms :(

Je l'ai passé en fifo priorité 99, j'ai viré toutes les interruptions venant de mon cpu8 afin d'empecher que mon processus soit interrompu (via /proc/irq/smp_affinity), j'ai bien entendu (…)

Forum Linux.noyau comment est ce possible de faire un noyau avec python ou un langage interprété

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
15
fév.
2019

Bonjour,

j'ai vu sur plusieurs forums des personnes qui disent avoir conçu un noyau avec des langages interprété comme python. Comment est ce possible ?
car quand le MBR lance le noyau ca ne peut être qu'un exécutable non ?

merci d'avance pour votre aide

Forum Linux.debian/ubuntu le noyau lance initrd ou initrd est lancé par le boot loader

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
27
oct.
2018

Bonjour,

Le boot loader qui se trouve dans les 512 premiers octet de la partition va lancer le noyau, mais comment le boot loader trouve le noyau alors que le systeme de fichier n'est pas monté ? le boot loader sait dans quels cylindres, pistes, secteurs ou se trouve le noyau, ou faut il d'abord monter le systeme de fichier via initrd, mais dans ce cas comment le boot loader trouve le programme initrd ?

initrd c'est juste un programme (…)

Forum Linux.débutant probleme pour comprendre l'édition de lien

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
20
jan.
2019

Bonjour à tous,

voici mon code :

#include <stdio.h>

void main(){
         fprintf(stdout, "bonjour");
         return 0;
}

Quand je compile mon programme avec : gcc mon_programme.c ,le compilateur va (furtivement) inclure des libs de la glibC car j'utilise la fonction fprintf(). Mais quand j'exécute mon programme : a.out, il faut également lancer dans la mémoire ram la fonction fprintf que j'ai besoin non ? comment ca marche ? quand je lance le programme, est ce (…)

Forum Linux.debian/ubuntu terminal et bash

Posté par  . Licence CC By‑SA.
Étiquettes :
1
29
mai
2019

Bonjour à tous,

je suis actuellement sur debian sans gnome-desktop installé, uniquement le gnome-terminal.
Je peux taper les commandes Bash. Mais j'aimerais savoir sur quel programme je tape mes commandes. Est ce tout simplement Bash qui utiliser la libX11 pour afficher du texte sur l'écran, ou est ce un autre programme qui crée un processus fils puis ensuite fait execv(/bin/bash, la commande que j'ai fait) et affiche la sortie de la commande sur sa propre sortie ?

Merci d'avance pour (…)