今天是第二天~~~~
正如前面规划的,今天要从我们的第一个主题Windows登录档开始介绍
这里有个每次提到登录档大家就必说的大前提先报告大家知道!
登录档的编辑指令有风险,请小心谨慎,笔者无法附负担!
後续来的文章会有一些实作的部分,请大家实作时小心,因应系统不同可能也会有些差异,最保险的方法是每次实作前都先备份一次登录档喔,那麽以下就开始介绍~~
登录档在中国大陆叫作注册表,是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
顺带一提,%SystemRoot% =当前启动的系统的所在目录,即C:\Windows,我们查看和编辑登录档的程序regedit.exe也在这里,下篇会向大家介绍登录档的资料结构就可以从这里看起,但千万不要随便增删内容喔~~
参考资料:
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 环境 }
Watch 监听器 具比较传(old & new) 无回传值(return) 监听变数发生异...
Show the browser's Elements and Network tool insi...
程序设计的步骤 一个产品在最初设计的时候总是会有准备工作 第一步:提出问题 设计一个程序是为了解...
比赛动机 这是我第三次参加铁人赛,每次参赛都刚好隔一年,後来我发现这样的间隔其实很刚好,因为在中间的...
今天我们实作Users的CRUD,但今天因为花很多时间在前端的Header的排版,所以没有什麽时间可...