如何初始化 Macbook Pro 2021
不是开箱
为了热烈庆祝 MBP 2021 回归专业使用者的定位,也为了纪念这10年3代MBP陪伴自己的成长,在此放送一篇日志:作为一位工程狮,记录调教刚到手的 M1-Pro 酱的全过程~
需要说明的是,本文特别写给第一次使用 MBP 的程序员们,因此不会使用Migration Assistant,同时将忽略一系列基础和个性化设置,直奔主题。对于普通用户来说,直接使用Migration Assistant将老MBP的数据一把迁移往往是最优选择。
为了热烈庆祝 MBP 2021 回归专业使用者的定位,也为了纪念这10年3代MBP陪伴自己的成长,在此放送一篇日志:作为一位工程狮,记录调教刚到手的 M1-Pro 酱的全过程~
需要说明的是,本文特别写给第一次使用 MBP 的程序员们,因此不会使用Migration Assistant,同时将忽略一系列基础和个性化设置,直奔主题。对于普通用户来说,直接使用Migration Assistant将老MBP的数据一把迁移往往是最优选择。
并发的概念充斥在各种各样的程序设计书籍中,甚至有许多专门教授利用某一门编程语言进行并发编程的书籍。然而在我看来,并发确是高于语言的通用概念,本文就作为并发系列的第一篇,阐述我对于并发的理解,希望能和各位看官碰撞出思想的火花。
glibc(GNU C Library)是Linux采用的C语言运行库,它提供了ISO C11/POSIX.1-2008等标准定义的一系列API,几乎被所有应用所引用。阅读其源码能够提升对计算机底层组件的认知层次,修炼内功。
不同于python这类解释型语言可以直接在解释器中运行程序,C作为编译型语言需要将源码编译链接成机器码后才能执行(关于编译链接的具体机制可以参看我之前写的介绍文章:理解C语言-3:编译链接)。在glibc这样的超大型项目中,编译过程尤为复杂:不仅需要考虑不同平台间的不同配置项,还需要通过awk/sed等文本处理程序生成各种项目依赖文件。如果贸然扎进源码分析某个模块,很容易陷入不知道某个具体符号来自哪里的困境,铩羽而归。
GNU Make负责完成如此负责的编译,本文就通过分析Make的调试信息,解析编译glibc的具体过程,引出glibc源代码的目录结构,为后续分析glibc中的具体模块打下基础。