Linux
文章平均质量分 74
ych9527
这个作者很懒,什么都没留下…
展开
-
ubuntu创建新用户发生的问题
文章目录无法创建家目录切换成普通用户后不显示$前面的路径无法创建家目录更改/home家目录权限为 755,并且添加对应的家目录即可切换成普通用户后不显示$前面的路径进入 etc/passwd 找到对应的用户,将bin/sh改成bin/bash即可...原创 2022-02-24 12:07:16 · 889 阅读 · 0 评论 -
linux随笔——计算机状态查看命令
1.netstat查看网络状态的工具n:拒绝显示别名,将能显示成数字的全部转化成数字l:仅仅显示在Listen的服务状态p:显示建立相关链接的程序名t:仅显示tcp相关选项u:仅显示udp相关选项a:显示所有选项2.pidof查看服务器的进程id语法:pidof [进程名]功能:通过进程名,查看进程id3.xargs将重定向的内容,作为命令行参数传送给对方4.iostat查看io状态5.cat /proc/cupinfo查看CPU信息6.cat /proc/mem原创 2021-05-31 09:29:55 · 263 阅读 · 1 评论 -
多线程——线程池
文章目录1.线程池的作用2.固定数量线程池的模拟实现1.线程池的作用线程池是一种设计模式,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,避免了在处理短时间任务时创建和销毁线程的代价线程池不仅仅能保证内核的充分利用,还能防止过分调度,可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等数量2.固定数量线程池的模拟实现...原创 2021-04-28 22:10:08 · 230 阅读 · 0 评论 -
多线程——阻塞队列、信号量、环形队列
文章目录1.进程和线程异同2.基于阻塞队列实现生产者消费者模型1.进程和线程异同创建进程:父进程调用fork创建子进程,需要给子进程分配一批数据结构、页表、代码和数据数据结构中包括需要给新的子进程创建PCB,虚拟地址空间,与文件信号相关的数据结构为该进程开辟地址空间之后,将虚拟地址和物理空间通过页表进行映射在映射期间,为子进程代码和数据开辟空间,将代码和数据加载至合理的位置创建线程:内核层面:创建该线程的PCB、与创建该线程的进程共享地址空间分配该线程的资源、分配代码资源、数据资源pt原创 2021-04-24 22:34:15 · 999 阅读 · 0 评论 -
多线程——终止、分离、互斥、同步、生产者消费者模型
文章目录1. 线程的切换时间2.线程的终止1. 线程的切换时间我们线程的切换过程有两种:第一种是线程在CPU上面的时间片到了,操作系统将该线程剥离下来第二种是有优先级更高的进程,操作系统将优先级低的进程剥离下来,将优先级高的进程替换上去。这个过程发生在内核返回用户态之时,因为优先级的计算需要内核来进行比较。那么操作系统怎么知道我们处于用户态还是内核态呢?CPU的cr3寄存器之中记录了当前是内核态还是用户态的相关信息2.线程的终止主线程结束,整个进程也会随之结束,因为进程是承担资源的实体.原创 2021-04-20 13:20:46 · 546 阅读 · 0 评论 -
Linux——线程基础概念
文章目录1.线程是什么2.线程的优点3.线程的缺点4.线程的操作4.1POSIX线程库4.2多线程的创建4.3 ps -aL查看轻量级进程1.线程是什么1.在一个程序里的一个执行路线就叫做线程,更准确的定义是线程是“一个进程内部的控制序列”2.一切进程至少都是一个执行线程(进程:线程=1:n)3.线程在进程内部运行,本质是在进程地址空间运行(一个进程的多个线程共用一块地址空间)4.在Linux系统中,看到的PCB都是轻量级进程(线程的本质是轻量级进程)5.通过进程的虚拟地址空间,可以看到进程的大原创 2021-04-14 09:38:37 · 343 阅读 · 0 评论 -
Linux进程信号——未决、递达
文章目录1.Core Dump1.1ulimit命令1.2Core Dump是什么1.3Core Dump是一种事后调试1.4Core Dump调试演示1.5验证段错误是11号信号1.6为什么云服务器默认关闭Core Dump2.信号的几种概念3.信号的保存和发送3.1信号的保存3.2信号的发送4.信号在内核中的示意图5.sigset_t6.信号集操作函数1.Core Dump1.1ulimit命令ulimit命令是查看或者设置当前用户或者进程使用资源的阀值如上图所示我们的core fiel的大小原创 2021-04-12 15:56:40 · 936 阅读 · 0 评论 -
Linux进程信号——信号的产生
文章目录1.信号的概念2.通过Ctrl c分析信号2.1Ctrl c的作用2.2 signal接口2.3证明ctrl +c本质是信号2.4总结3.信号处理的常见方式4.信号的产生方式4.1通过终端按键产生4.2调用系统函数向进程发送信号4.3.1调用kill4.3.2调用rasize4.3.2.1使用演示4.3.2.2linux中9号信号不能被捕捉4.3.3调用abort4.3软件条件产生信号4.3.1使用演示4.3.2 利用alarm验证IO对效率的影响4.4硬件异常产生信号4.5总结1.信号的概念信原创 2021-04-09 11:14:06 · 3632 阅读 · 9 评论 -
进程间的通信
文章目录1.进程间通信的目的1.进程间通信的目的进程之间具有独立性,这是普遍的性质,如果进程要发生通信,则代表需要进行数据的交互,即进程的数据由毫不相关,变成了有可能相关,一些独立的数据也有可能变成了共享的。数据传输:一个进程需要将它的数据发送给另外一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件(比如进程终止要通知父进程)进程控制:有些进程希望完全能够控制另外一个进程的执行(如debug进程),此时控制进程希望能够拦截另一个进原创 2021-04-07 13:52:02 · 816 阅读 · 1 评论 -
进一步了解系统I/O
文章目录1.再次理解open接口1.再次理解open接口原创 2021-03-31 10:00:36 · 3996 阅读 · 6 评论 -
模拟实现迷你shell、系统文件I/O
文章目录1.模拟实现shell1.1思路2.2实现代码1.模拟实现shell1.1思路1.我们的shell需要展示当前用户、主机、当前目录、命令行提示符我们知道,shell中这些是一直在显示的,因此需要一个while循环来控制,即每次进程开始都需要打印这一串字符串2.需要能够获取命令行获取命令,可以建立一个字符数来存储命令行,通过fgets来从标准输入获取需要注意的是fgets会将最后一个换行符带入字符数组中,需要注意同时通过strtok将输入的字符串分解成标准的命令模式3.需要能够解析命原创 2021-03-22 16:44:16 · 410 阅读 · 1 评论 -
Linux——进程控制
文章目录1.进程的创建2. fork函数返回值2.1 fork为什么有两个返回值2.2 为什么给子进程返回0,给父进程返回子进程的pid?3 写时拷贝3.1代码为什么要共享3.2数据为什么要私有3.3何谓写实拷贝3.4实例分析4.fork常规用法和调用失败原因5.如何理fork和子进程创建6.进程终止5.1进程退出场景1.进程的创建fork在已存在进程之中创建一个新的进程,这个被创建的进程称之为子进程,原来已知的进程称之为父进程;进程是由可执行程序和它对应的数据和代码以及一堆数据结构组成(PCB,虚拟原创 2021-03-15 20:16:21 · 1099 阅读 · 8 评论 -
Linux——进程地址空间
文章目录1.什么是进程地址空间2.为什么要有进程地址空间2.1直接在物理内存上进行数据存储的危害2.2解决的办法3.管理进程地址空间1.什么是进程地址空间1.如下图所示,就是我们的进程地址空间概念图,从下至上依次是,代码区、常量区、全局数据区、堆区、共享区、栈区、命令行参数环境变量区、堆区。从下至上地址逐渐增加,可以通过编写程序来进行验证;2.进程并不是一直占用所有的地址空间资源,地址空间是进程的活动范围再来打个比方,你家里有个一万平的院子,这个院子就是你的活动范围,有游泳区,美食区,休闲区,运动原创 2021-03-08 18:45:53 · 509 阅读 · 3 评论 -
Linux——环境变量
文章目录1.环境变量是什么2.如何查看环境变量3.和环境变量相关的命令4.通过代码获取环境变量1.环境变量是什么环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数;比如我们再编写代码的时候,从来不知道我们链接的动静态库在哪里却可以链接成功,这是因为有相关的环境变量在帮助编译器进行查找;环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性举个例子:2.如何查看环境变量echo $NAME,查看环境变量,NAME为环境变量名称PATH是环境变量中的一个,我们还有许多环境变原创 2021-03-08 11:00:24 · 3859 阅读 · 9 评论 -
Linux进程初识
文章目录1.进程是什么2.描述进程-PCB2.1为什么要描述进程2.2PCB和task_struct2.3task_struct内容分类3.查看进程4.通过系统调用获取进程标识符5.通过系统调用创建进程——fork5.1fork初识5.2进一步了解fork1.进程是什么程序的一个执行实例,正在执行的程序等。担当跟配系统资源(cpu时间,内存)的实体。2.描述进程-PCB2.1为什么要描述进程便于对进程的管理2.2PCB和task_struct进程信息被放在一个叫做进程控制块的数据结构中,可原创 2021-03-03 19:54:02 · 377 阅读 · 0 评论 -
source insight4.0破解版下载及使用方法
文章目录1.下载方式2.安装方法3.如何查看Linux源核代码1.下载方式网盘链接.提取码:6q7n2.安装方法第一步:第二步:第三步:第四步:3.如何查看Linux源核代码1.网上搜索下载linux源代码2.将源代码解压好后,打开source insight...原创 2021-03-03 17:43:25 · 59874 阅读 · 40 评论 -
了解操作系统(OS)
文章目录1.操作系统的概念2.设计操作系统的目的3.定位4.什么是操作系统5.操作系统的管理5.1什么叫做管理5.2怎么进行管理6.为什么要有操作系统1.操作系统的概念任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:内核(进程管理,内存管理,文件管理,驱动管理)其它程序(例如函数库,shell程序等等)2.设计操作系统的目的与硬件交互,管理所有的软硬件资源为用户程序(应用程序)提供一个良好的执行环境3.定位在整个计算机软硬件架构中,操作系统的定位是:原创 2021-02-28 14:10:19 · 3496 阅读 · 8 评论 -
冯诺依曼体系结构
文章目录1.冯诺依曼体系结构的由来2.发展背景3.理解冯诺依曼体系结构3.1冯诺依曼体系结构简图3.2为什么输入/出设备的数据,不直接给CPU反而给内存3.3为什么程序运行的时候,要加载到内存3.4内存如何充当缓存区的?3.5内存是计算机的核心4.在硬件层面上对冯诺依曼结构的理解1.冯诺依曼体系结构的由来美籍匈牙利数学家冯·诺伊曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。并确定了存储程序计算机的五大组成部分和基本工作方法。冯·诺伊曼理论的要点是:计原创 2021-02-27 21:13:55 · 4861 阅读 · 4 评论 -
Linux下git的使用
文章目录1.查看自己的Linux是否安装了git2.克隆远端仓库到本地3.代码提交1.查看自己的Linux是否安装了git如果没有安装,安装命令为 yum install git2.克隆远端仓库到本地3.代码提交原创 2021-02-03 23:33:48 · 211 阅读 · 0 评论 -
Linux项目自动化构建工具——make、makefile
文章目录1.make、makefile是什么2.为什么要存在make和makefile3.怎么使用make、makefile3.1依赖关系和依赖方法3.2构建多工程简洁方法4.make、makefile原理5.编译器如何知道生成的软件需要重新编译1.make、makefile是什么make是一个命令,makefile是一个文件,通常该文件会在当前的工作目录下存放makefile中保存依赖关系和依赖方法2.为什么要存在make和makefile在vs编辑器中,我们创建多文件的时候是不需要自己管理的,原创 2021-01-30 17:58:06 · 1268 阅读 · 2 评论 -
Linux常用工具——gdb
文章目录1.gdb调试器1.gdb调试器原创 2021-01-30 14:49:47 · 1172 阅读 · 6 评论 -
Linux常用工具——gcc/g++
文章目录1.编译过程1.1直接编译1.2预处理1.3编译1.4链接2.函数库1.编译过程我们可以直接用gcc对文件完成编译,也可以进行分步编译,分步编译的过程为预处理,编译,汇编,链接;1.1直接编译1.2预处理预处理的功能:宏定义替换,文件包含,条件编译,去注释等gcc是如何找到对应的库的呢?在安装gcc编译器的时候,同时会进行一些库的安装,编译器自身有能力去查找所需要的库;1.3编译gcc检查代码的规范性,是否有语法错误等,以及确定代码的实际要做的工作,检查无误后,gcc将代码原创 2021-01-28 22:38:57 · 1541 阅读 · 2 评论 -
Linux常用工具——vim
文章目录1.vim是什么2.vim的基本概念3.vim的基本操作3.1命令模式下的基本操作3.2末行模式下的常见命令3.3扩展命令4.意外退出vim情况5.vim的配置1.vim是什么在windows下进行编程,我们需要选择编程工具,这里以我常用的工具vs2013为例我们进行代码的编写工具:vs2013代码的编译工具:vs2013代码的调试工具:vs2013很显然,代码的编写,编译,调试的工具都是vs2013,即vs2013是一款集成的开发工具,这种开发工具使用起来非常的方便和舒适。那么在Li原创 2021-01-28 19:32:33 · 482 阅读 · 2 评论 -
Xshell小键盘不能使用,反斜杠不能输入
文章目录1.小键盘不能使用2.反斜杠不能输入1.小键盘不能使用小键盘不能使用是我们xshell设置的问题,下面以图文的方式进行更改介绍2.反斜杠不能输入我遇到的是反斜杠不能输入,如果有其它键不能输入,不妨按照我这个方法试一试...原创 2021-01-28 18:40:03 · 867 阅读 · 0 评论 -
Linux常用工具——yum
文章目录1.Linux中安装软件的方式2.什么是软件包管理器3.工具安装和卸载3.1rzsz工具介绍3.2工具安装3.3 工具的卸载1.Linux中安装软件的方式1.源码安装2.rpm包安装3.yum2.什么是软件包管理器在liunx下安装程序采用源码的安装方式是很麻烦的,于是有人就将一些常用的软件提前编译好,做成软件包。然后将这个软件包放在一个服务器上,通过软件包管理器可以获取这个已经编译好的软件包,直接进行安装。比如我们手机下载一个应用,是去应用市场直接下载对应的应用,软件包就相当于这个应原创 2021-01-27 21:53:18 · 852 阅读 · 0 评论 -
Linux下的权限
文章目录1.Linux权限概念1.1直观感受权限1.2Linux权限说明2.权限设置1.Linux权限概念1.1直观感受权限一件事,是否能被特定的人做,这就叫做权限。比如一部电影需要VIP才能观看,你的用户开通了VIP则具有看的权限,如果没有开通VIP,那么你就没有观看这部电影的权限;1.2Linux权限说明Linux下有两种用户:root和普通用户1.超级用户root不受权限的控制,可以在Linux下做任意事情;2.普通用户在Linux下的操作受权限的控制;3.root用户的命令提示符为原创 2021-01-27 20:33:47 · 328 阅读 · 0 评论 -
Linux入门基础指令
文章目录1.Centos多用户的创建2. ls指令1.Centos多用户的创建2. ls指令原创 2021-01-26 10:53:35 · 479 阅读 · 0 评论 -
linux小故事(为什么要学linux)
文章目录1.什么是操作系统2.操作系统发展背景2.1 Multics2.2 Unix2.3 Minix2.4 Linux3.企业版Linux4.为什么学习Linux1.什么是操作系统简而言之操作系统(os)是一款搞“管理”的软件,管理软件和硬件。它可以使计算机更好用,使用者使用起来更加的舒服;2.操作系统发展背景2.1 Multics1968年,通用电气公司、贝尔实验室、麻省理工众大佬齐聚欲研发一个前无古人后无来者的操作系统,这个操作系统就叫作Multics。由于理想太过丰满,需要填充的内容不原创 2021-01-21 17:13:56 · 509 阅读 · 3 评论