linux具有不同的三种接口:系统调用接口、库函数接口、应用程序接口。
用户启动shell窗口下进行工作。
shell里先运行输入的命令行中的第一个字符串,搜索这个程序名,找到了就运行同时挂起shell,直至运行完毕。shell是普通的用户程序,功能是读取用户的输入和显示计算的输出。
控制命令操作或指定可选值的参数称为标志,用-表示。
对于

head -20 file  #打印文件的前 20 行
head 20 file    #输出文件名为 20 的文件的前 10 行,然后输出文件名为 file 文件的前 10 行。

shell支持魔法字符
*匹配一个或者多个可能的字符、?匹配任意一个字符(leetcode有一道例题的)
shell 启动时,就会获取 标准输入、标准输出、标准错误文件进行访问的能力。
管道:由管道符号连接的命令集合。

常见命令
cp 是将文件进行复制,复制完成后会有两个文件 a 和 b;
mv 相当于是文件的移动,移动完成后就不再有 a 文件;
cat 命令可以把多个文件内容进行连接;
使用 rm 可以删除文件;
使用 chmod 可以允许所有者改变访问权限;
文件目录的的创建和删除可以使用 mkdir 和 rmdir 命令;
使用 ls 可以查看目录文件,ls 可以显示很多属性,比如大小、用户、创建日期等;
sort 决定文件的显示顺序
grep 从标准输入或者一个或多个输入文件中提取特定模式的行;
sort 将输入进行排序并输出到标准输出;
head 提取输入的前几行;
tail 提取输入的后面几行;
除此之外的过滤器还有 cut 和 paste,允许对文本行的剪切和复制;
od 将输入转换为 ASCII ;
tr 实现字符大小写转换;
pr 为格式化打印输出。

linux的内核结构其主要作用就是I/O交互、内存管理和控制CPU访问。

进程
fork系统调用会创建一个源进程的拷贝。fork创建出来的称为子进程,父进程与子进程相互独立。但是对于共享文件,会同时可见。
通信机制有6种
1.信号
不同信号的用处
其中,
SIGKILL 信号发送到进程以使其马上进行终止。 与 SIGTERM 和 SIGINT 相比,这个信号无法捕获和忽略执行,并且进程在接收到此信号后无法执行任何清理操作,下面是一些例外情况
僵尸进程无法杀死,因为僵尸进程已经死了,它在等待父进程对其进行捕获。
处于阻塞状态的进程只有再次唤醒后才会被 kill 掉
init 进程是 Linux 的初始化进程,这个进程会忽略任何信号。
SIGKILL 通常是作为最后杀死进程的信号、它通常作用于 SIGTERM 没有响应时发送给进程。

进程可以选择忽略发送过来的信号,但是有两个是不能忽略的:SIGSTOP 和 SIGKILL 信号。SIGSTOP 信号会通知当前正在运行的进程执行关闭操作,SIGKILL 信号会通知当前进程应该被杀死。除此之外,进程可以选择它想要处理的信号,进程也可以选择阻止信号,如果不阻止,可以选择自行处理,也可以选择进行内核处理。如果选择交给内核进行处理,那么就执行默认处理。
2.管道
举例:

sort <f | head

它会创建两个进程,一个是 sort,一个是 head,sort,会在这两个应用程序之间建立一个管道使得 sort 进程的标准输出作为 head 程序的标准输入。sort 进程产生的输出就不用写到文件中了,如果管道满了系统会停止 sort 以等待 head 读出数据

3.共享内存
在使用共享内存前,需要经过一系列的调用流程,流程如下

创建共享内存段或者使用已创建的共享内存段(shmget())
将进程附加到已经创建的内存段中(shmat())
从已连接的共享内存段分离进程(shmdt())
对共享内存段执行控制操作(shmctl())
4.FIFO队列
命名管道,会更加安全,不会丢失。
5.消息队列
6.套接字Socket
计网里面的TCP UDP协议。

常见的系统调用

用于执行驻留在活动进程中的文件的系统调用是?exec
存储未初始化的全局变量和未初始化的 static 变量的是(bss段 )

Linux 内核结构

《硬核linux攻略》读书笔记更新中相关推荐

  1. 【硬核游戏攻略】2.matlab中调用Java实现《大家来找茬》快速求解器

    大家来找茬是个原理比较简单的游戏,通过比较并标记两幅图片中的不同(指的是相同相对位置上的不同 图片绝对位置通常一张在左一张在右–别笑)来过关. 求解起来比较简单,只需要对应位置RGB值相减(如果是负数 ...

  2. Linux Shell脚本攻略 读书笔记

    内容目录: 嗨,Echo一下 给终端来点颜色 shell的控制结构 算术比较 目录操作 网站下载 tar 归档工具 rsync 备份系统快照 ftp自动传输 磁盘管理 故障排查 使用syslog记录日 ...

  3. linux cat 脚本,Linux Shell 脚本攻略 读书笔记 -- 201.cat的几种用法

    cat可以读取.显示和拼接文件内容 1. 打印单个文件: root@debian:/home/chicol/scripts# cat file.txt This is a line inside fi ...

  4. 程序员跳槽全攻略——读书笔记

    有同学说,我技术很好啊,又会机器学习又会编译原理,凭什么那些写Javascript的薪水比我高一倍? 谁让你在一家建站公司上班呢.对一家做网站的公司而言,机器学习和编译原理是不能为它带来收益的,而Ja ...

  5. 黑客丛林通关攻略参考(更新中)

    黑客丛林之旅游戏链接地址:http://www.fj543.com/hack/ 1.提示语:在浏览器端用脚本进行身份验证是很容易被破解的. 查看源代码,密码在JS脚本中,典型的本地验证(在浏览器按F1 ...

  6. linux设备驱动读书笔记

    linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...

  7. linux设备驱动读书笔记(转)

    linux设备驱动读书笔记 设备驱动简介 机制:提供什么能力 策略:如何使用这些能力 在编写驱动时, 程序员应当编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. ...

  8. 华南理工计算机考研王道论坛,复习详尽攻略:梦圆华工中探花

    复习详尽攻略:梦圆华工中探花 自助者天助之,考研也是如此.你必须十分努力,才能看起来毫不费力.下面分享一位前辈的考研经验. 作者 91淘气小卒 次阅读 2017-01-16 [摘要]自助者天助之,考研 ...

  9. linux的网络命令整理 更新中

    linux的网络命令整理 更新中 1.安装包: net-tools 主要命令: netstat , ifconfig , route , iptunnel iproute 主要命令: ss , ip ...

最新文章

  1. 【PC工具】智能抠图软件,绿色免安装抠图神奇抠图工具
  2. 天气预报中的风向到底有啥用?
  3. SAP JAM的dashboard
  4. html5 --- canvas绘制网格并画x、y轴
  5. 在Java中调用Python,java面试题,java初级笔试题
  6. Android底层控制系统设置的命令集合
  7. OpenGL ES之GLSurfaceView学习一:介绍
  8. 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建
  9. mysql8从入门到精通电子书_MySQL 8从入门到精通(视频教学版)
  10. PopWindow使用实战
  11. IP-Link简单实验配置
  12. HTML5分级标题,HTML5与CSS3基础教程:创建分级标题_html/css_WEB-ITnose
  13. 华为社招技术二面,总结复盘
  14. mysql按年级班级排序_一个sql语句的问题,按照如何按照年纪班级科目显示名次...
  15. JavaWeb之上传与下载
  16. 5个增加设计趣味性的方法
  17. daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...
  18. 怎样记账家庭成员收支,搜索查看明细
  19. 【预研】关于互联网广告:半小时读懂互联网广告新生态
  20. C语言m++与++m

热门文章

  1. 我的世界服务器生存模式维护,生存模式 - Minecraft Wiki,最详细的官方我的世界百科...
  2. 幽灵按钮html透明度,CSS3之传说中的幽灵按钮详解
  3. 和氟西汀类似的备注_最近火了“氟西汀”情侣备注,原因让人眼红,撩妹和疼媳妇的差距...
  4. macos调试linux内核,Mac下 XX 及任意程序的内置浏览器调试的实现
  5. python快速绘制cad断面图
  6. vue中 .env .env.development .env.production 详细说明
  7. 极客头条常见问题解答 FAQ
  8. 深入浅出认识Hive
  9. mybatis中resultMap返回类型
  10. echarts力导向图节点连线动画_D3.js 力导向图的显示优化(二)- 自定义功能