Bonjour,
Je suis entrain de lire quelques tutoriels pour pouvoir développer un petit OS, et il y'a un point que je ne comprends pas:
Il est dit qu'il ya deux méthodes pour les accès aux périphériques:
Soit utiliser directement les ports (pour les anciens périphériques), auquel cas on utilise le bus correspondant.
Soit utiliser la mémoire directement, car certains périphériques sont mapés directement en mémoire et dans les basses adresses.
cat /proc/iomem
En fait j'ai plusieurs questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 00000000-0009efff : System RAM 0009f000-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000cebff : Video ROM 000cf000-000d09ff : Adapter ROM 000d0a00-000d3fff : pnp 00:0b 000f0000-000fffff : reserved 000f0000-000fffff : System ROM 00100000-77ecffff : System RAM 00100000-0031f5d4 : Kernel code 0031f5d5-0043f2ef : Kernel data 00496000-00540b0f : Kernel bss 77ed0000-77ed2fff : ACPI Non-volatile Storage 77ed3000-77edffff : ACPI Tables 77ee0000-77efffff : reserved 78000000-7fffffff : reserved 78000000-7fffffff : pnp 00:01 88000000-8801ffff : 0000:00:05.0 e0000000-efffffff : 0000:00:05.0 f0000000-f3ffffff : PCI MMCONFIG 0 [00-3f] f0000000-f3ffffff : reserved f0000000-f3ffffff : pnp 00:0a fb000000-fbffffff : 0000:00:05.0 fc000000-fcffffff : 0000:00:05.0 fd700000-fd7fffff : PCI Bus 0000:01 fd800000-fd8fffff : PCI Bus 0000:01 fd900000-fd9fffff : PCI Bus 0000:03 fda00000-fdafffff : PCI Bus 0000:04 fdb00000-fdbfffff : PCI Bus 0000:04 fdc00000-fdcfffff : PCI Bus 0000:03 fdd00000-fddfffff : PCI Bus 0000:02 fde00000-fdefffff : PCI Bus 0000:02 fdef0000-fdefffff : 0000:02:00.0 fdef0000-fdefffff : tg3 fe024000-fe027fff : 0000:00:10.1 fe024000-fe027fff : ICH HD audio fe02c000-fe02cfff : 0000:00:0f.0 fe02c000-fe02cfff : sata_nv fe02d000-fe02dfff : 0000:00:0e.0 fe02d000-fe02dfff : sata_nv fe02e000-fe02e0ff : 0000:00:0b.1 fe02e000-fe02e0ff : ehci_hcd fe02f000-fe02ffff : 0000:00:0b.0 fe02f000-fe02ffff : ohci_hcd fec00000-ffffffff : reserved fec00000-fec00fff : pnp 00:0b fec80000-fecbffff : pnp 00:01 fee00000-feefffff : pnp 00:0b fee00000-fee00fff : Local APIC fefe0000-fefe01ff : pnp 00:01 feff0000-feff03ff : HPET 0 fefff000-feffffff : pnp 00:0b fff80000-fff80fff : pnp 00:0b fff90000-fffbffff : pnp 00:0b fffed000-fffeffff : pnp 00:0b ffff0000-ffffffff : pnp 00:0b
- Je ne vois pas du tout pourquoi ils disent que certains périphériques sont mapés en basses adresses, sur le iomem j'ai l'impression qu'ils sont mapés dans toute la mémoire?
- Quelles sont les adresses réservées aux processus utilisateur?
- Il y'a combien de bus en tous sur une architecture pc? Je ne comprends pas? Sur l'article que je lis, ils disent que le processeur est relié à trois bus, Bus mémoire, Bus entrée sortie et c'est lui sur lequel sont envoyées les demandes des basses adresses (périphériques) et enfin le bus port entrée sortie (pour les anciens périphériques)... moi je dis, mais où sont passés tous les autres bus? Bus de données, Bus d'adresses et de controle, PCI, USB...
- Auriez vous un lien ou je peux trouver un plan clair d'une carte mère avec les différentes laisons (bus,...) et où sont représentés les différents composants (CPU, PIC, PUCE BIOS, MMU,...)
Merci beaucoup
Partager