Unix: Засвар хоорондын ялгаа

Content deleted Content added
No edit summary
No edit summary
Мөр 71:
 
2005 онд Sun Microsystems (Сана Микросистемс) компани Solaris (Соларис) системийн (UNIX System V Цуврал 4-д суурилсан) ихэнх кодоо OpenSolaris (Опен Соларис) гэдэг нээлттэй эхийн төсөл болгов. Шинэ Sun OS технологиуд (ялангуяа ZFS файлын систем) нь OpenSolaris төслөөрөө анх гарсан. Удалгүй OpenSolaris-ийн Sun компанийн бус тархацууд гарсан. 2010 онд Oracle (Оракел) компани Sun-ийг өөрийн болгоход OpenSolaris төсөл зогссон боловч бусад тархацууд нь хөгжигдсөөр байгаа.
 
==2038==
 
Unix нь системийн цагийг 1970 оны 1-р сарын 1-ны 00:00 цагаас (Unix-н Эхлэл) эхлэн секундээр тоологдох "signed long" буюу тэмдэгтэй урт бүхэл тоон төрлөөр тодорхойлогдсон time_t төрлийн хувьсагчид хадгалдаг. 2038 оны 1-р сарын 19-нд 32 бит Unix системийн цаг нь 0-ийн хойноос 31 нэг (0x7FFFFFFF) байснаас 1-ийн хойноос 31 тэг (0x80000000) болох буюу тэмдгийн битийг өөрчилснөөр он нь 1901 юм уу 1970 болно.
1970-н оноос өмнөх цагийг цөөн хэрэглэгдэнэ гэж үзвэл time_t төрлийг "тэмдэггүй 32 бит бүхэл тоо"-н төрлөөр өөрчилж болно. Гэхдээ дээрх алдааг зөвхөн 2106 оны 2-р сарын 7 хүртэл л хойшлуулахаас хэтрэхгүй бөгөөд програмуудын цагийн форматын зөрөөнөөс янз бүрийн алдаа гарч болно.
 
Зарим Unix-ийн хувилбарууд уг алдааг тооцсон байдаг. Жишээ нь 64 битийн Solaris, Linux хоёр time_t-г 64 битийн урт бүхэл тоогоор тодорхойлсон байдаг нь үйлдлийн систем болон 64 битийн програмууд нь 292 тэрбум жилийг зөв илэрхийлж чадах юм. 32 бит time_t-г хэрэглэдэг 32 битийн програмууд нь 64 бит Solaris систем ажиллах ч 2038 оны алдаа нь хэвээрээ байна.