Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ΄ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° ios
Π§ΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΠΌ Linux ΠΈ iOS?
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π² Π΄Π²ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΠΉΠ΄ΡΡΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ, ΠΌΠ°ΡΡΠΈΠ²Ρ, Π΄Π΅ΡΠ΅Π²ΡΡ. ΠΠΎ Ρ Ρ ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.
iOS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠΊΠΎΠΉ. ΠΠ΄Π΅-ΡΠΎ Π½ΠΈΠΆΠ΅ Objective-C (Π° ΡΠΊΠΎΡΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠΆΠ΅ ΠΈ ΠΎ Swift) Π·Π°Π»Π΅Π³Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΡ Π½Π΅-ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ ΠΏΠΎΠ΄ Π½ΠΈΠΌΠΈ β Unix (Π° ΡΠΎΡΠ½Π΅Π΅ BSD) ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π½Π° ΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Ρ Linux ΠΈ Ρ iOS ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ. ΠΠΎ Ρ ΠΈ Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΄ΡΠ° Linux Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ iOS.
1. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ
Π ΠΎΠ±Π΅ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² iOS ΡΡΠΎ Π±ΡΠ΄ΡΡ:
Π‘ΡΡΠΎΠΊΠΈ (NSSrting);
ΠΠ°ΡΡΠΈΠ²Ρ (NSArray);
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (NSSet);
Π‘Π»ΠΎΠ²Π°ΡΠΈ (NSDictionary);
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΡ
ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² (NSNumber);
Π‘ΠΊΠ°Π»ΡΡΡ (NSRange).
Π― ΠΎΡΡΠ°Π²Π»ΡΡ Π·Π° ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² (NSSet / NSMutableSet / NSCountedSet ΠΈ ΠΏΡΠΎΡΠ΅Π΅).
ΠΡΠ΅ ΡΡΠΈ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ. ΠΠ΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΡ Π½Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ: ΡΠ²ΡΠ·Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (linked lists) ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² (binary tree). ΠΠ΅Ρ ΠΈΡ ΠΏΠΎ ΡΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΆΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ, NSArray ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ²ΡΠ·Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°, Π° NSDictionary Π²ΠΌΠ΅ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π·Π°Π±ΠΎΡΡΡΡ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π₯ΠΎΡΠΎΡΠΎ. Π ΠΊΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π² ΡΠ΄ΡΠ΅ Linux? Π’ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π‘Π»ΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ΄ΡΠ° ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄Π΅Π½ΡΡ Π½Π° ΡΡΠΎ Π·Π²Π°Π½ΠΈΠ΅:
ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΡΠ°ΠΉΠ»Π΅ include/linux/list.h;
ΠΡΠ°ΡΠ½ΠΎ-ΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ include/linux/rbtree.h;
Π Π°Π΄ΠΈΠΊΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ (radix tree), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ include/linux/radix-tree.h;
ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ (bit arrays), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ include/linux/bitmap.h;
ΠΡ Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ ΠΈ ΡΠΏΠΈΠ½Π»ΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² iOS Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ β ΡΠΎ Π΅ΡΡΡ, ΠΈΡ
Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π°Π»ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΠ½ΠΈ ΡΠΊΡΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
.
ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΠΌ-ΡΠΎ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ΅, ΠΏΡΠ°Π²Π΄Π°, ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΡΠΈΠ½ΡΡΡ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΎΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ. ΠΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΠΌΡΡ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΎΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ Π²Π΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΎ ΡΠ°ΠΌΠΎΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ.
ΠΡΠ°ΠΊ, Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π° ΠΎΡΡΠΎΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. iOS ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΈ Apple ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. Π―Π΄ΡΠΎ Linux, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ, ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, iOS ΡΡΠΎ Π±Π»ΠΎΡΠ½ΠΎΠ΅ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎ, Π° ΡΠ΄ΡΠΎ Linux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π² Π²Π°ΡΠ΅ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΈΡΠΏΠΈΡΠΈ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎ Π³Π»ΠΈΠ½Ρ ΠΈ ΠΏΠ΅ΡΡ Π΄Π»Ρ ΠΎΠ±ΠΆΠΈΠ³Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈ ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π΄Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅: Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ΄ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ Π½ΠΈΠΊΡΠΎ ΠΈ Π½Π΅ ΠΆΠ΄Π΅Ρ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π² iOS Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΠΏΠ° ΠΈ ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ .
2. Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ?
Π Π΅ΡΠ΅ΡΠ΅Π½ΡΡ. ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ iOS ΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π²ΡΡΡΠ½ΡΡ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π»ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° retain Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ, release Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Objective-C Π² ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
Π‘ΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡ: Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. ΠΠΎ Π²ΠΎΡ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½? Π ΠΊΠ΅ΠΌ?
Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΊΡΠΎ-ΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΠ»ΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ Nil), Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ.
ΠΠ·Π²ΠΈΠ½ΡΡΡΡ Π·Π° Π·Π°Π½ΡΠ΄ΡΡΠ²ΠΎ, Π½ΠΎ Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΡΠΎΠ·Π΄Π°Ρ Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ Π² iOS:
ΠΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° NSString. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ s Π΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ, ΡΠ°Π²Π½ΡΠΉ 1.
ΠΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ s2 ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ. Π Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ΅ΡΠ΅ΡΠ΅ΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 2.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ s Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ β ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΠ°Π²Π΅Π½ 1.
Π’Π΅ΠΏΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ s2 Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ±ΡΠ΅ΠΊΡ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π΅Π³ΠΎ Π°Π΄ΡΠ΅Ρ ΡΡΠ΅ΡΡΠ½. ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°Π²Π΅Π½ 0. ΠΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ°.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠ΄ΡΡ Linux. Π ΡΡΠ°Π·Ρ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» incluce/linux/kref.h
Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ Π³Π΅Π½Π΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° β ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΎΠ². Π€Π°ΠΉΠ» Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ.
Π―Π΄ΡΠΎ Linux Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΡΡΠΊΠ°. ΠΡΠ»ΠΈ ΡΡ Π·Π°Π±ΡΠ» ΠΏΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ β ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΡΡΡ Π½Π΅Ρ. ΠΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΄ΡΠΎΠΌ, ΠΊΡΡΠ°ΡΠΈ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½Ρ Π΄ΠΎΠ»ΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠ½ΠΎΠ³Π΄Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠ»ΠΈ ΡΡ Π·Π°Π±ΡΠ» ΠΏΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ΄ΡΠΎ ΡΠ΅ΠΈΠ½ΡΠ΅ΡΠ°Π½ΡΠ½ΠΎ, ΠΈ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ β ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΡΠΏΠ°Π΄Π΅Ρ. ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΡΠΎ β Π΄Π°ΠΆΠ΅ Π·Π°ΠΏΡΠ΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Big Lock, ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΠΈΠΉ Π² ΡΠ΄ΡΠ΅, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²ΡΠΈΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅, ΠΊΡΠΎΠΌΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΠ΄ΡΠ° Π³ΠΎΠ΄Ρ Π½Π°Π·Π°Π΄, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ. ΠΠ΅Ρ, ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ: Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠΈΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π½ΠΎ ΡΠ΅Π±Π΅ Π³ΠΎΠ²ΠΎΡΡΡ: Π½Π΅ Π½Π°Π΄ΠΎ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠ»ΠΎΡ Π°Ρ ΠΊΠ°ΡΠΌΠ°. ΠΠΎ Ρ ΡΠ΅Π±Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° Big Lock ΡΡΠ΄Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Π’Π°ΠΊ ΡΡΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΠΈΠ½ΡΡ Π²ΠΎΠ»Π΅Π²ΡΠΌ ΡΡΠΈΠ»ΠΈΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ.
Π’Π°ΠΊ Π²ΠΎΡ, Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΄ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ kref_init, ΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π² Π΄Π²ΡΡ ΡΡΠ°Ρ ΠΌΠ΅ΡΡΠ°Ρ . Π§ΡΠΎ Π΄Π»Ρ ΡΠ΄ΡΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ kref ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
ΠΡΠ²Π΅ΡΠ°Ρ Π½Π° Π²ΡΠΎΡΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΎΠ½ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ ΠΈ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ iOS β ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΡΠ΄ΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈ, Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°, ΠΊΠ°ΠΊ Π² iOS (ΡΠΎΡΠ½Π΅Π΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΎΠ½ Π΅ΡΡΡ, Π½ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΈ ΠΎΠ½ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ Ρ kref).
β ΠΡΠ»ΠΈ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ kref, ΡΠΎ ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
β Π‘ΠΎΠ·Π΄Π°Π» ΠΎΠ±ΡΠ΅ΠΊΡ? Π‘ΡΠ°Π·Ρ ΡΠ²Π΅Π»ΠΈΡΡ Π΅ΠΌΡ kref.
β ΠΠ·ΡΠ» ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ? Π£Π²Π΅Π»ΠΈΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° kref Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ kref_get())
β ΠΠ΅ΡΠ΅ΡΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ? Π£ΠΌΠ΅Π½ΡΡΠΈ kref ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ (kref_put())
β kref ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΠΎΡΡΠΈΠ³ Π½ΡΠ»Ρ? ΠΠ±ΡΠ΅ΠΊΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ β ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡ-Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ kref_put(), ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ· kref_put() Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
3. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΡΠ°Π»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π½Π΅Ρ.
ΠΠΈ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ Π½Π΅ Π½ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΡΠ΄ΡΠΎ Linux Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΎΡΡ ΡΠ΄ΡΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ Π΅Π³ΠΎ (ΡΠ΄ΡΠΎ), ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ². Π€ΠΈΠ»ΠΎΡΠΎΡΠΈΡ ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ βkeep it simpleβ β ΠΏΠΎΠ·Π²ΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠ°ΠΌΠΎΠΌΡ ΡΠ²Π°ΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΡΠΏ ΠΈΠ· ΡΡΡΠΎΠΉ Π³ΡΡΠ΄ΠΈΠ½ΠΊΠΈ, Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΉ Π΅ΠΌΡ ΡΡΠΏΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ»ΠΈ ΠΊΡΡΠΈΠ½ΡΠΉ ΠΏΠΎΡΠΎΡΠΎΠΊ.
iOS, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΠΏΡΡΠΈ ΡΠΎΠΊΡΡΡΠΈΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π² iOS ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ARC, Automatic Reference Counting, ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π ΡΠΊΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±ΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ, Π½ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ, Π½Π° ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ β Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΆΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ Π²ΡΠ·ΠΎΠ² alloc (Π½Π°ΡΠΈΠΌΠ΅Ρ, [NSSting stringWithFormat] ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ [[NSString alloc] initWithFormat:]).
Apple ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄Π΅Ρ macOS ΠΈ iOS
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° macOS Apple ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄ΡΠ° Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΠ΅ΠΎΡΠΈΠΈ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ. Π‘ iOS Π²ΡΡ Π±ΡΠ»ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΄ΡΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΠ‘ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ARM-ΡΠΈΠΏΠΎΠ², Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ² ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ: ΠΊΡΠΏΠ΅ΡΡΠΈΠ½ΡΠΊΠΈΠΉ Π³ΠΈΠ³Π°Π½Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π½Π° GitHub ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ XNU-ΡΠ΄Π΅Ρ macOS ΠΈ iOS Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARM.
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ² Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° iPhone ΠΈΠ»ΠΈ iPad. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΄ΡΠΎ β Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ½ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΠΎ Π΅ΡΡΡ Π²ΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ iOS ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π·Π°ΠΊΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ Π½ΡΠ»Ρ. Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠ°Ρ Apple Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π³ΠΈΠ±ΠΊΠ°Ρ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GNU GPL Π½Π° Linux.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ Ρ macOS β Π²ΡΡΠ΄ Π»ΠΈ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ MacBook Ρ ΡΠΈΠΏΠΎΠΌ A11 Bionic. Apple Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Β«Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉΒ»: ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² PowerPC Π½Π° Intel ΠΏΡΠΎΠΈΠ·ΠΎΡΡΠ» ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΠ°ΠΊΠΎΠΉ Ρ ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΡ ΠΆΠ΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΌΠΎΠ³ΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Apple ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΡ Π° ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ XNU-ΡΠ΄ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠΏΡΠ°Π²Π½ΡΡ ΡΠΎΡΠΊΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΠ‘.
ΠΠ°Ρ ΡΡΡΡΠΎΠ΅Π½Π° iOS
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
Mac OS X
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π½Π° Π²ΡΠ΅ ΠΌΠ°ΠΊΠΈ ΠΈ (Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅) Π½Π° Π°ΠΉΠ΄Π΅Π²Π°ΠΉΡΡ, Π²Π΅Π΄Π΅Ρ ΡΠ²ΠΎΡ ΠΈΡΡΠΎΡΠΈΡ Π°ΠΆ Ρ 1988 Π³ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΌΠΈΡΠ΅ IT ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠ°Π» Π³ΠΎΠ΄ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ Π±Π΅ΡΠ°-Π²Π΅ΡΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ NeXTSTEP. Π‘Π°ΠΌΠ° NeXTSTEP Π±ΡΠ»Π° Π΄Π΅ΡΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π‘ΡΠΈΠ²Π° ΠΠΆΠΎΠ±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊ ΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΆΠ΅ ΠΏΠΎΠΊΠΈΠ½ΡΠ» Apple ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π» ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ NeXT, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π½ΡΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ Π½ΡΠΆΠ΄.
Π ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΠ²Π΅Ρ NeXTSTEP Π±ΡΠ»Π° ΠΏΠΎΠΈΡΡΠΈΠ½Π΅ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π»Π° Π² ΡΠ΅Π±Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π½ΠΎΠ²Π°ΡΠΈΠΉ. Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ‘ Π»Π΅ΠΆΠ°Π»ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΄ΡΠΎ Mach, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠ΄ΡΠ° FreeBSD, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ°Π»ΠΎΠ½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°. ΠΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ NeXTSTEP Π±ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° Objective-C ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΠΎΠ³Π°ΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ API. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ»Π° ΡΠ½Π°Π±ΠΆΠ΅Π½Π° ΡΠ°Π·Π²ΠΈΡΡΠΌ ΠΈ Π²Π΅ΡΡΠΌΠ° ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ (ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ Π² OS X ΠΈ Π΄Π°ΠΆΠ΅ iOS) ΠΈ ΠΌΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ°Π²ΡΠ΅ΠΉ Π² ΡΠ΅Π±Ρ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π²ΡΠ΅ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π°Π»Π° NeXT ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π‘ΡΠΈΠ²Π° ΠΠΆΠΎΠ±ΡΠ° Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Apple Π² 1997 Π³ΠΎΠ΄Ρ NeXTSTEP Π»Π΅Π³Π»Π° Π² ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Rhapsody, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ° Mac OS 9. Π 2000 Π³ΠΎΠ΄Ρ ΠΈΠ· Rhapsody Π±ΡΠ» Π²ΡΠ΄Π΅Π»Π΅Π½ ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Darwin, ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ APSL, Π° ΡΠΆΠ΅ Π² 2001 Π³ΠΎΠ΄Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π½Π° ΡΠ²Π΅Ρ OS X 10.0, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅. Π‘ΠΏΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Darwin Π»Π΅Π³ Π² ΠΎΡΠ½ΠΎΠ²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ Π³ΠΎΡΠΎΠ²ΡΡΠ΅Π³ΠΎΡΡ ΠΊ Π²ΡΠΏΡΡΠΊΡ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΎ 2007-Π³ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠ»ΡΡ ΠΎΠ², Π½Π΅ Π±ΡΠ»ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠ΅Π³ΠΎ.
XNU ΠΈ Darwin
Π£ΡΠ»ΠΎΠ²Π½ΠΎ Π½Π°ΡΠΈΠ½ΠΊΡ OS X / iOS ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΡΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΎΠ²Π½Ρ: ΡΠ΄ΡΠΎ XNU, ΡΠ»ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ POSIX (ΠΏΠ»ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ/ΡΠ΅ΡΠ²ΠΈΡΡ) ΠΈ ΡΠ»ΠΎΠΉ NeXTSTEP, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠ΅ΠΊ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈ API ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Darwin Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΡΠ»ΠΎΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ OS X. iOS-Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARM ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΊΡΡΡ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ Π΄Π»Ρ Π°ΠΉΠ΄Π΅Π²Π°ΠΉΡΠΎΠ² (ΡΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ iOS Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°).
ΠΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ Darwin β ΡΡΠΎ Β«Π³ΠΎΠ»Π°ΡΒ» UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΠ‘, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ POSIX API, ΡΠ΅Π»Π», Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° UNIX-ΡΠΎΡΡΠ°. Π ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ FreeBSD ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Arch Linux, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ UNIX-ΡΠΎΡΡ, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π½ΠΈ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ΅Π΄ GNOME ΠΈΠ»ΠΈ KDE.
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Darwin β Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠ΅ ΡΠ΄ΡΠΎ XNU, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π½Π° ΡΠ΄ΡΠ΅ Mach ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΡΠ΄ΡΠ° FreeBSD, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (ΡΠ»ΠΎΠΉ VFS). Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Mach ΠΈ FreeBSD, ΡΠ΄ΡΠΎ OS X ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ API Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π½Π°Π·Π²Π°Π½Π½ΡΠΉ I/O Kit ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΈΡΠ°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π½Π° C++, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ.
iOS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ XNU, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠΈΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ΄ΡΠΎ iOS Π·Π°ΠΊΡΡΡΠΎ, ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Apple, Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠΎΠ±ΡΠ°Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²ΠΊΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . ΠΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎ Π²ΡΠ΅ ΡΠΎ ΠΆΠ΅ XNU, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ΅ΡΠ° (ΡΠ΄ΡΠΎ + Π²ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ/ΠΌΠΎΠ΄ΡΠ»ΠΈ) Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /System/Library/Caches/com.apple.kernelcaches/kernelcache Π½Π° ΡΠ°ΠΌΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
Π£ΡΠΎΠ²Π½Π΅ΠΌ Π²ΡΡΠ΅ ΡΠ΄ΡΠ° Π² Darwin ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ»ΠΎΠΉ UNIX/BSD, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ·ΡΠΊΠ° ΡΠΈ (libc, libmatch, libpthread ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π½Π°Π±ΠΎΡ ΡΠ΅Π»Π»ΠΎΠ² (bash, tcsh ΠΈ ksh) ΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ launchd ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ SSH-ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ, ΠΊΡΡΠ°ΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°ΠΉΠ»Π° /System/Library/LaunchDaemons/ssh.plist. ΠΡΠ»ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄ΠΆΠ΅ΠΉΠ»Π±ΡΠ΅ΠΉΠΊΠ½ΡΡΡ Π΄Π΅Π²Π°ΠΉΡ.
ΠΠ° ΡΡΠΎΠΌ ΠΎΡΠΊΡΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΠ‘ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Darwin Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ»ΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΡΡΠΈΡΠ°ΡΡ OS X / iOS.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ
Darwin ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π»ΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ°ΡΡΡ Mac OS / iOS, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ, Π·Π°ΠΏΡΡΠΊ/ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡ, ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅). Π’Π° ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, Π² Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π² Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ β Π½Π°Π±ΠΎΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π·Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ API Π΄Π»Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈ ΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΠ‘, API Mac OS ΠΈ iOS ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ. Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΡΡΠ΅Π·Π°Π½Π½ΡΠΉ API, ΠΎΠ΄Π½Π°ΠΊΠΎ jailbreak-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ.
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ°Π²ΠΊΠ΅ Mac OS ΠΈ iOS ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΌΡΠΌ ΡΠ°Π·Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΠ‘ β ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ (ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ AddressBook) Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenGL (GLKit). ΠΠ°Π±ΠΎΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ Π² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Cocoa API, ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΌΠ΅ΡΠ°ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΠ‘. Π iOS ΠΎΠ½ Π½ΠΎΡΠΈΡ ΠΈΠΌΡ Cocoa Touch ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π½Π° ΡΠ΅Π½ΡΠΎΡΠ½ΡΠ΅ Π΄ΠΈΡΠΏΠ»Π΅ΠΈ.
ΠΠ°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΎΠ±Π΅ΠΈΡ ΠΠ‘. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ iOS. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ AssetsLibrary, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, CoreBlueTooth, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΠ½Π΅Π·ΡΠ±Ρ, ΠΈΠ»ΠΈ iAd, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Apple ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ iOS Π² Mac OS ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ CoreMedia, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² iOS.
ΠΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /System/Library/Frameworks/. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌ Π±Π°Π½Π΄Π»ΠΎΠΌ (boundle), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΅ΡΡΡΡΡ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°), Ρ ΠΈΠ΄Π΅ΡΡ ΡΠ·ΡΠΊΠ° ΡΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ API, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (Π² ΡΠΎΡΠΌΠ°ΡΠ΅ dylib) Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
ΠΠ΄Π½Π° ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² β ΠΈΡ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΡ. ΠΠ΄ΠΈΠ½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΠ‘. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ°ΡΡΡ iOS-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² iOS 7 ΠΈ Π²ΡΡΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ Π΄Π»Ρ iOS 6, Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π² iOS 6.
SpringBoard
Π£ΡΠΎΠ²Π½Π΅ΠΌ Π²ΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ· ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, SpringBoard (ΡΠΎΠ»ΡΠΊΠΎ Π² iOS), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΡΠΊΡΠ°Π½ (ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ»). ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠΎΡΠ»Π΅ ΡΡΠ°ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΈ ΡΡΠ°ΡΡΠ° Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΎΠ½ ΠΆΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ½Π³Π°, ΠΎΠ½ ΠΆΠ΅ Quartz Compositor), ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π° Π²ΡΠ²ΠΎΠ΄ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½.
SpringBoard β ΡΡΠΎ ΡΠ²ΡΠ·ΡΡΡΠ΅Π΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ Π΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ iOS 7). ΠΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΊΠ°ΡΠ°Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Mac OS X, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ-Π°Π³Π΅Π½ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Finder, Dashboard, LaunchPad ΠΈ Π΄ΡΡΠ³ΠΈΠ΅), Π² iOS ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΊΡΠ°Π½ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Β«ΡΡΠΎΡΠΊΠ°Β», Π·Π°ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ SpringBoard.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ iOS, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /Applications, SpringBoard Π½Π°ΡΠ°Π²Π½Π΅ Ρ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /System/Library/CoreServices/. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π·Π°Π΄Π°Ρ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅ΠΆΠ°Ρ Π² /System/Library/SpringBoardPlugins/. ΠΡΠΎΠΌΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, NowPlayingArtLockScreen.lockboundle, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈΠ»ΠΈ IncomingCall.serviceboundle, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ iOS 6 SpringBoard ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» ΠΈ ΡΠ΅ΡΠ²ΠΈΡ BackBoard, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΠ‘, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (ΡΡΠΎΠ²Π΅Π½Ρ HAL). BackBoard ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΊΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΊΠ°ΡΠ°Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°, Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΡ Π°ΠΊΡΠ΅Π»Π΅ΡΠΎΠΌΠ΅ΡΡΠ°, Π΄Π°ΡΡΠΈΠΊΠ° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π°ΡΡΠΈΠΊΠ° ΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ, ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
SpringBoard ΠΈ BackBoard ΠΈΠΌΠ΅ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ iOS, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΡΡΡΠ½Π΅Ρ Π½Π° ΠΌΠ΅ΡΡΠ΅ ΠΈ Π΄Π°ΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΊΠ°ΡΠ°Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΠΈΡ ΠΎΡ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° Android, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΎΡΡΠ°Π½ΡΡΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎ Β«ΡΡΠΎΡΠΊΠΎΠΉΒ»).
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ° ΡΠ°ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Π΅ ΡΡΠΎΠΉ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. iOS ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ (ΡΡΠΎΠΊΠΎΠ²ΡΠ΅) Π²ΡΡΠΎΠΊΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ· iTunes. Π ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ Π±Π°Π½Π΄Π»ΠΎΠ², Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΡ ΠΎΠΆΠΈΡ Π½Π° ΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². Π Π°Π·Π½ΠΈΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π»ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±Π°Π½Π΄Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° ΠΌΠ΅ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Mach-O.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β /Applications/. Π iOS ΠΎΠ½ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΠ°ΡΠΈΡΠ½ΡΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ; ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ. Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ· iTunes, Π½Π°ΠΏΡΠΎΡΠΈΠ², Ρ ΡΠ°Π½ΡΡΡΡ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ /var/mobile/Applications/ Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ Π²ΠΈΠ΄ 4-2-2-2-4, Π³Π΄Π΅ Π΄Π²Π° ΠΈ ΡΠ΅ΡΡΡΠ΅ β ΡΡΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°. ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ GUID β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ Π½ΡΠΆΠ΅Π½ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ (sandbox).
Sandbox
Π iOS ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅. Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»Ρ ΠΌΠΈΡΠ° UNIX chroot, ΡΡΠΈΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° TrustedBSD MAC (ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° sandbox.kext), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ΅Π·Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π½ΠΎ ΠΈ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΆΠ΅Π»Π΅Π·Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΠ‘.
Π ΡΠ΅Π»ΠΎΠΌ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² sandbox ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ :
ΠΡΠ΅ ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ sandbox-ΠΏΡΠΎΡΠΈΠ»Ρ (Π½Π°Π±ΠΎΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΡ ΠΏΡΠ°Π²ΠΈΠ») container ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π±ΠΎΠ»Π΅Π΅ ΠΌΡΠ³ΠΊΠΈΠ΅ ΠΈΠ»ΠΈ ΠΆΠ΅ΡΡΠΊΠΈΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ (ΠΏΡΠΎΡΠΈΠ»Ρ MobileMail), ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Library/. ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ β SpringBoard, Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΡΡΠΎ Π·Π°ΡΠΈΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Ρ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°Π³ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΡΠ΅ ΠΎΡ Apple, ΡΠ°ΠΊ ΠΈ Π² Π³ΠΎΠ»ΠΎΠ²Π°Ρ ΡΠ·Π΅ΡΠΎΠ². Sandbox Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΡ ΠΎΠ±ΠΎΠΈΡ . ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π½Π°ΠΉΠ΄Π΅Ρ Π΄ΡΡΡ Π² Safari ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π΅Π΅ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΠ½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°Π²ΡΠ΅Π΄ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π ΡΠ·Π΅Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Β«ΡΠ»ΠΎΠΌΠ°ΡΡ ΡΠ²ΠΎΠΉ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½ΡΠΈΠΊΒ» ΠΈ Π½Π΅ Π½Π°ΠΏΠΈΡΠ΅Ρ Π³Π½Π΅Π²Π½ΡΡ ΠΎΡΠ·ΡΠ²ΠΎΠ² Π² Π°Π΄ΡΠ΅Ρ Apple. Π ΡΡΠ°ΡΡΡΡ, Π·Π½Π°ΡΡΠΈΠ΅ Π»ΡΠ΄ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ jailbreak ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈ Π·Π°ΡΠΈΡΡ sandbox (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΡΡΠΎΠΌ ΠΈ Π΅ΡΡΡ ΡΠΌΡΡΠ» Π΄ΠΆΠ΅ΠΉΠ»Π±ΡΠ΅ΠΉΠΊΠ°).
ΠΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠΏΠΎΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ iOS β ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ. ΠΠ½Π° Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΈ Π΅ΡΡΡ, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΅Π΅ Π½Π΅Ρ. Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΠ‘ ΠΈ ΠΏΡΠ΅ΡΠ»ΠΎΠ²ΡΡΡΠΌ Android iOS Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π² ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠ½Π΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΠ‘ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ API, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ API ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² iOS 4 (Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΈ Π½Π°ΡΠ°ΡΠΈΠ²Π°Π»ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ (ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± iOS 7) ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Background API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’Π°ΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΡ Π² ΡΠΎΠ½Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π°ΡΡΠ΄ Π±Π°ΡΠ°ΡΠ΅ΠΈ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π»Π°Π³ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ°ΠΊ Π·Π½Π°ΠΊΠΎΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Android, Π³Π΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»Π°ΡΡ Π² ΡΠΎΠ½Π΅ Π²ΡΠ΅ ΡΡΠΎ Π·Π°Ρ ΠΎΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Apple Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π±Π°ΡΠ°ΡΠ΅ΠΈ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ½ΠΎΠ²ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° Π² Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠΌΠ°ΡΡΡΠΎΠ½ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ Wi-Fi-ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΠΊ Π·Π°ΡΡΠ΄Π½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ.
ΠΡΠ²ΠΎΠ΄Ρ
Π‘ΡΠΎΠΈΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π·Π° Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄Π° Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ Π΄Π΅Π²Π°ΠΉΡΡ NeXTSTEP Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ ΡΠ°ΡΡΠ΅ΡΡΠ»Π° Π²ΡΠ΅ ΡΠ²ΠΎΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°, Π½ΠΎ ΠΈ ΠΏΡΠΈΡΠΌΠ½ΠΎΠΆΠΈΠ»Π° ΠΈΡ . ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΡΡΠΊΠ°Π·Π½ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Google, ΡΠ²Π΅ΡΡΡΡΠΈΡ , ΡΡΠΎ Android ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Π±Π΅Π· ΠΎΠ³Π»ΡΠ΄ΠΊΠΈ Π½Π° iOS, Π½ΠΎ ΡΠ°ΠΊΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΡΠΎΠΌ: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Android ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π» ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ iOS. Π Π½Π΅ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅, Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡ ΠΊΡΠ°ΡΠΎΡΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ.
Π¨Π΅ΡΡΡ ΡΡΠ°Π΄ΠΈΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ iOS
4 Π―Π΄ΡΠΎ. ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ. Π―Π΄ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ launchd.
5 Launchd. ΠΡΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ iOS ΠΈ Mac OS X, ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄Π΅ΠΌΠΎΠ½Ρ/ΡΠ»ΡΠΆΠ±Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, backupd, configd, locationd), Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, Π° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΡΠ΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ SpringBoard. Π iOS ΠΈ Mac OS X launchd ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ /bin/init Π² UNIX, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠΈΡΠ΅.
6 SpringBoard. ΠΠΎΡ ΠΈ ΡΠΊΡΠ°Π½ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ!
ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ°ΠΏΠ° Π² ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΈ ΠΎΠ±ΡΠ°Π·ΡΡΡ chain of trust, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²Π΅ΡΠΊΠΈ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π¦ΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΈΠΌΠ΅ΡΡ LLB, iBoot ΠΈ ΡΠ΄ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΏΠΎΡΠΊΡ Ρ Π°ΠΊΠ½ΡΡΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π΄ΠΆΠ΅ΠΉΠ»Π±ΡΠ΅ΠΉΠΊΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ β Π½Π°ΠΉΡΠΈ Π΄ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ² ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Ρ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. Π ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΡ Π΄ΡΡ Π² Boot ROM (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠΊΡΠΏΠ»ΠΎΠΉΡ limera1n ΠΎΡ geohot, Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π»Ρ iPhone 1β4), Π° Π² Π½Π°ΡΠ°Π»Π΅ 2014 Π³ΠΎΠ΄Π° ΠΈ Π² iBoot (Ρ Π°ΠΊΠ΅Ρ iH8sn0w, ΡΠΊΡΠΏΠ»ΠΎΠΉΡ ΡΠ°ΠΊ ΠΈ Π½Π΅ Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½).
Π£Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΎΠΌΠΎΠΉΒ» ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ iPhone, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ iBoot Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ Π² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (Recovery), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ iOS ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ iTunes. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ OTA-ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ DFU (Device Firmware Upgrade), ΠΊΠΎΡΠΎΡΡΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Boot ROM ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ : iBSS ΠΈ iBEC. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ LLB ΠΈ iBoot, ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΡΡ β Π½Π΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΠ‘, Π° ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΡΠΌΠ°ΡΡΡΠΎΠ½ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΠ²Π³Π΅Π½ΠΈΠΉ ΠΠΎΠ±Π½ΠΈΠ½
Π Π΅Π΄Π°ΠΊΡΠΎΡ ΡΡΠ±ΡΠΈΠΊΠΈ X-Mobile. ΠΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΠ΅Π»ΡΡΡΠ²Ρ ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½. ΠΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π½Π°Ρ Linux, Plan 9, Π³Π°Π΄ΠΆΠ΅ΡΠΎΠ² ΠΈ Π΄ΡΠ΅Π²Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ.