企業内基幹業務、BtoB/Business to Business、BtoC/Business to Customer(Consumer)アプリケーションなどのビジネスユース(業務用途)やパーソナルユース(個人用途)のBBS/Bulletin Board System(掲示板システム)に至るまで、実際にはもっと複雑ですが、そのサービスの大まかなシステム構成は(専用に構築されたアプリケーションを積む)クライアントと(データベース)サーバから成る2層C/S構成から、ブラウザをクライアントとして利用できるようになってからはウェブサーバを加えた3層構成のC/Sに移行してきました。
サーバの種類は、その機能から実際には相当数にのぼり、サービス規模やサービス内容、求められる仕様によっても種々様々で1台の端末で併用できる場合もあれば別にするべきケースもありますし、バックアップ用のサーバを用意すべき状況も多々あります。
例えば、一定期間のサービスの停止が許されないケースなどでは複数ある場合はそれぞれメインで稼働するプライマリサーバと緊急時に切り替えられるよう定期的にプライマリサーバとの同期をとりながらバックアップするスレーブサーバも必要でしょうし、用途に応じて前述のデータベースサーバ、ウェブサーバ、更にはメールサーバ、IMAPサーバ、SMTPサーバ/POP3サーバ、DNSサーバ、プロキシサーバ、FTPサーバ、DHCPサーバ、ファイルサーバ、プリンタサーバ...etc.などがあります。
これら相互の機能間、サーバとクライアント間でデータ送受信を行う為等々には、サーバではOSはもちろんのことスクリプトやプログラミング言語なども重要な役割を担っています。
OSは、大まかに言うと主に物理的な端末(CPU)へのいわゆる機械語による操作命令を行うカーネルとカーネルとの入出力(I/O・IN/OUT)やユーザーに各種サービスを提供する為の常駐プログラムであるデーモンから成り、いずれもスクリプトやプログラミング言語と切り離して考えることはできません。
人がサーバに何かをさせるために書くスクリプトやプログラミング言語などによるプログラムは人にとってわかりやすいように作られている為、そのままではOSやCPUに命令を渡すことができないのである時点で機械語に変換する処理が必要です。
インタプリタ(プログラムを逐一解析して実行する形態)やそれに近いShell/Perl/Python/Ruby...といったスクリプト言語は自動的に、またはCOBOL/FORTRAN/C/C++/Java...といったプログラミング言語のように明示的なコンパイルによって、またはLispのようにその中間的にインタプリタまたはコンパイルという作業を通して機械語に変換され、OSのデーモンやCPUに処理を依頼(命令)します。
現代はPCだけでなくケータイやPDA端末、これらが融合したようなスマートフォン、人工知能(AI)、航空機、電車、車それ自体や運航管理、空港のチェックインや電車の券売機から自動改札、高速道路のETC、情報家電、ゲームに至るまでコンピュータ制御がなされ、組み込み系などでは俗に言うOSなるものが存在しないケースもあります。
先に挙げた各種サーバ間、クライアント/サーバ間、CPUやOSのカーネル、デーモンとのデータ送受信において、はたまた多様なサービスによってそれぞれ適応するスクリプトやプログラム言語もそれぞれです。
例えば、UNIX開発者がより柔軟な言語でUNIXOSを書くべく開発したC言語は今尚、更にやはりUNIXには欠かせないシェルと共に、サーバ間、CPUやOSのカーネル、デーモンへのアクセスや組み込み用途、クライアント/サーバのサーバサイドのプログラミング言語としてはその後継含め日夜次々と言語開発が行われているもののC/C++/Javaが、ウェブサーバにおいてはShell/Perl/Python/Ruby...といったスクリプト言語やPHP/JSP/ASP...などが主に利用されていると言えると思います。
2層C/Sのサーバプログラミング言語
3層C/Sシステムでクライアントがウェブブラウザのサーバプログラミング言語