【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

早几年,有一份差不多200m大小的文件在网上疯传,这份文件不是别的,正是windows的kernel代码。今天闲来无聊,看了一下潘爱民编写的《windows 内核代码与实现》。书中描述了windows kernel的一些基本结构、逻辑等等。虽然文字的内容很多,也很详尽,但是感觉上还是没有看代码来的实在,所以想看看网上有没有相关的内容。没想到,还真的被我找到了,这是一份wrk的代码,只能运行在windows server2003上面。大部分内容被阉割了,很多东西被库文件代替了,但是还是可以从中看出一些端倪的。

(1) wrk,即windows research kernel,本来是给教学用的,但是申请起来蛮麻烦的,这一次也是无意中从网上下载到的。

(2) 执行环境包括amd64和i386,本身也包含了编译环境。

(3) 只能在windows server上使用,恐怕微软也担心要是能在xp上用会造成不好的结果。

(4) 看了wrk代码之后,说明之前在网上疯传的代码是真的kernel代码。

(5) windows的kernel代码在注释方面做的相当好,即使函数冗长,也非常有条理的。

(6) 代码阉割了很多内容,比如gui、net、fs部分就完全没有。

(7) 代码在命名、书写、空格方面十分一致,水平很高,逻辑很清晰。

(8) 从完整性上考虑,学习wrk意义不大,大家完全可以从一个rtos入手学习os的调度、互斥、同步、时钟、内存、上下文切换等内容。

(9) 大家都记得某一年发布会windows蓝屏的情形,这说明任何代码的完善都是需要时间的,同时任何代码都不是完美的,windows也不例外。

关于windows kernel详细部分的内容,大家完全可以一边看潘爱民先生的书、一边看wrk。但是实验起来比较麻烦,掌握基本原理就好。如果能因此写几个demo,那么基本上也达到了学习的目的了。

随想录(学习wrk的代码)相关推荐

  1. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...

    原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...

  2. Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径、相对路径

    Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径.相对路径 目录 两行代码输出根目录下所有子文件夹的绝对路径.相对路径 两行代码输出根目录下所有子文件夹的绝对路径.相对路径 #Py ...

  3. 循环神经网络matlab程序设计,神经网络及深度学习(包含matlab代码).pdf

    神经网络及深度学习(包含matlab代码) 神经网络及深度学习 (包含 MATLAB 仿真) 人工神经网络(Artificial Neural Network,即 ANN ), 作为对人脑最简单的一种 ...

  4. java学习教程之代码块

    学编程吧java学习教程之代码块发布了,欢迎通过xuebiancheng8.com来访问 java中的代码块包括下面几种: 1.普通代码块 2.构造代码块 3.静态代码块 1.普通代码块很简单看下面这 ...

  5. NGenerics算法库是学习的好代码

    NGenerics算法库是学习的好代码 地址为: http://www.codeplex.com/NGenerics posted on 2007-04-29 22:48 黄尚 阅读(...) 评论( ...

  6. 从零开始编写深度学习库(四)Eigen::Tensor学习使用及代码重构

    从零开始编写深度学习库(四)Eigen::Tensor学习使用及代码重构 博客:http://blog.csdn.net/hjimce 微博:黄锦池-hjimce   qq:1393852684 一. ...

  7. 【HSI】高光谱的数据集分类深度学习实战及代码理解

    [HSI]高光谱的数据集分类深度学习实战及代码理解 文章目录 [HSI]高光谱的数据集分类深度学习实战及代码理解 一.配置文件编写 二.高光谱图像的处理 2.1图像数据变换 2.2 数据整合 2.3 ...

  8. [源码、文档、分享] iOS/iPhone学习系列、代码教程(转)

    iOS/iPhone学习系列.代码教程----~~~持续更新中~~~ http://www.devdiv.com/iOS_iPhone-iOS_iPhone%E5%AD%A6%E4%B9%A0%E7% ...

  9. 深度学习怎么跑代码?

    深度学习怎么跑代码?从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大的计算量,以至于CPU算不过来,需要通过GPU帮忙,今天怎么教大家免费使用GPU跑深度学习代码. 深度学 ...

最新文章

  1. MVC进阶学习--HtmlHelper控件解析(一)
  2. 使用SpringMVC创建支持向下兼容的版本化的API接口
  3. java当前月份减一个月_在java编程中怎样用%表示当前月份的上一个月和下一个月...
  4. c++vector初始化的几种方法
  5. 搞硬件,钱少破事多,只能另谋出路!
  6. 开机cpu风扇声音大_联想拯救者R720笔记本,开机显示暗屏,二修机多故障完美修复...
  7. 【BZOJ1568】【Tyvj3490】Blue Mary开公司 李超线段树
  8. 详解机器学习之感知机理论与实践
  9. 2种方式(线程间通信/互斥锁)实现两个线程,一个线程打印1-52,另一个线程打印字母A-Z,打印顺序为12A34B56C......5152Z...
  10. js将数值格式化成金额形式
  11. FAQ系列 | 用MySQL实现发号器
  12. 163editor 网页编辑器 获值
  13. 信捷XD/XC系列PLC 控制台达B2系列伺服电机程序,手动 自动,循环,循环次数设定
  14. 3D目标检测方案总结
  15. android前置拍照镜像代码,在Android中镜像前置摄像头
  16. VVIC搜款网平台API接口
  17. MySQL自增列之起始与步长
  18. Tomcat8安装后tomcat8w.exe点击出现“指定的服务未安装”解决方案
  19. python五子棋ai棋力最高_Python实现AI五子棋
  20. android sqlite fts4,SQLite FTS3/FTS4与一些使用心得

热门文章

  1. 12月4日云栖精选夜读:乌镇AI论坛最全盘点:中国互联网半壁江山坐在了一起,他们怎么看AI...
  2. c# dev treelist 总结
  3. (转)Linux SLUB 分配器详解
  4. Oracle 1204 RAC failover 测试 (六)
  5. 解题:洛谷3402 可持久化并查集
  6. Python学习-初始列表
  7. servelt笔记一
  8. jquery $.fn $.fx原理
  9. oracle 数据结构
  10. CString 是一种很有用的数据类型