星期一, 2月 28, 2005

您知道格林威治時間2038年1月19日3時14分08秒會發生什麼事嗎?

時間 , 2038 年 1 月 19 日 3 時 14 分 08 秒.

33 年後的一個看似平凡的日子, 但對於很多大機構的 IT 人員來說, 那天可能比 2000 年 1 月 1 日 0 時 0 分 01 秒的千年蟲危機更危險, 因為好多人都不知道他們使用的操作系統或日常使用的軟件內的時間系統, 可能有 year 2038 bug...

year 2038 bug 到底是什麼呢?
好多作業系統, 列如 UNIX 及 LINUX 的時間系統是由「新紀元時間」Epoch 開始計算起, 單位為秒, Epoch 則是指定為格林威治時間 1970 年 1 月 1 日 0 時 0 分 0 秒,
目前大部份的 UNIX 系統都是用 32 位元來記錄時間, 正數表示為 1970 以後, 負數則表示 1970 年以前.

2^31/86400(s) = 24855.13481(天) ~ 68.0958(年)

1970+68.0958 = 2038.0958
1970-68.0958 = 1901.9042

準確的時間為 2038 年 1 月 19 日 3 時 14 分 08 秒, 那一刻時間將會轉為負數, 變成 1901 年 12 月 13 日 黑色星期五 20 時 45 分 52 秒,然後您在使用的的電腦系統可能就會罷工了, 這就是所謂的 year 2038 bug, 在大部份的 UNIX 上, 並沒有所謂 Y2K 問題, 不過都有 2038 年問題.

在一些 64 位元的平薹上, 例如 Digital Alpha、SGI、Sparc 等等, 則用 64 位元來表示時間.

2^63/86400 ~ 1E14(天) ~ 2.92E11(年)

大約是 292 億年, 因此使用 64 位元的電腦大多可以順利過度.

雖然許多人認為 UNIX 的 2038 年問題會隨著科技的進步, 而將電腦逐步汰換成 64 位元電腦因此無須擔心, 但我個人相信, 在 2038 年依然會有許多狀況出現, 因為就事實而言, 目前許多 UNIX 系統都有足夠的能力服役到 2038 年而毫無問題, 因此如果有意添購電腦, 最好是選購 64 位元電腦.

講了那麼多, 可能您會說都唔關我事, 我都不用 UNIX 或 LINUX 的, 對, 大多數人已在用 windows 2000 or xp, 但您在用的會計系統或一些對時間很敏感的軟件, 而設計它們的 programmer 使用了一些有 year 2038 bug 的程式庫時一樣會出事, 就如以下一段 Perl script 我在 windows xp sp1 下用 ActivePerl-5.8.6.811 來 run 它, 都出現問題, 它停了在 Mon Jan 18 22:14:07 2038 如沒有問題程式會顯示 Mon Jan 18 22:14:08 2038 及其後的日子.

#!/usr/bin/perl
#
# I've seen a few versions of this algorithm
# online, I don't know who to credit. I assume
# this code to by GPL unless proven otherwise.
# Comments provided by William Porquet, February 2004.
# You may need to change the line above to
# reflect the location of your Perl binary
# (e.g. "#!/usr/local/bin/perl").
# Also change this file's name to '2038.pl'.
# Don't forget to make this file +x with "chmod".
# On Linux, you can run this from a command line like this:
# ./2038.pl
use POSIX;
# Use POSIX (Portable Operating System Interface),
# a set of standard operating system interfaces.
$ENV{'TZ'} = "GMT";
# Set the Time Zone to GMT (Greenwich Mean Time) for date calculations.
for ($clock = 2147483641; $clock < 2147483651; $clock++)
{
print ctime($clock);
}
# Count up in seconds of Epoch time just before and after the critical event.
# Print out the corresponding date in Gregorian calendar for each result.
# Are the date and time outputs correct after the critical event second?

參考網址:
http://www.deepsky.com/~merovech/2038.html

http://computer.howstuffworks.com/question75.htm

http://www.2038bug.com/index.html

星期日, 2月 27, 2005

2005 年 4 月 12 日您的 windows xp 將會強制自動更新為 sp2

根據微軟官方的通知,4 月 12 日是 Windows X P和 Windows XP SP1 的最後使用期限。4 月 12 日開始,所有的 Windows XP 和 Windows XP SP1 將被自動升級至Windows XP SP2,而不管用戶你願意不願意。

目前,不希望接受 SP2 更新的用戶還可以通過 Windows Update 或是自動方式阻止這一更新,但是這一機制據稱在 4 月 12 日就會失效了。

微軟公司已經開始提醒用戶,去年安裝的 Windows XP Service Pack 2 臨時程式機制的最終期限已經臨近,到 4 月 12 日,所有臨時程式機制將期滿,Windows XP 和 Windows XP SP1 系統將自動下載並且升級到 Windows XP SP2。

微軟公司表示:“這一通知的目的是為了提醒你即將到來的最終期限的日期,屆時,不管臨時程式機制是否存在,作業系統都將進行自動升級和 Windows 升級,所有作業系統都將升級為 Windows XP SP2”。

儘管微軟公司再三強調 Windows XP SP2 是一個“精華的安全升級”,但企業在它們徹底測試 SP2 之前,對普遍使用 SP2 仍然心存疑慮。 微軟公司在推出Windows XP SP2 後首先提出 2004 年十二月中旬為升級的最終期限,然後又延長為從 2004 年 8 月發佈 Windows XP SP2 起 8 個月為自動升級的的最終期限。到 2005 年 4 月 12 日止 8 個月的期限將結束。

微軟公司補充說:“從 2005 年 4 月 12 日開始這個臨時的程式機制將終止,系統將自動啟動升級功能或者通過 Windows 升級互動式下載 Windows XP SP2,這樣系統將升級為 Windows XP SP2 ”。4 月1 2 日也是微軟公司按預定計劃每月發佈安全公告和補丁軟體的日子。

星期五, 2月 25, 2005

只有 1.4mb 的 32bits 圖形介面作業系統 Menuet OS

MenuetOS 最初是芬蘭人 Ville Turjanmaa 利用業餘時間開發的、完全由 x86 組合語言寫成的 32 位元作業系統。現在世界各地都有 MenuetOS 的開發者,他們正在不斷完善這個作業系統。

   這個項目目前由 Mike Hibbett 接管,而 Ville Turjanmaa 將離開 Menuet 的開發。專案的中文版由 E-mean X. 開發。

  MenuetOS 並不像現在流行的 Linux 及其它如 FreeBSD、Minix 一樣是一個類 Unix 的作業系統,它完全由 32 位元組合語言編寫的系統。Menuet 及其應用程式不基於當前任何一款流行的作業系統而運作,主要是為在開發過程中避免複雜的編程及各種不可預料的 Bug。

  儘管Menuet是完全用 32位彙編寫成的,但它的系統程式構架並不完全是為組合語言而保留,它的介面實際上可用於任何程式設計語言。儘管如此,系統開發的目的還是為更簡化 Asm 程式設計而設計,系統下 GUI 編程尤其體現這一點。

Menuet OS 的特點

 - 多工,多線程
 - 圖形用戶介面,可以達到 32bit color,1280x1024 解析度
 - 程式開發比 Windows 和 Linux 之類的系統更容易
 - IDE環境:自帶應用程式及內核編輯編譯工具
 - 完全開放的源代碼(GPL)
 - TCP/IP 協議棧、PPP 及 區域網路
 - HTTP/MP3/Mail 伺服器,3D迷宮
 - 自由的介面,視窗可換“皮膚”
 - 僅一張 1.44M 軟碟可以裝下!

Menuet OS 對硬體的要求

CPU : 386 或與之相相容的 CPU
顯示: 支持 VESA 2.0(建議使用) 或 VESA 1.2 的顯卡,VGA/EGA 顯示器。
音效卡: Creative SB(Sound blaster) 16或相容聲效卡
硬碟: ATA LBA 模式 FAT32檔系統
網路: Realtech 8029/8139, Intel 8255x, 3com, PCNET32 Ethernet PCI cards PPP dialup
滑鼠: PS/2 或 COM
記憶體: 至少32M
系統相容硬體列表:http://www.cs.helsinki.fi/u/twruottu/mos/hw/


Menuet 開發計畫  2004-3-1

應用程式方面:
 - 改進遊覽器
 - MP3 播放器,這需要增強音效卡方面的功能才能實現

內核方面:
 - 優化內核及內核相關代碼
 - 年底將寫一份 64 位元系統的計畫

英文版網址:
http://menuetos.org/

中文版網址:
http://www.xemean.net/menuet/

星期三, 2月 23, 2005

元宵節快樂

元宵節快樂

星期一, 2月 14, 2005

西方情人節快樂

西方情人節快樂

星期三, 2月 09, 2005

雞年快樂, 恭喜發財

雞年快樂, 恭喜發財