《Linux网络编程》:宋敬彬 海信工程师。
目录
一 . linux OS
1.5 os 架构
kernel
二 code环境
2.2 Gcc
Gcc是: GNU Compiler Collection
*.c c语言源文件
*.C / *.cc / *.cxx c++ 源文件
*.s 汇编源文件
*.o 汇编目标文件
*.a 静态库
*.so 共享库
a.out 链接后的输出文件
目标文件是cpu 可识别的二级制文件。
可执行文件是目标文件和库链接后的文件。
//-c 编译成目标文件 -o 重命名
gcc hello.c //默认生成可执行 a.out
gcc -c -o hi.o hi.c //重命名为目标文件hi.o
gcc -o test string .c hello.c //两个源文件编译成test可执行
静态库的优势:1. 编译一次,作为obj文件到处使用。
2. 不用开放源代码,只提供bin文件。
gcc -o test main.c libstr.a //使用静态库
gcc -o test main.c -L./-lstr //编译&链接库(如有同名动态库优先)
2.3 makefile
文件数量少用gcc.大工程用makefile。
windows下的nmake 和make 类似,但是由于vs的强大被掩盖。
所有平台的makefile都是类似的,核心规则(target + dependence+ command 基本一致,不同的是第三方函数API。
2.4 GDB
GDB: GNU debuger
gcc -o hello hello.c -g
-g 表示用gdb调试
三 文件系统
3.1 分类
文件系统描述: 索引节点(inode) + 块(block)
block 存储数据, inode存储数据的信息。
查看一个文件的inode
ls -li hello.c
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VFS 是linux 内核层实现的一种架构,对各种类型的文件都进行了抽象。
四 程序进程线程
4.1.基本概念
process 是os资源分配的基本单位,thread 是共享process资源的基本单位。
4.2 process 产生
4.3 多个 process的通信
4.4 thread
创建:pthread_create()
结束函数:pthread_join() 和 pthread_exit()