Linux
Linux基础知识到网络编程
Python_programer
书山有路勤为径,学海无涯苦作舟!
展开
-
Linux之线程安全
上一节我讲了Linux线程的一些基础知识,返现多线程是不安全的,会引发安全问题,所以今天就来讲一下Linux线程安全一节的内容! 1.线程安全概念 线程安全:多个线程同时操作临界资源不会出现数据二义性 2.线程安全的实现 这里要引入两个概念:同步与互斥 同步:临界资源访问的时序可控 互斥:临界资源访同一时间的唯一访问性 临界资源:多线程执行流共享的资源 原子性:不会被任何调度机制打断的操作,该操作...原创 2019-05-16 15:46:27 · 330 阅读 · 0 评论 -
Linux之线程(1)
今天讲下Linux线程这块的知识,我想很多人应该都知道多线程的重要性,现在多线程被运用在项目中的次数越来越多,而且面试中多线程也是必问的,所以要引起我们足够的重视将这块的知识学扎实。 1.线程的概念 在说线程之前我们不得不提到进程,从用户角度来说:进程是运行中的程序;操作系统角度来说:进程是操作系统对运行中程序的描述信息–进程描述符–pcb。 线程:在一个程序里的一个执行路线 或者说是:线程是一个...原创 2019-05-14 14:46:36 · 218 阅读 · 0 评论 -
linux之进程间通信(管道)
今天来谈谈进程间通信: 进程间通信简称也叫ipc! 基本介绍: 操作系统提供给用户的几种进程间通信方式。 操作系统为什么要给用户提供进程间通信方式:进程的独立性(虚拟地址空间加页表)----提供一个公共的媒介。 进程间通信是干什么的:进程间数据传输,数据共享,进程控制,事件通知,也正因为有不同的应用场景(不同的需求)因此操作系统也提供了多种不同的进程间通信方式继承于unix而来的管道(匿名管道/命...原创 2019-04-25 17:31:08 · 717 阅读 · 1 评论 -
Linux之动态/静态库
今天讲一下关于动静态库的生成和使用: 编写简单的加减乘除运算函数并打包成动/静态库,并分别使用 我将加减生成的是静态库,乘除生成的是动态库。 c/c++程序编译的过程: 1.预处理 :展开头文件,宏定义,条件编译处理等。通过gcc -E source.c -o source.i 2.编译:这里是一个狭义编译意义,指的是将预处理后的文件翻译成汇编代码的过程。通过gcc -S source.i生成,默...原创 2019-04-18 22:53:11 · 430 阅读 · 0 评论 -
Linux之自主实现minishell重定向功能
今天分享关于Linux下自主实现minishell重定向功能: 1.首先重定向是什么意思呢? Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作,操作句柄为文件描述符,可以将文件描述符想象成两个指针,相当于指针所指的内容变了。 2.Linux下常用的shell重定向 ...原创 2019-04-16 22:59:38 · 378 阅读 · 0 评论 -
Linux里的fork,popen,system函数
今天介绍一下Linux里fork,popen,system三个函数: 1.fork函数 fork函数是通过复制父进程来创建子进程,父子进程代码共享数据独有,这是一种分时拷贝技术,相对于vfork函数来说有较大的改进之处,返回值是来分流父子进程,对于父进程返回的是子进程的pid>0,对于子进程,返回的是0。 从图中可以看到它是一个系统调用函数 2.system函数 system函数可以看作是...原创 2019-04-11 16:52:43 · 466 阅读 · 0 评论 -
Linux之进程控制
今天分享一下关于Linux进程控制的知识点 1.进程创建 fork( )函数 #include<unistd.h> pid_t fork(void); 通过返回值判断是否创建成功,分流父子进程 对于父进程,返回的是子进程的pid>0 对于子进程,返回的是0 创建过程:通过复制调用父进程,创建一个新的进程(子进程)。 复制的父进程的pcb,复制了父进程大部分的数据,因此代码共享,...原创 2019-04-08 15:44:05 · 400 阅读 · 0 评论 -
linux实现一个简易的minishell
今天分享linux下实现一个简易的minishell程序: 我使用的xshell6写的程序,不知为什么就是看不惯centos6的黑框框,,, 通常连接xshell6后进入就是如下图所示: 用户可以输入一系列指令然后会将结果显示出来,如上图所示 所以要写一个简易shell需要遵循以下过程: 1.获取命令行 2.解析命令行 3.建立一个子进程(fork) 4.替换子进程(execvp) 5.父进程等...原创 2019-04-06 20:31:31 · 630 阅读 · 0 评论 -
linux之进程
今天分享一个关于自己总结的进程的知识点 1.进程的概念 在谈进程之前先说下操作系统这个名词,操作系统是什么? 简单的说操作系统就是一个为了让计算机更加好用,对计算机上的软硬件进行管理的软件。 现在回归正题,进程是什么? 从用户角度来说,进程就是运行中的程序。 从操作系统角度来说,进程就是操作系统对运行中程序的描述信息,即进程描述符–统称PCB。 描述信息包括:程序计数器,上下文数据,内存指针,记账...原创 2019-03-31 21:02:32 · 208 阅读 · 0 评论 -
Linux下需要了解的一些东西
今天分享一些关于linux有必要知道的东西: 1.Linux下的重要目录 1)/proc目录 Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。 2)...原创 2019-03-23 22:30:09 · 184 阅读 · 0 评论 -
Linux常用命令
今天分享一些关于我学习linux整理的常用命令 1.目录相关命令 ls 列出当前目录下的文件列表信息 linux下文件夹通常叫目录 当前:登陆成功后,打开终端所处的一个目录 -a 显示隐藏文件 linux下以.开头的文件是隐藏文件,默认不显示 -l 显示目录下文件的详细信息 pwd 显示当前所在路径 例如:/home/test — 绝对路径:以根目录作为起始的路径 相对路径:以当前路...原创 2019-03-16 17:08:00 · 172 阅读 · 0 评论