rainwen
|
發表於 2005-4-3 05:13 AM |
引用: 桂正和寫到:
引用: Acute寫到:
3. Windows 2000 有設定registry size 的畫面? 麻煩貼出來瞧一瞧, 我還真沒見過該畫面哩
Acute.
個人認為
我想他說的是記憶體分頁的東西
系統裡面怎麼看都只有這東西有設定大小..
至於重開機才能使登錄檔生效..
如果我沒記錯的話
軟體只要有需要
就會自己跑去找登錄檔
這是很基本的流程邏輯吧.......
看的不知所以然
感覺似是而非
Windows 2000 在系統內容中真的有registry size 的設定,
不過基本上很少有人會用到登錄檔大於預設值.....更何況還可以調高
而且在XP跟2003上就沒看到這項設定了
另外從98開始,Windows每次開機成功後就會自動備份一份登錄檔,以供將來損毀時還原用
| |
ultraplayer
|
發表於 2005-3-30 01:16 PM |
不過重灌XP後,那程式就不行用了,要重装也是蠻麻煩的
| |
swimman
|
發表於 2005-3-26 11:36 PM |
看大家都對REGISTRY這麼有興趣
我再深入介紹一下registry的相關知識
這些都是從Inside windows 2000 3rd (microsoft press)中摘錄出來
1.Registry 在哪裡
HKEY_LOCAL_MACHINE\SYSTEM c:\Winnt\System32\Config\System
HKEY_LOCAL_MACHINE\SAM c:\Winnt\System32\Config\Sam
HKEY_LOCAL_MACHINE\SECURITY c:\Winnt\System32\Config\Security
HKEY_LOCAL_MACHINE\SOFTWARE c:\Winnt\System32\Config\Software
當然winnt名稱也可能會是windows這個不一定
在哪底下應該會看到一些有幾百K到幾十M的檔案
2.Registry的結構
這個跟資料結構有關還是直接去看這本書吧
3.安全性考量
以SYSTEM為例
To further protect the integrity of the crucial SYSTEM hive, the configuration manager maintains a mirror of the
^^^^^^^^
SYSTEM hive on disk. If you look at the nonhidden files in your \Winnt\System32\Config directory, you'll see three
^^^^^^^^^所以的確是有備份 ^^^^^^^^^^^^^^^^放在這裡
files with the base name System : System, System.alt, and System.sav. System.alt is the alternate hive .
^^^^^^^^^^^^^^^^^^^^^^^ 總共有三個實體兩個備份
Whenever a hive sync flushes dirty sectors to the SYSTEM hive, the hive sync also updates the System.alt hive. If
修改的時候都會一起備份
the configuration manager detects that the SYSTEM hive is corrupt when the system boots, the configuration
如果正式的壞了
manager attempts to load the hive's alternate. If that hive is usable, it then uses that alternate to update the original
會嘗試載入備份
SYSTEM hive.
備份如果成功載入就會覆寫到正式的
System.sav is a copy of the SYSTEM hive that exists when Windows 2000 finishes installing. This copy can be used,
System.sav是視窗安裝完成後儲存的版本
usually only in extreme circumstances, to restore the computer's configuration to its initial state.
如果REGISTRY嚴重損壞的時候就會載入這個最古早的版本
| |
桂正和
|
發表於 2005-3-26 08:22 AM |
引用: Acute寫到:
3. Windows 2000 有設定registry size 的畫面? 麻煩貼出來瞧一瞧, 我還真沒見過該畫面哩
Acute.
個人認為
我想他說的是記憶體分頁的東西
系統裡面怎麼看都只有這東西有設定大小..
至於重開機才能使登錄檔生效..
如果我沒記錯的話
軟體只要有需要
就會自己跑去找登錄檔
這是很基本的流程邏輯吧.......
看的不知所以然
感覺似是而非
| |
jocosn
|
發表於 2005-3-26 04:06 AM |
引用: swimman寫到:
.net程式如果只使用LOCAL元件就可以直接拷貝執行,那種稱為xcopy安裝
如果有使用元件是放在GAC那就不行了
....(略)
對阿,不想用 registry 的人用 Java
Java 的程式都沒有登入檔 
| |
swimman
|
發表於 2005-3-26 03:32 AM |
引用: jocosn寫到:
毒王寫的比較有道理吧,
乍看一些東西REGISTRY只讀取一次還以為自己孤陋寡聞
感覺怎麼出個網路追追追
不過這些都不是問題
因為 .NET 的新程式允許你不用加任何的 REGISTRY
你可以設計一個純.NET程式,直接灌好後,再把該目錄下的程式直接拷貝到另一台電腦直接執行
所以大家要學就學 C#,VB.NET,VC++.NET
有 .NET 就對了 ........
我也沒試過,不知道對不對
.net程式如果只使用LOCAL元件就可以直接拷貝執行,那種稱為xcopy安裝
如果有使用元件是放在GAC那就不行了
當然如果都沒有使用.net FrameWork之外元件那當然就直接複製就可以了
不過當然要灌.net FrameWork才會動
另外建議大家要學就從C#開始
用C++那叫自找麻煩
vb.net會簡單一點但是薪水會少一些
| |
swimman
|
發表於 2005-3-26 03:23 AM |
承蒙版主關心我就多說點吧:icons8:icons8
一般寫程式會用到的registry大概就是在HKEY_LOCAL_MACHINE\Software\CompanyName\SoftwareName
或是HKEY_CURRENT_USER\Software\CompanyName\SoftwareName
另外在安裝COM元件的時候還要寫到HKEY_CLASSES_ROOT
不過這個東西幾乎都是開發工具來HANDLE
基本上公司如果肯花錢買個InstallShield X 把程式包一包他就會幫你做好安裝移除的工作,這部分的REGISTRY也不用擔心
回到主題所以移除程式REGISTRY出問題頂多是移不掉,無法重新安裝,這個軟體沒得用
不會把電腦搞到不能運作
另外提到現在程式開發已經走向.net的時代
.net已經把Registry踢進垃圾桶了,.net的設定都改用XML來做設定了
由於.net的高生產力特性而且微軟目前宣稱用80%的精力推廣
所以可以預期的大部分的REGISTRY都會消失
而且在DLL HELL的折磨之下很多人開始朝綠色軟體的方向發展
但是想要在WINDOWS上看不到registry......短時間是很難的
| |
jocosn
|
發表於 2005-3-26 03:17 AM |
毒王寫的比較有道理吧,
乍看一些東西REGISTRY只讀取一次還以為自己孤陋寡聞
感覺怎麼出個網路追追追
不過這些都不是問題
因為 .NET 的新程式允許你不用加任何的 REGISTRY
你可以設計一個純.NET程式,直接灌好後,再把該目錄下的程式直接拷貝到另一台電腦直接執行
所以大家要學就學 C#,VB.NET,VC++.NET
有 .NET 就對了 ........
我也沒試過,不知道對不對
| |
ELong
|
發表於 2005-3-26 02:40 AM |
最喜歡看這種沒有人身攻擊,
各憑自己的專業知識,
冷靜以對的討論與分析,
宛若八仙過海,
各顯神通。
沒事沒事,
不要理我,
妳們繼續,妳們繼續.....
| |
Acute
|
發表於 2005-3-25 11:05 PM |
1. 安裝/解除安裝某些軟體需不需要重開機, 問題跟registry 一點關係都沒有
問題在於該軟體的模組有沒有能力在系統沒有reboot 的情形下自動卸載
so, 這並非registry 的問題, 而是該軟體模組的問題
2. registry 是auto backup 的, maybe 在regsitry 裏面有相關的record 可以改變是否backup
3. Windows 2000 有設定registry size 的畫面? 麻煩貼出來瞧一瞧, 我還真沒見過該畫面哩
4. 軟體廠商沒有善盡清除registry 的工作, 才會有那些所謂cleaner 程式, 這跟registry 架構本來就沒關係, 不可以本末倒置, 就好像沒有人無聊寫病毒, 自然不需要掃毒程式, 而不是沒有掃毒程式不行.
5. Unix/Linux 很多東西是不能調整的, Windows 的registry 提供調整的契機. Unix/Linux 並沒有像Windows 那麼複雜的OLE 機制, 所以他可以不需要.
6. 我說: registry 是一種資料庫架構, 並非說registry 才是資料庫, 請看懂中文的意思 @_@
7. INI 最大問題就是散落一地, 所以registry 才提供整合的作法, 所有程式透過統一的界面機制運作, 這樣子管理上才是方便的. 而且OLE 複雜的叫用界面也是利用registry 當作溝通橋樑, 如果是散落一地的INI, 根本不可能可以做到.
Acute.
| |
本主題回覆較多,請 點擊這裡 檢閱。 |