首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于编译器与解释器

    为了让更多的人能够从本质上理解编译器和解释器的区别,我杜撰了一个小故事 来福与旺财的养牛场 来福和旺财有一个养 牛场。本来养牛不是一件太难的事情,但是偏偏他俩养的牛都有特别的怪癖。奶牛阿圆只吃切成圆形的牧草,而奶牛阿方和阿三(印度来的?)分别只吃切成正方形 和三角形的牧草。如果来福和旺财拿不和奶牛性格的草去喂食,阿X们不但不产奶而且还会鄙视来福和旺财。 于是来福和旺财分别有了自己的主意 来福的方案: 来福发明了三套大型碾碎机:圆圆碾碎机,方方碾碎机和三三碾碎机。每天收割了牧草,就分别放到这三套机器里碾碎给三头奶牛吃。但是一旦被碾碎了,这堆草就只能给某一头牛吃了。很明显阿方是不会吃给阿圆准备的草的。而且来福每天都要操作这三台机器,觉得比较麻烦。

    01

    你心中最高大上最牛X的技术到底是什么

    **高以下为基,贵以贱为本 互联网技术的核心根基就是TCP/IP,TCP/IP的实现依赖于Linux socket API【我们的项目大部分运行在上面】 没有它们各种高大上牛逼的技术就无从建立起来。而这根基对大家所用的java,go,py,php,c,c++,nodejs...都是一样的,只不过是基于Linux api做了各种各样的封装百家争鸣,百花齐放,跟易经里的阴阳构成64卦一样,当你刚开始撸程序时,可能并不会觉得基础的重要性,甚至可能几年内一直是框架crud boy,你并不会察觉到基础核心Linux socket api【一般来说linux内核的api很少变动,比较稳定,国内linux内核开发工程师估计也不会天天没事干,天天修改linux内核api】! 每天被各种新技术词汇遮蔽双眼,而基础知识你一直的错失和鄙视低估,就想一步飞龙在天,达到九五爻之位,并没有“以下为基” “以贱为本” **

    01

    完整可编译NT4's NTFS源码小规模修改工程

    ·    大家知道,文件系统在操作系统中应该属于比较独立的一块,只需要提供相应接口给上层使用。 Windows的NTFS文件系统也是一样, 在实际编程中,Windows以dispatch routing的形式为上层的io管理器、缓存管理器等提供读写的接口, 甚至文件系统本身的缺页中断也是通过其自身的读写例程来实现换页操作。 所以在设计上,其相对的独立性为我们“山寨”其驱动提供了不少方便。    相信大家也都看过NT4的NTFS源码。 可那份 源码与现在WIN 5.1下的相差甚远(NT4应该写于91年)。 但由于文件系统的独立性,使我想到也许NTFS自身结构的变化也许并不妨碍它的移植。 事实证明也是如此,我将NT4的代码扣出后,只经过少许修改,便能成功运行在XP下,这也许对广大操作系统爱好者能提供不小的便捷吧~    本来以为想移植到xp中会有不少困难, 但实际过程中,我只是修改了很小一部分。 其中包括read 操作的一个死锁bug。这个bug的起因是: NtfsCommonRead 中如果是pageio的时候, 且是异步read,MS忘记把锁放进完成函数的context里了。即无处释放这个锁。    另外NT4的代码少了NtfsFsdPnp例程。 这个例程在NtCreatePagingFile-》PpPagePathAssign中会调用。 本来我想参照xp的,不过似乎没成功,所以干脆直接返回STATUS_SUCCESS, 貌似也没啥大问题,也能成功换页~ 其他方面,NTFS的文件结构啥的, 基本无需修改。所以各位可以尽管鄙视我,毕竟我没做啥大改动, 就拿这么个题目来哗众取宠。不过我觉得比那个啥淫cracker(yingcracker)好点吧, 这娃直接把我的ksbinsword改个标题就说是他的了    至于这个可源码调试的NTFS有啥用,我想不必多说了吧, 比如你想研究怎么强行删除文件,调试一下NtfsDeleteFile就知道了。 有了代码方便很多!想看哪个结构就看哪个结构。或者你还可以改动一下,想隐藏哪个文件就隐藏哪个文件。 附件中的sys不能直接运行,因为入口函数有int 3断点 下面是截图: 可以看出硬链接等NTFS特有的功能也支持的好好的

    03
    领券