首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows 10是什么语言?微软工程师带你“偷窥”源码

其实 Axel 这个博客是在回答一个问题:“Windows 10 是由什么语言写就?”...他介绍,ntoskrnl.exe 内核大部分是使用 C 编写,在内核模式下运行大多数内容也是 C 编定,包括文件系统、网络与驱动程序等。...此外,.NET BCL 与一些相关库和框架通常都是 C# 编写,“但它们也只不过是带有几座 C++ 小岛 C 汪洋大海一栗”,它们自不同部门,代码并不属于 Windows 源码树。...作者惊呼:Windows 源码规模巨大,这是一个真正史诗般巨型项目。 ?...源码规模有多恐怖呢?作者估计完全查看这些源码文件名,并试图理解源码具体是用来干什么,需要花上一生时间。

5.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言这么厉害,它自身又是什么语言

    这是来自我星球一个提问:“C语言本身什么语言?” 换个角度来问,其实是:C语言在运行之前,得编译才行,那C语言编译器从哪里来? 什么语言来写?...汇编语言问题解决了,就往前迈进了一大步,这时候就可以用汇编语言C语言编译器,我们说这是C编译器老祖宗。 有了这个老祖宗,就可以编译任意C语言程序了,那是不是可以C语言本身一个编译器?...OK, 这么一层层上来,终于得到了一个C语言编译器, 真是够麻烦。 到这个时候,之前那个汇编写C语言编译器就可以抛弃了。...后来Thompson 本人解开了秘密,是第一个C 语言编译器有问题, 这个编译器在编译Unix源码时候,当然会植入后门, 这还不够,更牛是,如果你C 语言写了一个新编译器,肯定也需要编译成二进制代码啊...,什么来编译,只有用Thompson那第一个编译器来编译,好了, 你这个编译器就会被污染了,你编译器再去编译Unix , 也会植入后门 :-) 说到这里我就想起了几年前XcodeGhost

    2.1K20

    C语言这么厉害,它自身又是什么语言

    “C语言本身什么语言?” 换个角度来问,其实是:C语言在运行之前,得编译才行,那C语言编译器从哪里来? 什么语言来写?如果是C语言本身来写,到底是先有蛋还是先有鸡?...汇编语言问题解决了,就往前迈进了一大步,这时候就可以用汇编语言C语言编译器,我们说这是C编译器老祖宗。 有了这个老祖宗,就可以编译任意C语言程序了,那是不是可以C语言本身一个编译器?...OK, 这么一层层上来,终于得到了一个C语言编译器, 真是够麻烦。 到这个时候,之前那个汇编写C语言编译器就可以抛弃了。...后来Thompson 本人解开了秘密,是第一个C 语言编译器有问题, 这个编译器在编译Unix源码时候,当然会植入后门, 这还不够,更牛是,如果你C 语言写了一个新编译器,肯定也需要编译成二进制代码啊...,什么来编译,只有用Thompson那第一个编译器来编译,好了, 你这个编译器就会被污染了,你编译器再去编译Unix , 也会植入后门 :-) 说到这里我就想起了几年前XcodeGhost

    2K30

    C语言PHP扩展

    C语言PHP扩展 1:预定义 在home目录,也可以其他任意目录,一个文件,例如caleng_module.def 内容是你希望定义函数名以及参数: int a(int x,int y)...string b(string str,int n) 2:到php源码目录ext目录 #cd /usr/local/php-5.4.0/ext/ 执行命令,生成对应扩展目录 #....6:到php对应extensions目录 如上图所示 #cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ 改目录下有生成...================================= 下面是原文 Linux下C开发PHP扩展 一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13...一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13 #> cd /software/php-5.2.13/ext 二、假设我们要开发一个名为caleng_module扩展

    3.6K20

    管理hexo博客内容源码(md)

    在github上hexo博客朋友会用碰到这样问题:部署好博客(hexo deploy)后,发现在github上看到是生成好静态站(html,css,js),但不包括博客内容源码(md)。...我解决方案是:新建了一个github项目,专门来放博客内容源码,记做方案1。...但这样比较烦是,要进行新建或修改文章时: 更新博客源码项目,然后将源码拷贝到博客项目 在博客项目中,新建或修改文章,并部署 将博客项目中博客源码拷贝到博客源码项目 提交博客源码项目 看着都麻烦那~...下面描述下Grunt来实现方案2第三步: 删除上一次发布博客生成临时文件夹。grunt-contrib-clean可以实现这个功能。...当然,方案2第一步,也可以Grunt来自动化搞定。 大家有更好 “管理hexo博客内容源码方法吗?请告诉我XD

    65610

    什么程序员应该博客?什么博客系统?在哪?

    作者 | 程序员小吴 来源 | 五分钟学算法 博客好处很多很多,如果你不知道的话记住 博客可以装逼 就行。...可以博客平台也很多,这篇文章谈谈我个人对这些平台看法,希望小伙伴们能在自己喜欢平台记录自己技术成长过程。...CSDN 优点 SEO做得好,无论是百度还是google(尤其是百度)在搜索问题时候排名靠前 阅读量高,从头开始也不怕没人看,有排名,对于追求阅读量作者会更有动力 博客内容基本限定在计算机领域上...免费,省钱是硬道理 不用担心搞坏,大不了删库再重新搭建一下,没什么损失 缺点 SEO 很差,Github 还限制了百度索引,所以我之前噗嗤噗嗤写了大半年,一点流量都没有 博客相对麻烦,先要使用 markdown...总结 每个平台都有自己优缺点,读者们可以结合自己实际情况进行挑选,但最关键是你需要 ! 文章才是博客最核心内容 。

    1.7K40

    MySQLMVCC是什么,有什么

    MySQLMVCC是什么,有什么? 一、介绍 面试被问到了MVCC,我不知道啊,一脸懵逼!...二、概念 1)隔离级别 指的是一种提高并发技术。最早数据库系统,只有读读之间可以并发,读写,读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行。...在MySQL中,这样大幅度提高了InnoDB并发度。在内部实现中,InnoDB通过undo log保存每条数据多个版本,并且能够找回数据历史版本提供给用户读,每个事务读到数据版本可能是不一样。...undo log,那么这个undo log是什么呢?...快照读配合当前读会影响,读取结果,我们看下面的undo log和readView 我们要确定版本时,就是拿着快照读去匹配版本链上每一个undo log,从最后往前进行判断 使用这些判断条件,MySQL

    29132

    操作系统内核都是C语言

    1.从语言特点来说 ①C语言有出色可移植性,能在多种不同体系结构软/硬平台上运行。...②简洁紧凑,使用灵活语法机制,并能直接访问硬件能够直接访问硬件语言有:汇编和 C语言 汇编属于低级语言,难以完成一些复杂功能,但是汇编比C语言访问硬件效率更高。...所以,一般将硬件初始化工作交给汇编,比较复杂操作交给C语言。 ③C语言具有很高运行效率。 2.嵌入式开发中地位——开发工具 3.高级语言低级语言:面向过程VS面向对象 ?...可以说面向过程是一种基础方法,它考虑是实际地实现。一般面向过程是从上往下步步求精,所以面向过程最重要是模块化思想方法。 面向对象: 面向对象分析根据抽象关键问题域来分解系统。...最后,C语言也有他自身缺陷,比如代码复用性差,代码维护性差,扩展性(新增代码时不改变原来代码)很差。

    1.6K3129

    操作系统内核都是C语言

    1.从语言特点来说 ①C语言有出色可移植性,能在多种不同体系结构软/硬平台上运行。...②简洁紧凑,使用灵活语法机制,并能直接访问硬件能够直接访问硬件语言有:汇编和 C语言 汇编属于低级语言,难以完成一些复杂功能,但是汇编比C语言访问硬件效率更高。...所以,一般将硬件初始化工作交给汇编,比较复杂操作交给C语言。 ③C语言具有很高运行效率。...2.嵌入式开发中地位——开发工具 3.高级语言低级语言:面向过程VS面向对象 面向过程: “面向过程”(Procedure Oriented)是一种以过程为中心编程思想。...最后,C语言也有他自身缺陷,比如代码复用性差,代码维护性差,扩展性(新增代码时不改变原来代码)很差。

    1.4K2219

    MySQLMVCC是什么,有什么

    MySQLMVCC是什么,有什么?一、介绍面试被问到了MVCC,我不知道啊,一脸懵逼!...最早数据库系统,只有读读之间可以并发,读写,读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行。在MySQL中,这样大幅度提高了InnoDB并发度。...,那么这个undo log是什么呢?...快照读配合当前读会影响,读取结果,我们看下面的undo log和readView我们要确定版本时,就是拿着快照读去匹配版本链上每一个undo log,从最后往前进行判断使用这些判断条件,MySQL就能确定要读取版本了判断...但同一个事务中,如果是因为自己修改了数据,从而导致两次查询结果不一致情况,这是正常现象,不叫不可重复读 这也正是,为什么发生当前读后,快照读要重新进行生成原因。

    8010

    MySQLMVCC是什么,有什么

    MySQLMVCC是什么,有什么?一、介绍面试被问到了MVCC,我不知道啊,一脸懵逼!...最早数据库系统,只有读读之间可以并发,读写,读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行。在MySQL中,这样大幅度提高了InnoDB并发度。...,那么这个undo log是什么呢?......快照读配合当前读会影响,读取结果,我们看下面的undo log和readView我们要确定版本时,就是拿着快照读去匹配版本链上每一个undo log,从最后往前进行判断使用这些判断条件,MySQL就能确定要读取版本了判断...但同一个事务中,如果是因为自己修改了数据,从而导致两次查询结果不一致情况,这是正常现象,不叫不可重复读 这也正是,为什么发生当前读后,快照读要重新进行生成原因。

    9410

    MySQLMVCC是什么,有什么

    MySQLMVCC是什么,有什么?一、介绍面试被问到了MVCC,我不知道啊,一脸懵逼!...最早数据库系统,只有读读之间可以并发,读写,读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行。在MySQL中,这样大幅度提高了InnoDB并发度。...,那么这个undo log是什么呢?...快照读配合当前读会影响,读取结果,我们看下面的undo log和readView我们要确定版本时,就是拿着快照读去匹配版本链上每一个undo log,从最后往前进行判断使用这些判断条件,MySQL就能确定要读取版本了判断...但同一个事务中,如果是因为自己修改了数据,从而导致两次查询结果不一致情况,这是正常现象,不叫不可重复读 这也正是,为什么发生当前读后,快照读要重新进行生成原因。

    8710

    Kotlin Native Jni,以后 Android 基本上要没有别的语言什么事儿了节奏

    当时因为完全没有注意到 CName 这个神奇东西存在,所以那篇文章当中还是 C wrapper 来做调用。 后来,我发现根本不需要这么麻烦啊。...,它名字按照标准 C 函数命名修饰方法修饰,并且修饰之前符合上面的规则,那么 Java native 方法就可以与之对应上。...我们可以 CLion 创建一个 Kotlin Native 工程,在 gradle 当中配置为 Android 动态链接库: ... kotlin { targets {...然后随便创建一个文件,一个全局函数,并用 CName 进行标注如下: import kotlinx.cinterop.* import platform.android.* @CName("Java_com_example_hellojni_HelloJni_stringFromJNI...本文涉及源码参见:hello-kni ,https://github.com/enbandari/hello-kni(阅读原文可以点击该链接~) ----

    6.1K10

    MySQL | 什么是 SQL 语言

    什么是 SQL 语言?...SQL 是用于访问和处理数据标准计算机语言 不能通用叫 方言 名称 功能 DML(数据操作语言) 添加,删除,修改,查询 DCL(数据控制语言) 用户,权限,事务 DDL(数据定义语言) 逻辑库...SELECT "HelloWorld" ; 关键字 非关键词 推荐 关键字大写,这样写出来才错落有致 SQL 语句必须以分号结尾。 SQL 语句中空白和换行没有限制,但是不能破坏语法。...SQL 语句注释 SQL 语句注释有两种,分别如下: # 这是一段注释 (适合单行) /* 这是另一端注释 */ (适合多行) 创建逻辑库 创建数据表 USE test; CREATE TABLE...VARCHAR(200) ) ; INSERT INTO student VALUES(1, "李强", "男", "1995-05-15", "13312345678", NULL); 数据库其他操作

    1K20
    领券