In basis max number of connection deped from:
-- type of oracle server configuration: shared mode or dedicated (or may be mixed)
-- in solaris from system kernel parameter (/etc/system file) --> SEMMNS = xxx
because # of processes = xx in init.ora directly depend from SEMMNS.

In dedicated mode of oracle server:
max connections = #SEMMNS - 10 - # semaphores, that use OS and anoter applications (usually on my boxes ~ 20-50)

In MTS :
max connections = (#SEMMNS - (10 + # OS/APP semaphores)) * 100~250
(this is # of connections per 1 MTS dispatcher and depend from OS type and version).
U can limit #of dispatchers using max_dispatchers = xx.

In mixed mode max connections = (#SEMMNS - (avg_dedicated_connections + 10 + # OS/APP semaphores)) * 100~250 + avg_dedicated_connections.