
linux
Seven17000
与其临渊羡鱼,不如退而结网。
展开
-
【Ubuntu中合并cgroup挂载点失败】报错:mount: none is already mounted or /cgroup/cpu busy
问题有时候我们可能会遇到需要修改系统默认cgroup挂载点的情况,例如需要把cpu,cpuacct,cpuset挂载到一起的情况,但是有些操作系统如果直接使用下面方法合并挂载cgroup的时候可能会遇到下面这种报错。具体原因目前无法得知,很可能的原因是不同的操作系统版本限制。但是我们可以换另外一种方式解决这个问题。猜想cgroup默认挂载是由systemd去划分挂载的,那么systemd...原创 2019-11-25 09:16:20 · 4493 阅读 · 0 评论 -
僵尸进程与孤儿进程
上篇博客我们讲到进程在系统中的状态,在Linux系统编程中,进程经常会出现僵死状态(僵尸进程)和孤儿进程的情况。这篇博客就将详细的介绍这两种进程。孤儿进程孤儿进程是指在进程还未退出之前它的父进程就已经先退出了,简单来说就是一个没有父进程的子进程就是孤儿进程。既然所有的进程都必须在退出之后被父进程的wait()或waitpid()以释放其遗留在系统中的一些资源,那么孤儿进程的这些东西又谁来处理呢?这个原创 2017-05-04 18:00:13 · 728 阅读 · 0 评论 -
通过指令“ps -l”查看进程信息
简介在Linux环境下使用ps -l指令即可以查看当前环境下与bash相关的的进程信息。 如图所示 下面我们来依次解释下这些内容F:代表这个进程的旗标,说明进程的权限常见的有4和1,4表示该进程是使用的root权限,1表示此进程是fork之后未执行的。现在的0则表示两者都不是。S:代表这个进程的状态(STAT)具体分为以下几个状态 R(running)可执行状态,只有在该状态下的进程才可能原创 2017-04-17 22:47:57 · 2723 阅读 · 0 评论 -
Linux中的进程控制模块task_struct
简介计算机体系中控制进程的模块我们把它叫做进程控制模块,即PCB。它是对进程控制的唯一手段也是最有效的手段。 在Linux 中PCB是由task_struct 数据结构来定义的,当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理。因此了解task_struct的结构对于我们理解进程调度的关键原创 2017-04-14 11:56:11 · 1701 阅读 · 0 评论 -
Linux中的线程与线程的基本操作
简介进程的颗粒度太大,每次都要有调入,保存,调出。如果我们把进程比喻为一个运行在电脑上的软件,那么一个软件的执行不可能是一条逻辑执行的,必定有多个分支和多个程序段,就好比要实现程序A,实际分成a,b,c等多个块组合而成,这里的abc就是线程。在Linux系统中其实没有真正意义上的线程,不和windows系统中一样,windows中的进程和线程有着明确的区分,各有各的数据结构,API等等。在linux原创 2017-06-13 22:00:55 · 615 阅读 · 0 评论 -
文件描述符和文件描述符表
文件描述符与文件描述符表前面我们介绍过Linux中有一个结构体task_sturct专门用来控制进程叫做进程描述符,在它的里面存放了各种关于进程的信息,其中有一个指针,源码中给出的定义为:struct file_struct *file ,它指向一个file_struct结构体,即文件描述符表,每个进程都有一个自己的文件描述符表。我们所说的文件描述符(fd)就被写在这个file_struct之中,原创 2017-05-16 21:26:52 · 4151 阅读 · 0 评论 -
vim的基本配置与github上的两个高票配置
简介vim是一种功能强大的文本编辑器。使用vim编辑文本,只需在键盘上操作就可以,根本无需用到鼠标。就拿光标移动来说,与重复击键、一个字符一个字符或一行一行移动相比,按一次键就能以词、行、块或函数为单位移动,效率高得多。有时一些重复删除、粘帖的操作,也只需一条命令就可以完成,甚至你可以用键映射来简化或组合多种命令来提高效率。配置vim提供一个vimrc的配置文件来配置vim,并且自己可以定制一些插件原创 2017-04-02 22:09:36 · 8196 阅读 · 0 评论 -
关于如何编写Makefile
陈皓老师曾经在优快云上写过关于Makefile很详细的文章,有兴趣的可以到这里慢慢研读。 http://blog.youkuaiyun.com/haoel/article/month/2004/02 这里我把他在文章里写的关于Makefile的一些较为基本且常用的操作总结在这里。简介在windows的开发环境下编译汇编链接生成目标文件,这一系列工作全都是IDE帮我们完成。但是在Linux的开发环境下,需要原创 2017-04-05 18:18:39 · 1134 阅读 · 0 评论 -
vim中的插件安装和几种常用插件
简介vim在经过配置之后已经变得非常强大了,足够我们日常完成工作任务,但是这些还不足以和IDE媲美。这个时候vim更强大的扩展机制就站了出来,vim可以安装各种插件。就像Firefox和Chrome的各种插件,它们将令我们的工具更加完美。插件的管理vim可以通过插件实现全面定制。不过由于其高级配置,你可能需要在其插件系统上花一番时间,才能够高效地对vim进行个性化定制。不过Vundle可以帮助我们完原创 2017-04-03 13:28:09 · 7691 阅读 · 0 评论 -
Linux查看文件详细信息指令stat
引入我们知道在终端输入ll,就可以显示当前目录里的文件详细信息,或者使用ls加上另外的参数就可以显示其他的一些有用的信息,如下图所示。但是,另外还有一个指令可以显示更多有用的信息。那就是指令stat。stat指令:文件/文件系统的详细信息显示; 使用格式:stat 文件名 stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下: -f 不显示文件本身的信息,显示文件所在文件系原创 2017-03-24 13:17:24 · 30756 阅读 · 0 评论 -
Linux中粘滞位的使用
简介前面的博文中我们提到过在Linux中文件有着相应的操作权限,通常情况下用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件。那么有时候我们会遇到这种情况创建了权限为“rwxrwxrwx”的目录,即允许任意用户、任意程序在该⽬录中进⾏创建、删除、移动⽂件或⼦⽬录等操作。但是我们需要⽤户对该⽬录有写⼊权限,同时也不能删除该⽬录中其他⽤户的⽂件数据,⽽是只有该⽂件的所有者和root⽤户才有权原创 2017-03-30 20:40:17 · 593 阅读 · 0 评论 -
Linux文件权限管理
什么是权限?在Linux工作目录中打开终端,输入指令ll,会出现当前目录中所有文件的详细信息,其中第一列的字段当中就包括了文件的操作权限。 我们可以看到,第一列出现了10个字符,第一个字符代表了文件类型,后面的九个字符就代表的是文件的操作权限。那么这里的九个字符又分别代表着什么权限呢?首先我们要明白这里对文件访问者进行了分类, 前三个字符代表了文件的所有者(-u)的权限,中间三个字符代表文件文件原创 2017-03-23 16:42:06 · 976 阅读 · 0 评论 -
在Linux环境下查看目标文件生成过程
1.使用vim编辑器编写源代码 以最简单的在屏幕输出“hello world!”为例。首先在vim编辑器里输入源代码:#include int main(){ printf(“hello world !\n"); return 0;} 打开终端,输入指令:ls。显示当前文件夹内的所有文件,然后进入其中的workspace文件夹。原创 2016-07-21 00:52:36 · 3520 阅读 · 0 评论