一.vim:

1.编码风格与    indent    命令

2.切换到粘贴模式解决    Insert    模式自动缩进的问题  set    paste/set nopaste

3.全局替换某个变量名     %s#old_variable#new_variable#g 和 %s#\#new_variable#g

4.在编辑模式下查看手册 shift+k

5.删除空行 g/^$/d或%s#^\n##g。 多个空行转换为一个可以输入        g/^\n$/d        或者        %s#^\n$##g

二. Gcc    编译的背后

1.预处理

include/define/编译条件 处理。

gcc 查看编译细节-v;参数 -E, -S, -c, -o对应工具cpp, cc1, as, ld

2.编译

语法检查,编译器优化,生成汇编语言文件。

3.汇编

生成目标代码(可重定向文件elf)

1.工具 objdump    ,    objcopy    ,    nm    ,    strip,    readelf

2.ELF文件结构及三种ELF文件(目标文件/静态库、动态库、可执行文件)区别

3. ELF文件结构:ELF文件头,程序头表(段表),section1 section2...,section headers table节区头表

4.链接

三. 程序执行

命令行接口bash,bash的启动,命令的解析。

1. /bin/bash ->app

2. /bin/login ----/etc/passwd --execve--->/bin/bash

3. /sbin/init(linux)默认启动的第一个程序---> /sbin/getty  ---> /etc/login

4.命令解析--管道、fd的复制

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐