Volunteers
sometimes on a really isolated and very singular way (lonely enthusiast, small teams)
sometimes organised in non-profit associations and foundations (Apache, GNU project, etc.)
Companies
Not a single way to participate :
usind, testing, filing bug reports
supporting others (forums, lists, etc.)
coding
doing business
etc.
Sometimes, interacting with Free Software communities requires a new attitude : adapting to the hacker community's laws and codes