计算机的二三事——软件篇

写在前面

其实从我们对使用计算机的目的来看,我们使用计算机的首要目的无非就是使用软件罢了。无论是想要去浏览网页,玩个游戏,甚至是编个程序,我们都在使用软件。为了能让你们感受到这篇文章的亲切感,就从与我们接触最为密切的软件层面开始讲起好了。

第一部分 操作系统

1.1 操作系统(OS)

问:被使用次数最多的软件是什么?
答:肯定是 浏览器 操作系统啦

操作系统有哪些我也不再多说,都被说烂了,就是Linux Unix Windows(MacOS和IOS的内核是Unix的分支,因此我就算他是Unix的了,Android就不用说了,运行在Linux下的。 但凡用些安卓终端的都会知道,不知道的我也算你知道了 )。他们之间的关系和发展史我也不是很想多说,有兴趣的可以百度去查一查,或者我有兴趣了在后面杂谈里面会说一些。

这篇文章只是为了实用而去编写的,为了介绍起来能更加轻松些,所以就从windows、Linux、MacOS这些内容来讲。

Windows

作为市场份额最大,使用人数最多,软件环境最为多样化(病毒也是)的免费 付费的操作系统。Windows在桌面端是绝对的王者(我没有在骂windows phone,我没有在骂windows phone,我没有在骂windows phone ),这样的体量相信不需要我多介绍了。

所以对于windows,我更愿意去跟大家介绍windows的前身——DoS系统。其实DoS系统可以看做是一切操作系统的鼻祖。现在的操作系统中也总是能找到类似于DoS的身影——终端或者命令提示行的形式存在着。可以说是操作系统的“活化石”了。

MacOS

MacOS顾名思义,是给苹果的Mac系列电脑使用的操作系统,Unix操作系统的典型。总所周知,MacOS只适用于Mac系统。这一点和Unix家其他的系统例如AIX、HP-UX一样,软硬件之间存在着配套的联系。这也是Unix家族与Linux家族之间最大的差别。至于原因嘛,很简单,Linux开源,开源的利弊在将Linux的时候在着重去讲。

说回到MacOS,我相信有很多人认为MacOS是非常安全的系统。事情也的确如此,适用于MacOS的病毒确实少之又少,但也不代表没有,所以MacOS也不是绝对安全的系统。至于去讨论原因,有人肯定会非常自信的说,是因为苹果开发环境的封闭性铸就了苹果设备的安全性。如果我们在这里讨论的是IOS或者是IpadOS的话,的确如此,但是我们讨论的却是MacOS,那么这个理由就不太准确了。实际上,苹果封闭的只是移动端的应用来源,而MacOS,苹果一直是允许用户下载并安装互联网资源的。因此,从理论上来讲MacOS在安全性上,和windows没什么太大差别,但要比Linux强,至于原因,也是因为开源。

那么MacOS相对“安全”的真正原因是什么呢?
其实是因为使用MacOS的人数不多,并且系统环境也还算封闭。至少比起windows和linux来说级别算是最高的了。研究和开发Mac软件还必须要使用MacOS,开发成本一下就比其他系统高很多,因此专门研究MacOS系统漏洞的人相对就少了很多。因此营造出了MacOS系统漏洞很少,能够使用的恶意软件数量也很少的假象。

Linux

Linux,强大、开源、免费的最热门的操作系统,拥有无数的分支开发版本。优点就是它开源,缺点嘛…也是它开源。

Linux——成于开源,败于开源的经典。

我相信有很多人会说,现在不就是拥抱开源的时代么,多少多少多少家软件公司现在都在拥抱开源。但其实,开源,并不是完全的利好。

反正先说优点。开源,拥抱开发者,开源给Linux系统也带来了无限的客制化空间,包括驱动、系统、图形化界面等等等等。只有你想不到的,没有开源系统客制化范围所覆盖不到的。并且,开放的源代码让用户和企业在系统的安全性上不需要考虑太多。更关键的问题是开源部分免费的问题,比起收费的windows而言,那个老版不会喜欢免费又让人放心的Linux呢。

再来说一说缺点。开源,把系统的开发权让给了开发者,那么,系统的易用性就基本取决于系统开发者的勤快程度了。当然,Linux在这一方面做的确实有那么一丢丢的糟糕。暂且抛开目前的发行版(当然,现在随着Linux发行版越来越多,也越来越亲民,Linux也开始拥抱普通用户了),安装和使用Linux的过程是什么样的呢。制作安装盘,安装系统(推荐使用全命令行的安装,巴斯滴很 ),重启。安装好之后你以为会像windows一样给你一个welcome的界面?想多了,人家不带图形化界面的,开机就几行英文,所有操作全靠终端指令。在现在,如果你想体验DOS系统的魅力?那Linux的部分发行版真的能给予你一样的体验。还有最最最关键的问题,源代码的开放,让所有的程序员能够最为直观的看到内核源代码。这对于系统安全而言,这是最为致命的问题。因为作为一个漏洞而言,如果漏洞在内核位置被发现,那么通过这个漏洞能够做到其他所有类型漏洞都能做到的事情,甚至能够让你无法发现。

其实纵观Linux和Linux的发行版的发展历史。我们不难得出一个结论:开源并不代表把自己的一切都交给了使用它的人。决定用户数量多少的,不是你的软件本身的公开透明,而依旧是软件是否简单易用。开发者拥抱开源,是因为他们有足够的能力去对软件进行定制化操作。而普通用户拥抱开源,只是希望自己使用的软件更加安全罢了,但这一条件的前提,是他们能够正常的去使用和操作软件。

1.2 操作系统的架构(x86(32位)/x64(64位)/arm(64位))

说完了操作系统,现在开始讲操作系统的一个最重要的参数——操作系统的系统架构,其实按理说应该叫cpu架构的,但是因为有x86_64位架构的cpu运行x86_32位架构的操作系统情况的存在,因此就按照操作系统的架构来介绍。

x86和x64都是x86架构下的两个不同版本,在日常生活中,操作系统都会提供x86和x64两个选项的系统镜像来让我们选择安装。所以电脑小白们经常会问一个问题——到底是选择x86还是选择x64呢,其实最简单的方法就是看内存大小,内存在4GB及以上的电脑都要使用x64的操作系统,反之小于4GB的x86就足够了。

至于arm架构的用户嘛,恭喜你们,没有这样的选择困难啦,因为它只有64位的表示方式(强迫症人狂喜)。

但是如果你是以为专业人士,这样的答案绝对是不够的,那么为什么要这样区分呢,那就要从x86和x64的含义说起了。

随着x86架构的发展,x86经历过三个版本的迭代。分别是x86_16位、x86_32位和x86_64位。同样的,在发展的过程中因为程序规模的不断扩大,x86_16位版本退出了历史的舞台。x86指代x86_32位,x64指代x86_64位。

那么x86的迭代迭代了什么?其实通过将x86和x64展开解释之后就会发现是位数的变化,从32位变成了64位,那么,是什么位数的变化呢,其实是cpu的寄存器。

那既然系统架构的区分是根据cpu寄存器来的,那为什么和内存扯上关系了?
因为cpu寄存器内存放的,正是保存在内存之中相应指令以及数据的地址

因此,所有的谜团就都解开了。为什么32位架构只能支持到4GB呢?因为32位二进制数只能表示232 个地址,每个地址块存放一个字节(即一个8位二进制数的集合,缩写为B,区分大小写),那么共计4294967296个字节,根据存储单位的换算法则,就可以表示出232 B=222 KB=212 MB=22 GB=4GB了。因为32位的二进制数只能表示4GB的内存地址,因此超出4GB的部分无法表示,也就无法使用4GB以外的空间,再加上系统本身需要保留的内存空间来维持自身的运作。因此在windows下可用空间就只剩下3.XXGB了。

那么同理,64位最大支持多大的内存呢,有兴趣的可以自己算一算,我就直接给答案了,17179869184 GB。

讲到这里,其实不免能够发现一个问题,那就是64位架构是能够表示32位架构内所有内容的,那么为什么不直接淘汰32位架构直接替换成64位架构呢。其实理由也很简单,64位架构,意味着cpu执行一个指令,都需要按照64位的地址来进行处理。原本32位便可以处理的问题需要向前填充32位0后再继续处理,因此64位对cpu的处理能力要求更高。但是64位能够表示的内容也变得更多,软件规模才得以进一步的拓展。总而言之就是,32位的性能要优于64位,但是内容丰富度和软件规模上64位更胜一筹

说完了x86,再顺便提一嘴ARM架构。因为ARM架构是近几年才兴起的一个处理器架构,因此它没有x86那样坎坷曲折的发展过程,出道及巅峰(同样也没有什么好啰嗦的 ),也就暂时没有了位数的分别。和上面提到的Linux一样,ARM架构的开源的,同样也意味着ARM架构是可以根据CPU自身进行定制化的。这样的特性使得Intel和AMD长年的技术封锁得以被突破,诞生出了高通和Apple等一系列的cpu业界"新星"。

1.3 驱动程序

了解完了操作系统,根据我们做系统的步骤,我们来到了安装驱动程序这一步。

操作系统是虚拟的,你把握不住 但是电脑自身的硬件(cpu、内存、显卡等),电脑周边(键盘、鼠标、屏幕)等都是实实在在存在的。那么如何将虚拟的带到实际,让逻辑成为实际的工作,或将实际的动作转换成系统的操作?承担这样的转换工作的就是这些硬件的驱动程序。驱动程序根据测试和分发商的不同,分为==OEM(Original Equipment Manufacturer,设备原始制造商)和WHQL(Windows Hardware Quality Lib,windows硬件设备质量实验室)==两个版本。电脑小白推荐使用设备品牌商官网提供的经过设备制造商测试过的驱动程序,这种程序最为稳定。但由于测试步骤和周期要比WHQL更长,因此更新较慢。希望尝鲜的大佬们则可以选择WHQL驱动,能够更早的收到更新但是风险较大。甚至需要重做系统。

至于驱动程序的获取方式,目前一共有四种:

第一种最为方便和简单,就是通过windows的更新来获取设备驱动。在windows10或更高版本中,OEM厂商可以通过微软提供的平台上传。当然缺点也是有的,一是有些厂商对于某些设备只提供一次驱动包,也就是说驱动版本无法保证最新。第二点就是当从做系统后因网卡驱动的丢失导致电脑无法连接到网络,这个办法也是无法使用的。

第二种是通过第三方软件获取。不过从以往经验看来翻车率最高。

第三种是访问设备制造商官网,比如笔记本品牌官网。适用于品牌整机和笔记本。

第四种是访问硬件制造商,比如Intel®驱动程序和支持助理,英伟达驱动下载,AMD官网等。只能获取到WHQL驱动。

因为面向的设备不同,驱动程序的编写方式也大不相同,在此就不做深层次的介绍。对某一个硬件驱动或对驱动本身感兴趣的同学可以自行百度了解。

1.4 软件运行库

在使用软件的过程中,相信大部分同学都遇到过XXX.dll丢失的问题,而这类问题一般都是因为软件自身所需的软件运行库缺失导致的。

作为一个全新的操作系统,一开始是不带任何软件运行库的,需要用户自行去补充安装。常用的软件运行库为微软的C/C++系列运行库和.Net运行库,以及游戏专用API——DirectX。

当然解决方法也很简单——缺什么补什么就好了。不知道这个dll在哪个包里?百度都能告诉你答案的。

那么软件运行库到底是什么?我们为什么需要软件运行库?

其实言简意赅的说,软件运行库就是对代码的进一步解释和转换。随着第三代编程语言的兴起,软件的代码从原来的机器码或汇编指令逐步封装,变成了如今一个函数就可以承载几十行甚至上百行的指令。但是CPU能够接受的运算指令依旧是机器码。软件运行库所提供的,就是类似于翻译的功能。软件编码的过程,其实就是不断调用运行库内提供的已经翻译好的命令,亦或者是对某个函数的进一步解释。当然,如果在软件运行的过程中这个翻译缺失或者不完整,就会导致翻译出的结果存在问题,cpu无法通过运算得出正确的结果,最终导致软件甚至系统的崩溃。

当然,因为语言的不同,所需要的翻译也不同。因为时间的不同,能够翻译的内容也不同。因此软件运行库也是变得五花八门十分臃肿。为保证系统的便携性,是不会带有所有运行库的。所以就会出现运行老软件时提示XXX.dll文件缺失的情况了。

第二部分 使用软件(windows篇)

2.1 系统软件

操作系统是一个软件的集合,自然也会有为我们准备一些让我们的系统更加方便使用的软件。在此介绍一些我们平时常用的系统软件。

如何使用系统软件

操作系统系统软件在windows默认设置下,已经包含在系统环境变量设置中,因此只需按下windwos+R键输入对应的英文名即可打开对应的系统软件。同理也可以自己在环境变量中添加自己的路径,实现相同的效果。

文件资源管理器(explorer.exe)

或许对于小白来说,文件资源管理器是使用时长最长但是存在感却非常低的一个软件了。其实,桌面、任务栏、默认的文件夹视图窗体都是文件资源管理器的组成部分。

任务管理器(taskmgr.exe)

解决卡死软件好帮手,同时拥有进程管理的较高权限,强力杀掉恶意进程。同样也是各路病毒和恶意软件的头号通缉目标。任务管理器不光可以管理进程,还可以查看系统资源的使用状态,管理开机启动项(不会像360他们那样全,但是也绝对够用),管理系统用户的状态。还有一个隐藏功能,就是可以在文件资源管理器挂掉的时候打开启动窗口,进而进行一系列的操作。并且还可以十分方便的使用管理员身份运行(某些系统崩溃场景下的救命稻草)。

系统启动配置(msconfig.exe)

为防止windows在某些情况下可能出现的异常行为,windows预留了很多的启动方式。当然这些启动方式都可以通过在windows RE环境下执行并启动,也可以在msconfig中进行自定义的启动设置。
msconfig同时还提供了引导管理、启动服务管理以及一些常用的系统工具入口,方便用户进行相应的操作。

系统信息(msinfo32.exe)

msinfo32里面记载了系统所需的所有软硬件资源信息,甚至有一些参数只能在msinfo32中查询的到。虽然里面的信息多到略显多余,但是相信总有一天他会为你提供有用的参考信息。

命令提示行(cmd.exe)

终端,或者叫命令提示行是操作系统中最为古老并且最为重要的软件。对于现在而言命令提示行依旧承载着所有软件运行(并且是对于没有界面的软件而言最为便捷的结果输出途径)的重任。系统中的所有操作都可以转换成命令提示行中的一条条指令。至于具体的指令内容完全可以另写一篇文章进行介绍。而“运行”本身也可以视为是命令提示行的简化版。他们的区别就是在使用“运行”执行结束后会自动关闭命令提示行对话框,而命令提示行本身不会。所以使用"运行"往往是看不见运行结果的。

windows关机进程(shutdown.exe)

接下来要介绍的软件,和上面几个具有高大上界面的软件不同,这类软件并没有操作界面,只能通过相应的参数来实现相应的功能,通过“运行”和命令提示行使用并运行。了解windows关机进程的主要目的就是当遇到一些突发情况导致任务栏无法使用时,可以使用windows关机进程即可实现关机、注销、重启等操作。

接下来是shutdown命令组合和相关参数释义:
用法:shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
用法解释:
1.当shutdown后不接任何参数时,默认输出shutdown的使用帮助,这和在后面输入/?参数是一致的。
2.shutdown后接/i,/l,/s,/sg,/r,/g,/a,/p,/h,/e,/o用于表示具体操作内容,参数释义如下:
/i:显示操作界面(太过于专业导致一般用户用不上,但可以用于远程操作)。
/l:注销用户,不能与/m/d搭配使用,即不能远程注销计算机或填写注销原因。
/s:关闭计算机。
/sg:关闭计算机,并在开机后重启关机前仍在运行中的软件。
/r:重启计算机。
/g:重启计算机,并重启重启计算机前仍在运行中的软件。
/a:取消shutdown指令。注意当需要取消带有/fw的指令时,/a需和/fw搭配使用,以取消向主板固件(BIOS)的引导。
/p:屏蔽计时关机指令的计时提醒并在计时结束后关机。
/h:休眠计算机。
/e:记录计算机意外关闭的原因。
/o:转到高级启动选项菜单并重新启动计算机。必须与/r一起使用
3.在解释2的前提下可以后接/hybrid,/soft,/fw,/f,/m,/t,/d,/c等参数对命令操作进行额外说明,由于不太常用之列出可能会用到的几个参数进行解释:
/hybrid:与/s联合使用,下次开机时电脑将以快速启动的方式进行启动。
/fw:下次开机时将引导到主板固件界面。
/t xxx:命令执行计时器,xxx表示时间,单位为秒,若不带此参数则默认为60秒,时间为0则立即执行。在命令计时期间可以输入shutdown -a取消相关指令。

windows进程杀死程序(taskkill.exe)

顾名思义,taskkill是用来强制杀死某项进程的程序。同样的它也是病毒和恶意软件的头号目标。除了能够及时阻止恶意程序的继续执行以外,也可以用来解除特定文件占用。这在删除文件时也能给予相当大的帮助。taskkill也没有图形界面,只能通过“运行”和命令提示行进行使用。

用法:TASKKILL [/S system [/U username [/P [password]]]]{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
释义:
/?:显示taskkill帮助信息。
/s:指定任务所在的远程计算机(一般不填,默认本机,下面两个为对/s的进一步指定,同理)。
/u:指定远端客户机执行命令的用户名。
/p:远端机用户密码。
/fi:利用筛选器筛选目标进程。可搭配*进行模糊筛选(慎用)

筛选器名有效运算符有效值中文释义
STATUSeq, neRUNNING ,NOT RESPONDING , UNKNOWN进程状态
IMAGENAMEeq, ne映像名称映像名称
PIDeq, ne, gt, lt, ge, lePID 值进程号
SESSIONeq, ne, gt, lt, ge, le会话编号会话号
CPUTIMEeq, ne, gt, lt, ge, leCPU 时间,格式为 hh:mm:ss软件运行时间
MEMUSAGEeq, ne, gt, lt, ge, le内存使用量,单位为 KB软件内存使用量
USERNAMEeq, ne用户名,格式为 [domain]user使用进程的用户名
MODULESeq, neDLL 名称解除动态库的占用
SERVICESeq, ne服务名称使用该服务的进程
WINDOWTITLEeq, ne窗口标题关闭该窗口的进程

说明
1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '
’。
2) 远程进程总是要强行 (/F) 终止。
3) 当指定远程机器时,不支持 “WINDOWTITLE” 和 “STATUS” 筛选器。

/pid:利用PID指定目标进程(pid可通过tasklist指令获取)
/IM:利用进程名指定目标进程,可以使用*进行模糊筛选(慎用)
/T:终止指定的进程和由它启用的子进程。
/F: 指定强制终止进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白板白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值