苹果手机设置1970时间戳变砖的过程与解决方法( 二 )


假设一种情况,我原来是北京时区,假设将时间设置到了1970年1月1日0点0时0秒,那么我将这个时间转换为UTC时间,公式:北京时间= GMT 8 = UTC 8,那么UTC时间则为1969年12月31日16时0分0秒 。这样就会出现时间负值,即时间回归bug触发,系统启动卡在Kernel阶段,时间错误,无法继续进行启动 。
苹果是如何回应的?
苹果官方对这一事件做出了回应,确认如果将系统时间手动设置为1970年5月或者更早,iPhone、iPad、iPod touch将会无法重启 。
苹果称会在未来的软件更新中解决这个问题,但不清楚会在如今的iOS 9.2.2上直接OTA,还是得等下个月的iOS 9.3 。
苹果建议已经变砖的用户联系苹果售后,但是现在Apple Store里的很多员工都头疼死了:因为不少人很好奇这个Bug,但舍不得拿自己的iPhone做试验,就跑到苹果店里把人家的展示用iPhone、iPad给玩死了……
苹果的这一问题不禁让人想起:linux 2.6.18-164以下版本内核在处理闰秒事件的问题以及千年虫(计算机2000年问题,缩写为“Y2K”)
Linux内核闰秒问题
这一问题发生在2012年7月,当时水木社区用户称:低内核版Linux开启NTP服务将会在本月遇到闰秒BUG,从而导致服务器重启 。该用户表示:国际地球自转和参考坐标系统服务(IERS)将在格林威治时间2012年6月30日**增加一闰秒 。
由于Linux kernel和Posix关于NTP时间跳变的标准不同,将在2012年6月30日23:59:59跳变到2012年7月1日后引起ntpd进程锁死,从而造成部分开启ntp服务的linux系统重启 。Linux内核在2.6.18-164.e15之后的版本中解决了这个问题 。
格林威治时间对应到北京时间即7月1日的7点59分59秒,中国也曾于这个时间全球同步进行闰秒调整,出现了7点59分60秒的特殊现象 。
千年虫问题
百科上的资料显示:计算机2000年问题,又叫做“千年虫”、“电脑千禧年千年虫问题”或“千年危机” 。缩写为“Y2K” 。是指在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世纪的日期处理运算时(如多个日期之间的计算或比较等),简单来说,就是由于早期的计算机配置比较低,为了节省空间就把年份只用后两位数表示,如1900就表示为00,这样到新千年时便会出现问题了:电脑把2000年认为是1900年 。就会出现错误的结果,进而引发各种各样的系统功能紊乱甚至崩溃 。因此从根本上说千年虫是一种程序处理日期上的bug,而不是病毒 。

推荐阅读