1、Linux系统基本操作:目录结构,文件类型,权限 chmod rwx
常见的目录:
例如:
home:家目录
bin:命令一般都放在bin里
boot:内核在boot底下
lib:库文件
基本命令:cp,rm,cat,vi/vim,grep,find,tail,more,…
ps,top,kill,&,
2、gcc/g++ make ,makefile,gdb
main.c --> main.exe /main
预编译、编译(语法错误一般发送再编译阶段)、汇编、链接
Windows上可执行程序的格式: PE
linux :ELF
如何查看 :vi mian 是一堆乱码,但开头是ELF
库文件:静态库(libxx.a)/共享库(libxx.so)
3、进程:一个正常运行的程序
fork复制,进程替换exec系列
fork – 僵尸进程:子进程先于父进程结束,父进程。。。
写时拷贝 --提高fork的效率
文件操作:read、write、close、open --系统调用:是内核中的函数,Linux的内核是用C语言编写
系统调用和库函数
库函数:fopen —> open fopen运行会调用open系统调用
信号:通知进程产生某一事件,SIGINT 2号信号
kill() 有个系统调用 --signal() --改变信号响应方式
SIGCHLD 17号信号
4、进程间通信(ipc机制):管道(有名和无名) 、信号量、共享内存、消息队列、套接字
有名:能再任何两个进程间通信
无名:只能再父子进程间通信
5、进程、线程 、多线程
线程的 创建、实现、并发运行、同步
进程同步的方法:信号量、互斥锁、条件变量、读写锁
线程安全(如何保证运行安区) – 无论怎样调度,都能获得正确的结果
线程安区的函数/可重入函数
6、网络编程
分层结构:
7层:
4层:
协议:tcp/udp协议 (区别、特点)
相关编程流程
http协议
select 、 poll 、epoll函数
链接状态TIME_WAIT
tcp编程流程
nettat命令,select,poll,epoll
i/o复用区别
ET,LT
libevent
shell 编程
7、数据库 Linux平台安装和使用
git工具、 github网站 、 shell脚本编程
8、文件传输的小项目