Windows 操作系统的使用
创新互联建站2013年开创至今,是专业互联网技术服务公司,拥有项目网站设计制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元乳源做网站,已为上家服务,为乳源各地企业和个人服务,联系电话:18982081108
Windows 规定了这个限制条件,目的是为了确保内核对象结构保持状态的一致。下面是关于Windows 操作系统的使用,希望大家认真阅读!
1,进程虚拟地址空间
在windows操作系统中,每个进程都有自己的私有地址空间,因此一个进程的线程只能访问属于这个进程的内存空间,即进程之间是地址隔离的。在windows2000中,进程虚拟地址空间可分为如下四个部分:
1)NULL 区 (0x00000000~0x0000FFFF): 如果进程中的一个线程试图操作这个分区中的数据,CPU就会引发非法访问。他的作用是,调用malloc等内存分配函数时,如果无法找到足够的内存空间,它将返回NULL。而不进行安全性检查。它只是假设地址分配成功,并开始访问内存地址0x00000000(NULL)。由于禁止访问内存的这个分区,因此会发生非法访问现象,并终止这个进程的运行。
2)用户模式分区 ( 0x00010000~0xBFFEFFFF):这个分区中存放进程的私有地址空间。一个进程无法以任何方式访问另外一个进程驻留在这个分区中的数据(相同exe,通过copy-on-write来完成地址隔离)。(在windows中,所有.exe和动态链接库都载入到这一区域。系统同时会把该进程可以访问的所有内存映射文件映射到这一分区)。
2)隔离区 (0xBFFF0000~0xBFFFFFFF):这个分区禁止进入。任何试图访问这个内存分区的操作都是违规的。微软保留这块分区的目的是为了简化操作系统的现实。
3)内核区 (0xC0000000~0xFFFFFFFF):这个分区存放操作系统驻留的代码。线程调度、内存管理、文件系统支持、网络支持和所有设备驱动程序代码都在这个分区加载。这个分区被所有进程共享。
一、在这一节,我们详细讨论一下用户模式分区,用户模式分区从地地址到高地址依次为:
1)代码段,存放函数体的二进制代码。
2)静态数据区(分为以初始化数据段和未初始化数据段)全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放 。
3)堆,一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
......(未映射部分)(这个部分包含各种导入的dll等)
4)栈, 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
二、下面详细介绍exe导入到执行的全过程,以及地址空间的加载。
1)系统找到在调用CreateProcess时指定的exe文件。
2)系统创建一个新进程的内核对象。
3)系统为这个新进程创建一个私有的地址空间。
4)系统保留一个足够大的地址空间区域,用来存放exe文件。这个区域的位置在exe文件中设定。默认情况下,exe文件的基地址是0x0400000. (1.编译器处理每个源代码模块,生成obj文件。2.链接程序将所有obj模块的内容组合在一起,生成一个单独的可执行映射文件即exe,该映射文件包含用于可执行模块的所有二进制代码以及全局/静态数据变量,同时也包含一个导入部分,列出了该可执行模块所需要的所有dll模块的名字,对于每个列出的 dll名,该导入部分指明了那些函数和变量符号是被可执行的二进制代码所引用的)
5)在将exe文件映射到进程的地址空间之后,系统会访问exe 文件中的一个段(这个段列出了一些DLL文件),并列出exe文件代码中调用函数dll文件的部分。然后,系统为每个dll文件调用loadlibrary函数,如果某个dll文件需要调用更多的 dll,那么系统会再次调用loadlibrary函数,来加载这个dll。系统保留一个足够大的地址空间区域,用来存放这个dll文件。默认情况下,微软创建dll文件基地址0x10000000。 windows提供的所有标准系统dll都有不同的基地址,这样,即使加载到单个地址空间,他们之间也不会重叠。(1.编译器处理每个源代码模块,生成一个obj模块。2.链接程序将所有obj模块的内容组合在一起,生成一个单独的dll映像文件,该映像文件包含用于dll的所有二进制代码以及全局/静态数据变量。3.如果链接程序检查到dll的源代码模块至少导出了一个函数或变量,则链接程序同时生成一个单独的lib文件,这个lib文件很小,只是简单地列出了所有被导出的函数和变量的符号名)
6)当把所有的exe文件和dll文件都映射到进程的地址空间之后,系统就会创建一个线程内核对象,并使用该线程以DLL_PROCESS_ATTACH为参数来调用每个DLL的DllMain函数,当所有映射的DLL都对此通知做出相应后,系统将驱使主线程开始执行exe文件的启动代码(winmainCRTStartup 函数),这个函数负责对c/c++运行时库进行初始化和调用函数入口函数(main 或 winmain)。
下面强调一些dll和lib的加载区别:
dll允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息(即将dll附带的lib加载到可执行模块中)。
对于lib文件,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。
三、堆和栈的理论知识
3.1申请方式
stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间
heap: 需要程序员自己申请,并指明大小,在c中malloc函数 ,在C++中用new运算符 。
3.2 申请后系统的响应
栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。
堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,
会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的'空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。
3.3申请大小的限制
栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。
堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。
3.4申请效率的比较:
栈由系统自动分配,速度较快。但程序员是无法控制的。
堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便.
另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是在栈是直接在进程的地址空间中保留一快内存,虽然用起来最不方便。但是速度快,也最灵活。
3.5堆和栈中的存储内容
栈: 在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。
当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。
堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。
3.6 “栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种先进后出的线性结构,栈顶地址总是小于等于栈的基地址。堆是一种链式结构。进程的每个线程都有私有的“栈”,所以每个线程虽然代码一样,但本地变量的数据都是互不干扰。一个堆栈可以通过“基地址”和“栈顶”地址来描述。全局变量和静态变量分配在静态数据区,本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。
四、下面说明一下啊函数的调用堆栈变换,来更好的理解堆栈的原理。(VS2005测试)
压栈的顺序是从高地址向低地址方向。
1)参数以从右到左的次序压入堆栈。
2)压入EBP的值(书上分析这个位置插入一个函数返回指令地址,但分析时没有发现因为间隔只有4个字节)
3)压入局部变量
4)返回值放入EAX寄存器中。因为win32汇编一般用eax返回结果 所以如果最终结果不是在eax里面的话 还要把它放到eax。所以返回值的释放过程在参数之后进行。
;
windows是一种多任务图形操作系统。
windows操作系统是微软公司研发的一套操作系统。windows操作系统具有人机操作性优异,支持的应用软件较多,对硬件支持良好等优点。
它问世于1985年,起初仅仅是MS-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也成为了当前应用最广泛的操作系统。
MicrosoftWindows操作系统是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是MS-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也成为了当前应用最广泛的操作系统。
Windows xp是一套非常成熟的操作系统,使用界面也非常方便,目前来说有大量的人员还在使用,虽然微软已经停止了windows xp的系统更新,已经淘汰了这套成熟的windows系统,但是他依然有着众多的粉丝。
我个人认为目前还在使用windows xp的人员,是一种非常正常的现象,一套系统自己操作容易上手,何必在意别人怎么看呢。
XP可是Windows里活得最长的,长达十多年,近二十年啊!
从各方面讲都是非常不错的,要不是微软主动停更,到现在估计还是用户最多的一版系统。
无奈厂商也不再支持其平台上的驱动和应用的开发,致使其退出了 历史 舞台。
但是只要硬件支持,XP还是照样好用的。
比如法国某些航空公司,系统到现在还是XP。
还有国内某些银行的ATM机,我是亲眼看到它死机卡在了XP的启动画面。
网管小贾 / sysadm.cc
照样用,办公用起来很顺手,什么老机子装不了其它装XP一般都没什么问题,因为官方不支持这系统了。建议用的话装一个360卫士软件,要装带XP护盾的版本
老机器,老设备没办法的事。比如打印机,好好的为什么要换呢?但打印机驱动只支持老的操作系统。等等原因。
我有好几台电脑还是XP系统,没啥问题,问题比WIN10少。
Windows XP是一款非常经典且稳定性很高的操作系统,现在有很多的企业依然还是在选择使用Windows XP操作系统
无法使用更高的windows操作系统并不代表使用XP操作系统的体验是糟糕的。
我想,提问题的人一定是想得到类似于这样的回答:我现在用XP系统,被人家笑话死了,XP系统真的好垃圾,好慢啊,被人家发现了,我恨不得找个缝钻进去。但其实根本不是这样。
1.现在电脑早已经普及进入人的工作生活中,在智能手机的影响下,电脑又在慢慢远离人们的家庭生活,只作为一种工具出现在工作中。所以一般人也不会可以去体验XP是什么感觉。
2.某些老旧设备上边的软件只能用在XP系统环境下使用,这是没办法的,而且这种设备用电脑也就不要考虑什么体验了。
3.作为工作 娱乐 来讲,能安装的工具软件越来越少,特别是工程类的软件,大部分新更新的都已不支持XP系统。玩 游戏 的话,那就更不用提了。
4.其实很多人的家庭电脑已经落到和和电视差不多的地步了,就是个摆设了。偶尔需要的时候用一下,比如给孩子打印一下家庭作业,给父母唱戏机里下载个音乐视频啥的。
人都有一个舒适区,用习惯了Windows XP系统比更高阶的系统也没啥损失,因为熟悉的操作效率更高,要想改变就得付出一定的代价去学习、熟悉更高级的系统,所以更好的体验都是要先打破舒适区,挑战一些未知的东西,除非最后软件都不兼容Windows XP系统,有些人儿才回去被逼升级系统。
也有一部分是软件限制,某些软件开发商就不愿意花成本去兼容更高级的系统,导致一些用户被逼无奈继续使用Windows XP系统。
这里面有两种,1、人适应机器的交互系统,2、机器适应人的需求升级更高的交互系统,当然第2种会更好,是以人为本的,以用户体验为中心的设计与开发。但这两点都要在商业目标前面做一个平衡,赚钱的才是王道,不管是1还是2,都要靠边站。
除了速度慢,还有一些软件不兼容了!其他也没啥,事实上电脑遇到瓶颈,更新速度没有明显变化,offline98和offline2020区别而已,界面变了,实际功效变化不大,当然效率差很远。
禁用Windows XP十大必禁服务让系统运行更快
Windows的很多服务都是双刃剑,用不好就会带来诸多安全隐患。本文介绍了十项服务,建议大家一定要禁用,此外还有十余个建议禁止的,供用户参考。
Windows XP必须禁止的服务
1.NetMeeting Remote Desktop Sharing
允许受权的用户通过NetMeeting在网络上互相访问对方。这项服务对大多数个人用户并没有多大用处,况且服务的开启还会带来安全问题,因为上网时该服务会把用户名以明文形式发送到连接它的客户端,黑客的嗅探程序很容易就能探测到这些账户信息。
2.Universal Plug and Play Device Host
此服务是为通用的即插即用设备提供支持。这项服务存在一个安全漏洞,运行此服务的计算机很容易受到攻击。攻击者只要向某个拥有多台Windows XP系统的网络发送一个虚假的UDP包,就可能会造成这些Windows XP主机对指定的主机进行攻击(DDoS)。
另外如果向该系统1900端口发送一个UDP包,令“Location”域的地址指向另一系统的chargen端口,就有可能使系统陷入一个死循环,消耗掉系统的所有资源(需要安装硬件时需手动开启)。
3.Messenger
俗称信使服务,电脑用户在局域网内可以利用它进行资料交换(传输客户端和服务器之间的Net Send和Alerter服务消息,此服务与Windows Messenger无关。如果服务停止,Alerter消息不会被传输)。
这是一个危险而讨厌的服务,Messenger服务基本上是用在企业的网络管理上,但是垃圾邮件和垃圾广告厂商,也经常利用该服务发布弹出式广告,标题为“信使服务”。而且这项服务有漏洞,MSBlast和Slammer病毒就是用它来进行快速传播的。
4.Terminal Services
允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。如果你不使用Windows XP的远程控制功能,可以禁止它。
5.Remote Registry
使远程用户能修改此计算机上的注册表设置。注册表可以说是系统的核心内容,一般用户都不建议自行更改,更何况要让别人远程修改,所以这项服务是极其危险的。
6.Fast User Switching Compatibility
在多用户下为需要协助的应用程序提供管理。Windows XP允许在一台电脑上进行多用户之间的快速切换,但是这项功能有个漏洞,当你点击“开始→注销→快速切换”,在传统登录方式下重复输入一个用户名进行登录时,系统会认为是暴力破解,而锁定所有非管理员账户。
如果不经常使用,可以禁止该服务。或者在“控制面板→用户账户→更改用户登录或注销方式”中取消“使用快速用户切换”。
7.Telnet
允许远程用户登录到此计算机并运行程序,并支持多种 TCP/IP Telnet客户,包括基于 UNIX 和 Windows 的计算机。又一个危险的服务,如果启动,远程用户就可以登录、访问本地的程序,甚至可以用它来修改你的ADSL Modem等的网络设置。除非你是网络专业人员或电脑不作为服务器使用,否则一定要禁止它。
8.Performance Logs And Alerts
收集本地或远程计算机基于预先配置的日程参数的性能数据,然后将此数据写入日志或触发警报。为了防止被远程计算机搜索数据,坚决禁止它。
9.Remote Desktop Help Session Manager
如果此服务被终止,远程协助将不可用。
10.TCP/IP NetBIOS Helper
NetBIOS在Win 9X下就经常有人用它来进行攻击,对于不需要文件和打印共享的用户,此项也可以禁用。
总结:以上十种服务在一般情况下是用不着的,不排除在特殊应用中用到,所以在使用一些软件出问题时可以启用这些服务试试看是否是禁用服务的关系。
在windows8系统中添加“开始”菜单
现在已经有很多网友已经开始使用windows8系统了,但有系统有很多地方让我们感觉到非常的不适应,其中windows8系统的开始菜单选项没有了!这个是最让人无法接受的!window7 和xp系统都是有开始菜单的!有很多网友就想知道怎么样在window8系统中添加一个开始按钮呢?我们往下看!
如果你喜欢window8界面的简单的话,可以直接在键盘中按组合键“Win +X”屏幕左下角就弹出一个菜单!这个菜单中就会出现一些我们常用的操作!比如运行,控制面板,资源管理器等等,大家可以试试!
windows8系统增加开始按钮的方法:
按组合键“Wind +X”,点击“Windows 资源管理器”,再点击工具栏上的“查看”选项卡,勾选“隐藏项目”,就可以看到隐藏的文件了。接着,右击屏幕下方的任务栏,选择“工具栏”→“新建工具栏”,在弹出窗口中选择开始菜单(%programdata%MicrorosoftWindowsSart Meru),完成后开始按钮就会出现在任务栏右侧,右击任务栏取消“锁定任务栏”就可以随意调整开始按钮的位置。
也许你还会喜欢:触控电脑是什么?触控电脑好不好?
Windows 8系统如何设置账户密码?
1、进入控制面板,点击“用户账户和家庭安全”。
2、点击“用户账户”。
3、点击“在电脑设置中更改我的账户信息”。
4、先点击“用户”,再点击“创建密码”。
5、输入“新密码”、“重新输入密码”(“密码提示”可不填写),点击“下一步”。
6、点击“完成”,创建密码完成。
任务管理器已被系统管理员停用恢复方法
如果你的系统不是家庭版的话,你可以在管理员账户下用组策略来解除限制:点击“开始”→“运行”输入“gpedit.msc”打开组策略编辑器,依次展开:
本地计算机→策略→用户配置→管理模板→系统→Ctrl+Alt+Del 选项,在该列表中打开删除“任务管理器” 的属性,在 删除“任务管理器” 属性中的“设置”选项卡中点选“已禁用”或“未配置”单选项,确定。
如果是家庭版的Windows,因为没有组策略,所以要用注册表来修复,定位到:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPolicies
在该注册表项下建立名为 System 的项(如在Policies分支下已有System项,则无需此步骤)。然后在 System 项下建立名为 DisableTaskMgr 的“字符串值”或者“DWORD值”改为0即可。
如何在双系统中删除XP
笔者经常在一些QQ群里和网站论坛里有人谈论着双系统,在这里我们先不谈双系统的'好坏,但是当你在使用双系统发现效果并不好时,如何删除其中一个系统呢?今天,笔者以如何卸载XP和Vista双系统当中的XP系统为例,介绍一下。
如果是安装的xp和Vista的双系统,想要在完全卸载XP,需要先处理双系统的引导启动菜单,在去掉了双系统共享使用的启动管理器之后,才能正常格式化Windows7所在的分区。具体操作如下:
首先,启动到Vista系统,在电脑光驱中放入Xp的安装光盘(若是下载的ISO镜象文件,可以用虚拟光驱Deamontools读取并加载Xp的光盘镜像到虚拟光驱中。)
其次,按“Win+R”键调出运行窗口输入“cmd”并运行,打开命令行提示符窗口后依次输入: X: cd boot bootsect /nt60 SYS 其中,“X”代表你的光驱盘符。
完成后重新启动,Vista 的启动管理器就消失了。
再次,弹出XP安装光盘,再重启计算机,我们就可以发现双系统的启动菜单XP系统启动项和消失了,直接进入Vista系统,这表明双系统引导启动菜单已经删除完成。
最后,在重启后的Vista系统中,现在可以手动删除XP文件和文件夹了,如程序文件,用户和Windows文件夹。如果没有其它重要文件,直接格式化XP所在的分区。
这样就在Vista下将XP卸载得干干净净了。
系统时间无法修改怎么办
系统时间无法修改的原因:
1、主板电池(cmos)没电。
2、有病毒(此类病毒修改时间的目的是让杀毒软件用不了,或者导致某些软件运行不正常,比如证券炒股软件)。
3、你没有修改时间的权限。
1、如何判断是否cmos电池没电。启动后进入bios,修改时间,保存退出,关掉电脑重启,再进入cmos查看,如果时间是按照修改之后运行的,就说明电池OK。否则就需要更换电池,如果更换了好电池之后还是不行,那可能是主板出问题了。
2、如何判断是病毒。
(由于vista用户,需要关掉uac才能使用本站的校对控件。所以这里开始提到的时间修改,一律用手工设置时间的方法)
有的电脑在windows下时间可以修改,但是修改之后又很快跳到一个错误的时间,这种情况是病毒。
如果时间可以修改,但重新启动之后时间就不对。那么可以在时间修改之后,启动电脑,进入bios看,如果这时候时间就错了,说明是主板电池没电了,如果这时候时间是对的,进入windows之后时间就错了,说明是病毒。
如果时间无法更改,比如本站的对时控件无法发挥作用,则可能是病毒也可能是没有权限。所以需要判断你当前登录的用户有没有修改时间的权限。
3、检查时间修改权限:
先搞清楚你的windows用户名,如果不知道则按下ctrl+alt+del三个键查看。
1.点击开始--运行 输入secpol.msc,点确定。(或者“控制面板→管理工具→本地安全策略”)
2.接着会出现“本地安全策略”的管理对话框,在左边的树形框内点--本地策略--用户权利指派
3.在右边的列表中找到并双击“更改系统时间”,弹出一个窗口。
(如果操作无法完成,说明你没有管理权限,用administrator重新登录)
里面列出了有权限的用户列表,如果发现没有你的用户名,则说明你原先没有权限。
如果已经有你的用户名,说明你有权限,但是如果时间还是无法修改,说明是病毒。
好了,如果是属于没有权限的情况,则增加权限后再修改时间。如果判断是病毒,而当前又无有效杀毒方法,则建议取消所有用户的时间修改权限,然后按照以下的操作!
windows xp:
取消权限:从列表中选择用户,点删除,再点确定
增加权限:点击“添加用户或组”,再点高级,从列表中选择用户,确定选择,再点确定关闭。