찾다

 >  Q&A  >  본문

一些大规模的 C++ 项目是如何构建的?

我以前一直是做一些面向过程化编程的语言开发,虽然能在各个领域工作干活,但到目前为止我认为我还是一个门外汉,为了做业务而做业务,很少考虑底层是如何实现的。因为我看过一些真正商业项目的代码。一个大型商业项目,从底层最基础的线程、内存、Socket 等等管理都是自己手敲的代码。

我很想知道,关于操作系统内存管理、线程管理、异常处理、IOCP、epoll 等等这些知识,作为最初写这些代码的作者他们是从哪里了解到的这些知识的?我要走一个什么样的学习路线,才能驾驭这些东西?

当然我并不是要重复造轮子,但我一定要知道这个轮子的内部结构是什么样子的,如果轮子需要改造或者优化适应不同场景,我必须是可以搞定的。那么如果是这样,我要有一个怎样的知识体系才行?

天蓬老师天蓬老师2774일 전410

모든 응답(1)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-17 13:41:49

    这些东西(操作系统内存管理、线程管理、异常处理、IOCP、epoll 等等这些知识)陈硕在他的muduo网络库里都有涉及,具体的学习路线则可以读读他的《Linux多线程服务端编程》。
    如果真要搞清这些东西的实现,那么其实应当看看操作系统的实现,一般是看Linux的源代码或者读类似于Linux内核源代码解读这样的书,还有Minix或者BSD/Mac的源代码如果有兴趣也可以参考。不过前面说的这几个操作系统内核都是用C而非C++写的。
    归根结底很多东西其实是依赖硬件实现的,要了解这些就要看组成原理、体系结构方面的书,不过一般来说,对于一个应用级程序员而言,把CSAPP看一遍就够了。

    회신하다
    0
  • 취소회신하다