对系统和底层结构感兴趣

来源:互联网 发布:自动配色软件 编辑:程序博客网 时间:2024/05/20 12:46

网络设计:

编写一两个服务器程序,可以从静态文件HTTP服务器或者一个SMTP服务器开始。如果你想深入了解并发性,那就学习些一个多线程的IM服务器或游戏服务器。再进一步的话,就试着实现节点探索系统,并用它去做一些有用的事情,比如在无服务器情况下实现局域聊天的服务。


存储系统:

创建一个简单的文件系统。FUSE可以帮助你抽象出内核的接口,你要做的就是实现基本的文件系统功能。一致,可靠并可扩展的转化一个复杂的路径结构不是一件简单的事,而且还有很多边界情况需要你去考虑。


汇编语言:

即使你没有打算在一个实际的项目中用上它,你也需要了解计算机是如何工作的。用汇编语言写一个程序或算法(比如快速排序),然后尝试去优化它。接着实现setjmp()和longjmp(),可以让你对它们有新的理解,和你在高级语言中学到的内容是不同的。


操作系统的概念:

写一个malloc()和free()函数可能没有你想得那么简单。你思考过它们为什么有时候会失败吗?写一个线程的调度算法,你就会明白很多关于锁和并发的问题。


语言:

为某一种语言写一个编译器或解释器,甚至你可以创造你自己设计的编程语言。写出可以执行的有效代码是一个好的开始,下一步就尽可能地优化它们。


0 0
原创粉丝点击