# Software

Software (SW) are [programs](program.md) running on a [computer](computer.md), i.e. its non-physical parts (as opposed to [hardware](hw.md)); for example an [operating system](os.md), the [Internet](internet.md) [browser](browser.md), [games](game.md) etc. Software is created by the act of [programming](programming.md) (and related activities such as [software engineering](sw_engineering.md) etc.).

Usually we can pretty decisively tell software ans hardware apart, but still there appear edge cases where it might be debatable. Normally software is that about the computer which *can relatively easily be changed* (i.e. reinstalled by a typing a few commands or clicking a few buttons) while hardware is [hard-wired](hard_wired.md), difficult to modify and not expected or designed to be modified. Nonetheless [firmware](firmware.md), for instance, is a kind of software in form of instructions which many times are stored in a special kind of memory that's difficult to be reprogrammed and not expected to be reprogrammed often -- some software may be "burned in" into a circuit so that it could only be changed by physically rewiring the circuit (the [ME](intel_me.md) spyware in [Intel](intel.md) [CPU](cpu.md)s has a built-in [minix](minix.md) operating system). See also [FPGA](fpga.md). There are cases where it may on occasion become difficult to drawn the line and distinguish hardware from software -- the issue was encountered for example by the [FSF](fsf.md) which certifies some hardware powered solely by free software as *Respects Your Freedom* ([RYF](ryf.md)): as part of the certification requirements they define what exactly they mean by "software".

## See Also

- [algorithm](algorithm.md)
- [free software](free_software.md)
- [shitware](shitware.md)
- [rapeware](rapeware.md)
- [malware](malware.md)
- [bloatware](bloat.md)
- [firmware](firmware.md)
- [hardware](hw.md)
- [brain software](brain_software.md)