What's the core difference between the mining and wallet software out there? I haven't been able to find any information on this so anything - technical or non is appreciated. Though I'm talking about the wallets that make you download the block chain as well, not the light wallets. Thank you.
The main difference is that the wallet software does not mine or add onto the blockchain as the mining software does. Mining software attempts to find a valid Proof-of-Work, i.e., find an input to the hash function such that the hash is below the target, and has the ability to output a new block if the correct answer is found. Wallet clients download the entire blockchain, but do not mine for blocks as the mining software does.
In the past when the difficulty was low, the mining software and wallet were in the same program, but they have since split and now many versions of both wallets and mining software exist.
When you buy an ASIC mining machine it usually comes with a tiny computer with preinstalled software. You just configure it using a web browser and you don't need to worry about mining software.
Look here for a comparison of wallets: https://bitcoin.org/en/choose-your-wallet Click on each wallet to see its strengths and weaknesses.
The main purpose of wallets is to manage your key chain, i.e. the set of private keys that allows you to spend your bitcoins. For convenience and better user experience most wallets also track the addresses of your business partners, your transactions and your Bitcoin balance. There are both wallets that do this with full knowledge of the state of the blockchain as well as completely decoupled from the blockchain state (e.g. paper wallets).
The main purpose of mining software is to find an update increment to the Blockchain's state. To that end, mining software must find a set of inputs that corresponds to a winning block hash. In the most minimal setup, as a contributor to a pool, you only need to be able to increment the nonce, to recalculate the block header, and to perform an insane amount of SHA-256d operations.