![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 55
ABC我的博客
主要是自己平时回顾起来方便
工作忙没时间更新了,望理解
展开
-
Linux 学习笔记 - make
了解make:(1)除非最简单的项目,任何一个商业项目都会包含多个源代码,而且在编译的时候会有很长很复杂的指令。(2)编程过程中还需要使用那些很少而且很难记忆的编译选项。(3)make是一种控制编译或者重复编译软件的工具。(4)make可以自动管理软件的编译内容、方式和时机,从而使程序员把更多的精力集中在编写代码上。简单的例子:用vi编辑一个简单的makefile,内容如下:sta...原创 2019-12-26 15:32:16 · 452 阅读 · 1 评论 -
本地电脑连接本地linux虚拟机——3.Linux上安装samba,用于文件共享服务——windows上编写代码,用SecureCRT编译运行代码
参考:https://jingyan.baidu.com/article/3a2f7c2ed314ef26afd611a1.html目的:能在windows上编写代码,用SecureCRT编译运行代码(1)首先需要安装samba程序,部分Ubuntu镜像已经自带;执行如下命令即可sudo apt-get install sambasudo apt-get install smbclient...原创 2019-12-24 21:57:48 · 556 阅读 · 0 评论 -
本地电脑连接本地linux虚拟机——2.安装SecureCRT并注册
前言:为什么要用SecureCRT?不直接在本机上用界面呢谈下个人想法:(1)linux一般用来做服务器,服务器一般都在机房里,采用远程登录的方式连接linux,很少去现场登录;(2)学习linux必须要熟悉终端的命令操作,用多了也会很熟练;(3)一般用两种方式VNC和SSH。VNC (Virtual Network Console),优点是实现图形化的远程控制,但是速度较慢,流量大。S...原创 2019-12-25 21:23:19 · 338 阅读 · 0 评论 -
本地电脑连接本地linux虚拟机——1.网段配置
(1) vmware–>编辑–>虚拟网络编辑器(2)虚拟机–>设置–>网络适配器–>自定义:特定虚拟网络,选择刚才保存的虚拟网络(3)在VM上点击连接终端查看ip,输入ifconfig(4)打开本地网络和共享中心,打开VMnet1适配器,分配了虚拟网段网段IP地址(5)测试效果:虚拟机ping本地主机本地主机ping虚拟机这样配置后发现不...原创 2019-12-24 20:50:59 · 410 阅读 · 0 评论 -
Linux 学习笔记—进程相关及fork函数
1 进程相关知识点 1.1 fork函数创建子进程1.2 父子进程通信创建子进程创建多个子进程原创 2018-10-26 17:46:26 · 146 阅读 · 0 评论 -
Linux 学习笔记—进程通信之 管道和命名管道
1.1 管道【掌握】管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。1.2 管道通信实例1.3 管道通信原理父进程的读段关闭,子进程的写段关闭,就形成了一条单向的管道。半双工通信,数据单向通信。1.4 管道缓冲区大小和优劣2.1 命名管道(FIFO) 非血缘关系间通信命名管道也是半双工的通信方式,但是它允许...原创 2018-10-26 18:03:12 · 281 阅读 · 0 评论 -
Linux 学习笔记—进程通信之 内存映射
1共享内存映射【掌握】mmap建立从虚拟空间到磁盘空间(硬盘)的映射1.1 父子间通信1.2 无血缘关系进程间通信写端读端:前面和写端一样2 匿名映射区用1.1父子间通信的程序来改的...原创 2018-10-26 18:14:18 · 237 阅读 · 0 评论 -
Linux 学习笔记—死锁的概念、产生原因、必要条件、处理方法
1.1 死锁的概念在多道程序系统中,虽可借助于多个进程的并发执行,来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险━━死锁。所谓死锁(Deadlock),是指多个进程在运行中因争夺资源而造成的一种僵局(Deadly_Embrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,...原创 2018-10-30 17:49:31 · 605 阅读 · 0 评论 -
Linux 学习笔记—进程调度及算法
5 进程调度Linux进程调度的目标1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效;2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间;3.保证公平和避免饥渴;4.SMP调度:调度程序必须支持多处理系统;5.软实时调度:系统必须有效的调用实时进程,但不保证一定满足其要求;5.1 多任务1、多任务操作系统就是能同时并...转载 2018-10-30 18:53:07 · 347 阅读 · 0 评论 -
Linux 学习笔记-内存管理之交换技术与虚拟内存的实现与作用
6 内存管理内存抽象:如果看过设计模式的人可能会知道,设计模式中提到最多的概念之一就是抽象,纯虚的基类作为接口就是对各种派生类对象的抽象。调用接口的用户,并不知道内部如何实现,因此内部实现的方法可能也有多种。地址空间也可以这样理解,32位机上,创建进程时操作系统为进程分配4GB的独立地址空间,用户可以使用这4GB的独立地址空间。但是,反过来一想,给每个进程都分配4GB地址空间,对于8GB内存的...原创 2018-11-04 16:46:24 · 1071 阅读 · 0 评论 -
Linux 学习笔记—内存池、线程池、进程池概念及实现
7 内存池、线程池、进程池及实现池由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即**“浪费”服务器的硬件资源,以换取其运行效率**。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接...原创 2018-11-04 16:58:37 · 621 阅读 · 0 评论 -
僵尸进程与孤儿进程,以及如何避免
僵尸进程与孤儿进程linux提供一种机制使子进程在退出时候,父进程能够收集到子进程的结束状态信息(子进程pid,退出状态,运行时间等)。父进程需要调用 wait/waitpid来获取这些信息。父进程收集这些信息后这些信息才会释放。linux下新进程的创建可以由fork来产生新的子进程。然后根据fork的返回值(小于0,等于0,大于0)判断是fork出错,子进程还是父进程。通常情况下,父进程需要...原创 2019-09-22 20:11:52 · 836 阅读 · 0 评论 -
Linux 学习笔记—线程通信总结
3.3 互斥与同步的区别:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:主要是流程上的概念,是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。3.4 互斥锁、条件变量...原创 2018-10-28 17:04:52 · 127 阅读 · 0 评论 -
Linux 学习笔记—线程同步之读写锁、自旋锁、屏障
3.2.1 读写锁读写锁和互斥体类似,不过读写锁有更高的并行性,互斥体要么是锁住状态,要么是不加锁状态,而且一次只有一个线程可以对其加锁。而读写锁可以有3个状态,读模式下锁住状态,写模式下锁住状态,不加锁状态。一次只有一个线程可以占有写模式的读写锁,但是多个线程可以同时占用读模式的读写锁。读写锁适合对数据结构读的次数远大于写的情况。 当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个...原创 2018-10-28 17:00:10 · 184 阅读 · 0 评论 -
Linux 学习笔记—线程同步之互斥量与条件变量
线程同步(同步的意思是协同步调)线程同步机制包括互斥,读写锁以及条件变量等3.2.1 互斥量(互斥锁)**互斥量本质是一把锁,在访问公共资源前对互斥量设置(加锁),确保同一时间只有一个线程访问数据,在访问完成后再释放(解锁)互斥量。**在互斥量加锁之后,其他线程试图对该互斥量再次加锁时都会被阻塞,知道当前线程释放互斥锁。如果释放互斥量时有一个以上的互斥量,那么所有在该互斥量上阻塞的线程都会变...原创 2018-10-28 16:47:15 · 201 阅读 · 0 评论 -
Linux-ftp服务器 文件的上传和下载总结(2-匿名登录)
匿名用户登录服务器相对实名登录要用的更多一些,相对安全些0.预备知识:1.指定服务器可操作的目录2.匿名登录上传下载文件3.上传文件结果:4.下载文件结果:...原创 2018-09-23 22:07:09 · 1846 阅读 · 1 评论 -
Linux-lftp服务器 多文件和文件夹的上传和下载总结
lftp服务端访问 ftp服务器(是一个第三方的软件,需要安装)0.预备知识1.安装lftp2.下载上传文件、文件夹3.上传、下载结果4.小结使用ftp,更多的是作为客户端来使用,因为服务器端可能别人已经搭建好了。掌握怎么登录,如何从服务器端下载文件和文件夹到客户端,如何上传文件和文件夹到服务器去。...原创 2018-09-23 22:14:43 · 4609 阅读 · 2 评论 -
Linux 学习笔记 - 系统基础知识及基础命令
1.命令解析器2.光标快捷键3. Linux目录结构/bin :是Binary的缩写。这个目录存放着最经常使用的命令/boot : 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件/dev : 是Device的缩写。该目录下存放的是LINUX的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。/etc : 这个目录用来存放所有的系统管理所需要的...原创 2018-09-25 17:41:12 · 157 阅读 · 1 评论 -
Linux 学习笔记 - VIM编译器操作 命令模式-文本模式-末行模式
VIM是vi发展过来的一款文本编译器格式:vi test.txt一、命令模式:打开文件后,默认进入命令模式;二、文本模式(编译模式):需要输入一些命令,切换到文本模式;三、末行模式:在末行模式下可以输入一些命令。1.模式之间的切换2.命令模式下的操作3.文本模式下的操作4.末行模式下的操作5.分屏操作...原创 2018-09-26 21:37:48 · 465 阅读 · 3 评论 -
Linux 学习笔记 - gcc使用介绍
0.gcc简介gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。1.gcc编译过程:2.gcc相关命令3.测试hello.c...原创 2018-09-26 21:55:34 · 206 阅读 · 1 评论 -
Linux 学习笔记 - 静态库制作与使用介绍
1.准备工作(1)看我的上一个博客 - 《 Linux 学习笔记 - gcc使用介绍》(2)程序准备Head.h(在文件夹include中)add.c(在文件夹src中)sub.c (在文件夹src中)2.静态库的制作过程3.生成的文件4.静态库的优缺点...原创 2018-09-26 23:04:34 · 130 阅读 · 1 评论 -
Linux 学习笔记 - 动态库(共享库)的制作与使用及执行失败的解决方案
动态链接库 :在运行时被可执行程序调用,灵活度更高。后缀:.so 。类似于 Windows 平台下的 .dll 文件1.准备工作(1)看我的博客 - 《 Linux 学习笔记 - gcc使用介绍》(2)程序准备Head.h(在文件夹include中)add.c(在文件夹src中)sub.c (在文件夹src中)2.动态库的制作过程3、使用动态库3.1、方法1:gcc ...原创 2018-09-27 17:07:35 · 346 阅读 · 2 评论 -
Linux 学习笔记 - gdb调试常见命令及实例演示
1.gdb常见命令2.生成可执行文件如果在gcc编译时不再后面加-g 会出现如下错误加上-g 之后就可进行gdb调试了3.gdb调试3.1设置断点3.2 调试以及查看的命令主要是多练,练多了才可熟练的使用命令。linux系统中也可以安装IDE来调试,比如说QT.但是这种gdb调试也要掌握...原创 2018-09-28 11:04:15 · 302 阅读 · 0 评论 -
Linux 学习笔记—进程通信之 信号的概念机制通信实例
2.4信号2.4.1 信号的概念和机制信号是UNIX/Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们还可以作为进程间通信或修改行为的一种方式,明确地由一个进程发送给另一个进程。一个信号的产生叫生成,接收到一个信号叫捕获。2.4.2 阻塞信号集(信号屏蔽字),未决信号集的位图2.4.3 信号的处理——sig...原创 2018-10-28 15:56:16 · 286 阅读 · 0 评论 -
Linux 学习笔记—进程通信之 消息队列、信号量、共享内存的概念区别联系
2.5 消息队列(Message queues)消息队列是内核地址空间中的内部链表,通过linux内核在各个进程直接传递内容,消息顺序地发送到消息队列中,并以几种不同的方式从队列中获得,每个消息队列可以用IPC标识符唯一地进行识别。内核中的消息队列是通过IPC的标识符来区别,不同的消息队列直接是相互独立的。每个消息队列中的消息,又构成一个独立的链表。消息队列克服了信号承载信息量少,管道只能承载...原创 2018-10-28 16:07:21 · 965 阅读 · 0 评论 -
Linux 学习笔记—线程间通信的概念和线程控制函数及实例
1 线程间通信线程间无需特别的手段进行通信,由于线程间能够共享数据结构,也就是一个全局变量能够被两个线程同一时候使用。只是要注意的是线程间须要做好同步,一般用mutex。线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制。线程的基本概念线程的定义:线程也被称为轻量进程(LWP)计算机科学术语,指运行中的程序的调度单位。线程是进程中的实体,一个进程可以拥有多...原创 2018-10-28 16:21:51 · 135 阅读 · 0 评论 -
Linux-ftp服务器 文件的上传和下载总结(1-实名登录)
1.安装和配置vsftpd不然会这样2.重启服务器3.实名登录4.上传文件4.1创建文件—再开一个终端,在home/ftptest目录下创建文件haha4.2 命令:put filename成功上传到服务器zy的home目录下附:【注意】如果文件在home/ftptest/test目录下,但是连接ftp的目录为home/ftptest会出现如下错误需要进行...原创 2018-09-23 17:42:30 · 11792 阅读 · 2 评论