Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 142

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

ПослС 1985 Π³ΠΎΠ΄Π° Π³Π»Π°Π²Π½Ρ‹Π΅ вопросы ΠΏΠΎ Unix-стандартизации Ρ€Π΅ΡˆΠ°Π»ΠΈΡΡŒ Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ΠΎΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² элСктротСхники ΠΈ элСктроники (Institute of Electrical and Electronic Engineers β€” IEEE). ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ 1003 IEEE Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΡΠ΅Ρ€ΠΈΡŽ стандартов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстны ΠΊΠ°ΠΊ POSIX107. Π”Π°Π½Π½Ρ‹Π΅ стандарты Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π·Π° Ρ€Π°ΠΌΠΊΠΈ простых систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… срСдств Π‘. Они опрСдСляли ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ сСмантику ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ привязки для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Π‘. ΠŸΠ΅Ρ€Π²Π°Ρ вСрсия появилась Π² 1990 Π³ΠΎΠ΄Ρƒ, Π° вторая рСдакция Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² 1996 Π³ΠΎΠ΄Ρƒ. ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Π°Ρ организация ΠΏΠΎ стандартизации (International Standards Organization β€” ISO) приняла Π΄Π°Π½Π½Ρ‹Π΅ стандарты ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ISO/IEC 9945.

НиТС пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… POSIX-стандартов.

1003.1Β (ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1990 Π³ΠΎΠ΄Ρƒ)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ОписаниС API систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π‘, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° Version 7, ΠΊΡ€ΠΎΠΌΠ΅ сигналов ΠΈ интСрфСйса управлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ.

1003.2Β (ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1992 Π³ΠΎΠ΄Ρƒ)

Бтандартная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ строго повторяСт сСмантику Bourne shell Π² System V.

1003.4 (ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1993 Π³ΠΎΠ΄Ρƒ)

Unix-систСма Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ сСмафоры, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° памяти процСсса, Ρ„Π°ΠΉΠ»Ρ‹ с распрСдСлСниСм памяти, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ΅ расписаниС, сигналы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° IPC-сообщСний, синхронизированный I/O, асинхронный I/O, Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ 1996 Π³ΠΎΠ΄Π° стандарт 1003.4 Π±Ρ‹Π» Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 1003.1b (систСма Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ) ΠΈ 1003.1с (ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы).

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ области, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ сСмантика ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сигналов ΠΈ ΡƒΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ BSD-сокСтов, Π±Ρ‹Π»ΠΈ Π½Π΅Π΄ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ POSIX-стандарты стали основой всСй ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ стандартизации Unix. Они Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ†ΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅, хотя ΠΈ косвСнно, посрСдством Ρ‚Π°ΠΊΠΈΡ… справочников, ΠΊΠ°ΠΊ "POSIXProgrammer's Guide" [47]. Π”Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стандарт Unix API Π΄ΠΎ сих ΠΏΠΎΡ€ остаСтся "POSIX плюс сокСты", Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ стандарты, Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ согласованиС Π² Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаях.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ Π½Π° этом ΠΏΠΎΠ»Π΅ Π±Ρ‹Π»Π° Π³Ρ€ΡƒΠΏΠΏΠ° Π₯/ΠžΡ€Π΅ΠΏ (ΠΏΠΎΠ·Π΄Π½Π΅Π΅ пСрСимСнованная Π² Open Group), консорциум поставщиков Unix, сформированный Π² 1984 Π³ΠΎΠ΄Ρƒ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ X/Open Portability Guides (XPGs) ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ POSIX, Π° Π·Π°Ρ‚Π΅ΠΌ послС 1990 Π³ΠΎΠ΄Π° стандарты XPGs Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² POSIX ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΈ Π΅Π³ΠΎ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ POSIX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставлял собой ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ сбора Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ подмноТСства ΠΈΠ· всСх Unix-систСм, стандарты XPGs большС склонялись ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠΌ участкС исслСдований; Π΄Π°ΠΆΠ΅ XPG1 Π² 1985 Π³ΠΎΠ΄Ρƒ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ систСмы SVr2 ΠΈ 4.2BSD, Π²ΠΊΠ»ΡŽΡ‡Π°Π» Π² сСбя сокСты.

Π’ 1987 Π³ΠΎΠ΄Ρƒ Π² стандарт XPG2 Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ API-интСрфСйс ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ, ΠΏΠΎ сущСству, Π±Ρ‹Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses(3) систСмы System V. XPG3 Π² 1990 Π³ΠΎΠ΄Ρƒ влился Π² XI1 API. XPG4 Π² 1992 Π³ΠΎΠ΄Ρƒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡ‚Π²Π΅Ρ€Π΄ΠΈΠ» ΠΏΠΎΠ»Π½ΠΎΠ΅ соотвСтствиС стандарту 1989 Π³ΠΎΠ΄Π° ANSI Π‘. Π’ стандартах XPG2, 3 ΠΈ 4 интСнсивно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ описывался слоТный API для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² сообщСний.

Π’ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΏΠΎ стандартам Unix ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ ссылки Π½Π° стандарты "Spec 1170" (1993 Π³ΠΎΠ΄Π°), "Unix 95" (1995 Π³ΠΎΠ΄Π°) ΠΈ "Unix 98" (1998 Π³ΠΎΠ΄Π°). Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ сСртификационныС Π·Π½Π°ΠΊΠΈ стандартов Π₯/Open, ΠΈ Π² настоящСС врСмя ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ историчСский интСрСс. Однако Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ стандартом XPG4 ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Spec 1170, которая стала ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсиСй Π•Π΄ΠΈΠ½ΠΎΠΉ спСцификации Unix (Single Unix Specification, SUS).

Π’ 1993 Π³ΠΎΠ΄Ρƒ 75 поставщиков систСм ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π³Π»Π°Π²Π½Ρ‹Π΅ Unix-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, поставили ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π² Unix-Π²ΠΎΠΉΠ½Π°Ρ…, ΠΊΠΎΠ³Π΄Π° объявили ΠΎ финансовой ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π₯/Open Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ опрСдСлСния Unix. Как Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ соглашСния Π₯/Open ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° ΠΏΡ€Π°Π²Π° Π½Π° Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ ΠΌΠ°Ρ€ΠΊΡƒ Unix. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ стандарт стал Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Single Unix Standard (Π•Π΄ΠΈΠ½Ρ‹ΠΉ стандарт Unix) вСрсии 1. ВСрсия 2 Π²Ρ‹ΡˆΠ»Π° Π² 1997 Π³ΠΎΠ΄Ρƒ. Π’ 1999 Π³ΠΎΠ΄Ρƒ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ стандарту POSIX ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° ΠΊ Π₯/ΠžΡ€Π΅ΠΏ.

Π’ 2001 Π³ΠΎΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ° Π₯/Open (сСйчас The Open Group) выпустил Π•Π΄ΠΈΠ½Ρ‹ΠΉ стандарт Unix вСрсии 3 (Single Unix Standard version 3) <http://www.Unix.org/version3/>. ВсС "ΠΏΠΎΡ‚ΠΎΠΊΠΈ" стандартизации Unix API Π±Ρ‹Π»ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ Unix воссоСдинились Π½Π° основС ΠΎΠ±Ρ‰Π΅Π³ΠΎ API. И это Π±Ρ‹Π»ΠΎ встрСчСно с большим энтузиазмом, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, срСди Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ² Unix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠ½ΠΈΠ»ΠΈ ΠΎ бурях 80-Ρ… Π³ΠΎΠ΄ΠΎΠ².

17.2.2. ВлияниС Π½ΠΎΠ²Ρ‹Ρ… Unix-систСм

К соТалСнию, Π±Ρ‹Π»Π° ΠΎΠ΄Π½Π° нСудобная Π΄Π΅Ρ‚Π°Π»ΡŒ β€” поставщики Unix старой ΡˆΠΊΠΎΠ»Ρ‹, Ρ„ΠΈΠ½Π°Π½ΡΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΏΠΎΠ΄ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ влияниСм со стороны Unix-систСм Π½ΠΎΠ²ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ (Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Linux) ΠΎΡ‚ коммСрчСских Unix-систСм, Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ усилий для достиТСния Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ соотвСтствия.

ВСстированиС соотвСтствия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ соотвСтствия Π•Π΄ΠΈΠ½ΠΎΠΉ спСцификации Unix, β€” дорогая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ дистрибутива, Π½ΠΎ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ многообразия Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ любом случаС, Linux измСняСтся ΡΡ‚ΠΎΠ»ΡŒ быстро, Ρ‡Ρ‚ΠΎ любая вСрсия дистрибутива, вСроятно, устарСла Π±Ρ‹ ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ окончания сСртификации108.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Single Unix Specification, Π½Π΅ ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ своСй значимости. Они всС Π΅Ρ‰Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ†Π΅Π½Π½Ρ‹ΠΌΠΈ руководящими ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Unix. Однако Π΄Π°Π»Π΅Π΅ стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ "The Open Group" ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, связанныС с процСссом стандартизации Unix старой ΡˆΠΊΠΎΠ»Ρ‹, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΡΠΏΠΎΡΠ°Π±Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊ быстрому Ρ‚Π΅ΠΌΠΏΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Π° вСрсий с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ ΠΌΠ°Π»ΠΎΠ±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Π±Π΅Π·Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π³Ρ€ΡƒΠΏΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ).

17.2.3. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ Unix Π² ΠΌΠΈΡ€Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°

Π’ сСрСдинС 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ² сообщСство ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π° Π½Π°Ρ‡Π°Π»ΠΎ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ стандартизации. Π­Ρ‚ΠΈ усилия ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Π»ΠΈΡΡŒ Π½Π° совмСстимости Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠ΄Π°, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠΉ стандартом POSIX ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ. Π’ частности Linux, Π±Ρ‹Π»Π° написана с нуля способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависСл ΠΎΡ‚ доступности Ρ‚Π°ΠΊΠΈΡ… стандартов Unix API, ΠΊΠ°ΠΊ POSIX109.

Π’ 1998 Π³ΠΎΠ΄Ρƒ компания Oracle пСрСнСсла Π½Π° Linux свой Π»ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, этот шаг справСдливо рассматриваСтся ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ принятия Linux. ΠžΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ API-стандарты Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ свою Π·Π°Π΄Π°Ρ‡Ρƒ, Π½Π° вопрос Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π΅Ρ€Π° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ тСхничСскиС трудности ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ Oracle ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»: "ΠœΡ‹ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ make".

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для Unix-систСм Π½ΠΎΠ²ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹ Π±Ρ‹Π»Π° Π½Π΅ API-ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного ΠΊΠΎΠ΄Π°. ВсС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Linux, BSD ΠΈ коммСрчСскими дистрибутивами Unix Π±Π΅Π· нСобходимости Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ усилия Π½Π° обСспСчСниС пСрСносимости ΠΊΠΎΠ΄Π°. Новой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π±Ρ‹Π»Π° Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ исходного ΠΊΠΎΠ΄Π°, Π° бинарная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΠΎΡ‡Π²Π° ΠΏΠΎΠ΄ Unix Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Π·Π°ΡˆΠ°Ρ‚Π°Π»Π°ΡΡŒ вслСдствиС массового спроса Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ обСспСчСниС PC.

Π’ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° каТдая Unix-систСма Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½Π° Ρ‚ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, которая фактичСски Π±Ρ‹Π»Π° Π΅Π΅ собствСнной. Π‘Ρ‹Π»ΠΎ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² инструкций процСссоров ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ прилоТСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡ… пСрСнСсти. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, сущСствовало ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшоС число основных вСрсий Unix, каТдая с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ сроком слуТбы. ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Oracle, ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ распространСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… дистрибутивов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° пСрСнос исходного ΠΊΠΎΠ΄Π° срСди большого числа ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ достаточно Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ².