So I just listened to SN 955. I was much more interested in the episode for the computer architecture aspects than implications to privacy or security, but then I don't use my phone for much more than phone calls and reminders. In any case, I did know that some CPUs including the intel x86 line could use a separate address space for devices. I figured that out while I was trying to figure out more about assembly and hardware type things. I did not know that that approach was out of date because of the large 32 and 64 bit address space of today's CPUs, but after hearing that, I guess it makes sense. I was thinking it was still common to have the separate space, new information, thanks.
I have kinda of a two part question. Part one is about systems that are not all the same, that is a custom build computer where we don't know what peripheral devices will be connected. Part two is for a device like a apple or perhaps a samsung phone where there is a standard model and the peripheral devices are all the same for that model.
In the case of a custom computer the memory mapped device are basically depended on what you plug into the system. For example, plug in a particular graphics, ethernet, or raid card, then you end up with certain types of hardware at the end of the memory mapped addresses? I also remember a SN where Steve suggested that it was at least possible for system boards built in a country such as China could have an extra chip added as a back door. Perhaps that is how such a back door would work, malware could check the address space and see if the back door chip is present and if so use it. Maybe this is the only way such a back door system would work?
In the case of a device like a apple or samsung cell phones, the memory mapped device are known because of course all the devices are the same, same peripherals, same everything. In this case, that is why the apple situation works, the hardware that makes it works is permanently attached and known to be in apple models, it can not be removed.
As far as how peripherals are accessed and used from a CPUs perspective, when you are accessing that memory which is mapped to a device, then you are just accessing a register or registers on that hardware like how a CPU has registers? If that is the case, as I understand accessing memory on a modern system typically happens in 8-bit chunks, a byte. If that is the case and you are using the same instruction to access a peripheral it is just a register or a set of different registers then those registers must be in sizes like 8, 16, 32, 64, so on bits?
I heard Steve make reference to DMA serval times also. As I understand DMA is direct memory access, so in that case the memory address plane is something that all devices have access to, not just the CPU. Device A can access device B via DMA by knowing the memory address device B is at?
I also suppose what Steve is doing in spin rite is accessing the registers on a storage device and telling is to do specific things to test and recover the drive. I also remember he rewrote something a while ago because after reading the ATA spec, so I am guessing that computer hardware device have specifications that tell something how the device will behave then sending the device different data to it’s registers? Must have registers for commands, reading, and writing perhaps?
For the part that Steve explained that there was some 256bit blob, I think he said it was an s box, that was basically the “lock” so that the hardware is not usable without knowing the secret?
Any how, I listened while I was cooking and then eating, so I of course missed some parts. I know, I’ve got a lot of guesses and assumptions here. Likely some of you will read this and think I don’t know much about computer hardware, but I figure I would ask any how. Perhaps I could see if I could find ATA specs or other device specs online to better understand how computer hardware typically works. Thanks everyone.
I have kinda of a two part question. Part one is about systems that are not all the same, that is a custom build computer where we don't know what peripheral devices will be connected. Part two is for a device like a apple or perhaps a samsung phone where there is a standard model and the peripheral devices are all the same for that model.
In the case of a custom computer the memory mapped device are basically depended on what you plug into the system. For example, plug in a particular graphics, ethernet, or raid card, then you end up with certain types of hardware at the end of the memory mapped addresses? I also remember a SN where Steve suggested that it was at least possible for system boards built in a country such as China could have an extra chip added as a back door. Perhaps that is how such a back door would work, malware could check the address space and see if the back door chip is present and if so use it. Maybe this is the only way such a back door system would work?
In the case of a device like a apple or samsung cell phones, the memory mapped device are known because of course all the devices are the same, same peripherals, same everything. In this case, that is why the apple situation works, the hardware that makes it works is permanently attached and known to be in apple models, it can not be removed.
As far as how peripherals are accessed and used from a CPUs perspective, when you are accessing that memory which is mapped to a device, then you are just accessing a register or registers on that hardware like how a CPU has registers? If that is the case, as I understand accessing memory on a modern system typically happens in 8-bit chunks, a byte. If that is the case and you are using the same instruction to access a peripheral it is just a register or a set of different registers then those registers must be in sizes like 8, 16, 32, 64, so on bits?
I heard Steve make reference to DMA serval times also. As I understand DMA is direct memory access, so in that case the memory address plane is something that all devices have access to, not just the CPU. Device A can access device B via DMA by knowing the memory address device B is at?
I also suppose what Steve is doing in spin rite is accessing the registers on a storage device and telling is to do specific things to test and recover the drive. I also remember he rewrote something a while ago because after reading the ATA spec, so I am guessing that computer hardware device have specifications that tell something how the device will behave then sending the device different data to it’s registers? Must have registers for commands, reading, and writing perhaps?
For the part that Steve explained that there was some 256bit blob, I think he said it was an s box, that was basically the “lock” so that the hardware is not usable without knowing the secret?
Any how, I listened while I was cooking and then eating, so I of course missed some parts. I know, I’ve got a lot of guesses and assumptions here. Likely some of you will read this and think I don’t know much about computer hardware, but I figure I would ask any how. Perhaps I could see if I could find ATA specs or other device specs online to better understand how computer hardware typically works. Thanks everyone.