登录档是什麽~资工的讲古时间

今天是第二天~~~~
正如前面规划的,今天要从我们的第一个主题Windows登录档开始介绍
这里有个每次提到登录档大家就必说的大前提先报告大家知道!
登录档的编辑指令有风险,请小心谨慎,笔者无法附负担!
後续来的文章会有一些实作的部分,请大家实作时小心,因应系统不同可能也会有些差异,最保险的方法是每次实作前都先备份一次登录档喔,那麽以下就开始介绍~~


什麽是登录档(Registry)?

Imgur
登录档在中国大陆叫作注册表,是Windows作业系统、硬体装置以及其他应用程序得以正常执行和储存设定的核心”资料库”,也可以说是一个非常巨大的树状分层结构的资料库系统。
简单来说,就是Windows这个作业系统的各种设定集合,包括每个应用程序的交互关联性,硬体配置状态和属性,电脑效能纪录跟底层核心的系统状态,预设资料,软件安装资讯跟版本号、金钥等等(这项根据安装软件的不同,储存的资讯会不太一样)。
举个简单的例子,你在桌面按右键,点选个人化(至少win 10是这样),你改个桌布改个工作列的颜色,其实背後就是在修改某几条登录档。


登录档的功能

我们刚刚知道他储存了许多资讯,作业系统会以登录档作为他对这些设定资料的认知,通过登录档可以控制硬体、软件、使用者环境和作业系统介面的资料资讯档案,他同时也能控制电脑的应用程序和驱动程序,像是开机自启的应用,或是应用程序预设会安装到哪个位置等等。

相对的,如果哪天登录档损坏,系统会无法获得必要的资讯去执行和控制程序,或是正确回应使用者的输入,也就是系统会无法正常启动和执行,像是找不到启动某程序的需要的档案,或是不能正确安装程序等等。

所以当然,你修改它可能造成错误,但也可以控制系统深层的设定,根据个人习惯调配出最佳性能,这是可以炫技的部分(XDD


登录档的历史由来

闲暇之余,也可以来体会一下前人怎麽创造出这些技术的~
登录档的前身是.ini档,在维基百科这样写着:

最初,Windows系统及应用程序的资讯被储存在字尾名为ini的文字档案中,这就是登录档身。但是这麽做有着致命弱点:因为每一个程序都会新安装一个或多个ini档案,来储存程序资讯,导致资讯的分布极为零乱;而且在16位元系统下,ini档案的大小必须在64KB之内。所以ini档案被认为不便於使用和管理。

简单来说,当时的系统设定资讯,是由负责管理计算机硬体的system.ini和负责管理桌面和应用程序win.ini组成。所有驱动、字型、设定和引数会储存在.ini档案中,任何新程序也会被记录在此。

一开始可能应用程序有自己的ini档,我们只要在system.ini和win.ini中指出那些档案的路径就可以使用,这造成system.ini和win.ini越来越肥大,而且没有人移除程序会去删掉这条资料,後来这个问题让软件厂商开始建立自己的ini档,然後倒过来指向system.ini和win.ini。

这时候你发现问题了,ini档四处散落,影响了系统正常的存取级别设定,而且ini档案可读性很强,任何文字编辑工具都能修改ini档案,系统级的设定档被删删改改的,一个差错是可以让系统崩溃,更别提病毒或木马,这里也存在安全性问题。

总而言之,这是他的缺点,也是技术转折的关键,於是在Windows 3.0的OLE技术(物件连结与嵌入)出现後,微软为了存放系统中大量的软件元件资讯,组织了一个reg.dat的资料库来存放这些资讯,使用二进位格式进行文件解析的效率更高,改变他的资料结构更有系统的规划等等,并用regedit.exe去进行管理,在Windows 95中,登录档得到广泛套用,逐渐淘汰ini档案,中间出现regedt32.exe是过渡的控管程序。

最後,在现今的系统中,我们後来用System.dat和User.dat两个二进位制档案储存登录档资讯,并用regedit.exe进行存取,不是随便的程序都可以存取,增加了安全性和稳定性,就是这麽一回事。

说了这麽多觉得可以快乐结束这一天,但没什麽画面总觉得怪怪的,那我们就来看看登录档的的实体位置好了…….本来是这麽想,但其实现在的登录档文件不只有上面讲的那麽简单,这个我们留到下一篇告诉各位~

但是!
历史的痕迹依旧还在,我们还是可以在C:\Windows(即%SystemRoot%)下发现system.ini和win.ini的存在,可以轻易用记事本打开,上面还写着for 16-bit app support
Imgur

顺带一提,%SystemRoot% =当前启动的系统的所在目录,即C:\Windows,我们查看和编辑登录档的程序regedit.exe也在这里,下篇会向大家介绍登录档的资料结构就可以从这里看起,但千万不要随便增删内容喔~~
Imgur

Imgur

参考资料:
https://tphcc.ebook.hyread.com.tw/bookDetail.jsp?id=11615 (电子书)
https://www.3du.tw/knowledge/OGI0Mg==.html
https://iter01.com/515763.html
https://zh.wikipedia.org/wiki/%E6%B3%A8%E5%86%8C%E8%A1%A8
https://en.wikipedia.org/wiki/Windows_Registry


<<:  [Day 6] 使用 kotlinx.serialization 转换 JSON

>>:  D1-用 Swift 和公开资讯,打造投资理财的 Apps { 架设 Xcode 环境 }

[30天 Vue学好学满 DAY7] 监听器(Watch)

Watch 监听器 具比较传(old & new) 无回传值(return) 监听变数发生异...

[Day26] VSCode Plugin - Edge Tools<未完>

Show the browser's Elements and Network tool insi...

[day-8] 凡事都有第一次,撰写程序前的必要步骤!

程序设计的步骤 一个产品在最初设计的时候总是会有准备工作 第一步:提出问题   设计一个程序是为了解...

【31】30天在Colab尝试的30个影像分类训练实验 - 完赛心得

比赛动机 这是我第三次参加铁人赛,每次参赛都刚好隔一年,後来我发现这样的间隔其实很刚好,因为在中间的...

[Day 5]新手村外的首战是史莱姆应该是定番吧(後端篇)

今天我们实作Users的CRUD,但今天因为花很多时间在前端的Header的排版,所以没有什麽时间可...