int send_mess_to_server(message_db_t mess_to_send) {
struct msg_passed my_msg;
#if DEBUG_TRACE
printf("%d send_mess_to_server()\n", getpid());
#endif
my_msg.real_message = mess_to_send;
my_msg.msg_key = mess_to_send.client_pid;
if (msgsnd(serv_qid, (void *)&my_msg, sizeof(mess_to_send) , 0) == -1) {
perror("Message send failed");
return(0);
}
return(1);
}
4. ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ Π΅ΠΌΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ.
int read_resp_from_server(message_db_t *rec_ptr) {
struct msg_passed mymsg;
#if DEBUG_TRACE
printf("%d :- read_resp_from_server()\n", getpid());
#endif
if (msgrcv(cli_qid, (void *)&my_msg, sizeof(*rec_ptr), getpid(), 0) == -1) {
return(0);
}
*rec_ptr = my_msg.real_message;
return(1);
}
5. ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ pipe_imp.c Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ΅ΡΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΡΡΡΠΌΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»ΠΎΠ², Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ.
int start_resp_to_client(const message_db_t mess_to_send) {
return(1);
}
void end_resp_to_client(void) {}
int start_resp_from_server(void) {
return(1);
}
void end_resp_from_server(void) {}
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠ΅, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ, β ΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π³Π»Π°Π²Ρ 11 Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° IPC, Ρ.ΠΊ. Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ΅ΠΌ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ IPC
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ X/Open ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌ Linux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ IPC Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² IPC. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcs ΠΈ ipcrm, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π΄ΠΎΡΠ°Π΄Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΡΡΠ΅Π΄ΡΡΠ² IPC ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π·Π°Π²Π΅ΡΡΠΈΠ²ΡΠ°ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡΡΡ IPC (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ) Π΅ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎ Π±Π»ΡΠΆΠ΄Π°ΡΡΠΈΠΌΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±Π΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΡΡΠΈ Π±Π»ΡΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ipcs) ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ (ipcrm) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΡΠΈΡΡΠΈΡΡ Π΅Π΅ ΠΎΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² IPC.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcs -s. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ, Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$ ipcs -s
------ Semaphore Arrays ------
key semid owner perms nsems
0x4d00df1a 768 rick 666 1
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ², ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcrm. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ (Π² Linux) ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ ipcrm -s 768
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Linux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ ipcrm sem 768
ΠΠΎ ΡΡΠΎΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ ΡΡΠΈΠ»Ρ ΡΠ΅Π΄ΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ. Π€ΠΎΡΠΌΠ°Ρ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌ ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°Ρ , Π½ΠΎ ΠΈ ΠΊ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcs -m ΠΈ ipcrm -m <id> (ΠΈΠ»ΠΈ ipcrm shm <id>).
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcs -m:
$ ipcs -m
------ Shared Memory Segments ------
key shmid owner perms bytes nattch status
0x00000000 384 rick 666 4096 2 dest
ΠΠ΄Π΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ 4 ΠΠ±Π°ΠΉΡ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΠΊ Π΄Π²ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° ipcrm -m <id> ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΠ½Π° Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ»Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcs -q ΠΈ ipcrm -q <id> (ΠΈΠ»ΠΈ ipcrm msg <id>).
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ipcs -q:
$ ipcs -q
------ Message Queues ------
key msqid owner perms used-bytes messages
0x000004d2 3384 rick 666 2048 2
Π Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ 2048 Π±Π°ΠΉΡΠΎΠ². ΠΠΎΠΌΠ°Π½Π΄Π° ipcrm -q <id> ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π Π΅Π·ΡΠΌΠ΅
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΡΡΠ΅ΠΌΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ² Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π»ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΠ‘ UNIX System V.2 ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Linux, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ Π΅Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ². ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΈΠΌΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ΅Π½ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ»Π°Π²Π° 15
Π‘ΠΎΠΊΠ΅ΡΡ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΌΡΡ ΠΎΡ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ Π² Π³Π»Π°Π²Π°Ρ 13 ΠΈ 14. ΠΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π½Π°ΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π»ΠΈΡΡ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π Π΅ΡΡΡΡΡ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ: ΠΎΠ±Π»Π°ΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
Π Π²Π΅ΡΡΠΈΡ ΠΠ‘ Berkeley UNIX Π±ΡΠ»ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎΠΊΠ΅ΡΠΎΠ², β ΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°, ΠΎΠ±ΡΡΠΆΠ΄Π°Π²ΡΠ΅ΠΉΡΡ Π² Π³Π»Π°Π²Π΅ 13. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Linux ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠΊΠ΅ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠ°Π½Π°Π»Ρ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΡΠΎΡΠ΅ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅ΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΡΠ΅ΡΠΈ. ΠΡΠΎΡΠ΅ΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠΊΠ΅ΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² ΡΡΠ°Π» Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΠ‘ Windows Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Windows Sockets ΠΈΠ»ΠΈ WinSock. Π‘Π΅ΡΠ²ΠΈΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΠ‘ Windows ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Winsock.dll. Π‘ΡΠ°Π»ΠΎ Π±ΡΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows ΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Linux ΠΈ UNIX ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ WinSock Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² UNIX, Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π΅Π³ΠΎ Π»Π΅ΠΆΠ°Ρ ΡΠ΅ ΠΆΠ΅ ΡΠΎΠΊΠ΅ΡΡ.
Π ΠΎΠ΄Π½ΠΎΠΉ-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Linux, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π·Π΄Π΅ΡΡ Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ΅ΡΠΈ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΡ:
β‘ ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ²;
β‘ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ², Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ;
β‘ ΡΠ΅ΡΠ΅Π²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π΄Π΅ΠΌΠΎΠ½ (inetd/xinetd);
β‘ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΊΠ΅Ρ?
Π‘ΠΎΠΊΠ΅Ρ β ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ²ΡΠ·ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΠ‘ Linux, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Web-ΡΡΡΠ°Π½ΠΈΡ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ rlogin, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΠΈ ftp, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΠΊΠ΅ΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ.
Π‘ΠΎΠΊΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΊΠ°Π½Π°Π»Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°ΡΡ ΡΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ.
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ ΡΠΎΠΊΠ΅ΡΠΎΠ²
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ Π² ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. Π’Π΅Π»Π΅ΡΠΎΠ½Π½ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, ΠΈ Π½Π° Π½Π΅Π³ΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΎΠΉ, Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΡΠ΄Π΅Π» (ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ) ΠΈ ΠΎΡΡΡΠ΄Π° ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΡ (ΡΠΎΠΊΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°). ΠΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ (ΠΊΠ»ΠΈΠ΅Π½Ρ) Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅, ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΠΌΠΈ Π·Π²ΠΎΠ½ΠΊΠ°ΠΌΠΈ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Linux, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.