|
发表于 2005-11-7 10:09:03
|
显示全部楼层
如果不牵涉到开发驱动。
单就控制台下面的应用开发(单进程)来说,几乎是一样的。不同的是,win32下面的控制台应用较少支持信号,好像只支持POSIX标准当中的3个吧,SIGINT,SIGTERM什么的。
Win32的控制台好像也不能支持fork创建新进程。也就是win32的多进程的实现又和linux有大不同。好像用CreateProcess函数吧。
如果就开发标准windows应用来说。差别是巨大的。Linux的消息队列要通过IPC才能实现。并且用户接口图形库上,Linux的API特别的多大大超过windows的为大家耳熟能详的那种DC(设备上下文)方式。有基于X11的,也有基于Framebuffer的。
如果要开发多线程应用,差别就更加大了。pthread那一套东西,在win32竟然派不上用场。
还有Windows开发中,socket那一块。虽然BSD的那套API在windows上也能用。但从winsock 2.0开始,微软大大扩展了winsock的API。复杂度远远超过了Linux。
另外还有一个重要的一块,就是COM的开发。现代的Windows较多的采用了组件对象模型来进行模块开发。但是COM在Linux的开发中只是很小的支流。不能成为气候。
另外从游戏开发的领域来看,Linux也不支持D3D的开发,主要也因为D3D是基于COM的吧。所以Linux的游戏开发就只能以OpenGL单腿行走。而不像windows两中3D图像API都可以使用。
大概这么一说,大家可能会有这样的认识。其实在Linux下开发的复杂度远远小于Windows的。我也是这样的认为。 |
|