Linux概览

一:Linux学习路径

  1. 第一个坡:抛弃旧的思维习惯,熟练使用 Linux 命令行.《鸟哥的 Linux 私房菜》《Linux 系统管理技术手册
  2. 第二个坡:通过系统调用或者 glibc,学会自己进行程序设计.《UNIX 环境高级编程》
  3. 了解 Linux 内核机制,反复研习重点突破.《深入理解 LINUX 内核
  4. 第四坡:阅读 Linux 内核代码,聚焦核心逻辑和场景.《LINUX 内核源代码情景分析
  5. 第五坡:实验定制化 Linux 组件,成为内核开发工程师.
  6. 最后一坡:面向真实场景的开发,实践开发.

二:内核体系结构

xit.jpg

三:各系统模块简析

1.进程管理

创建进程的系统调用叫fork.中文叫"分支".创建进程fork.
在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程,新的进程叫作子进程
运行新二进制文件execve,等待子进程结束waitpid.

2.内存管理

放程序代码的这部分,称为代码段(Code Segment)
放进程运行中产生数据的这部分,称为数据段(Data Segment)。

3.文件管理

  • 对于已经有的文件,可以使用open打开这个文件,close关闭这个文件;
  • 对于没有的文件,可以使用creat创建文件;
  • 打开文件以后,可以使用lseek跳到文件的某个位置;
  • 可以对文件的内容进行读写,读的系统调用是read,写是write。

4.信号处理

发送信号kill,信号处理sigaction

  • 在执行一个程序的时候,在键盘输入“CTRL+C”,这就是中断的信号,正在执行的命令就会中止退出;
  • 如果非法访问内存,例如你跑到别人的会议室,可能会看到不该看的东西;
  • 硬件故障,设备出了问题,当然要通知项目组;
  • 用户进程通过kill函数,将一个用户信号发送给另一个进程。

5.进程间通信

信号量的机制Semaphore
消息队列:创建队列msgget,发送消息msgsnd,接收消息msgrcv
共享内存:创建共享内存shmget,将共享内存映射到内存空间shmat.
信号量:抢占信号量sem_wait,释放信号量sem_post

6.网络通信

创建套接字socket 绑定端口bind 发起连接connect 接收连接accept 监听listen


SoapEye
89 声望6 粉丝

历史就是历史,它是客观存在的。


« 上一篇
Java
下一篇 »
Docker