我使用C#,. net和&amp ;;开发基于Microsoft Windows的应用程序(包括桌面和Web)已有好几年了。 Visual Studio带有一些C / C ++& WIN32。 我想拓宽视野,尝试在* NIX环境中进行开发,例如使用Vim& C ++。我从一些学校项目中获得了有限的UNIX经验。
我很难想出一个好的项目来实现,这可能会揭示UNIX的一些优势,以及为什么有些项目/领域更喜欢使用UNIX。我可以想到一些我想要构建的有趣的东西,但是没有看到令人信服的理由为什么在UNIX中实现它们不仅仅是使用UNIX环境的练习。
哪些项目/应用程序可以帮助开发人员学习UNIX的优势?
理想情况下,在我编写这个项目的某个时刻,当我意识到UNIX环境的一些好处时,一个灯泡会浮现在我头顶上,单独打开,我会说“AHA!”与之前在Windows中完成的事情相比。
为了清楚起见,我不怀疑UNIX有其优势,我只是在为Unix开发寻找一个诱人的起点。
答案 0 :(得分:1)
这里有一个想法:编写一个(简单)游戏,并在某些公共目录中维护一个“高分列表”,以便普通用户可以查看分数,但不能直接修改它们(仅通过游戏程序本身) )。
这样做将显示Unix文件权限和setgid如何工作。值得考虑如何在Windows中实现相同的功能。
答案 1 :(得分:1)
在UNIX / Linux中,“一切”都是文件。如何编写一个读取磁盘设备的软件,了解分区表和文件系统?
另一种可能性是编写一个执行“某事”的Linux内核模块。它一定会让你更好地了解linux内核的工作原理。作为一个额外的好处,它听起来比它真的更硬!)
一个好的起点是Kernel Newbies。
答案 2 :(得分:1)
您可以使用非阻塞IO编写一些服务器应用程序,以及epoll,kqueue或/ dev / epoll等机制,以便能够在不使用任何线程的情况下处理大量流量。
答案 3 :(得分:0)
您可能会考虑涉及解析大量文本的项目。
编辑:在这种情况下,您应该选择更适合文本处理的语言(如Perl)。
当然,这可以通过MS工具完成,但由于大多数MS应用程序采用专有的二进制文件格式(我在这里概括),因此Windows中的重点在于操纵MS自身格式的应用程序。
一个强迫您考虑Unix工具的文本处理功能的项目可能对揭示Unix的优势最有用。
答案 4 :(得分:0)
你的工作方式更多地影响你。不过,一个不错的多线程应用程序将展示出通常更好的线程性能。