Wikipedia:Reference desk/Archives/Computing/2016 July 20

= July 20 =

Partitions and Disk Images
I have two computers that I would like to upgrade from windows 7 and windows 8.1 to windows 10, then, having already made disk images of them, and a restoral disk for the 8.1, return them to 7 & 8.1, and restore the C drives on each to the state on the disk images I intend to create. My understanding is that these hardrives will now be registered with MS for an upgrade to 10 any time in the future, so basically I will stay running 7 & 8.1 for now, but be able to upgrade at my leisure, in say a year or 3?

The computer running 8.1 has only a C Drive, 500GB, of which only about 120GB are used. The Computer running 7 is more Complicated. It has a 100GB SSD "C" and a 1T HD, "D", noth almost full. The question is, if I purchase a 1TB external drive and partition it into a 750 and a 250GB pair, will I be able to create the 100GB disk image in the 250GB partition and the 500GB disk image into the 750GB partition without inherent problems?

And when I create the disk image of the 100GB SSD "c" will it not drag along the 1TB HD "D" unless I click on "D" to do so?

Finally, since I will be restoring the disk images as soon as I have downloaded WIN 10 and then restored WIN 7 ^ 8.1, is there a preferred free software to do this efficiently?

Thanks. μηδείς (talk) 05:37, 20 July 2016 (UTC)
 * I used Clonezilla to clone a single disk image of a working PC to a USB drive, and then used that cloned image to recreate the same working OS on two identical PCs - so not exactly what you're proposing, but the same method. Despite it appearing rather difficult to use, providing you are methodical and follow the prompts, it works very well.  And the answers to your questions: clonezilla only copies used parts of the drive, so you will be able to get your 500GB drive into 750 very easily, ditto 100GB into the 250.  Similarly, it will only clone the C drive if that's what you tell it to do.--Phil Holmes (talk) 11:30, 20 July 2016 (UTC)


 * Ehxcellent, thanks. μηδείς (talk) 20:58, 20 July 2016 (UTC)


 * Note that it's not the hard drive that is registered for the "digital entitlement", but a fingerprint of various hardware (most importantly the motherboard). If you have a product key for the Windows installations (typically there's one on a sticker somewhere if the OS came with the machine), a spare internal drive of any size (well, at least 20GB), and a DVD burner or small USB drive, and you don't mind opening up the machines, a faster and safer approach is to unplug the hard drive(s) in the machine, plug in the spare drive, do a clean install of 10, and activate using the product key. This works starting with update 1511. You can use Microsoft's media creation tool to make a bootable DVD or flash drive for the clean install. (Or download an ISO image and burn it to a DVD or use Rufus to put it on a USB drive.) -- BenRG (talk) 18:38, 20 July 2016 (UTC)


 * I get what you are at, but we tried opening up his machine to change to clean the fans, and just getting the back off it was a nightmare. I'll have no problem with the above method, and he's already ordered the external hard drive for friday delivery.


 * Follow up question, if I use method withe clonezilla, will the external harddrive it uses as the target for making the disk image actually need to be partitioned ahead of time?  Or will it just create a folder? Would trying to partition the drive later wipe out such a folder? (I.e., does partioning blank the drive?) μηδείς (talk) 20:58, 20 July 2016 (UTC)
 * It creates a folder on the target drive with each "disk clone" information. So no need to partition the drive at all - just format it ready for use.--Phil Holmes (talk) 18:41, 21 July 2016 (UTC)


 * Follow Up; this all went well without needing to use any third-party programs. 8.1 does allow creating a disk image to a preformatted external hard drive, although it is something you have to look for under "recovery" and I was able to upgrade my dad's computer to 10 and restore it to 8.1 with very minor loss of data, basically a photo it took of him to be his avatar when he first set the computer up (it showed a quarter of his face, and was taken without warning as the default of 8.1.  It'd disappearance was welcome.  Some passwords and the modem password were erased.  But otherwise even his eternal "trial" version of Office did not dissapear at any stage, and the disk image has not been needed.  Thanks for the help above. μηδείς (talk) 02:15, 26 July 2016 (UTC)

Virtual memory without hardware support
I have read that it is possible (or I might I have read that it is possible to have virtual memory without an MMU). Is this true? — Melab±1 &#9742; 06:17, 20 July 2016 (UTC)


 * Virtual memory can be implemented (slowly) with software. It is not effective. Software is commonly used to enhance virtual memory, not replace the MMU. The real question should be: "Why would you try to implement virtual memory without an MMU?" 47.49.128.58 (talk) 12:43, 20 July 2016 (UTC)
 * I think that's absolutely correct - software can simulate anything the hardware MMU can do, by application of the Turing equivalence principle. A pertinent follow-up question to this statement might be, "how (in)efficiently could that software be implemented?"  That is a much trickier question and it would be architecture-specific; it would also entail a lot of subtle analysis and benchmarking.  Software that emulates virtual memory would profoundly affect memory access patterns, which may wreak havoc on any heuristics about spatial locality that are built into the cache hardware.  So, a VM simulator that might superficially appear to add only a small fixed performance overhead may actually yield a terrifically bad performance slow-down due to cache thrashing, for example.
 * As noted above, MMU hardware is widely available, and if the application requires virtual memory, it ought to be running on appropriate hardware with appropriate system memory management software. Nimur (talk) 13:04, 20 July 2016 (UTC)


 * See [ http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit ] to see someone who emulated a 32-bit ARM CPU and MMU on an 8-bit microcontroller and then booted Linux on it. --Guy Macon (talk) 16:32, 20 July 2016 (UTC)


 * To implement VM without an MMU basically requires emulating every memory reference instruction. Every instruction that touches memory would have to call a function to determine if that memory location is resident or needs to be loaded from disk. To do this, you'd need to either emulate EVERY instruction, or do some kind of compilation-like step that converts the code into different code, replacing every memory reference with a function call.  Either way, the performance will be abysmal compared to running the native code with an MMU to handle nonresident pages, probably many times slower. So while it's possible, using an MMU is vastly preferable.  That's why MMUs were invented in the first place. CodeTalker (talk) 16:46, 20 July 2016 (UTC)


 * A real-world example is the Z-machine used for Infocom interactive fiction. The original implementations (on the Apple II, Commodore 64, etc.) used software paging to load ~128K of code and text into machines with <64K of RAM. I remember reading somewhere that they used 256-byte pages, but I can't find a source for that now. According to this post they used LRU eviction. -- BenRG (talk) 17:38, 20 July 2016 (UTC)


 * You might want to look at bank switching. This is normally used when the amount of physical RAM is larger than the address bus, but it can also be used for virtual memory. However, bank switching is usually co-operative, bank switching on each context switch is likely to be expensive. LongHairedFop (talk) 18:01, 20 July 2016 (UTC)
 * There's also overlays. DOS programs used them a lot. Asmrulz (talk) 18:14, 20 July 2016 (UTC)