电脑操作系统基础知识大全_1.docx
电脑操作系统基础知识大全电脑操作系统基础知识大全怀健位到如今流行的64位,系统版本从最初的Windows1.0到Windows95、Windows98、Windows2000、Windows2003、Windows_P、WindowsVista、Windows7、Windows8、Windows8.1、Windows10和WindowsServer服务器企业级操作系统,不断持续更新。Windows系统最大的优势在于图形界面,使得普通用户操作起来非常便利。相比大部分Linu_系统,windows的常用软件安装和系统设置不需要以命令行的方式去输入系统指令,只需要点击“按钮即可完成。如今,绝大多数常见软件、专用软件和底层硬件都支持Windows操作系统,构成了Window强大的生态整体。2.开源操作系统:代码免费开放,以Linu_操作系统为代表Linu_kernel(内核)由LinusTorvalds在1991年发布,代码免费公开,由全球开发者共同奉献,已成为影响最广泛的开源软件项目。以Linu_内核为基础,不同的开发团体(开源社区、企业、个人等)对内核代码进行一定的修改和补充,参加GUI(图形界面)、应用等部分,构成了相应的Linu_操作系统发行版。Linu_系统版本之间存在衍生关系,由此构成RedHat、Slackware、Debian等几大家族,各家族内部又衍生出一些著名版本,如Ubuntu、SUSE、CentOS、RedHatEnterpriseLinu_、Fedora等。Linu_kernel是开源项目,由全球范围的开发者(企业、团体、独立开发者)共同奉献源代码。Linu_的官方组织是Linu_基金会,作为非盈利的联盟,协调和推动Linu_系统的发展,以及宣传、保护和规范Linu_。Linu_基金会由开源码发展实验室(OpenSourceDevelopmentLabs,OSDL)与自由标准组织(FreeStandardsGroup,FSG)于2007年联合成立。开源社区是Linu_系统的创新源泉和主要的开发场所。Linu_操作系统发行版分为社区版本和商业版本。社区版本数量较多,其开发和维护的主体是开源社区。少数的商业版本(比方红帽企业版)则是在社区版本的基础上,进一步优化而来。整体来看,无论能否涉及商业活动,开源社区是Linu_发行版的创新来源和主要的开发场所。而成熟的开源社区通常由相应的开源基金会(或者项目委员会)进行管理。开源基金会为开发社区制定了规则,进行资源管理,负责可能的商务对接,以及保护社区的健康运转。社区的开源基金会(委员会)一般由开源奉献方进行赞助和决策支持。很多开源社区背后都有一个主导企业,为社区提供资金和研究支撑,甚至直接委派员工介入开源项目。例如,Fedora社区的核心开发者中1/3是红帽的正式雇员。通过赞助和维护开源社区的方式,企业能够发挥研究气力的“杠杆作用,通过向社区输入自有的研究资源,吸引更多的外部贡献者介入进来,扩大创意来源;另一方面,开源社区版本也成为企业扩大技术影响力的重要途径。Linu_操作系统由4部分组成:kernel、shell、文件系统、应用程序。Kernel(内核)是操作系统的核心,不同于windows的内核,Linu_的内核不仅实现了进程调度、内存管理、中断处理、异常陷阱处理,而且还实现了进程管理、进程通信机制、虚拟内存管理、文件系统驱动和USB、网络、声音等各类设备驱动子系统,决定了整个系统的性能和稳定性。而shell是系统的用户界面,提供用户与内核交互的接口,接收用户输入的命令并送入内核去执行。Linu_操作系统主要的优势领域是服务器和嵌入式。据Linu_基金会统计,全球90%的公有云平台采用了Linu_系统,99%的超算和62%的嵌入式设备也都是基于Linu_。亚马逊AWS、微软Azure、微软Azure、谷歌云平台和阿里云等主流云服务商,都提供了Linu_系统方案。全球公有云平台运行的所有应用,超过54%是运行在Linu_虚拟机上。甚至微软Azure的近30%的虚拟机也是基于Linu_。根据IDC在2017年的统计数据,全球服务器操作系统使用份额(免费+付费)中,68%是Linu_服务器操作系统。Linu_操作系统在服务器领域的普及,主要由于3个方面:1)创新方面,群策群力。全球开发者对Linu_内核保持了持续的更新,提供了充足的创新动力。据GitStats分析结果,截至2018年9月,已有超过19000名开发者为Linu_内核奉献了代码,这些开发者遍布全球范围超过1500个组织/企业。广泛分布的开发者,从不同视角不同方面对Linu_内核的补充,使得Linu_系统得以快速适应服务器领域的变化。2)系统代码能够修改和自定义,用户可调用计算机资源的自由度极高。Linu_操作系统的使用者能够轻松查看系统代码,能够自由修改代码来修补常见的问题,可以以开发本人的程序并添参加Linu_操作系统中。相比Windows等闭源系统,Linu_支持了使用者对于计算机资源极大的使用自由度,支持专业用户去构建和自定义服务器,由此获得了互联网公司、云计算公司的青睐。3)运行效率高,运维成本低。Linu_系统在服务器上面的运行效率较高,相比照较轻量化,除非硬件资源分配出现问题,不易出现系统卡死状况。而且Linu_系统天然地支持虚拟化。因而,在服务器集群上,Linu_系统的运维成本较低。4)安全。Linu_从发展根源上就是针对多用户系统设计的,系统管理员和root用户具有系统管理权限。Linu_面向全球开发者开源,系统文件都是文档,在全球开发者屡次的筛查和更新中,基本排除了“后门植入的可能。实际应用中,普通不成熟的Linu_操作系统确实可能存在安全问题,也是和系统的文档属性有关。例如,用户root权限和sudo指令可在有意或无意间修改Linu_系统文档,可能会对其他用户或整个系统造成不利影响。因而,成熟的Linu_操作系统解决方案,有必要对这类属性进行设计方面的防备,去进行适当的权限屏蔽。而这些安全属性的设计,本质上并不存在难以解决的障碍。电脑操作系统维护10条基础知识!1、经常进行“磁盘清理和磁盘碎片整理当硬盘用久了,无数次的新增、更改和删除程序和文件后,就会造成很多断断续续的扇区,非连续性的文件便会愈来愈多,硬盘磁头便需要花更多时间跳来跳去来读取数据,这就导致硬盘速度减慢。因而,我们应该定期进行“磁盘清理和磁盘碎片整理,将所有非连续性的文件重新编排整洁。处理方法:点开场-程序-附件-系统工具-磁盘清理程序和磁盘碎片整理程序。有可能整理经过很慢,那是你长时间没有清理或者有只读文件,请多执行几次,耐心等待。碎片清理时要退出所有的应用程序。2、移动internet临时文件和临时交换文件internet临时文件和临时交换文件是我们上网时产生的临时文件,是产生磁盘碎片的罪魁祸首,叫它离开系统盘是最好的办法处理方法:在桌面上右键点internete_plorer图标,再点出来的“属性,出属性对话框,在internet临时文件后面点“设置,在出来的设置对话框中点移动文件夹,再选择除系统盘以外的硬盘(如D盘);、开场-设置-控制面板-双击系统,在“性能项上点“设置,在“性能选项上点“高级,在“虚拟内存选项点“更改,选择除系统盘外的硬盘如d,最后确定。关机重启,ok。3、开启wondows_p保留的20%带宽wondows_p默认保留了20%的带宽,我们能够将它开启,充分利用带宽。处理方法:点开场-运行,输入gpedit.msc,打开组策略-计算机配置管理模板网络Qos数据包调度程序,右击窗口右边的“限制可保留带宽选项,单击“属性命令,在弹出的“限制可保留带宽属性对话框中的“设置选项卡中,勾选“已启用单项选择框,将下面的“带宽限制数值调到“0。点确定,ok。4、删除不必要的系统声音系统声音是计算机事件的一组声音方案,实际一点用途没有,还占用一部分系统内存,干掉它是明智的选择。处理方法:右键点通知栏里的小喇叭,点调整音频属性,在属性框中点声音,点方案后面的“删除,再确定,ok。5、定期清理internet预读文件在聊天室碰到好屡次有些朋友忽然打不开我们聊天室的网页了,而其他的网站能够。问题是出现了死连接,实际_P使用一段时间后,预读文件夹里的文件会变得很大,里面会有死链文件,这会减慢系统时间。建议:定期删除。处理方法:在桌面上右键点internete_plorer图标,再点“属性,出属性对话框,在internet临时文件后面点“删除cookies、“删除文件。提醒:删除文件时请选择“删除所有脱机文件。6、关于internete_plorerIE并不是最佳的阅读器,其缺点之一是占用过多的系统资源,第一次开启IE,占用7%左右的资源,以后每开启一个IE窗口,占用4%左右的资源。如今上网,网页本身自动开启的弹出式窗口就多,快速消耗你的内存是很自然的事情,CUP使用率常在100%也不奇怪。7、优化硬盘参数右击“我的电脑,选“属性,选中“硬件下的“设备管理器标签,然后在“磁盘驱动器中找到你的硬盘,查看它的属性,在“磁盘属性标签中选中“启用了写入缓存;在“IDE控制器中分别查看“PrimaryIDEChannel和“SecondaryIDEChannel的属性,在“高级设置中将“设备类型设定为“自动检测,“传输形式设定为“DMA(若可用)。8、让系统自动释放系统资源在Windows中每运行一个程序,系统资源就会减少。即便把程序关闭,在内存中还有一些没用的.DLL文件在运行,这样就使得系统的运行速度下降。能够通过修改注册表,令程序关闭后自动去除没有用的DLL文件,收回系统资源。处理方法:运行regedit打开注册表编辑器,找到并选中HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrenVersione_plorer主键,在右边窗格单击右键,新建一个字符串值,名为AlwaysUnloadDll,然后将AlwaysUnloadDll的键值改为1,退出注册表,重启计算机。9、固定本人的DNS和IP一般_P/2000是自动检测IP和DNS地址的,但我们能够本人设置好,以提高系统效率,前提是你要与服务商联络,获取你的DNS和IP地址。处理方法:点开场-设置-控制面板-双击网络连接,点方框中TCP/IP,点属性,点IP地址,选择“指定IP地址,填入你从服务商那里得到的IP地址和子关掩码;点DNS配置,选择“启用DNS,填入你得到的服务器地址,添加。10、关于ADSL猫的使用注意事项由于猫对电源的要务实际很高,只是我们不太注意,猫的电源应该尽量采用独立的电源线,中间要注意避开大功率的用电设备,防止其他用电设备对它的干扰,采取一定的屏蔽接地措施是明智的。另外注意选择品牌大的猫并注意与服务商提供服务的兼容性,假如ISP的局端设备有了改动,这时我们可能会经常掉线,这时建议下载Firmware版本刷新程序对“大猫刷新,一般能够完全解决。再者使猫保持良好的散热效果,最好将猫的下面垫空。操作系统基础-CPU虚拟化操作系统的三个要素操作系统的定位是计算机资源(CPU,内存,硬盘,各种I/O设备等)的管理者。最早的计算机系统一次只运行一个程序,操作系统是作为库函数的形式存在的,这种形式无法充分的利用计算机资源,对于早期造价动辄数百万美元的计算机来讲,这是宏大的浪费,因而人们引入了当代的操作系统来支持方便的多进程并发执行,允很多个用户同时运行他们的程序。详细来讲,操作系统提供了这么三个要素:虚拟化(Virtualization),主要指的是CPU和内存虚拟化,仿佛每个进程都有本人独占的CPU和内存。并发(Concurrency),主要指的是线程级的并发。持久化(Persistance),主要指的是文件系统。存储器层次构造为什么讲单个程序不能充分利用计算机资源呢?这跟计算机的存储器层次构造有关,计算机中有各种各样的存储器:CPU上的寄存器、一二级缓存,内存、硬盘这些存储器的容量、性能和成本各不一样,一个典型的存储器层次构造如下:越是靠近上层(CPU)存储器的性能越好,但是容量越小,(每字节)存储成本越高;越是远离CPU,存储器的性能越差,但是容量越大,(每字节)存储成本越低。比方,CPU访问一级缓存缓存只需要1个时钟周期,而进行磁盘I/O可能需要上千万个时钟周期。程序在进行I/O操作的时候,CPU实际是空闲的,这时候能够让CPU运行其他程序,提供计算机资源的利用率。另一方面,为了弥补高速CPU到低速I/O设备之间的差距,在存储器之间引入了多层的缓存,比方本地硬盘作为网络的缓存,内存(DRAM)作为硬盘的缓存,SRAM作为内存的缓存。由于局部性原理的存在,这个存储器层次构造通常工作得很好。所谓得局部性原理包含两项:一是时间局部性,程序一旦引用过某个存储器位置,接下来它很可能还会引用这个位置;二是空间局部性,程序一旦引用过某个存储器位置,接下来它很可能还会引用附近的位置。进程操作系统提供了进程这个抽象概念,一个进程就是一个正在运行的程序。根据Steam2020年5月的调查,如今主流的PC配置是64位的4核物理CPU和16G内存1,而目前_86_64的PC上通常会运行几十上百个进程,每个进程拥有256TB的的虚拟内存。正是通过CPU和内存虚拟化,操作系统提供了这种幻象:似乎每一个进程都有一个独占的CPU和一片宏大的独占内存。在深化这些细节以前,我们先来看看计算机上运行一个进程需要维护些什么状态信息:用来存取指令和数据的内存,由于进程会根据地址来读写内存,它们也叫做内存地址空间,当然这里指的虚拟内存地址空间(VirtualMemoryAddressSpace)。进程的堆栈信息也在这个地址空间中。CPU中的通用寄存器,如%ra_CPU中的特殊寄存器,如:程序计数器(ProgramCounter/PC),或叫做指令指针(InstructionPointer/IP)栈指针(stackpointer)及其对应的基址指针(framepointer)I/O相关的信息,比方当前打开的文件,Socket套接字等。操作系统通过分时复用的方式实现了CPU的虚拟化,运行进程A一段时间后,主动或被动地把这个进程的状态信息写入物理内存然后从物理内存中读取另一个进程B的状态信息,进而恢复进程B的运行。进程在其生命周期中,始终处于下面三个状态中的一个:Running:进程正在通过CPU执行指令Ready:进程能够运行,但是操作系统还没有调度它Blocked:进程在等待某个事件发生(比方等待磁盘读取完成),因而还不能运行这是一个理想化的状态,Linu_中进程还有一些别的状态内核中有一个数据构造叫做ProcessControlBlock(PCB),用来记录上面提到的各种信息,每个进程都有一个对应的PCB。CPU虚拟化下面来考虑实现CPU虚拟化要解决的两个核心问题:安全:用户的进程不应该拥有无限制的权限,比方它不应该能访问另一个用户的文件,而权限检查的把关就需要由操作系统来实现。性能:操作系统提供CPU虚拟化这种抽象机制的时候,不应该有太大的性能损失计算机系统采用了一种叫LimitedDirectE_ecution的机制,通过硬件和操作系统的协作解决了这两个问题。在详细实现上,CPU中有一个状态位,表明了当前运行在什么形式下:用户的进程运行在用户形式下,这种形式能做的操作有限,比方它无法发起一个I/O请求,尝试这么做会引发一个异常(e_ception),导致进程被操作系统杀死。与之相对的是,内核代码运行在内核形式下,它能执行所有特权操作,比方发起I/O请求。假如用户进程需要发起特权操作,必须通过操作系统内核来进行,操作系统提供了很多这样的服务入口,这就是系统调用,比方讲打开一个文件用到的open()系统调用。这些系统调用看起来像是一个普通的函数,而内部实现上只是把系统调用的编号,和对应的参数放到栈上某个特定的位置,然后调用trap指令,这个指令会完成下面几个操作:把当前进程的CPU寄存器的值保存到内核栈中把运行形式切换为内核形式跳转到该系统调用的处理函数内核检查参数和权限和合法性,然后执行相应的处理,无论结果怎样,最终调用return-from-trap指令返回用户进程,详细经过如下:从内核栈中复原该进程的CPU寄存器值把运行形式切换为用户形式把程序计数器(PC)设置为进程的下一条指令,进而恢复用户进程的运行。能够看到,用户进程直接运行在CPU上,因而保证了性能,而通过内核形式和用户形式的区分保证了安全,这里主要的损耗在于上下文切换带来的开销。内核调用return-from-trap之前还会检查进程能否有待处理的信号,假如有的话在这里触发信号处理函数。抢占式调度LimitedDirectE_ecution存在一个问题,一个进程可能会长久地占用CPU,导致其他进程无法得到服务,那么这个进程什么时候把控制权还给操作系统,让操作系统调度其他进程呢?很自然地,一个合理的时间点是触发系统调用的时候,操作系统可能会决定先执行另一个进程。但假如是一个无限循环,中间没有任何系统调用呢?一些早期的系统如MacOS采用了合作式的调度方案,长期运行的进程需要周期性地让出CPU,比方在循环体中参加一个yield()之类的系统调用,允许操作系统调度其他进程。这个方案治标不治本,存在这些场景:某些恶意程序希望独占CPU资源,不根据要求来做程序bug导致yield()一直没有运行这种情况下,唯一能打破这种循环的方法只要重启。要解决这个问题,操作系统仍然需要硬件的协助。硬件中有个计时器能够编程为每隔一定的时间(比方每十毫秒)就发起一个时钟中断,它会挂起当前运行的进程,跳转到操作系统预先设置的中断处理函数中。在这里,操作系统能够决定是继续运行这个进程,或是调度别的进程。这就是抢占式调度。异常处理流程序运行的经过中会碰到各种各样的异常情况,在计算机启动的时候,操作系统就需要为各种异常指定对应的处理函数。CPU在执行完一条指令之后,总是会检查能否存在异常,假如有则触发对应的异常处理函数,否则继续执行下一条指令。注意:上文中有两组寄存器的保存/复原操作,第一组是用户态的寄存器,第二组是内核态的寄存器内核处理完系统的调用后,可以以选择不切换进程,直接调用return-from-trap返回进程A进程调度策略上面描绘了进程切换的机制,接下来讨论进程调度的策略,也就是讲每次操作系统要调度一个进程的时候,选择运行哪一个进程。通常来讲,我们有两种类型的工作负载:交互式的进程,这种进程大部分时候都在Blocked的状态等待I/O,不怎么占用CPU,但是需要得到高优先级的处理,比方shell里面用户每输入一个字符,总是希望操作系统尽快响应并把这个字符显示到屏幕上。非交互式的进程,他们大部分时间都在使用CPU执行指令,处于Running的状态,这种进程的诉求是高吞吐量,尽可能减少进程切换带来的开销。下面来看看两种常见的调度策略多级反应队列多级反应队列(Multi-LevelFeedbackQueue)致力于提高系统的整体响应时间。操作系统中维护多个进程队列,从高到底依次为每个队列分配不同的优先级:高优先级的进程分配较短的时间片,保证快速响应;低优先级的进程分配较长的时间片,保证其高吞吐量。详细调度策略如下:假如A的优先级大于B,运行A假如A的优先级等于B,轮流运行A和B然而我们不知道每个进程的工作形式是交互式的还是非交互式,因而先假设他们都是需要快速响应的交互式进程:当进程启动的时候,把它放到最高优先级的队列中当一个进程用完它的时间片之后,降低它的优先级,也就是移到下一个队列中还存在一个问题,假如有大量高优先级任务,那么低优先的任务可能会被饿死,因而:每隔一段时间把所有的进程都移动到最高优先级的队列按比例分享调度与MLFQ相对的,按比例分享调度(ProportionalShareScheduling)的目的是让各个进程公平地获取CPU时间。它最简单的形式叫做彩票调度(lotteryscheduling):假设系统使用100张彩票(编号为0-99),每次随机选择一张来决定运行哪个进程,进程A持有75张(编号为0-74),进程B持有剩余的25张(编号75-99)。任务调度器每次计算出一个0-99之间的随机值,假如落在0-74之间则运行进程A,反之运行进程B,这样保证了两个进程总体获得的CPU时间跟它们持有的票据数量一致(75%:25%)。最后还有个问题,怎么为进程分配票据(或者讲权重),能够跟nice值关联起来。Linu_的进程调度器Linu_当前采用的进程调度器叫做完全公平调度器(CompletelyFairScheduler/CFS),内部采用红黑树,实现了跟按比例分享调度类似的目的。之前采用的进程调度器为O(1),其实现类似前面讲的多级反应队列。电脑操作系统基础知识大全