COFF
元々のUnixのオブジェクトファイルフォーマットa.outは非常に単純な設計であり、たとえば シンボリックデバッグ情報や共有ライブラリなどを十分にサポートすることができなかった。AT&Tの内外でUnixライクシステムの開発が進むにつれ、これらの問題への別の解決策や、異なる問題が生じ始めた。
COFFはAT&TのVAX以外の32bitプラットフォーム向けのUNIX System Vで導入された。既存のAT&Tのa.outフォーマットに対する改善点として、COFFは元からシンボリックデバッグ情報や共有ライブラリ、拡張の機構をサポートしていた。
しかし、COFFはa.outの改善版であると同時に、その設計にも制限があった。セクションの最大数や、セクション名の長さ、シンボリックデバッグ情報をC++のような新しい言語でサポートすることができない、などの制約があった。