前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 基础

Linux 基础

作者头像
Yif
发布2019-12-26 14:49:24
1.4K0
发布2019-12-26 14:49:24
举报
文章被收录于专栏:Android 进阶Android 进阶
undefined
undefined

Linux文件系统介绍

在 Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件

也就是说在LINUX系统中有一个重要的概念:一切都是文件

Linux支持的5种文件类型:

文件类型

描述

示例

普通文件

用来在辅助设备(如磁盘)上存储信息和数据

包含程序源代码、可执行程序、图片、声音、图像等

目录文件

用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名

/root、/home

链接文件

用于不同目录下文件的共享

当创建一个已存在文件的符号链接时,系统就创建一个链接文件,这个链接文件指向已存在的文件

设备文件

用来访问硬件设备

包括键盘、硬盘、光驱、打印机等

命名管道(FIFO)

是一种特殊类型的文件、Linux系统下,进程之间通信可以通过该文件完成

Linux运行级别

运行级别就是操作系统当前正在运行的功能级别。

级别是从06,具有不同的功能。这些级别定义在/ect/inittab文件中。

这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/ect/rc.d目录下的文件。

Linux下的7个运行级别:

  • 0: 系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
  • 1: 单用户工作状态root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
  • 2: 多用户状态,没有NFS支持。
  • 3: 完整的多用户模式,有NFS,登陆后进入控制台命令行模式。
  • 4: 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
  • 5: X11控制台,登陆后进入图形GUI模式,XWindow系统。

标准的Linux运行级别为5或者3

运行级别原理

总结:

  • 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
  • /etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
  • rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
  • 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K(Kill)开头的文件,系统将终止对应的服;对于以S(Start)开头的文件,系统将启动对应的服务
  • 查看运行级别用runlevel
  • 进入其它运行级别用:init N,如果init 3则进入终端模式,init 5则又登录图形GUI模式
  • 另外init 0为关机,init 6为重启系统 标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着XWindow系统。不同的运行级别有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。在启动后的lilo提示符下输入: init=/bin/shrw

这样就可以使机器进入运行级别1,并把root文件系统挂为读写。它会路过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级。

Linux进程状态

Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

  • 不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号;
  • 暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作;
  • 就绪状态:在 run_queue 队列里的状态;
  • 运行状态:在run_queue 队列里的状态;
  • 可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起;
  • zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉;
  • 退出状态;

符号:

  • D : 不可中断 Uninterruptible(usually IO)
  • R : 正在运行,或在队列中的进程
  • S : 处于休眠状态
  • T : 停止或被追踪
  • Z : 僵尸进程
  • W : 进入内存交换(从内核 2.6 开始无效)
  • X : 死掉的进程

孤儿进程

一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。

孤儿进程将被 init 进程(进程号为 1)所收养,并由 init 进程对它们完成状态收集工作。

由于孤儿进程会被 init 进程收养,所以孤儿进程不会对系统造成危害。

僵尸进程

一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait() waitpid() 获取了子进程信息后才会释放。如果子进程退出,而父进程并没有调用 wait()waitpid(),那么子进程的进程描述符仍然保存在系统中,这种进程称之为僵尸进程。

僵尸进程通过 ps 命令显示出来的状态为 Z(zombie) 系统所能使用的进程号是有限的,如果大量的产生僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程。 要消灭系统中大量的僵尸进程,只需要将其父进程杀死,此时所有的僵尸进程就会变成孤儿进程,从而被 init 所收养,这样 init 就会释放所有的僵死进程所占有的资源,从而结束僵尸进程。

kill -9 发送SIGKILL信号给进程,将其终止,但对于以下两种情况不适用

  1. 该进程是僵尸进程(STAT z),此时进程已经释放所有的资源,但是没有被父进程释放。僵尸进程要等到父进程结束,或者重启系统才可以被释放。
  2. 进程处于“核心态”,并且在等待不可获得的资源,处于“核心态 ”的资源默认忽略所有信号。只能重启系统。

kill 只能杀死处于用户状态的进程。

kill -l查看可用的信号(15是TERM,即终止信号)。

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

代码语言:javascript
复制
HUP     1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)
img
img

内存管理

img
img

内核负责管理四个方面:

  1. 进程:内核决定哪个进程可以使用CPU;
  2. 内存:内核管理所有内存,为进程分配内存,管理进程间共享内存及空闲内存;
  3. 设备驱动程序:作为硬件系统(磁盘)和进程之间的接口,内核负责操控硬件设备;
  4. 系统调用和支持:进程通常使用进程调度与内核进行通信;

内核与用户进程

  1. 内核与用户进程之间最大的区别是: 内核在内核模式中运行,而用户进程则在用户模式中运行。 在内核模式可以不受限制的访问中央处理器与内存,这非常危险。它可以轻松使整个系统崩溃,把那些只有内存可以访问的空间称为内核空间。用户模式对内存和中央处理器访问有一定的限制,可访问的内存空间很小,对CPU操作也安全。用户空间指的是那些只有用户进程可以访问的空间。内核分配给用户进程的内存称为用户空间。Linux大部分操作都是发生在用户空间。
  2. 一个用户代表一个实体,他有权限运行在用户进程,对文件拥有所有权。每一个用户都有一个用户名,然而内核是通过用户id来管理用户的。最关键的是root用户,意思超级用户,他不受各种权限限制,可以终止其他用户进程,读取系统中的任何文件。
  3. 用户组是指一组用户的集合,主要作用是允许一个用户同组内的其他用户共享文件权限。

进程管理

进程管理涉及进程的启动、暂停、恢复与终止。一个进程让出CPU使用权给另一个进程称为CPU的上下文切换。

img
img

内核是在上下文切换的时间段间隙中运行。

img
img

通常设备只能在内核模式中被访问,如用户进程请求内核关闭系统电源。

系统调用:

img
img
img
img
img
img
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年7月18日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux文件系统介绍
  • Linux运行级别
    • 运行级别原理
    • Linux进程状态
      • 孤儿进程
        • 僵尸进程
        • 内存管理
          • 内核与用户进程
            • 进程管理
              • 系统调用:
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档