我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

2038年问题

指数 2038年问题

在计算机应用上,2038年问题可能会导致某些软件在2038年1月19日3时14分07秒之后无法正常工作。所有使用POSIX时间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。这种时间表示法在类Unix(Unix-like)操作系统上是一个标准,并会影响以其C编程语言开发给其他大部份操作系统使用的软件。在大部份的32位操作系统上,此「time_t」数据模式使用一个有正負號的32位元整數(signed int32)存储计算的秒数。依照此「time_t」标准,在此格式能被表示的最后时间是2038年1月19日03:14:07,星期二(UTC)。超过此一瞬间,时间将会“绕回”(wrap around)且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依個別實作而跳回1970年或1901年。因此可能产生错误的计算及动作。 有少數的情況下,在制定規格時,特別規定以無正負號的32位元整數(unsigned int32)儲存 POSIX 时间,因此錯誤會被延後到 2106 年。例如比特幣區塊鏈中的區塊時間戳記,就是以這種方法儲存。 目前并没有针对现有的CPU/操作系统搭配的简单解决方案。直接将POSIX时间更改为64位模式将会破坏对于软件、数据存储以及所有与二进制表示时间相关的部份的二进位兼容性。更改成无符号的32位整数则会影响许多与两时间之差相关的程序。不过,那时使用32位系统的计算机可能会很少。 大部份64位操作系统已经把time_t這個系統變數改為64位寬。不過,其他現有架構的改動仍在進行中,不過預期「應該可以在2038年前完成」。然而,直到2006年,仍然有数以亿計的32位系统在運行中,特別是许多嵌入式系统。相对于一般电脑科技18至24个月的革命性更新,嵌入式系统可能直至使用寿命终结都不会改变。32位time_t的使用亦被编码于文件格式,例如众所周知的ZIP压缩格式。其能存在的时间远比受影响的机器长。 新的64位运算器可以记录至约2900亿年后的292,277,026,596年12月4日15:30:08,星期日(UTC)。.

目录

  1. 20 关系: 中央处理器二補數二进制國際開放標準組織嵌入式系统C语言类Unix约翰·提托电气电子工程师学会闰秒IntUNIX时间民國百年蟲溢出操作系统10000年问题2000年问题214748364732位元64位元

  2. 2038年
  3. Linux
  4. Unix
  5. 操作系统技术
  6. 未来问题
  7. 程式錯誤

中央处理器

中央处理器 (Central Processing Unit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。中央处理器、内部存储器和输入/输出设备是现代电脑的三大核心部件。1970年代以前,中央处理器由多个独立单元构成,后来发展出由集成电路制造的中央处理器,這些高度收縮的元件就是所謂的微处理器,其中分出的中央处理器最為复杂的电路可以做成单一微小功能强大的单元。 中央处理器廣義上指一系列可以执行复杂的计算机程序的逻辑机器。这个空泛的定义很容易地将在“CPU”这个名称被普遍使用之前的早期计算机也包括在内。无论如何,至少从1960年代早期开始,这个名称及其缩写已开始在电子计算机产业中得到广泛应用。尽管与早期相比,“中央处理器”在物理形态、设计制造和具体任务的执行上有了极大的发展,但是其基本的操作原理一直没有改变。 早期的中央处理器通常是为大型及特定应用的计算机而定制。但是,这种昂贵的为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。IC使得更为复杂的中央处理器可以在很小的空间中设计和制造(在微米的數量级)。中央处理器的标准化和小型化都使得这一类数字设备和電子零件在现代生活中的出现频率远远超过有限应用专用的计算机。现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。.

查看 2038年问题和中央处理器

二補數

二補數(2's complement)是一種用二進位表示有號數的方法,也是一種將數字的正負號變號的方式,常在電腦科學中使用。 一個數字的二補數就是將該數字作位元反相運算(即一補數),再將結果加1。在二補數系統中,一個負數就是用其對應正數的二補數來表示。 二補數系統的最大優點是可以在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有號數加法,而且減法可以用一個數加上另一個數的二補數來表示,因此只要有加法電路及二補數電路即可完成各種有號數加法及減法,在電路設計上相當方便。 另外,二補數系統的0就只有一個表示方式,這點和一補數系統不同(在一補數系統中,0有二種表示方式),因此在判斷數字是否為0時,只要比較一次即可。 右側的表是一些8-bit二補數系統的整數。它的可表示的範圍包括-128到127,總共256(.

查看 2038年问题和二補數

二进制

在數學和數字電路中,二進制(binary)數是指用二進制記數系統,即以2為基數的記數系統表示的數字。這一系統中,通常用兩個不同的符號0(代表零)和1(代表一)來表示。以2為基數代表系統是二進位制的。數字電子電路中,邏輯門的實現直接應用了二進制,因此現代的計算機和依赖計算機的設備裡都用到二進制。每個數字稱為一個位元(二進制位)或比特(Bit,Binary digit的縮寫)。.

查看 2038年问题和二进制

國際開放標準組織

國際開放標準組織(The Open Group,縮寫為TOG),又譯為國際標准化組織,以制定電腦架構的共通標準為目的而成立的國際性非營利組織,在英國登記註冊。在1996年,由 X/Open 與開放軟體基金會(Open Software Foundation)合組而成,擁有Unix的商標權,它制定並且發布了單一UNIX規範(Single UNIX Specification)。.

查看 2038年问题和國際開放標準組織

嵌入式系统

嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。嵌入式系统常被用于高效控制许多常见设备,被嵌入的系统通常是包含數位硬件和机械部件的完整设备,例如汽車的防鎖死煞車系統。相反,通用计算机如个人电脑则设计灵活,可以智能處理各式各樣的運算情況,以满足广大终端用户不同的需要。 现代嵌入式系统通常是基于微控制器(如含集成内存和/或外设接口的中央处理单元)的,但在较复杂的系统中普通微处理器(使用外部存储芯片和外设接口电路)也很常见。通用型处理器、专门进行某类计算的处理器、为手持应用订制设计的处理器等,都可能应用到嵌入式系统。常见的专用处理器有数字信号处理器。 嵌入式系统的关键特性是处理特定的任务,因此工程师能对其进行优化,以降低产品的体积和成本,提升可靠性和性能。 嵌入式系统的物理形态包括便携设备如計步器、电子手表和MP3播放器,大型固定装置如交通灯、工厂控制器,大型复杂系统如混合动力汽车、磁共振成像设备、航空电子设备等。它们的复杂度低至单片机,高至大型底盘或外壳内安装有多个部件、外设和网络。.

查看 2038年问题和嵌入式系统

C语言

C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.

查看 2038年问题和C语言

类Unix

#重定向 类Unix系统.

查看 2038年问题和类Unix

约翰·提托

约翰·提托(John Titor)是一位聲稱來自2036年的時空旅行者。他在2000年和2001年期間在網上留言版張貼有關時空旅行的事情,作了很多模糊但不可能证伪的预言,也对他自己声称所处的年代给出一个细致的描述。约翰·提托的身份在一些超现实主义的网上讨论区中引起爭議。.

查看 2038年问题和约翰·提托

电气电子工程师学会

電機電子工程師學會(Institute of Electrical and Electronics Engineers,簡稱為IEEE,英文读作“i triple e”)是一个建立於1963年1月1日的国际性电子技术与电子工程师协会,亦是世界上最大的专业技术组织之一,擁有來自175個國家的36萬會員。 除設立於美國紐約市的總部以外,亦在全球150多個國家擁有分會,並且還有35個專業學會及2個聯合會。其每年均會發表多種雜誌、學報、書籍,亦舉辦至少300次的專業會議。 目前IEEE在工業界所定義的標準有著極大的影響。.

查看 2038年问题和电气电子工程师学会

闰秒

閏秒是在協調世界時(UTC)中增加或減少一秒,使它與平太陽時貼近所做調整。UTC,是透過廣播作為民用時的官方時間基礎,它使用非常精確的原子鐘來維護。要保持UTC與平太陽時的一致性,偶爾需要調整,也就是"跳個"1秒來做調整,就是所謂添加閏秒(請參閱)。閏秒時間現在是由國際地球自轉和參考座標系統服務(IERS)來確認,而在1988年1月1日之前是由國際時間局(BIH)承擔這項職責。 當要增加正閏秒時,這一秒是增加在第二天的00:00:00之前,效果是延緩UTC第二天的開始。當天23:59:59的下一秒被記為23:59:60,然後才是第二天的00:00:00。如果是負閏秒的話,23:59:58的下一秒就是第二天的00:00:00了,但目前還沒有負閏秒調整的需求。需要時的日長度必須低於1750-1892年的平均日長度,才會累積足夠調整1秒所需要的時間。除了每天4毫秒的波動外,日長度自1700年以來都保持一樣。然而,從歷史上的日食觀測則顯示,自西元前700年以來,每個世紀的日長度大約增加1.7毫秒。.

查看 2038年问题和闰秒

Int

#重定向 整数 (计算机科学).

查看 2038年问题和Int

UNIX时间

UNIX時間,或稱POSIX時間是UNIX或類UNIX系統使用的時間表示方式:從協調世界時1970年1月1日0時0分0秒起至現在的總秒數,不考慮閏秒。 在多數Unix系統上Unix時間可以透過指令來檢查。.

查看 2038年问题和UNIX时间

民國百年蟲

民國百年蟲問題,或民國100年問題、民國100年年序問題,通常簡稱百年蟲,是指一般由台灣開發以民國紀年的繁體中文的電腦軟件系統,因為程式設計上的問題,使電腦在處理民國100年(公元2011年)以後的日期可能會出現錯誤或無法正常操作。.

查看 2038年问题和民國百年蟲

溢出

溢位可以指:.

查看 2038年问题和溢出

操作系统

操作系统(operating system,縮寫作 OS)是管理计算机硬件與软件資源的计算机程序,同时也是计算机系统的核心与基石。操作系统需要处理如管理與配置内存、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作网络與管理文件系统等基本事務。操作系统也提供一個讓使用者與系統互動的操作界面。 操作系统的型態非常多樣,不同機器安裝的操作系统可從簡單到複雜,可從行動電話的嵌入式系统到超級電腦的大型作業系統。許多操作系统製造者對它涵盖范畴的定义也不尽一致,例如有些操作系统整合了图形用户界面,而有些僅使用命令行界面,而將图形用户界面視為一種非必要的應用程式。 操作系统理论在计算机科学中,為歷史悠久的分支;。.

查看 2038年问题和操作系统

10000年问题

10000年问题(Year 10000 Problem,简称Y10K)是所有软件可能在表示五位数年份时发生的问题的总称。在2000年问题引起人们关注的一段时间中,10000年问题曾被以幽默的方式被人们在媒体中披露。实际上,在10000年时,由于未来科技及软件的进步-不再只以少数几个数字--示年份,这可能不再是个问题。.

查看 2038年问题和10000年问题

2000年问题

2000年问题(Year 2000 Problem,简称Y2K),中國大陸及香港常称为千年蟲問題,台湾則称千禧蟲危機,是指由于计算机程序设计的一些问题,使得计算机在处理2000年1月1日以后的日期和时间时,可能会出现不正确的操作,从而可能导致一些敏感的工业部门(比如电力,能源)和银行,政府等部门在2000年1月1日零点工作停顿甚至是发生灾难性的结果。 2000年问题在英文中通常缩写为Y2K。其中Y表示“year”也就是年,而K则表示拉丁前缀“kilo”,表示1000。Y2K也可用來指2000年。 一般来说,由于计算机程序中使用两个数字来表示年份,如1998年被表示为“98”、1999年被表示为“99”;而2000年被表示为“00”,这样将会导致某些程序在计算时得到不正确的结果,如把“00”误解为1900年。在嵌入式系统中可能存在同样的问题,这有可能导致设备停止运转或者发生更加灾难性的后果。 由于世界上各地的政府和企业都对两千年问题给予足够关注,1999年1月1日到2000年3月1日并没有出现大范围的计算机故障。.

查看 2038年问题和2000年问题

2147483647

2,147,483,647(二十一亿四千七百四十八万三千六百四十七)是2147483646與2147483648之間的自然數。它等于2^ - 1。它是第8个梅森素数,也是4個已知的双重梅森素数的其中一個。 欧拉在1772年用试除法判定这个数是梅森素数。从1772年至1867年期间这个数是已知的最大素数。 这个数表示为二进制为1111111111111111111111111111111(即31個1),是32位元操作系统中最大的符号型整型常量。在32位Windows和其它系统中,最大的十进制数就是为2147483647;Pascal語言中长整型的範圍是-2147483648~2147483647。.

查看 2038年问题和2147483647

32位元

32位元也是一種稱呼電腦世代的名詞,在於以32位元處理器為準則的時間點。 32位元可以儲存的整數範圍是0到4294967295,或使用二的補數是-2147483648到2147483647。因此,32位元記憶體位址可以直接存取4GiB以位元組定址的記憶體。 外部的記憶體和資料匯流排通常都比32位元還寬,但是兩者在處理器內部儲存或是操作時都當作32位元的數量。舉例來說,Pentium Pro處理器是32位元機器,但是外部的位址匯流排是36位元寬,外部的資料匯流排是64位元寬。32位元應用程式是指那些在 32位元平面位址空間(平面記憶體模式)的軟體。.

查看 2038年问题和32位元

64位元

64位元CPU是指CPU内部的通用寄存器的宽度为64位元,支持整数的64--宽度的算术与逻辑运算。早在1960年代,64位架构便已存在於当时的超級電腦,且早在1990年代,就有以RISC為基礎的工作站和伺服器。2003年才以x86-64和64位元PowerPC處理器架構的形式引入到(在此之前是32位元)個人電腦領域的主流。 一個CPU,联系外部的資料匯流排与位址匯流排,可能有不同的宽度;術語「64位元」也常用於描述這些匯流排的大小。例如,目前有許多機器有着使用64位元匯流排的32位元處理器(如最初的Pentium和之後的CPU,但Intel的32位CPU的地址总线宽度最大为36位),因此有時會被稱作「64位元」。同樣的,某些16位元處理器(如MC68000)指的是16/32位元處理器具有16位元的匯流排,不過內部也有一些32位元的性能。這一術語也可能指電腦指令集的指令長度,或其它的資料項(如常見的64位元雙精度浮點數)。去掉進一步的條件,「64位元」電腦架構一般具有64位元寬的整數型暫存器,它可支援(內部和外部兩者)64位元「區塊」(chunk)的整數型資料。.

查看 2038年问题和64位元

另见

2038年

Linux

Unix

操作系统技术

未来问题

程式錯誤

亦称为 Y2K38。