第一章 初始Linux shell

1.1 linux的组成部分:

  1.   Linux 的内核
  2.  GNU 工具组件  :bash shell 就是其中之一
  3. 图形化桌面环境
  4. 应用软件

1.1.1 深入了解Linux 内核

  1.      linux 系统的核心就是linux内核,它控制着所有的硬件和软件,必要时分配硬件,需要时执行软件;LInux 内核主要有四个功能:
    •    系统内存管理:
    •    软件程序管理
    •    硬件设备管理
    •    文件系统管理


  2. 系统内存管理
  •    linux内核的系统内存管理是linux系统的一项基本功能,但也是重要的功能之一;内核不仅管理物理内存【RAM】,也可以创建和管理虚拟内存【可以认为是交换区间SWAP】,内核可以实现在SWAP和RAM不断的交换内存页面中的内容,这样可以认为实际上linux系统有比物理内存更大的内存空间。
  •   linux 内存,包括RAM SWAP 会被分成很多块,每一个块成为一个页面【page】;linux内核会把每一个page 放在RAM或SWAP中;然后内核会维护一个内存页面表page table】,来记录那些内存页面被放到RAM,那些page 被放到SWAP中
  •  swapping out:内核会把一段时间内没有访问的page 复制到SWAP中,把RAM中的page释放,这个过程成为swapping out
  • swapping in:   如果运行的程序需要的内容在swap中,需要把这个内存所在的page cp到RAM ,这个过程叫做swapping in
  • 共享内存:在linux系统中每一个进程都有自己的内存页面【page】,进程不能访问其他进程正在访问的内存页面【page】;linux内核也维护着自己的内存区域,为了安全起见,用户进程也不能访问linux内核维护的内存页面。这样为了方面不同的进程可以同时访问同一个内存页面,需要创建一个共享内存【share memery】;这样多个进程可以在这个共享内存page上面进行读、写操作。
  • 可以用 ipcs 命令来看linux系统的 share memery
    ------ Shared Memory Segments --------
    key        shmid      owner      perms      bytes      nattch     status      
    0x01014360 3440642    ads       777        33060      572                     
    0x01014361 133693444  ads       777        33554432   22                      
    0x01014362 133726213  ads       777        33554432   22                      
    0x01014363 133758982  ads       777        33554432   22                      
    0x01014364 133791751  ads       777        33554432   22                      
    0x01014365 133824520  ads       777        33554432   22  
    shmid是指共享内存的id,woner 是指创建共享内存的用户,perms是设置这个共享内存的使用权限。

  • cat   /proc/meminfo

MemTotal:     49448420 kB      RAM 的大小
MemFree:        449904 kB      空闲的RAM
Buffers:        767392 kB      
Cached:       42623216 kB      缓存的大小;虽然RAM基本用完,但大部分是cached 这个是缓存,可以随时释放,这个正常的现象,不是内存泄漏
SwapCached:          0 kB
Active:       14387852 kB
Inactive:     33254860 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:     49448420 kB
LowFree:        449904 kB
SwapTotal:     8388600 kB    SWAP 空间的大小,只有在RAM 不够用的时候在会用SWAP 的空间
SwapFree:      8388392 kB
Dirty:             856 kB
Writeback:           0 kB
AnonPages:     4252068 kB
Mapped:        1446864 kB


          2. linux系统软件程序管理

  •           linux系统中运行的程序叫进程【process】,process可以在前台运行,将运行结果显示在屏幕上,也可以在后台运行;linux内核控制着linux系统如果管理运行在系统上的所有进程。linux系统在启动时,内核创建了一个进程init,pid=1;当内核启动时她会将init进程加到虚拟内存中;内核在启动其他进程时会在虚拟内存中给新进程分配一个块【page】来存储次进程的数据和代码
  • LInux现在用一个表来管理在系统开机时自启动的进程,在linux系统中这个表通常位于/etc/inittab 文件中
  • LInux启动分5个级别: 1 单用户级别    3 多用户级别   5 x shell 级别

ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:07 init [3]                                           
    2 ?        S<     0:02 [migration/0]   ---->这种带中括号的说明:此进程因为一段时间没有访问,它的page已经被swapping out了
    3 ?        SN     0:00 [ksoftirqd/0]
    4 ?        S<     0:00 [watchdog/0]
    5 ?        S<     0:01 [migration/1]
    6 ?        SN     0:00 [ksoftirqd/1]
    7 ?        S<     0:00 [watchdog/1]
 5737 ?        Ss     0:00 ./Process -c /home/......./......conf start   --->这些进程的page不断的访问,page一直在RAM里面
 5740 ?        S     25:22 ./Process -c /home/......./......conf start
 5741 ?        S     25:22 ./Process -c /home/......./......conf start

 S: sleep  睡眠状态、SW睡眠等待状态 、 R代表运行状态  initd 是睡眠状态

3. 硬件设备管理:

内核的第三个任务是管理硬件设备:任何的linux都需要跟硬件设备通信,都需要在硬件设备中加入驱动程序,驱动程序好比内核和硬件之间的中间人;现在的linux系统会支持所有的硬件;linux系统把硬件设备当成特殊的文件,成为设备文件;设备文件有三种:

  •      字符型设备文件:    c   指处理数据时每次只能处理一个字符的设备  大多数的调制调节器【默认信号 ---->0 1 的数字信号】
  •      块设备文件  :  处理数据时每次能处理大块数据的设备: 硬盘
  •      网络设备文件:网络设备是指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设备【/dev/loop0  /dev/loop1】
  •     linux 系统对每一个设备文件都会创建一个节点,linux内核与设备的所有通信都是通过设备节点来完成的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值