This paper studies a large unitarily invariant system (LUIS) involving a unitarily invariant sensing matrix, an arbitrary signal distribution, and forward error control (FEC) coding. We develop a universal Gram-Schmidt orthogonalization for orthogonal approximate message passing (OAMP). Numerous area properties are established based on the state evolution and minimum mean squared error (MMSE) property of OAMP in an un-coded LUIS. As a byproduct, we provide an alternative derivation for the constrained capacity of a LUIS. Under the assumption that the state evolution for OAMP is correct for the coded system, the achievable rate of OAMP is analyzed. We prove that OAMP achieves the constrained capacity of the LUIS with an arbitrary signal distribution provided that a matching condition is satisfied. Meanwhile, we elaborate a capacity-achieving coding principle for LUIS, based on which irregular low-density parity-check (LDPC) codes are optimized for binary signaling in the numerical results. We show that OAMP with the optimized codes has significant performance improvement over the un-optimized ones and the well-known Turbo linear MMSE algorithm. For quadrature phase-shift keying (QPSK) modulation, capacity-approaching bit error rate (BER) performances are observed under various channel conditions.