Please excuse my mis-use of words. I meant to say /opt, not /proc. The same question I asked about /proc will now be applied to /opt. Again, my apologies.
The rules where files should be stored in a Linux-system can be found in the...
The rules where files should be stored in a Linux-system can be found in the Filesystem Hierarchie Standard:
For programs following the Unix conventions, a program is split into parts...
For programs following the Unix conventions, a program is split into parts put in different subdirectories of /usr. The programs themselves are placed in /usr/bin, super-user applications in /usr/sbin, software libraries in /usr/lib, source code in /usr/src, header files in /usr/include and anything else (documentation, plugins, themes, graphics, sounds, etc) is placed in a subdirectory of /usr/share. The most important system commands are instead placed in /bin and /sbin, with the corresponding libraries in /lib. Programs you compile yourself usually go in /usr/local/bin to separate them from the programs in /usr handled by the package manager.
On the other hand, lots of software - especially multi-platform and possibly commercial software (matlab, maple, dropbox and several games come to mind) don't follow the Unix convention of splitting software in subdirectories called bin, sbin, lib and share, and thus don't "fit" into the directory structure in /usr. They instead expect to have their own folder, equivalent to the program folders in C:\Program Files\ on a Windows system. The solution is thus to just give those pieces of software such subdirectories in /opt, and e.g. link any useful binaries into /usr/local/bin for easy access from the command line.
The opt directory is used for optional software, in most cases proprietary...
The opt directory is used for optional software, in most cases proprietary and binary based software is installed there to differentiate them from standard open source software.