操作系统 Linux系统

Linux操作系统

预备知识(Operating System):

1、GNU项目,GNU项目是一个自由软件项目,旨在建立一个完全自由开放通用的UNIX软件平台。

2、操作系统:管理计算机硬件和软件资源的程序,而且操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面

3、操作系统基础知识:一、四个特性:并发:同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件);二、共享:系统中的资源可以被内存中多个并发执行的进线程共同使用;三、虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个;四、异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进。

4、进程和线层:进层状态和多线层的状态(就绪状态,执行状态,阻塞状态);队列(就绪队列和阻塞队列);

5、进程和线层:

  一、进程就是一个程序在一个数据集上的一次动态执行过程。进程一般由程序、数据集、进程控制块三部分组成。程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源进程控制块用来记录进程的外部特征,描述进程的执行变化过程系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志

  二、进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。

  三线程也叫轻量级进程,它是一个基本的CPU执行单元,也是序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能。多线层共用资源,包括代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储),但是每个线程拥有自己的栈段, 寄存器的内容,栈段又叫运行时段,用来存放所有局部变量和临时变量

  四、线程则是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

6、同步和异步:同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作

注:1、父和子进程使用进程间通信机制(https://www.cnblogs.com/xdyixia/p/9257668.html,同一进程的线程通过读取和写入数据到进程变量来通信。线程之间的通信更方便。
  2、进程同步问题:生产者-消费者问题;哲学家进餐问题;读者-写者问题;同步的解决方案:管程,信号量。

7、IO模型:

  同步IO、synchronous IO做”IO operation”的时候会将process阻塞,所以blocking IO,non-blocking IO,IO multiplexing都属于synchronous IO。非阻塞IOIO在执行recvfrom这个system call的时候,如果kernel的数据没有准备好,这时候不会block进程。但是,当kernel中数据准备好的时候,recvfrom会将数据从kernel拷贝到用户内存中,这个时候process是被block了。

  异步IO、用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先它会立刻返回,所以不对用户进程产生任何block。kernel会等待数据准备完成,然后将数据拷贝到用户内存,当这一切都完成之后,kernel会给用户进程发送一个signal

  阻塞IO、在linux中,默认情况下所有的socket都是blocking,blocking IO的特点就是在IO执行的两个阶段都被block。recvfrom这个系统调用,kernel(实时操作系统)准备数据。数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),kernel要等待完整的数据。用户进程这边,整个进程会被阻塞。当kernel一直等到数据准备好了,它就会将数据从kernel中拷贝到用户内存,然后kernel返回结果,用户进程才解除block的状态,重新运行起来。

  非阻塞IO:非阻塞将大的整片时间的阻塞分成N多的小的阻塞, 所以进程不断地有机会 ‘被’ CPU光顾”。即每次recvform系统调用(阻塞IO)之间,cpu的权限还在进程手中,这段时间是可以做其他事情的。

  IO多路复用:select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO,基本原理就是select/epoll这个function会不断的轮询所负责的所有socket(kernel会“监视”所有select负责的socket,所以优势在于IO多路复用可以同时处理多个connection),当某个socket有数据准备好了,就通知用户进程调用read,将数据从kernel拷贝到用户进程。

8、虚拟地址:进程创建加载的时候,自身感知获得了一个连续的内存地址空间,然而实际上内核之分配了一个逻辑上的虚拟内存空间,并且对虚拟内存和磁盘通过mmap做映射关系,对虚拟内存和物理内存的映射关系;等到程序真正运行的时候,需要某些数据,并不在虚拟内存中,才会触发缺页异常,进行数据拷贝。

2、Linux系统的优点:

Linux操作系统:

一、Linux目录系统:

1、/和~:

  /是根目录,Linux系统只有一个/目录;~是家目录,每个用户都有一个家目录。如果是root用户(根用户、超级用户),~表示的是:/root;如果是普通用户a,~表示的是:/home/a

2、文件基本属性: 

  一、在Linux中第一个字符代表这个文件是目录、文件或链接文件等。

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

  二、文件权限,前10个字符表示文件类型和权限,读r(4),写w(2),执行x(1),没有权限-。(注:可用三位二进制数表示权限

3、绝对路径和相对路径:

  绝对路径:路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录;相对路径:不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man

二、Linux操作系统常用命令操作:

1、文件操作:ls/file、cp、mv、ln、rm、tar、chmod/chowm/charp/touch

2、目录操作:mkdir、rmdir、cd、pwd

3、用户切换:su、sudo、login;passwd;exit/reboot、init0/shutdown、halt/poweroff

4、获取帮助:[命令]+:-h、-?、--help;man、info+[命令]

三、Linux操作系统,shell编程:

1、变量、流、管道;

变量是一种临时记录字符串的方式,export(变量的赋值);$(提取变量的值)export name=$(pwd)/tar.tar

是打开文件的一种形式,cat、echo、sort、uniq、head、tail、wc;>(文件内容删除)、>>(在文件的尾部增加输出的内容)格式:命令>(>>) 文件,如 cat greptest >liutest

管道(|)是一种进程的通信方式,将前一个命令的输出发送给后一个命令。grep "grep" greptest | tail -n 3

2、进程操作:

进程查看,ps

进程控制,kill;语法:kill { [{ -信号 | -s 信号}]  进程号 | -l [信号]  } -s 信号 或者 -信号 :发送信号到指定进程;-l 信号:将信号数值翻译成信号的名称

进程切换,bg和fg

3、网络操作

网络配置:ifconfig

ping:ping [参数] 目标地址

ARP:将IP数据报转换为以太网的帧,并发送给临近的网络接口

FTP:FTP服务器主要提供远程文件下载服务

4、系统变量(表示特殊含义的系统变量):$+n/#/0/?/*/@/$/!

5、shell编程设计:

  变量、条件测试>>文件状态测试、逻辑操作(-a、-o、!)、字符串测试(-z、n;=、!=、<、>)、数值测试(-eq、-ne;(-lt、-le)、(-gt、-ge))

  流程控制语句:if;case(字符串str所匹配的情况,执行相应的程序分支);while、until;for

  常用命令:

    read;

    select;

    大括号{  }(将一个非整体的字符串强制解释成一个整体如:[$1 = ‘-n‘] && { echo hello" ls });

    "(单引号),取消所有的转义符号、通配符和分隔符、""(双引号),取消通配符和分隔符的转义,但是对于变量依然进行转义。‘12 $a‘和"12 $a"中的a=12两者表达的意思不同!

    funname(){...}函数

四、Linux操作系统 vi/vim编辑器:

1、三种操作模式:命令模式、底行模式、文本输入模式

  默认模式是命令模式,在命令模式下模式切换为底行模式;按i、a、o等,命令模式切换为文本输入模式;两种模式按ESC可以切换为命令模式。

  底行模式用于处理带有参数的命令

2、可视模式:命令模式下按v,模式切换为可视模式,按v退出可视模式。

3、取代模式(Replace mode-按键r和R):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止。

4、vi键盘图

五、Linux操作系统 linux yum 命令:

1、yum 语法:yum [options] [command] [package ...]

2、yum常用命令:

  1.列出所有可更新的软件清单命令:yum check-update

  2.更新所有软件命令:yum update

  3.仅安装指定的软件命令:yum install <package_name>

  4.仅更新指定的软件命令:yum update <package_name>

  5.列出所有可安裝的软件清单命令:yum list

  6.删除软件包命令:yum remove <package_name>

  7.查找软件包 命令:yum search <keyword>

  8.清除缓存命令:

    yum clean packages: 清除缓存目录下的软件包

    yum clean headers: 清除缓存目录下的 headers

    yum clean oldheaders: 清除缓存目录下旧的 headers

    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

原文地址:https://www.cnblogs.com/yinminbo/p/11723783.html

时间: 2024-10-09 11:05:00

操作系统 Linux系统的相关文章

虚拟机安装Linux系统以及在Linux系统里上网

虚拟机安装Linux系统以及在Linux系统里上网 本次实验是虚拟机里安装Linux系统和在虚拟机里面使用Linux上网 选择自定义点击下一步 默认点击下一步 选择稍后安装系统,点击下一步 选择客户操作系统linux系统,在版本里找到Red Het Enterprise Linux6 输入虚拟机名称和选择虚拟机安装位置,点击下一步 选择处理器数量和每个处理器的核心数量,点击下一步 虚拟机内存选择2GB,Linux系统需要4GB的内存稍后安装时会使用模拟内存模拟出4GB的内存.点击下一步 选择使用

Linux是什么系统?Linux系统有何优势?

提及操作系统,可能很多人都会想起Linux,Linux发现到现在可谓是拥有很多铁粉,对于了解它的人都知道,Linux在我们的生活当中有着非常重要的作用,覆盖了我们生活的各个方面.今天为大家介绍一下Linux是什么操作系统?Linux系统有何优势? Linux是什么? Linux是最受欢迎和最常用也是公认最安全的开源操作系统.Linux相当于计算机上所有软件下面的一个软件,负责接受来自这些程序的请求并将这些请求传输到计算机硬件.简单的来说操作系统就是连接计算机硬件和软件的桥梁. Linux与我们之

linux 系统中多重操作系统引导管理器grub学习

注:以下学习均在X86架构的CPU下搭建完成的linux系统. 一.linux系统启动流程简介 POST开机自检-->加载BIOS-->读取MBR-->启动Boot Loader/Grub程序-->加载内核-->用户层init依据inittab文件来设定运行等级-->init进程执行rc.sysinit-->启动内核模块-->执行不同运行级别的脚本程序-->执行/etc/rc.d/rc.local-->执行/bin/login程序,进入登录状态

瑞星推国内唯一Linux系统杀毒软件 国产操作系统还需国产安全软件保护

下面是基于KWIC 的关键字匹配算法(管道+过滤器模式下实现) 关键部分的管道+过滤器 软件体系下的实现, 在很多的关键字搜索平台都使用了这一 循环移位+排序输出的 关键字匹配算法: 具体需求如下: 1.使用管道-过滤器风格: 每个过滤器处理数据,然后将结果送至下一个过滤器,.要有数据传入,过滤器即开始工作.过滤器之间的数据共享被严格限制在管道传输 四个过滤器: 输入(Input filter): 从数据源读取输入文件,解析格式,将行写入输出管道 移位(CircularShifter filte

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

Linux系统安全基础知识

基本的系统安全 物理安全和登录安全 禁用root登录和sudo 可插拔认证模块(PAM) 基于PAM的口令安全和口令策略 基于PAM的访问控制 1.基本的系统安全 安全的磁盘布局 使用挂装选项提高文件系统的安全性 查找并取消文件/目录的非必要的特殊权限 避免安装不必要的软件包 配置软件包更新的Email通知 关闭不必要的服务 关闭IPv6的内核功能 1) .安全的磁盘布局 1.如果是新安装系统,对磁盘分区应考虑安全性: 1)根目录(/)中必须包括 /etc./lib./bin./sbin,即不能

在虚拟机的Linux系统下安装wineqq

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 本文参考教程:http://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=7688&extra=page%3D1 WineQQ下载地址:http://pan.baidu.com/s/1c2FSTsk qq是一款国内非常著名的聊天工具,但是在腾讯的官网并没有Linux操作系统下的qq安装版本,但是我们也有办法在Linux系统下安装qq,下面我们实现在Linux安装w

Linux系统理解以及Linux系统学习心得

原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Linux系统的理解 1.加载Linux内核准备:在加载基本输入输出模块(BIOS)之后,从磁盘的引导扇区读入操作系统的代码文件块到内存中,之后开始整个系统的初始化. 2.main.c的start_kernel函数是整个操作系统的入口,这也与Linux是基于C语言的特性相符,start_kernel具体做的动作很多

浅析Linux系统下用户与权限管理

Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过程中,又必然存在对有限计算机资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立.合理的使用计算机. 一.用户和用户组管理   (一)用户及用户组相关基本概念  用户:泛指计算机的使用者.用计算机可识别的用户ID(UID,user id)标识. 用户组:用户容器,用来将多个用户合并为一