Linux
tinyteemo
这个作者很懒,什么都没留下…
展开
-
用ssh连接电脑上的linux虚拟机
很多人在电脑上都建有虚拟机,如果每次使用虚拟机的时候都要开着虚拟机窗口会很麻烦,所以很多人会选择用ssh来连接自己电脑上的虚拟机。在这儿是记录了本人在这个过程中碰到的一些问题以及解决的方法,希望能帮到各位朋友。 本人使用的是virtualbox+opensuse。ssh软件用的是xshell。 刚建完虚拟机的时候我也是ssh连不上,但通过如下步骤都一一解决了存在的问题: 首先我们建好虚拟机并原创 2013-03-28 20:28:22 · 2878 阅读 · 0 评论 -
Cgroup文件系统
cgroup用户空间的管理是通过cgroup文件系统实现的。 比如要创建一个层级:mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem 这个命令就创建一个名为cpu_and_mem的层级,这个层级上附加了cpu,cpuset,memory三个子系统,并把层级挂载到了/cgroup/cpu_and_mem原创 2013-09-08 16:34:08 · 2061 阅读 · 0 评论 -
Linux Cgroup cpu子系统
cpu子系统用于控制cgroup中所有进程可以使用的cpu时间片。附加了cpu子系统的hierarchy下面建立的cgroup的目录下都有一个cpu.shares的文件,对其写入整数值可以控制该cgroup获得的时间片。例如:在两个cgroup中都将cpu.shares设定为1的任务将有相同的CPU时间,但在cgroup中将cpu.shares设定为2的任务可使用的CPU时间是在cgroup中将c原创 2013-09-08 18:43:39 · 1905 阅读 · 0 评论 -
Cgroups数据结构设计
我们从进程出发来剖析cgroups相关数据结构之间的关系 在Linux中,管理进程的数据结构是task_struct,其中与cgroups有关的: #ifdef CONFIG_CGROUPS /* Control Group info protected by css_set_lock */ struct css_set __rcu *cgroups; /* cg_list protec原创 2013-09-08 15:41:41 · 818 阅读 · 0 评论 -
什么是Linux Cgroups
Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。最初由google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有Cgroups就没有LXC。 Cgroups最初的目标是为资源管理提供一个统一的框架,即整合现有的cpuset等子系统,也为未来开发信的子系统原创 2013-09-08 14:58:36 · 872 阅读 · 1 评论 -
RPM概念
rpm介绍: RPM全称是Red Hat Package Manager(Red Hat包管理器)。几乎所有的Linux发行版本都使用这种形式的软件包管理安装、更新和卸载软件。 RPM是一个开放的软件包管理系统。它工作于Red Hat Linux以及其他Linux和Unix系统,可被任何人使用。RedHat软件公司鼓励其他厂商来了解RPM并在自己的产品中使用它。RPM的发布基于GPL协议。对于原创 2013-08-28 21:15:45 · 905 阅读 · 0 评论 -
taskset设置进程CPU亲和性
man手册的解释:retrieve or set a process's CPU affinity。 由此可知,我们可以通过taskset来设定或者获取进程的CPU亲和性。 基本上,我们用的最多的选项就是-a/-c/-p了。 -a : 获取给定进程pid的所有线程的cpu亲和性。 -c : 设置进程的CPU亲和性 -p : 获取进程的cpu亲和性 基本用法如下:原创 2013-07-23 22:00:58 · 2893 阅读 · 0 评论 -
shell test的使用
我们知道,在shell编程中,test关键字和 [] 中括号基本上是可以划等号的,所以一下的这些test的参数当然也可以在[]中使用。 1.判断表达式: if test exp 或者 if [ exp ] 表达式exp为真 if test ! exp 或者 if [ ! exp ] 表达式exp为假 test exp1 -a exp2 或者 if [ exp1 -a exp2 ]原创 2013-07-29 21:12:09 · 634 阅读 · 0 评论 -
core dump
有的程序可以通过编译,但在运行时会出现segmentatin fault(即段错误)。这通常是指针错误引起的,但这不像编译错误一样可以在编译的时候定位到行,而是没有任何信息,使得调试程序变得困难。 这时我们可以通过gdb来调试,但如果程序很大的话,通过gdb一步步寻找显然不合适。因此,我们可以使用core dump。 要想让系统在信号中断造成的错误时产生core文件,我们需要系统中进行设置。首原创 2013-07-10 22:05:47 · 545 阅读 · 0 评论 -
内核源代码下的层次目录
arch:与硬件平台有关的选项,大部分指的是CPU的类型,如x86,x86_64,Xen虚拟支持等。 block:与区块设备较相关的设置数据,区块数据通常指的是大量储存媒质,还包括了类似ext3等文件系统的支持是否允许等。 cypto:内核所支持的加密的技术,例如md5或者是des等。 Dorumentation:与内核有关的一堆帮助文档,若对内核有极大的兴趣,要瞧瞧这里。 drivers原创 2013-04-11 21:28:19 · 570 阅读 · 0 评论 -
基于对象的反向映射
反向映射一直是提高pageout效率的一个热门话题。在2.6内核中,在page结构中加入了一个链表指针,保存了所有引用了该页的映射(pte chains)。虽然这能很好的实现反向映射,但是却在映射/解映射、fork/exit时花费了太多的空间和时间。 因此出现了一种新的反向映射方法——基于对象的反向映射。 在2.4内核之前,内核是不提供物理内存地址到虚拟地址的映射机制的(就是我们所说的反向映射原创 2013-03-21 21:29:21 · 953 阅读 · 0 评论 -
Linux errno汇总
0 -- Success 1 EPERM Operation not permitted 2 ENOENT No such file or directory 3 ESRCH No such process 4 EINTR Interrupted system call 5 EIO Input/转载 2013-03-18 21:18:32 · 884 阅读 · 0 评论 -
Linux下errno的使用
平时写代码调用函数经常返回莫名其妙的错误,此时就需要使用errno来判断到底函数调用出了啥问题了,废话不多说直接上个例子,简洁明了 #include #include #include int main() { errno = 1; perror(strerror(errno)); return 0; }原创 2014-02-13 20:24:43 · 499 阅读 · 0 评论