Few questions after SN 955 than anyone can answer if they feel like it :-)

  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in please checkout the “Tips & Tricks” page for some very handy tips!

    /Steve.
  • BootAble – FreeDOS boot testing freeware

    To obtain direct, low-level access to a system's mass storage drives, SpinRite runs under a GRC-customized version of FreeDOS which has been modified to add compatibility with all file systems. In order to run SpinRite it must first be possible to boot FreeDOS.

    GRC's “BootAble” freeware allows anyone to easily create BIOS-bootable media in order to workout and confirm the details of getting a machine to boot FreeDOS through a BIOS. Once the means of doing that has been determined, the media created by SpinRite can be booted and run in the same way.

    The participants here, who have taken the time to share their knowledge and experience, their successes and some frustrations with booting their computers into FreeDOS, have created a valuable knowledgebase which will benefit everyone who follows.

    You may click on the image to the right to obtain your own copy of BootAble. Then use the knowledge and experience documented here to boot your computer(s) into FreeDOS. And please do not hesitate to ask questions – nowhere else can better answers be found.

    (You may permanently close this reminder with the 'X' in the upper right.)

coffeeprogrammer

Well-known member
Jul 19, 2021
198
20
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.
 
That is nice, it might be useful to someone, but not me and not anytime soon if ever. I was more looking for general or generic information. Something like that might have a practical purpose with specific goals. I generally come here because I have a general interest in electronics, computer architecture and operating systems. Steve was the first person in my life to communicate anything about those subject to me in any meaningful way. It was great having access to such information when there was not much else good in life. I pay the bill by having knowledge about procedural languages, object oriented languages, the little bit I know about compilers and debugger and certainly databases. Besides that, I really don’t have many skills. I don’t know any math beyond calculus and the only physics I’ve ever learn is gone now. I have got to keep all the highly detailed stuff in that space that pays the bills and its not bad work anyhow. Besides computer engineering type things I’ve also considered learning more about business only because from my perspective it might be possible to use it some how to write better code. I also am someone interested in psychology largely because of what I have seen around me in my surroundings and my own experiences people and places where that is central. Just tonight I was reading the wikipedia on serotonin. If you know of a better place where people that are focused, disciplined and still down to earth enough to have an informative conversation (often such people do have interests outside of their money maker) particularly if the focus is electronics and computer architecture then send a link for that. Thank you.
 
You should REALLY arrange to check out GRC's “off the beaten path” old-school NNTP newsgroups. I've been running a text-only NNTP server for several decades and has gathered exactly the sort of people you are interested in conversing with. You'll need to find an NNTP client for your OS (I use and love Gravity but many people use Thunderbird and there are many others.) The "Discussions" page at GRC has a list of many as well as details for getting connected. You'll find that we have a wide range of groups and topics defined, but what really makes the place special is the people who have chosen to hang out there. (And we all know and appreciate it.) Hope to see you there!
 
Thanks, I will see if I can get my self access to that, mostly I just come up with lots of questions. Most of what I mess around with in the computer architecture stuff is not practical because I am not getting paid to do it. That being the case I generally end up glossing over details.
 
I just wanted to post a follow up. I re-listened to SN 955 and got the transcript, so yes I know understand that is how devices are accessed, device registers. Also, search youtube for “device registers and memory mapped io” and there are results that help for understanding. At this point I am wondering if a person could do something like this with the QEMU emulator where you can add different devices to that. Also, I think many devices also have firmware, so I guess I wonder how that might come into play when using a device. Thanks.
 
I just wanted to post a follow up. I re-listened to SN 955 and got the transcript, so yes I know understand that is how devices are accessed, device registers. Also, search youtube for “device registers and memory mapped io” and there are results that help for understanding. At this point I am wondering if a person could do something like this with the QEMU emulator where you can add different devices to that. Also, I think many devices also have firmware, so I guess I wonder how that might come into play when using a device. Thanks.
Also found this udemy course that relates, I will buy this next time there is a sale