• 如何深入了解Linux


    欢迎加入运维开发技术分享QQ群:365534424;数百位业内高手和同行在等你交流 有很多朋友问我,想深入了解Linux操作系统却找不到入手点 我给大家的建议是:

    1. 学会C,C语言和*UIX是一块成长起来的,所以Linux操作系统的API都是用C语言描述的。
    2. 所以C语言是深入学习Linux的一个必备技能,大家可以看 谭浩强的那本绿皮书入门,虽然黑的人很多,但入门足矣。
    3. 然后就是一本必读书目APUE(UNIX环境高级编程),英语好的同学建议阅读英文原版《Advanced Programming in the UNIX Environment》。
    4. 下一步就是多去阅读优秀的Linux项目的 C代码。

    关于第4点,在知乎上答了一个问题,意外收获很多赞,希望对大家有帮助

    碰巧读过之前大家提到的一些开源项目 网络编程:
    • redis是单线程异步网络编程的范例
    • nginx是多进程网络编程的巅峰,模块化
    • memcached虽然是C++,但是C style的,多线程网络编程的巅峰
    数据结构&数据库:
    • SQLite,数据理论的范例。注意要去读非合并源文件版的(为了方便编译器优化,有个单文件版的)
    大杂烩类型:
    • Coreutils - GNU core utilities,大多数Linux系统命令的实现
    • Python源代码(CPython,注意不是Cython),多少次遇到百思不得其解的问题,我都是去看看Python是怎么封装成简单可靠的接口的,比如我回答的Linux TCP connect with Select() fails at testserver,还有怎么实现一个可靠的带自定义超时的connect(),你都可以从Python源码里找到答案。
    找虐:
    • The BIRD Internet Routing Daemon Project,宏玩得飞起
    • Kernel,很容易挫伤初学者积极性
    • glibc、ssh,这类程序都是上个世纪的大神们的作品,从编程风格和整体架构上都属于晦涩难懂的,代码风格也是现代编程所不推荐的,建议初学者远离。
     
     
     
     
     
     
  • 相关阅读:
    洛谷P5304 [GXOI/GZOI2019]旅行者
    洛谷P3758 [TJOI2017]可乐
    洛谷P5341 [TJOI2019]甲苯先生和大中锋的字符串
    洛谷P5338 [TJOI2019]甲苯先生的滚榜
    洛谷P5340 [TJOI2019]大中锋的游乐场
    AC自动机
    左偏树(可并堆)实现
    splay区间翻转
    平衡树模板【splay的实现】
    洛谷P4113 [HEOI2012]采花
  • 原文地址:https://www.cnblogs.com/51reboot/p/4006092.html
Copyright © 2020-2023  润新知