操作系统
各类操作系统相关介绍
平凡而伟大(心之所向)
内容分享
展开
-
windows异常机制相关知识
VEH→SEH→UEH以及VCH原创 2021-06-16 17:26:20 · 246 阅读 · 2 评论 -
三种常用的嵌入式操作系统
三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同点及各自的适用范围。1 嵌入式系统与嵌入式操作系统1.1嵌入式系统嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作转载 2021-05-01 16:24:04 · 2829 阅读 · 0 评论 -
详解目前主流的嵌入式操作系统(RTOS)操作系统
满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX,而国产的嵌入式操作系统包括都江堰操作系统(djyos)、Alios Things、Huawei LiteOS、RT-Thread、SylixOS。下面分别介绍这十四种种嵌入式操作系统的特点。1、μClinuxμClinux是一种优秀的嵌入式Linux版本,其全称为mic...原创 2021-05-01 15:54:05 · 22491 阅读 · 0 评论 -
关于大内存(大于4G)支持的问题
问题 Windows中4G大内存支持的问题 解决方案 本文是根据微软相关英文页面翻译后和其它资料整合而来。 http://support.microsoft.com/kb/283037/zh http://support.microsoft.com/kb/283037/en 因为4G以上的物理内存已经超过了现在Intel(32-bit)处理器所能够提供的32bit寻址范围,所以Intel从Pemtium Pro处理器开始提供了这种被称为"PAE"的36位寻址方式;转载 2020-08-19 21:26:22 · 4672 阅读 · 0 评论 -
C++------gcc/g++编译的四个过程
关于gcc与g++简单来说,gcc与g++都是GNU(组织)的一个编译器。需要注意以下几点:gcc与g++都可以编译c代码与c++代码。但是:后缀为.c的,gcc把它当做C程序,而g++当做是C++程序;后缀为.cpp的,两者都会认为是C++程序。 编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接。...转载 2019-11-26 03:22:38 · 452 阅读 · 0 评论 -
Linux平台基于C/C++的静态库和动态库的区别
我们在编写代码的时候经常用到已有的接口,他们是以库的形式提供给我们使用的,而常见形式有两种,一种常以.a为后缀,为静态库;另一种以.so为后缀,为动态库。那么这两种库有什么区别呢?说明:本文主要说明Linux下的情况,windows不涉及。1. 目标文件在解释静态库和动态库之前,需要简单了解一下什么是目标文件。目标文件常常按照特定格式来组织,在linux下,它是ELF格式(Execut...转载 2019-11-23 00:36:47 · 210 阅读 · 0 评论 -
Windows内核原理与实现之并发性基础
多个进程或线程并发执行,其复杂性在于,一旦它们相互之间有依赖关系,则它们的交互过程或计算步骤的顺序将可能存在不确定性,从而使各个进程或线程的正确性难以保证和分析。通常,操作系统会提供一些同步原语供这些进程或线程使用,从而限制它们的计算必须按照特点的约束来进行。另一方面,程序设计语言有可能会提供一些语法要素来保证数据结构的一致性或代码片段的不可重入特性。我们看一个简单的程序。图5.1显示了一个...原创 2019-12-05 00:40:27 · 312 阅读 · 0 评论 -
进程线程及堆栈关系的总结
进程线程及堆栈关系的总结突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个...原创 2019-11-19 23:39:34 · 188 阅读 · 7 评论 -
CPU上下文你真的理解了吗
1. 什么是CPU上下文CPU 寄存器和程序计数器,都是 CPU 在运行任何任务前必须的依赖环境,被叫做CPU上下文。CPU寄存器: CPU 内置的容量小、但速度极快的内存。 程序计数器:存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。2. 什么是CPU上下文切换把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。而这些保存下来的上下文,会存储在系统内核中原创 2020-07-31 11:05:43 · 659 阅读 · 0 评论 -
进程中的线程究竟共享哪些资源,这些你真的了解了吗。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程; 同一个进程中的多个线程之间可以并发执行.进程在执行过程中拥有独立的内存单元,而该进程的多个...原创 2020-07-31 10:55:52 · 2993 阅读 · 1 评论 -
UEFI是什么?与BIOS的区别在哪?
UEFI,全称Unified Extensible Firmware Interface,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口,旨在代替BIOS(基本输入/输出系统)。此标准由UEFI联盟中的140多个技术公司共同创建,其中包括微软公司。UEFI旨在提高软件互操作性和解决BIOS的局限性。 要详细了解UEFI,还得从BIOS讲起。我们都知道,每一台普通的电脑都会有一个BIOS,用于加载电脑最基本的程式码,担负着初始化硬件,检测硬件功能以及引导操作系统原创 2020-06-01 10:29:29 · 7290 阅读 · 0 评论 -
一句话说明白IRQL
Windows操作系统运行的处理器架构中,硬件产生信号发给可编程中断控制器. 中断控制器发送中断请求(IRQ)及相应的优先级给CPU,CPU设置一个掩码(mask)屏蔽低优先级的其他中断请求到挂起状态(pending state),直到CPU释放控制给中断控制器。如果到来的中断有更高优先级,那么当前中断被挂起,CPU处理高优先级的中断。Windows把硬件中断与软件中断都映射到内部的中断表内。这就是中断请求级别IRQL。多核处理器的每个内核有自己单独的IRQL。异步过程调用、用户态线程、内核模式操作都.原创 2020-05-23 15:34:28 · 781 阅读 · 0 评论 -
寄存器(cpu工作原理)
来源:王爽老师的《汇编语言》。1、一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。区别:内部总线实现CPU内部各个器件之间的联系。外部总线实现CPU和主板上其它器件的联系。8086CPU有14个寄存器 它们的名称为: AX、BX、CX、DX、SI、DI、SP、BP、 IP、CS、SS、DS、ES、PSW。8086CPU所有的寄...转载 2019-12-04 02:43:57 · 335 阅读 · 0 评论 -
Windows内核原理与实现之Windows内存管理概述
Windows采用了页式内存管理方案,在Intel x86处理器上,Windows不使用段来管理虚拟内存,但是,Intel x86处理器在访问内存时必须要通过段描述符,这意味着Windows将所有的段描述符都构造成了从基地址0开始,且段的大小设置为0x80000000、0xc0000000或0xffffffff,具体取决于段的用途和系统设置。所以,Windows系统中的代码,包括操作系统本身的代码...原创 2019-12-01 22:26:59 · 467 阅读 · 0 评论 -
Windows内存管理API的体系结构
首先上两张图,分别阐述:1.WindowsAPI与CRT(C运行时)及C++标准库的关系2.Windows内存管理API的体系结构图1:WindowsAPI、CRT及标准C++库之间的关系(转自:http://www.codeproject.com/Articles/22642/What-Every-Computer-Programmer-Should-Know-About-...转载 2019-11-30 22:12:21 · 374 阅读 · 0 评论 -
操作系统的安装与启动基本原理
一、基本概念 1、BIOS的概念 BIOS(Basic Input/Output System,基本输入输出系统)全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,通俗地说,BIOS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决...转载 2019-11-26 23:54:05 · 632 阅读 · 0 评论 -
MSVC:关于编译、链接、装载、库相关的一些概念
1、Run-Time Library(运行时库)Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Tim...转载 2019-11-23 00:42:58 · 646 阅读 · 0 评论 -
如何检查内存泄露问题
简单说明了一下没有工具的情况如何运用VC库中的工具来检查代码的内存泄漏问题。一: 内存泄漏 内存泄漏是编程中常常见到的一个问题,内存泄漏往往会一种奇怪的方式来表现出来,基本上每个程序都表现出不同的方式。 但是一般最后的结果只有两个,一个是程序当掉,一个是系统内存不足。 还有一种就是比较介于中间的结果程序不会当,但是系统的反映时间明显降低,需要定时的Reb...原创 2019-11-21 23:29:47 · 194 阅读 · 0 评论 -
80X86从硬件角度看软件
80X86主要是从硬件角度看软件,侧重指令系统;而Win32是从操作系统角度服务于程序员。完整的说法应该是,基于80X86+Windows系统下的Win32编程。其实二者是相辅相成的。(WIN32可以在别的硬件平台上使用,比如使用WindowsCE的手机)Win32程序虽然没有DOS时代繁琐,但是细节仍然需要80X86指令来实现。8086/8088也属于80X86系列,它们只支持实模式。...原创 2019-11-20 00:57:08 · 154 阅读 · 0 评论 -
操作系统的分段与逻辑地址和转换物理地址
逻辑地址(Logical Address)是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限...原创 2019-11-20 00:29:01 · 3805 阅读 · 0 评论 -
运行时库、标准库和系统api
CRT应该是严格遵守C89或C99的,他应具备与操作系统无关的跨平台特性。任何个人和组织都可以基于ANSI 标准C开发出一套支持上层软件或系统开发的、反复使用、通用的CRT.诚如microsoft的windows开发同样要使用CRT和编译器。只是microsoft把操作系统的一些API加入CRT并公之于众,这样大大利于用户于其操作系统上开发---即可以使用CRT又可以使用上层api,系统有用户...转载 2019-11-19 23:41:58 · 299 阅读 · 0 评论 -
Windows 常见后缀名
Windows 常见后缀名CA Microsoft的代理使用的角色文档acf 系统管理配置acm 音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能aif 声音文件,支持压缩,可以使用WindowsMediaPlayer和QuickTimePlayer播放AIF 音频文件,使用WindowsMediaPlayer播放AIFC 音频文件,使...转载 2019-11-19 23:36:39 · 1298 阅读 · 0 评论 -
Windows内核原理与实现:Windows子系统
用户登录(即使是终端服务)到Windows中时,操作系统为用户建立一个会话,每个子系统会话都有自己的会话空间,属于某一会话的资源将从该会话空间中分配。通常我们运行的图形界面应用程序运行在默认桌面上。交互式窗口站有独立的剪贴板、键盘、鼠标、显示器等,在它们三个桌面中,任一时刻只有一个是激活的,输入输出设备归激活的桌面所有。Windows子系统会话有一个RIT(Raw Input T...原创 2019-11-19 23:32:13 · 1179 阅读 · 0 评论 -
创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢?
创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢?参考了一些资料,写得都挺好的,这里做一些摘抄和整合。【参考1】CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别 =====================================================================...转载 2019-11-19 22:34:28 · 375 阅读 · 0 评论 -
GDT,LDT,GDTR,LDTR 详解,包你理解透彻
一、引入保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成段描述符寄存器: 存储段描述符选择器:存储段描述符的索引段寄存器PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个(即CS,SS,DS,ES,FS,GS)80位的段寄存器。由选择器CS对应表示的段仍为代码段,选择器SS对应表示的段仍为堆栈段。二、详解先说...转载 2019-11-19 22:26:54 · 426 阅读 · 0 评论 -
基于Minifilter框架的文件过滤驱动理解
概述Minifilter即File System Minifilter Drivers,是Windows为了简化第三方开发人员开发文件过滤驱动而提供的一套框架,这个框架依赖于一个称之为Filter Manager(后面简写为FltMgr)的传统文件系统过滤驱动。这套框架应用到内核中的结构如下图所示:FltMgr以传统文件过滤驱动的形式插入到I/O处理队列中去接收不同的...转载 2019-11-19 18:33:05 · 1537 阅读 · 0 评论