
计算机科学基础
文章平均质量分 68
欢迎来到计算机科学基础,这里是你探索编程语言、编译原理、操作系统、处理器与架构设计以及内核驱动等基础知识的起点。无论你是初学者还是希望深入理解底层技术的专业人士,本栏目提供了丰富的资源和学习路径,帮助你建立坚实的理论和技术基础。
平凡而伟大.
内容分享
展开
-
Windows内核原理与实现之 GDI (图形设备接口)
文章摘录自《Windows内核原理与实现》一书。图形用户界面是 Windows 操作系统的重要特色,这也是在 Windows 子系统中提供的。概括而言,Windows 的图形系统有两方面特点:首先,它提供了一套与设备无关的编程接口,即 GDI,这使得应用程序可以适应各种底层显示设备的差异;其次,应用程序与图形设备驱动程序之间的通信足够高效,从而使在频繁输出和刷新图形元素的情况下,Window...原创 2019-12-18 22:35:24 · 3431 阅读 · 2 评论 -
Windows内核原理与实现之 NDIS(网络驱动程序接口规范)
文章摘录自《Windows内核原理与实现》一书。在Windows的网络栈中,网络协议与网络适配器是分离的,协议驱动程序并不针对特定的网络适配器而设计,然而,当协议驱动程序正真运行时,它必须通过一个网络适配器才能发送和接收数据。协议驱动程序通过统一的接口与网络适配器驱动程序进行通信,此接口即为 Microsoft 和 3COM 于 1989 年联手开发的NDIS(Network Driver I...原创 2019-12-15 01:46:40 · 3965 阅读 · 1 评论 -
Windows内核原理与实现之图形设备接口
Windows的图形引擎也是在Windows子系统中提供的,它有两方面特点:首先,它提供了一套与设备无关的编程接口,即GDI,这使得应用程序可以适应各种底层显示设备的差异;其次,应用程序与图形设备驱动之间的通信足够高效,从而即使在频繁输出和刷新图形元素的情况下,Windows也能够为用户提供良好的视觉效果。在技术上,Windows子系统定义了一个稳定的图形体系结构,以便于第三方的图形设备硬件厂...原创 2019-11-25 22:59:27 · 689 阅读 · 0 评论 -
内核回调
相对于各种HOOK的安全性、稳定性问题,我更喜欢使用回调来做各种监视虽然回调函数获取各种信息的时间偏后于先手HOOK获取各种信息的时间,而且不一定可以拦截到什么,但是这更安全。PsSetCreateProcessNotifyRoutine 进程创建回调(它的回调运行的时候,进程应该已经被创建了,但是还没有跑起来,所以这里可以实现拦截进程创建的效果)PsSetCreateThreadNo...原创 2019-11-19 22:04:18 · 617 阅读 · 0 评论 -
Minifilter微过滤框架:框架介绍以及驱动层和应用层的通讯
minifilter是sfilter后微软推出的过滤驱动框架。相比于sfilter,他更容易使用,需要程序员做的编码更简洁。系统为minifilter专门制作了一个过滤管理器,这个管理器本身其实是一个传统过滤驱动,它向minifilter的使用者提供许多接口,让原本复杂的文件过滤驱动变得方便简单。之所以简单是因为传统的过滤驱动把大量的工作放在绑定设备上,而现在这些工作都交给minifilt...原创 2020-03-13 12:19:18 · 1692 阅读 · 0 评论 -
Windows驱动开发如何入门
痛苦一:中文资料太少讲Windows驱动开发的,无论是中文书籍还是网上的中文资料,都很少,手把手从零到精通的更是不用说了。仅有的少量中文资料,有的还比较旧,讲的是DDK、NT式驱动,新手拿着WDK8.1、WDK10面对Win8、Win10系统很难跟着学习,而且现在的WDK,在WDM上又出现了了WDF,而WDF又分KMDF(内核模式驱动)和UMDF(用户模式驱动),对于UMDF(用户模式驱动)中...转载 2019-11-19 19:53:35 · 239 阅读 · 0 评论 -
Windows内核原理与实现之Windows设备驱动程序
文章摘录自《Windows内核原理与实现》一书。设备驱动程序是操纵设备的内核模块,I/O 管理器、即插即用管理器和电源管理器都需要与设备的驱动程序打交道。在Windows I/O 系统中,设备驱动程序不仅为操作系统提供了支持各种 I/O 设备的能力, 也是 Windows 内核本身扩展的基础。Windows 可以动态地加载或卸载设备驱动程序,通过这些驱动程序来调整或扩展内核的功能。 Win...原创 2019-12-10 00:07:42 · 3800 阅读 · 0 评论 -
windows7以上平台NDIS6框架的NDIS协议驱动开发
提到NDIS协议驱动,可能比较陌生,因为毕竟用得挺少的。但是一提到WireShark或ethereal等抓包软件,大家就不再陌生了。这些抓包软件在windows平台大都使用的是winpcap接口库,winpcap应该也不陌生。至少在我大学期间就开始接触到了这个接口库。只是当时对它的实现原理并不熟悉,也就只会简单调用它提供的接口来抓包玩,即便如此,当时也觉得挺神奇的。这么多年过去,随着对操...转载 2020-02-26 10:08:34 · 1862 阅读 · 0 评论 -
Windows内核原理与实现之基于文件的符号链接
本文来自《Windows内核原理与实现》NTFS 文件系统支持硬链接(hard link)和符号链接(symbolic link,也称为交接或 junction)。这里的硬链接是指不同的路径指向同一个文件,注意,硬链接仅支持文件、不支持目录。应用程序可通过 CreateHardLink 函数来创建一个硬链接。符号链接是指将一个目录重定向到另一个本地目录上。在Windows Vista 以前,符...原创 2019-12-21 23:09:50 · 343 阅读 · 0 评论 -
基于Passthru的NDIS开发的个人理解
这几天对NDIS的学习,基本思路是:首先熟悉理论知识→然后下载一个例子进行研究→最后例子自己模仿扩展→最最后尝试自己写一个新的。Passthru是微软NDIS自己写的一个框架驱动,NDIS开发者可以在此框架上进行扩展,做二次开发。NDIS提供一些基本操作函数,Passthru里的函数就是使用的这些基本函数做成的一个网络驱动。基于Passthru的扩展就是自己在此驱动的...转载 2019-11-19 18:43:22 · 287 阅读 · 0 评论 -
学习windows驱动(设备对象设备栈)
IO相关的操作是围绕设备对象进行的。设备对象分下几类:1、功能设备对象(FDO): 功能驱动为设备创建一个FDO,在设备栈里它位于物理设备(PDO)的上层。2、物理设备对象(PDO): 总线驱动创建PDO,逻辑上代表物理设备本身,功能设备对象(FDO)代表系统对这个PDO做的处理。FDO为什么会被总线驱动创建?是因为FDO代表的物理设备连接到此总线设备上,总线驱动起了承担总线设备的功能驱...转载 2019-11-19 19:39:34 · 2275 阅读 · 0 评论 -
Windows内核原理与实现之系统线程和系统进程
在Windows中,每个线程代表一个指令执行序列,同时也是一个调度单元;进程定义了一个执行环境,由自己独立的地址空间。每个线程都必定依附于一个进程。Windows内核除了接受来自应用程序的系统服务调用,它自己也有一些线程用户各种用途。这些线程运行在一个特殊的进程环境中,称为System进程。为区分该进程与本节下文即将介绍的操作系统关键进程,本书将前者称为System进程,而将后者称为系统进程。Sy...原创 2019-11-25 23:37:52 · 295 阅读 · 0 评论 -
驱动程序如何将IRP传递到驱动栈?
当一个驱动分发例程收到一个IRP时,它必须调用以确保其所拥有的IO栈位置和参数是否有效。如果驱动程序自己不能满足或者完成请求,它将执行以下操作:(1) 传递IRP到低层次驱动进行进一步处理(2) 创建一个或者多个IRP,并传递它们到低层次驱动一个高层次驱动以以下方式传递IRP到下一个低层次驱动:(1) 如果驱动要传递IRP到下一个低层次驱动,分...原创 2019-11-19 20:13:48 · 265 阅读 · 0 评论 -
寄存器寻址方式
微机系统有七种基本的寻址方式:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。其中,后五种寻址方式是确定内存单元有效地址的五种不同的计算方法,用它们可方便地实现对数组元素的访问。立即数寻址方式: MOV AH, 80H 寄存器寻址方式: MOV AX, BX 直接寻址方式: MOV BX...原创 2019-11-19 22:29:13 · 2180 阅读 · 0 评论 -
Windows内核原理与实现之Windows I/O系统结构
Windows的I/O系统由5个部分组成:I/O管理器、即插即用管理器、电源管理器、WMI例程,以及设备驱动程序。图6.4显示了Windows操作系统中的I/O系统结构。其中I/O管理器是整个I/O系统的核心,它定义了一个非常通用的框架,允许各种功能的设备驱动程序容纳于其中。WRK包含有I/O管理器的绝大部分代码,位于base\ntos\io\iomgr目录下。I/O管理器除了支持与设备相...原创 2019-12-08 00:40:34 · 943 阅读 · 0 评论 -
Windows内核中的关键组件
Windows操作系统虽然算不上真正意义上的微内核结构,但是它的内核部分有良好的设计以及清晰的模块结构HAL(硬件抽象层)HAL的设计目的是将硬件的差别隐藏起来,从而为操作系统的上层提供一个抽象的,一致的硬件资源模型,以使Windows更容易被移植到不同的硬件平台上。理想的情形是,只要硬件厂商能够提供一个HAL,Windows就能够在相应的硬件平台上运行。因此,HAL使得上层的模块无须考虑...原创 2019-11-24 01:45:11 · 490 阅读 · 2 评论 -
NDIS驱动类型
Windows NT支持三种类型的驱动:网络接口卡驱动(NIC)NIC驱动管理网络接口卡(NIC)。NIC驱动接口在下边界直接控制硬件(NIC),在上边界提供上层驱动访问的接口:发送和接收包重置NIC(Reset)停止NIC查询NIC设置NIC操作特性NIC驱动的两种类型微端口驱动:微端口驱动应用于管理NIC硬件特殊操作,包括在NIC上发送和接收数据。微端口驱动...原创 2020-02-26 10:13:40 · 1148 阅读 · 0 评论 -
Windows内核原理与实现之内核加载
在Intel x86系统上,Windows操作系统获得控制首先从硬盘的主引导记录(MBR)开始,Windows Setup程序在安装Windows时填充MBR(其他的磁盘管理器也可能填充MBR)。MBR包含代码和数据,其代码称为引导代码,在系统引导时首先获得控制;MBR中的数据时一张分区表,制定了每个分区在磁盘上的位置和大小,以及分区的类型。当MBR中的引导代码被执行时,它检查分区表中的每一个分区...原创 2019-11-28 22:52:42 · 844 阅读 · 0 评论 -
Windows内核原理与实现之驱动对象和设备对象
当 I/O 管理器加载一个设备驱动程序时,它会创建一个驱动程序对象,该对象在对象管理器目录中的路径为:\Driver\<DriverName>或\FileSystem\<DriverName>。如果是文件系统类型的驱动程序,则该对象被放置在 "\FileSystem"目录下,否则放在"\Driver"目录下。因此,驱动程序可粗略地分为文件系统驱动程序和非文件系统驱动程序。...原创 2019-12-09 01:48:56 · 956 阅读 · 0 评论 -
Windows用户态和内核态原理讲解
对于Windows操作系统的编程一般来说已经涉及到了较深的领域,针对该问题提出几家之言,均为转载:一、为了防止用户程序访问并篡改操作系统的关键部分,Windows使用了2种处理器存取模式(事实上Windows运行的处理器可以支持4种模式):用户模式和内核模式。用户程序运行在用户模式而操作系统代码(如系统服务和设备驱动程序)则运行在内核模式。在内核模式下程序可以访问所有的内存和硬件,并使用所...转载 2019-11-20 00:27:07 · 3504 阅读 · 0 评论 -
Windows系统总述-Windows基本结构
文章内容来自Windows内核原理与实现现代操作系统的基本结构操作系统本身属于软件的范畴,但是它需要紧密地跟硬件打交道,它为上层应用软件或应用系统提供了一层抽象,专门负责硬件资源的管理和分配。应用软件不需要直接跟硬件打交道,它们利用操作系统提供的功能来实现各种应用任务,如果它们要访问硬件,则必须通过操作系统提供的抽象接口来完成。在系统服务层之上,应用软件通过一层接口来调用系统提供的服务,而...原创 2019-11-24 00:56:47 · 2665 阅读 · 0 评论 -
Windows内核原理-同步IO与异步IO
背景在前段时间检查异常连接导致的内存泄漏排查的过程中,主要涉及到了windows异步I/O相关的知识,看了许多包括重叠I/O、完成端口、IRP、设备驱动程序等Windows下I/O相关的知识,虽然学习到了很多东西,但是仍然需要自顶而下的将所有知识进行梳理。目的本片文章主要讲解同步I/O与异步I/O相关知识,希望通过编写本篇文章为起点,对windows内核原理知识进行学习与梳理。发现并弥...转载 2019-11-23 23:45:09 · 195 阅读 · 0 评论 -
Windows内核原理与实现之Windows研究内核(WRK)
Windows并非一个开放源码的操作系统,但正如上一章所提,Microsoft开放了一份以Windows XP x64和Windows Server 2003 SP1为基础的内核源代码,它可以编译和运行,作为教育科研机构的教学实践和研究的平台使用,称为WRK(Windows Research Kernel,Windows研究内核)。WRK重要目标是辅助教学,让计算机专业的学生能够通过Windo...原创 2019-11-26 23:39:54 · 1910 阅读 · 0 评论 -
windows过滤驱动程序设计入门(驱动程序基本结构,设备栈,IRP栈和工作原理)
最近在学习windows驱动设计,认真看了些教材后总结了我认为驱动中都会涉及到,也最重要的概念,和大家分享。如果有说的不对的请大家留言指出。谢谢!这里主要是写概念,代码涉及的不多也不详细,但是我会说出涉及到的API,详细的使用细节大家可以自己动手搜搜。掌握下面的概念之后,看驱动开发的教材里的代码,或者理解教材里说的内容应该就顺利很多!过滤驱动程序概括:对于windows驱动程序...转载 2019-11-19 20:15:16 · 555 阅读 · 0 评论 -
Windows内核原理与实现之TDI(传输驱动程序接口)
文章摘录自《Windows内核原理与实现》一书。我们植到,Winsock以网络协议为基础来访问网络,比如TCP/IP和IPX/SPX等,其相应的内核驱动程序为afd.sys。那么,像 afd.sys这样的网络 API 驱动程序在接收到针对特定协议的网络请求时,如何将请求转交给相应的协议驱动程序呢?它如何适应不同网络协议的实现差异呢? Windows 在网络 API驱动程序与协议驱动程序之间规定...原创 2019-12-11 23:48:58 · 3622 阅读 · 0 评论 -
Windows内核原理与实现之Windows I/O软件技术
从操作系统角度而言,I/O软件的模型应该是设备无关的,因而,系统可以支持各种设备,甚至是未来出现的设备。针对I/O设备的软件模型必须有足够的通用性,至少能够将上节介绍的各种I/O硬件特性涵盖到模型之中。另外,操作系统必须提供有效的管理手段,从而让设备的软件组件融入到系统的I/O处理框架中,这样,这些软件可以专注于针对特定设备的功能需求,而不必过多地考虑与系统打交道或者与系统中其他模块的协作。例如,...原创 2019-12-06 21:19:37 · 322 阅读 · 0 评论 -
windows io系统
驱动程序,设备对象,文件对象一个驱动程序对应多个设备对象设备对象的实例,就是文件对象windows内核分为三层,执行体层,内核层,硬件抽象层...原创 2019-11-19 23:33:45 · 261 阅读 · 0 评论 -
Windows驱动开发之DDK与WDK、WDM的区别
1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我们需要一个DDK/WDK。2.DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别: 这个要说说驱动相关的一些...转载 2019-12-15 22:12:30 · 4692 阅读 · 2 评论 -
架构设计——架构知识体系
架构设计——架构知识体系1、什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。我们主要针对互联网服server系统(类似网站)来定义架构:架构是系统的骨架,支撑和链接各个部分,包括组件、连接件、约束规范,以及指导这些内容设计与演化的原理。组件:类似应用服务,独立模块、数据库、nginx等等、连...转载 2019-12-02 01:26:31 · 515 阅读 · 0 评论 -
怎样在vue,angular,react快速选择一个合适的框架(适合新手)
首先,我们先了解什么是MVX框架模式?MVX框架模式:MVC+MVP+MVVM1.MVC:Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分开。View通过Controller来和Model联系,Controller是View和Model的协调者,View和Model不直接联系,基本联系都是单向的。用户User通过控制器Con...转载 2019-11-21 02:01:40 · 791 阅读 · 0 评论 -
高性能Web架构设计方案
大型Web网站的特点如下:大型Web网站的技术挑战主要来自于大量的用户,高并发的访问和海量的数据存储,任何简单的业务一旦需要处理TB级别的数据和面对数以亿计的用户,问题就会变得很棘手。那么如何打造一个高可用、高性能、易扩展、可伸缩且安全的网站?首先要从架构方面入手,以高性能架构为基础,辅以优化后的前端应用(如减少Http请求,终端缓存等等)和后台程序(如Jvm优化,操作系统优化等等)即可以...转载 2019-11-23 04:04:54 · 812 阅读 · 0 评论 -
管理分布式session的四种方式
应用服务器的高可用架构设计最为理想的是服务无状态,但实际上业务总会有状态的,以session记录用户信息的例子来讲,未登入时,服务器没有记入用户信息的session访问网站都是以游客方式访问的,账号密码登入网站后服务器必须要记录你的用户信息记住你是登入后的状态,以该状态分配给你更多的权限。那么管理session有哪些方法呢?1.session复制 图1 session复制是早期企业应用系统使用比较多的一种服务器集群Session管理机制。应用服务器开启Web容器的的Session原创 2021-07-01 12:16:34 · 678 阅读 · 0 评论 -
大数据应用及其解决方案(完整版)
目录1、大数据概述1.1. 概述1.2. 大数据定义1.3. 大数据技术发展2、大数据应用2.1. 大数据应用阐述2.2. 大数据应用架构2.3. 大数据行业应用2.3.1. 医疗行业2.3.2. 能源行业2.3.3. 通信行业2.3.4. 零售业3、大数据解决方案3.1. 大数据技术组成3.1.1. 分析技术3.1.2. 存储数据库...转载 2019-11-23 01:51:45 · 2577 阅读 · 0 评论 -
解读云计算的8项核心技术
云计算的“横空出世”让很多人将其视为一项全新的技术,但事实上它的雏形已出现多年,只是最近几年才开始取得相对较快的发展。确切地说,云计算是大规模分布式计算技术及其配套商业模式演进的产物,它的发展主要有赖于虚拟化、分布式数据存储、数据管理、编程模式、信息安全等各项技术、产品的共同发展。近些年来,托管、后向收费、按需交付等商业模式的演进也加速了云计算市场的转折。云计算不仅改变了信息提供的方式,也颠覆了传统ICT系统的交付模式。与其说云计算是技术的创新,不如说云计算是思维和商业模式的转变。下面详细谈一谈云计算的转载 2020-06-02 10:05:14 · 2506 阅读 · 0 评论 -
arm架构与体系结构
1.cpu与soc内核版本号与soc版本号由arm公司确定。芯片型号由各半导体公司确定。soc包括cpu与一些基本内设。(一般提到CPU都指的是soc,实际上cpu只是soc的一部分)。RISC与CISCRISC复杂指令集:指令繁多,但是效率高。Intel等桌面pc使用这种指令集。功耗大。CISC精简指令集: 指令少,但是效率略低。优点是功耗低适合嵌入式...转载 2019-11-22 02:21:34 · 191 阅读 · 1 评论 -
计算机主板南桥与北桥核心架构概论
在计算机主板的设计中,“南北桥”架构曾是非常重要的组成部分,它负责管理和协调各类硬件设备之间的通信与协作。随着技术的进步,南北桥架构逐渐被更先进的集成方案所取代,但了解其工作原理对于理解计算机硬件发展历史仍然非常有意义。本文将介绍南北桥的定义、工作原理及其在计算机系统中的重要性。原创 2025-02-26 08:34:15 · 1086 阅读 · 0 评论 -
大话高并发架构
前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。服务器架构...转载 2019-11-21 21:14:22 · 126 阅读 · 0 评论 -
集群、分布式、微服务概念和区别
概念:集群是个物理形态,分布式是个工作方式。1.分布式:一个业务分拆多个子业务,部署在不同的服务器上2.集群:同一个业务,部署在多个服务器上分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。举例:就比如新浪网,访问的人多了,他可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一...转载 2019-12-02 01:36:30 · 448 阅读 · 0 评论 -
MySQL架构设计谈:从开发规范、选型、拆分到减压(转)
作者介绍李辉,原新浪爱彩票运维负责人,常用网名:门牙没了。曾主导新浪爱彩票的MySQL运维工作。培训合伙人、资深讲师,中国科学院大学在读研究生(大数据方向),擅长大型项目的关系型数据库运维和管理,现在在数据库运维自动化方向研究。随着MySQL自身的发展与不断完善,不知不觉中整个互联网行业已离不开这个完善又小巧的关系型数据库,整个生态链也已经变得非常成熟,即便是初创企业和传统企业也可以...转载 2019-11-27 21:54:11 · 204 阅读 · 0 评论 -
大数据主流技术框架及概述
大数据技术框架1. 简介大数据技术体系主要涉及方面:数据采集,数据处理,数据存储以及分布式协调服务;数据采集:etl,kettle,flume数据处理:离线处理hadoop,实时处理spark、storm、flink数据存储:HBASE、hdfs。数据仓库;hive分布式协调服务:zookeeper2.概述ETL:ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能).原创 2020-05-27 11:30:39 · 6110 阅读 · 1 评论