ΠΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΡΡΡΡ (ΠΈ ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΡΠΌΠΎΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² POSIX-ΡΡΠ°Π½Π΄Π°ΡΡΠ°Ρ , Π° Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π² ΡΠ΅ΠΊΡΡΠ°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ) ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π½Π΅ΡΠ²Π½ΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠΈ (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°) ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.[4] Π’Π°ΠΊ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅:
void* threadfunc(void* data) {
// ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ 1:
}
...
pthread_create(NULL, NULL, threadfunc, NULL);
// ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ 2:
...
Π½Π΅Π»ΡΠ·Ρ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π°ΠΏΡΠΈΠΎΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΊΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ (ΡΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²Π° pthread_create()): Π°) Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ 2Β» Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅; Π±) Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ 1Β» Π² ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅; Π²) Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Π±ΡΠ΄ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ 1Β» ΠΈ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ 2Β»β¦ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π² Π»ΡΠ±ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ) ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΠ‘ QNX ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ QNET, ΠΎΡΠ³Π°Π½ΠΈΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ Β«ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΡΒ» ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ·Π»ΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° (Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Ρ Π»ΠΎΠΏΠΎΡ), Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡΠΈΠΉ ΠΎΠ±ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ: Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎ QNET ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΠ·Π»Π΅, ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
# cp /net/host/dev/ser1 ./file
ΡΠ°ΡΡΠΎ Π»ΠΈ ΠΌΡ Π·Π°Π΄ΡΠΌΡΠ²Π°Π΅ΠΌΡΡ Π½Π°Π΄ ΡΠ΅ΠΌ, ΠΊΠΎΠ³ΠΎ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ΅ΡΠ½ΡΡΡ ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈΠ· ΡΠ΅ΡΠΈ QNET ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΡΡΡΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π΄Π°ΠΆΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ β ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΠΈΡ Π΅ΡΠ΅ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½Π΅Π΅ ΠΈ Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, [11]), ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΈ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΊΠ°ΠΊ Β«ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΒ», β Π΄Π°ΠΆΠ΅ ΡΠΎΠ³Π΄Π° ΡΠ°ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°, β ΡΡΠΎ ΠΏΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Β«ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ³ΠΎΒ» Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΡΡΠΎΡ ΠΏΡΡΡ (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΊΠ°ΠΆΡΡΠΈΠΉΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈ ΠΏΡΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡΠΌ) β ΠΏΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΠΏΡΠΎΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ.
ΠΠ°ΠΊ ΡΠΆΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΏΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠΎΠΏΡΡΠΆΠ΅Π½Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ: Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ, Β«ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎΒ», Π²Π·Π³Π»ΡΠ΄Π° Π½Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈΠ²ΡΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ API, ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Β«ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΒ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ΄ΠΈΠ½ΠΎΠΆΠ΄Ρ ΠΎΡΠ²ΠΎΠΈΠ² ΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΈΠ½Π½ΡΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ β Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΠΈΡΡ Β«ΡΠ°ΡΡΡΠΏΠ°ΡΡΒ» ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΉ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π°, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°: Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡ ΠΠ‘, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ POSIX-ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π°ΠΊΡΠ΅Π½Ρ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Β«ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈΒ» [4]. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π°Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΡΡΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΡΠΈΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ (ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠΈ) ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ Π² ΡΡΠ΅ΡΠ°Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠ°Π»ΠΈ ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΡΡΡ Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ.
Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²Π° API
ΠΠ±ΡΠ΅Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² API (Application Program Interface β ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΊ ΡΡΠ»ΡΠ³Π°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ), ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ (ΠΠ‘) ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ QNX, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΏΡ:
β’ Native QNX API β ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ QNX (ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ POSIX Π΅ΡΠ΅ Π½Π΅ ΡΡΠΎΡΠ»); ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π±Π°Π·ΠΈΡΠΎΠΌ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΌ Β«ΠΌΠΈΠΊΡΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΡΒ» Π΅Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π½ΠΎ ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡΡ ΡΡΠΎΠΉ ΠΠ‘.
β’ POSIX (BSD) API β ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ API, ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡΠ΅ΠΉΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Π³ΡΡΠΏΠΏΡ POSIX, ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΠ‘, ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΡΡΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Ρ UNIX.
β’ System V API (POSIX) β ΡΡΠΎ ΡΠ° ΡΠ°ΡΡΡ API, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΈΠΌΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠΈΠ½ΡΡΡΠ΅ Π² UNIX-ax, ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π²Π΅ΡΠ²ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ System V, Π° Π½Π΅ ΠΊ Π²Π΅ΡΠ²ΠΈ BSD.
Native QNX API
ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΡΠ»ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠ»ΠΎΠ΅ΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ QNX. ΠΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΠΎΡ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈΡΡ Β«ΠΎΠ±Π΅ΡΡΠΊΠ°ΠΌΠΈΒ», ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Ρ native QNX API ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ ΡΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ.
Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΎΠΌ API (ΠΊΠ°ΠΊ, Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΠΈΠ· ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π½ΠΈΠΆΠ΅), Π½ΠΎ ΡΡΠΎ Π½Π΅ Π»ΡΡΡΠΈΠΉ Π²ΡΠ±ΠΎΡ (Π½Π° ΡΡΠΎΠΌ Π°ΠΊΡΠ΅Π½ΡΠΈΡΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ QNX) ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΡΡΠΎΡ ΡΠ»ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ Β«ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌΒ» β ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ QSSL ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ThreadCreate(), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΡΠΈΠ³Π½Π°Π»Ρ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ , ΡΠΎΠ½ΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ) Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ POSIX-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² native API QNX.
POSIX (BSD) API
ΠΡΠ° ΡΠ°ΡΡΡ API Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ API ΠΠ‘ UNIX, ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π²Π΅ΡΠ²ΠΈ BSD (BSD, FreeBSD, NetBSD ΠΈ Π΄ΡΡΠ³ΠΈΠ΅).[5] ΠΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΡΠ·ΠΈΡΡ Π΄ΠΎ Β«BSD APIΒ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π΄Π°Π»Π΅Π΅ Π½Π°Π±ΠΎΡ API System V ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ POSIX, Π½ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ Β«POSIX APIΒ», ΡΠ»Π΅Π΄ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π£. Π‘ΡΠΈΠ²Π΅Π½ΡΠ° [2]. ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ Π΄Π»Ρ native API ThreadCreate() Π·Π΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ pthread_create().
ΠΠΌΠ΅Π½Π½ΠΎ Π½Π° API ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠΎΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° (ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ API ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ΅-Π³Π΄Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠ»ΠΈΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² native API), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ QNX, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠ² Π² POSIX API. ΠΠ°ΠΊ ΡΠ°Π· Π²ΡΠ΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΡΡΠΎΠΌ API Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ΠΎ Π½Π° Π²ΡΠ΅ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎ ΡΠ΅ΠΌ ΠΌΡ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π²ΡΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π‘Π°ΠΌΡΠΉ ΡΠ°Π½Π½ΠΈΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ POSIX ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ IEEE 1003.1β1988 ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ 1988 Π³ΠΎΠ΄Ρ (Π΅ΡΠ»ΠΈ ΡΠΎΡΠ½Π΅Π΅, ΡΠΎ Π΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» ΡΠ°Π±ΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ IEEEIX 1986 Π³ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠΌΠΈΠ½ POSIX Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Β«ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Β»). ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ Π΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ, IEEE 1003.1β1996, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ Β«ΡΡΠ°Π½Π΄Π°ΡΡ POSIXΒ», ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ POSIX.1. ΠΠ°Π±ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² POSIX Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΊ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΈΠ· 30 Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ².
ΠΠ»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΡΠΎΠ±ΡΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ, Π½Π° ΡΠ΅ΠΌΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ: 1003.1a, 1003.1b, 1003.1c, 1003.1d, 1003.1j, 1003.21, 1003.2h. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
1003.1a (OS Definition) β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΠ‘;
1003.1b (Realtime Extensions) β ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌ, ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄, IPC-ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ (ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ);
1003.1c (Threads) β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ (ΠΌΡΡΡΠ΅ΠΊΡΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π±Π°ΡΡΠ΅ΡΡ ΠΈ Π΄Ρ., Π½ΠΎ Π½Π΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ), Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ.