- 博客(40)
- 资源 (145)
- 收藏
- 关注
原创 软件项目的面向对象设计、开发及管理
免费讲座:软件项目的面向对象设计、开发及管理——外企真实项目案例分析讲座内容: 结合外企真实项目案例,探讨软件项目的标准开发流程,包括需求分析、架构设计、详细设计、实现、测试、部署、配置和变更管理及项目管理等。主讲人简介: 梁立新,外籍软件专家,具有十多年专业的软件开发、架构设计和项目管理的经验。毕业于中国科学技术大学,获硕士学位。之后留学于美国,获伊利诺依
2009-05-31 15:41:00 1728
原创 从自己的角度比较《天书夜读》和《寒江独钓》
序本文节选自《寒江独钓》一书序言 早在一年前,谭文就和我谈过想写一本既能深刻介绍Windows内核架构,又能结合具体Windows驱动程序开发实例的书。在一年的时间中,谭文一直在构思酝酿。那时候他的《天书夜读——从汇编语言到Windows内核编程》已经出版,《天书夜读》所涉及的内容很广,但就如同书名一样,它的内容不太适合刚刚涉猎Windows内核编程的程序员,反而更像一本供黑客学
2009-05-31 08:43:00 5060 3
原创 assert()和panic()
assert()和panic()先来看assert()。你或许早就开始使用这个函数,但之前你使用的都是现成的assert,只要包含一个头文件,就可以方便地使用。如今什么都得自力更生了,不过不用怕,写一个assert函数并非难事,见下面的代码:12 #define ASSERT13 #ifdef ASSERT14 void assertion_failure(char *exp, c
2009-05-27 09:03:00 2020
原创 IPC
IPC是Inter-Process Communication的缩写,直译为进程间通信,说白了就是进程间发消息。我们在上一节中把这种消息传递比作邮政系统,但实际上这种比喻并不全对。有的消息机制是很像收发邮件的,这种叫做异步IPC,意思是说,发信者发完就去干别的了,收信者也一样,看看信箱里没信,也不坐在旁边傻等。而有另一种消息机制正好相反,被称为同步IPC,它不像邮寄,倒像接力赛,发送者一直等到接收
2009-05-26 14:05:00 1826
原创 解密《一个操作系统的实现》这本书
解密《一个操作系统的实现》这本书 5月18日见到了《OrangeS:一个操作系统的实现》的样书,多少有些激动。想一想前一版本《自己动手写操作系统》是那么畅销,这一本一定不能含糊。整个出版过程我能看到作者于渊为此付出的努力,还在自己排版的过程有深入体会,通过于渊的讲座也让博文视点的员工分享到他在排版过程中的很多心得。
2009-05-26 09:08:00 20328 1
原创 进程间通信
我们提到过,当一个进程需要操作系统的帮助,它可以通过系统调用让内核来替它完成一些工作。迄今为止,我们已经熟悉了系统调用的工作机制,并且已经实现了不止一个系统调用。接下来你会发现,用户进程将会有更多事情依赖于内核。比如我们想实现一个文件系统,最起码读写硬盘的工作要求助于内核。这里我们可以逐渐地增加系统调用,但也可以采用另一种方案,就是将这些工作剥离出来,交给一些系统进程来完成,让内核只负责它必须
2009-05-25 08:56:00 1522 1
原创 书如其名,美哉!
书如其名,美哉!——博文视点展示图书专题电子快邮——读《美哉!Powerpoint——完美幻灯演示之路》有感 非常偶然,在西单图书大厦看到了这本书。当时自己在北京出差,正值事毕之后闲逛书城,满目琳琅,感叹书之海洋的同时,来到Office书架,翻阅了几本便觉得心情紧张,扑面而来的庞大信息量让我不免胆战心惊,人生有涯如何学得了这么多东西呢?抬头便看到“美哉”这本书,美哉两个字的字体与那个红球中
2009-05-22 14:18:00 3343
原创 如何搭建自己的开发环境
如何搭建自己的开发环境 好了,到这里相信读者已经知道如何搭建自己的开发环境了,说白了它跟开发一个普通的软件区别基本就在一个虚拟机上。它既是我们的“硬件”,又是我们的调试器,有了它我们安心多了。那是不是马上就可以开始我们的操作系统开发之旅了呢?很遗憾,还不能那么着急,因为你知道,操作系统是跟硬件紧密相连的,如果想实现一个运行在使用IA32架构的IBM PC上的操作系统,免不了要具备
2009-05-22 08:35:00 1572
原创 Windows下的开发环境
Windows下的开发环境 我们在介绍QEMU时提到过,在Windows下你需要一个虚拟的Linux来帮你编译操作系统的源代码。将操作系统内核编译链接成ELF格式有诸多好处,我们不但可以用Linux下现成的工具(比如readelf)来分析编译好的内核,还可以在必要时参考Linux内核的源代码来帮助我们自己的开发,总之这拉近了我们与Linux之间的距离。所以不要因为在Windows下也离
2009-05-21 08:43:00 1514
原创 GNU/Linux下的开发环境
GNU/Linux下的开发环境 在工作环境中,虚拟机是个重头戏,所以在本章的前面单独做了介绍。除了虚拟机之外,还有几样重要的东西,分别是编辑器、编译器和自动化工具GNU Make。 许多在Linux下工作的人会使用Vi或者Emacs作为编辑器。如果你有兴趣尝试,那么还是那句建议,“不要因为刚开始的不习惯而放弃”,因为它们的确是编辑器中的经典,而且和Linux一样,具有陡峭的学习曲
2009-05-20 15:52:00 1663
原创 编写操作系统的平台之争:Windows还是*nix
平台之争:Windows还是*nix本文摘自于渊编写的《oranges:一个操作系统的实现》一书 读到这里,读者可能发现书中经常出现“如果你用的是Windows”或者“如果你用的是Linux”这样的字眼。有时这样的字眼甚至可能影响到你的阅读,如果真的这样请你原谅。我试图照顾尽量多的读者,但是对每一个人来讲,却必须面临一个选择──在什么平台下开发。本书第一版使用的是Windows平台
2009-05-20 08:16:00 4327 26
原创 水面下面的冰山
水面下面的冰山本文摘自于渊编著的《oranges一个操作系统的实现》一书 即便是非常袖珍的程序,也有可能遇到不能正确运行的情况,对此你一定并不惊讶,谁都可能少写一个标点,或者在一个小小的逻辑问题上犯迷糊。好在我们可以调试,通过调试,可以发现错误,让程序日臻完美。但是对于操作系统这样的特殊程序,我们没有办法用普通的调试工具来调试。可是,哪怕一个小小的引导扇区,我们也没有十足的把握一次
2009-05-19 14:21:00 1680 2
原创 操作系统编写之代码解释
操作系统编写之代码解释 其实程序的主体框架只是第2行到第6行这么一点点而已,其中调用了一个显示字符串的子程序。程序的第2、3、4行是3个mov指令,使ds和es两个段寄存器指向与cs相同的段,以便在以后进行数据操作的时候能定位到正确的位置。第5行调用子程序显示字符串,然后jmp $让程序无限循环下去。可能有很多人开始学汇编时用的都是MASM,其实NASM的格式跟MASM总体上是差不多的
2009-05-19 14:19:00 1734 1
原创 操作系统编写之引导扇区
操作系统编写之引导扇区 你可能还没有从刚刚的兴奋中走出来,可是我不得不告诉你,实际上,你刚刚所完成的并不是一个完整的操作系统,而仅仅是一个最最简单的引导扇区(Boot Sector)。然而不管我们完成的是什么,至少,它是直接在裸机上运行的,不依赖于任何其他软件,所以,这和我们平时所编写的应用软件有本质的区别。它不是操作系统,但已经具备了操作系统的一个特性。 我们知道,当计算机电
2009-05-19 14:17:00 1876
原创 十分钟完成的操作系统编写 你信吗?
十分钟完成的操作系统 你相不相信,一个“操作系统”的代码可以只有不到20行? Example 1. chapter1/a/boot.asm 1 org 07c00h ; 告诉编译器程序加载到7c00处 2 mov ax, cs 3 mov ds, ax 4 mov es, ax
2009-05-19 08:16:00 4310 18
原创 在酷热的就业天气寻找几丝凉意
在酷热的就业天气寻找几丝凉意邵志东谈程序员职业成长之路 5月17日 中午,中关村图书大厦5层多功能厅,博文视点大讲堂特邀《软件开发这点事—软件开发工具手册》的作者邵志东老师与读者进行了一场别开生面的专题讲座:在就业的冬天中寻找春意——程序员职业成长之路,现场反响颇佳,听众受益良多。 邵志东老师是微软最有价值开发者、微软中文网络广播最佳讲师,历任北京北大方正电子有限公司项
2009-05-19 08:12:00 977
原创 作者讲述《一个操作系统的实现》的故事
《Orange’s:一个操作系统的实现》作者自序 本书是《自己动手写操作系统》的第二版,通过一个具体的实例向读者呈现一个操作系统雏形的实现过程。有关操作系统的书籍资料可以找到很多,但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事,以作读者参考之用。本书面向实践,通过具体实例教读者开发自己的操作系统。书中
2009-05-18 15:07:00 2393 4
原创 做真正Hacker 的乐趣──自己动手去实践
做真正Hacker 的乐趣──自己动手去实践 本文是csdn总裁蒋涛先生为《oranges一个操作系统的实现》写的推荐序 2004 年我听编辑说有个年轻人写了本《自己动手写操作系统》,第一反应是不可能,恐怕是翻译稿,写这种书籍是要考作者硬功夫的,不但需要深入掌握操作系统的原理,还需要实际动手写出原型。历史上的Linux 就是这么产生的,Linus Torvalds 当时是
2009-05-18 08:37:00 7083 9
原创 五月职场胜如火 Java讲座陪您过
五月职场胜如火 Java讲座陪您过 5月16日上午10点30分,由电子工业出版社博文视点公司邀请孙鑫老师在中关村图书大厦5层的多功能厅进行了一场与读者的见面会,回馈这么多年来一直支持博文视点和孙鑫老师图书的广大读者朋友。 孙鑫,程序员之家(www.sunxin.org)站长,著名IT培训专家,10年软件开发和教育培训经验,培训学员数千人,就业于微软、IBM、华为、东软、中软、
2009-05-18 08:32:00 1327 1
原创 IRP请求的完成与返回
IRP请求的完成与返回 每当完成了一个以IRP为代表的I/O操作请求的时候,就要执行IRP的善后操作IoCompleteRequest(),这是个宏操作,定义为函数IofCompleteRequest()。#define IoCompleteRequest IofCompleteRequest 如前所述,以IRP为代表的I/O操作请求的执行可以是同步的,也可以是异步的,所以一
2009-05-15 14:45:00 1828
原创 Windows之磁盘的设备驱动堆叠
磁盘的设备驱动堆叠本文节选自《Windows 内核情景分析--采用开源代码ReactOS》一书 读者已经在前几节中看到,设备的驱动常常分成“类设备驱动”和“端口设备驱动”两层。例如鼠标器就成为一个设备的类,而具体又有PS/2鼠标器、串口鼠标器以及基于USB的HID鼠标器,所以鼠标器的驱动就分为一种类设备驱动和三种端口设备驱动。其中PS/2鼠标器的端口驱动是直接与硬件打交道的。不过
2009-05-15 09:08:00 1766
原创 侦探过滤驱动
侦探过滤驱动本文节选自《Windows 内核情景分析--采用开源代码ReactOS》一书 至于过滤驱动,则依附于类驱动或端口驱动,目的在于拦截类设备驱动与端口设备驱动之间的信息,以实现某些统计、监视、修改乃至重定向的操作。例如,假定要求对存储在磁盘上的信息进行加密,那么由端口驱动写入磁盘以及从磁盘读入的数据就都应该是已加密的,而上面的类驱动却只能按正常的算法进行处理,此时就
2009-05-14 14:56:00 1258
原创 Windows的设备驱动框架中的上层与下层模块
Windows的设备驱动框架中的上层与下层模块 在Windows的设备驱动框架中,下层模块向上层模块提供一个数据结构指针。但是,上层模块并不直接从这个数据结构获取具体的函数指针,更不直接使用这些函数指针调用下层模块中的函数;而是通过一些由内核提供的函数下达“I/O请求包”即IRP,间接地调用下层模块提供的函数,要求其执行某种操作。这就好像是向内核下一个定单,定单中告诉内核要由哪一
2009-05-14 09:01:00 1774
原创 Windows内核管理层的部件之I/O管理模块
Windows的设备驱动框架 Windows内核管理层的部件之一是I/O管理模块,有时候也称为I/O子系统。I/O管理模块所管理的对象与活动纵向贯穿管理层、核心层乃至HAL层,所以称之为子系统其实也有道理。I/O管理的主体就是我们所说的设备驱动。很自然地,如果我们沿着纵向考察某项设备的驱动,则一般而言也会分成若干层次。操作系统的一个基本原理就是分层虚拟,即使一种设备的驱动程序全部都在同一
2009-05-13 09:01:00 1937
原创 绿色五月我们能做点什么
博文视点大讲堂第9期Java面试与职业生涯规划 讲座内容:Java热门面试题分析、面试注意事项、面试技巧,软件开发人员的职业规划。主讲人简介: 孙鑫,程序员之家(www.sunxin.org)站长,著名IT培训专家,10年软件开发和教育培训经验,培训学员数千人,就业于微软、IBM、华为、东软、中软、联想、神州数码等企业。对多种程序语言和技术架构有深入的了解,擅长Java、
2009-05-12 15:52:00 2217
原创 探究Windows内核你知多少
Windows内核 如上所述,现代操作系统的一个明显特征就是用户空间和系统空间的划分,从UNIX时代以来,人们一直把存在于系统空间的代码和数据的集合称为“内核(Kernel)”,因此内核是有明确边界的。空间的不同,或者说CPU运行模式(系统态和用户态)的不同,是不会被混淆的本质区别。可是,在Windows的术语中却不同,微软并不把系统空间的所有代码和数据的集合称为内核,而是把这里面的
2009-05-12 15:38:00 35623 25
原创 Windows操作系统的缘由
Windows操作系统发展简史 20世纪80年代后期,当时的UNIX操作系统已经发展得相当成熟,例如在人机界面上已经有了X Window,已经开始使用鼠标器,也已经有了“客户机/服务器(Client/Server)”的结构模式。当时的一些“工作站”实际上已经具备了现代桌面应用所需的大多数基本要素。同时,由于PC功能与性能的日渐提高,当时甚至已经有人将UNIX移植到PC上,例如当时的X
2009-05-12 08:38:00 3228 5
原创 专家读《Windows 内核情景分析》这本书
专家评价: 操作系统是最基础、最核心的计算机软件。长期处于技术垄断地位的Windows操作系统,其源程序代码是不公开的,可看成一个“黑盒子”。毛德操先生这本书,通过分析ReactOS的源程序代码,介绍了Windows操作系统内核的结构及其各种机制,使读者能深入理解Windows操作系统内核这个“黑盒子”的各个方面,这对于打破Windows的技术垄断,开发具有自主知识产权的新型操作系统,实现
2009-05-11 14:46:00 2775 1
原创 谁说五月是没有收获的季节
五月天 嵌入式讲座邀您共度周末 繁华五月,电子工业出版社博文视点在中关村图书大厦五层多功能厅成功举行了由嵌入式知名专家《嵌入式Linux上的C语言编程实践》作者韩超老师主讲的“嵌入式Linux C语言开发与用户界面开发设计”讲座活动。韩超老师(亚嵌教育资深专家)主讲人简介: 韩超,嵌入式系统资深工程师、教育学者,曾从事嵌入式系统开发、教学以及移动终端开发工作。是中国大
2009-05-11 08:01:00 1326
原创 JavaScript的对象观
JavaScript的对象观 众所周知,目前的JavaScript实现了ECMA262规范,是基于对象的。未来的JavaScript2.0具说是面向对象同时向后兼容亦可使用基于对象的手法,但在还未看到正式运行版前就不讨论了。 基于对象。什么是基于对象呢?关于这个问题,初学者通常会与面向对象相对混淆。那到底什么是基于对象呢?要认定(纯粹个人看法)基于对象不等于面向对象;基于对象的层
2009-05-08 08:41:00 1015
原创 MYOP究竟能为站长提供哪些便利
让我们来详细看看MYOP究竟能为站长提供哪些便利 首先,MYOP让应用使用更简单更方便。对站长而言,在启用MYOP上某个应用时,无需进行安装,只要UCenter Home开启了MYOP,就能够使用MYOP上的全部应用。而站长则对应用有充分的自主权,能够根据网站的需要在平台上选择适合的应用提供给用户,这被称为“白名单机制”;对于不感兴趣的应用,站长则可以通过黑名单进行管理,屏蔽相应的应用而不
2009-05-07 14:59:00 1326
原创 博文视点 on Twitter
博文视点 on Twitter 博文视点现已登陆Twitter(http://twitter.com/broadviewbook)啦!在这里,我们会发布博文视点的新书、活动以及新闻等信息。欢迎各位读者和友人前来follow。
2009-05-07 10:46:00 923
原创 《软件开发这点事儿》作者在MSDN上与您讨论软件开发
5月13日和5月27日《软件开发这点事儿》作者邵志东约您在MSDN畅谈软件开发的必备武器和软件开发中的需求分析。 在线广播地址: http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/archive.aspx课程的信息课程名称(中文):
2009-05-07 10:40:00 1112
原创 什么平台给了社区站长机会
什么是开放平台?Manyou诞生对站长的机会 在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台。通过开放平台,网站不仅能提供对Web网页的简单访问,还可以进行复杂的数据交互,将它们的Web网站转换为与操作系统等价的开发平台。第三方开发者可以基于这些已经存在的、公开的Web网
2009-05-07 08:03:00 1060
原创 UCenter Home 1.5的基本配置与技巧
UCenter Home 1.5的基本配置与技巧 前面和大家说到了建立一个UCenter Home之后的基本设置,下面和大家一起来分享一下基本配置与技巧。1.注册显示 新建站点对此处不必进行设置,如果是之前有一定规模的站点,能够有足够吸引用户加入的“点”,那么可以考虑关闭新用户注册的功能,让用户通过邀请的方式来加入网站。这样的设置有如下好处: (1)过滤垃圾用户,提高网站的用户质
2009-05-06 14:48:00 1068
原创 用UCenter Home启动一个垂直的SNS社区
作为当代流行的网络社区,仅仅拥有论坛一个应用未免略显单调,纵使论坛上有多种插件和附件功能,时间长久也容易使用户产生疲劳感。因此,如何创新和抓住社区用户的兴趣点、增强用户体验、增加用户黏度,已经成为社区站长们、更是社区软件提供商们必须时时考虑的重要问题。 根据对网络社区长期的开发经验,通过对市场的长期观察、分析和思考,康盛创想在巩固其拳头产品——Discuz!论坛的基础上,适应潮流,
2009-05-06 07:58:00 1386 1
原创 通过Discuz!搭建一个主题社区
通过Discuz!搭建一个主题社区 做完了准备工作的必修课,接下来就是实际动手操作环节。 根据近年来网络对“社区”的定义,论坛是社区的一个重要组成部分。论坛是一个站点的网友们集中讨论、交流和沟通的主要场所,是社区活力的根本源泉,是站点发展的动力和重要保障。评判一个社区的规模往往通过查看其论坛的注册用户数来做直观了解,评判一个社区的人气和活力则往往通过查看其论坛的每天发帖量、平均即时在
2009-05-05 13:49:00 1640
原创 互联网给了我们什么
本文来自于《Web2.0网站社区应用宝典》序言 在这个世界,最大的竞争来自于你和你的想象力之间的竞争。而在“你”和“想象力”之间有一片具有无限可能性的次元空间,叫做“互联网”。 互联网带给人们最大的享受,便是把“想象力”落实,让世界上的一个个孤岛被“互联”了起来,有了“互联”,就有了“互通”和“互动”——人们从旁观者到参与者,甚至发起者;从单方面的获取信息,到参与到信息的制作和
2009-05-05 08:12:00 1079
原创 来自Comsenz产品团队的声音
来自Comsenz产品团队的声音本文节选自《Web 2.0社区网站实用宝典》一书序言 今天,我们所说的社区,大多还局限于论坛,而真正的社区,概念应更加广泛一些。目前,大多数网站只有论坛而没有形成社区。 所谓的社区,我认为应该有五个特征:第一,社区能安家,能让一群人聚集在一起;第二,社区能定居,其成员结构是相对稳定的,因为网络社区上人员流动远比现实中要大多,所以沉积人员能力越强
2009-05-04 13:09:00 862
原创 写给想做好社区网站人员的一本书
《Web 2.0社区网站实用宝典》 本书作为社区网站实用宝典,详细地介绍了Web 2.0下互联网社区的发展。从初学者的角度阐述了搭建一个互联网社区所应具备的心理素质和技术能力,通过向导的方式,一步一步引导读者建立起自己的互联网社区。在书中以康盛创想的互联网社区应用Discuz!论坛和UCenter Home个人空间为案例,由浅入深、详细地介绍了各个社区应用的安装,基本使用,高级管理
2009-05-04 08:10:00 1150
智能硬件安全试读样章
2016-12-30
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第2版)试读样章
2016-12-30
Python高效开发实战——Django、Tornado、Flask、Twisted试读样章
2016-12-30
TensorFlow实战试读样章
2017-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人