OSI is a theoretical model defined by ISO and ITU-T and published in 1984 that defines layers based on different functions of the communication process.
From 1984 to these days, a lot of technologies have been developed, some by standarization and some of them pushed by the market needs.
When telecommunication companies as Cisco, for example, develop some new technology, the competitors try to get the same technology and most of the times they converge to a common solution making a de-facto standard.
Because of that, in real life the protocols are aimed to resolve specific problems, and then, they loosely adhere to the OSI model.
TCP/IP was developed keeping in mind mainly layers 3 and 4 only, because the main concern was routing and session connectivity. In that moment nobody thought of problems like IP adresses scarcity, for example.
TCP/IP is independent of layers 1 and 2, so you can have TCP/IP over Ethernet, WiFi, Frame Relay, ATM, PPP, etc.
During the 90s coroprate LANS didn't use TCP/IP, because Novell Netware was the main force in corporate servers and its native protocol was IPX.
IPX was also loosely based in OSI, but mainly designed to solve the communication problems between Windows PCs and Novell servers.
Layer 7 firewalls inspect the contents of network packets to deny / accept specific applications (streaming, bittorrent, etc). They're called Layer 7 firewalls in reference to layer 7 of OSI, but they run over TCP/IP networksk, so it's a "wrong" denomination.