本章内容

1、什么是Linux

2、Linux内核的组成

1、1 什么是Linux

Linux课划分为以下四部分

a)Linux内核

b)GNU工具

c)图形化桌面环境

d)应用软件

1.1.1 深入探究Linux内核

内核主要负责以下四种功能

a)系统内存管理

b)软件程序管理

c)硬件设备管理

d)文件系统管理

1、系统内存管理

内核不仅管理服务器上的可用内存,还可以创建和管理虚拟内存(即实际上不存在的内存)。

内核通过硬盘上的存储空间来实现虚拟内存,这块区域成为交换空间(swap space)。内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统认为它拥有比物理内存更多的可用空间。

内存存储单元按组划分成很多块,这些块被称为页面(page)。内核将每一个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存,哪些页面被换到了磁盘上。

内核会记录那些内存页面正在使用,并自动把一段时间未访问的内存页面复制到交换空间区域(称为换出,swapping out)——即使还有可用内存。

当程序要访问一个已经被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给他让出空间,然后从交换空间换入请求的内存页面。

2、软件程序管理

Linux操作系统将运行中的程序称为进程。内核控制着Linux系统如何管理运行在系统上的所有进程。

内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,他会将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。

3、硬件设备管理

内核的另一个职责是管理硬件任务。

任何Linux系统需要与之通信的设备,都要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。

Linux系统将硬件设备当成特殊的文件,称为设备文件。

4、文件系统管理

Linux内核支持通过不同类型的文件系统从硬盘中读写数据。Linux支持从其他系统采用的文件系统中读写数据。

shell是一种特殊的交互工具。他为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。

《Linux命令行与shell脚本编程大全》读书笔记————第一章 初识Linux shell相关推荐

  1. Linux命令行与Shell脚本编程大全读书笔记

    Linux内核4大主要功能: 内存管理 进程管理 设备管理 文件系统管理 Linux系统启动的进程和脚本管理 1./etc/inittab   管理系统开机时会自动启动的进程 2./etc/init. ...

  2. 《Linux命令行与shell脚本编程大全》笔记一

    第一章 初始 Linux shell Linux内核主要四种功能: 1.系统内存管理 2.软件程序管理 3.硬件设备管理 4.文件系统管理 shell:交互工具. 第三章 基本的bash shell ...

  3. 《Linux命令行与shell脚本编程大全》笔记3

    sed进阶 多行命令 sed的局限在于只能针对单行数据执行操作.在sed读取数据流时,它会基于换行符的位置将数据分成行. 如果你正在查找一个短语Linux System Administrators ...

  4. 《Linux命令行与shell脚本编程大全》第三章

    3.1 启动 shell GNU bash shell能提供对Linux系统的交互式访问.它是作为普通程序运行的,通常是在用户登录终端时启动.登录时系统启动的shell依赖于用户账户的配置. /etc ...

  5. 《Linux命令行与shell脚本编程大全》第十三章 学习笔记

    1.for命令 for命令的基本格式如下: for var in list do commands done 在每次迭代中,变量var会包含列表中的当前值.第一次迭代会使用列表中的第一个值,第 二次迭 ...

  6. 《Linux 命令行与 shell 脚本编程大全》第2章

    第二章:走进shell 哑终端(dumb terminal):通常是由通信电缆连接到Unix系统上的显示器和键盘(后来出现鼠标).这个简单的组合提供了向Unix系统输入文本数据和显示文本结果的一条捷径 ...

  7. linux编程手册读书笔记第一章(20140329)

    (2)管道.FIFO.套接字.设备(比如终端.伪终端)都支持非阻塞模式.(因为无法通过open()来获取管道和套接字的文件描述符.所以要启用非阻塞标志,就必须使用fcntl()的F_SETFL命令) ...

  8. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: 转载于:https://www.cnbl ...

最新文章

  1. Nagios监控笔记上
  2. 5G NR — gNB
  3. Linux 下 ps 命令的使用详解
  4. bootstrap中点击左边展开
  5. 【前端就业课 第一阶段】HTML5 零基础到实战(十一)canvas 基础
  6. dj鲜生-10-用户注册的继续-错误提示的前端显示-防重名验证
  7. div+css 英文或数字自动换行
  8. 51单片机C语言编程100例pdf,51单片机C语言编程100例.doc
  9. 深度学习系列之Anchor based 和 Anchor free 目标检测方法
  10. net bios支持服务器,禁用NetBIOS巧妙解决网络不通故障
  11. 目录-Amira用户指南
  12. henauOJ1042(折纸)
  13. JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。”问题解决方法
  14. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
  15. css 平移到某个位置_Html基本的动画效果(平移,旋转)
  16. java:mybatis:工具类example详解
  17. Spring框架概述
  18. 【以太网硬件七】扰码和mBnB有什么区别和相同点?
  19. Windows程序设计--击键消息和字符消息
  20. 解决:Flarum完整项目拉取到本地点击任何链接都弹出“请求资源不存在”(报404)

热门文章

  1. C语言 百炼成钢16
  2. PacMan开发-碰撞检测实现
  3. 给文章中重复标签排序
  4. Uva_11235_Frequent values
  5. dwz ajax session超时跳转登录页(struts2自定义阻碍器)
  6. [转]编程之美数组分割问题
  7. 简介如何查看执行计划以及执行计划的准确性
  8. RHEL 6 配置yum源
  9. Hadoop概念学习系列之Hadoop HA进一步深入(二十八)
  10. 理解 JMeter 聚合报告(Aggregate Report)