![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux操作系统
Java蜗牛
这个作者很懒,什么都没留下…
展开
-
linux中tty设备的一点理解
虽然一直做嵌入式Linux,宿主机和开发板通信天天都在用tty设备通信,但是其实自己对TTY设备及终端的概念认识几乎是0。对于Linux内核的终端、tty、控制台等概念的认识很模糊。由于在学习的时候碰到了重定向console的问题,所以借机学习下tty的知识。以下是我对tty的认识总结,信息来源于网络和内核文档。参考资料见文章末尾。tty一词源于Teletypes,或Teletypewri转载 2014-07-22 21:57:24 · 1156 阅读 · 0 评论 -
LXC(Linux containers)常用命令介绍
lxc-version 用于显示系统LXC的版本号(可以通过此命令判断系统是否安装了lxc)用法:lxc-version例如:lxc-version lxc-checkconfig 用于判断linux内核是否支持LXC用法:lxc-checkconfig例如:lxc-checkconfiglxc-create用于创建一个容器用法:lxc-cr转载 2014-09-23 18:08:56 · 1238 阅读 · 0 评论 -
docker命令行
1. Docker命令行Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法。但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,所以让我们一起开始一次真正的命令行学习之旅。首先,Docker的命令清单可以通过运行docker ,或者 docker help 命令得到:$ su原创 2014-09-23 18:51:51 · 1711 阅读 · 0 评论 -
CGROUP是什么
Cgroups是什么?Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。最初由google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有LXC。Cgro转载 2014-09-23 18:38:23 · 643 阅读 · 0 评论 -
cgroup-----cpuset子系统
cpuset子系统cpuset子系统为cgroup 中的任务分配独立 CPU(在多核系统)和内存节点。Cpuset子系统为定义了一个叫cpuset的数据结构来管理cgroup中的任务能够使用的cpu和内存节点。Cpuset定义如下:struct cpuset {struct cgroup_subsys_state css; unsigned long fla转载 2014-09-23 18:44:59 · 1973 阅读 · 0 评论 -
cgroup----cpu子系统
cpu子系统 cpu子系统用于控制cgroup中所有进程可以使用的cpu时间片。附加了cpu子系统的hierarchy下面建立的cgroup的目录下都有一个cpu.shares的文件,对其写入整数值可以控制该cgroup获得的时间片。例如:在两个 cgroup 中都将 cpu.shares 设定为 1 的任务将有相同的 CPU 时间,但在 cgroup 中将 cpu.shares 设定转载 2014-09-23 18:41:32 · 702 阅读 · 0 评论 -
cgroup----devices子系统
devices子系统 使用devices 子系统可以允许或者拒绝cgroup中的进程访问设备。devices子系统有三个控制文件:devices.allow,devices.deny,devices.list。devices.allow用于指定cgroup中的进程可以访问的设备,devices.deny用于指定cgroup中的进程不能访问的设备,devices.list用于报告cgr转载 2014-09-23 18:42:22 · 1374 阅读 · 1 评论 -
linux中开启samba服务实现文件共享
通过 Samba 实现 Win/Mac 访问 Linux作者:柳大·Poechant博客:blog.CSDN.net/Poechant日期:March 17th, 20121 公开访问1.1 安装 Sambasudo apt-get install sambasudo apt-get install smbfs1.2 创建共享目录sudo mkdir /原创 2014-09-25 19:33:40 · 811 阅读 · 0 评论 -
sched.h(task_struct)结构体
#ifndef _SCHED_H#define _SCHED_H#define NR_TASKS 64 // 系统中同时最多任务(进程)数。#define HZ 100 // 定义系统时钟滴答频率(1 百赫兹,每个滴答10ms)#define FIRST_TASK task[0] // 任务0 比较特殊,所以特意给它单独定义一个符号。#defi转载 2014-10-22 16:10:29 · 1766 阅读 · 0 评论 -
LXC讲解
容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。容器可以在核心 CPU 本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化(paravirtualization)和系统调用替换中的复杂性。通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,转载 2014-09-30 00:01:12 · 713 阅读 · 0 评论 -
程序运行时的缺页异常是怎么发生和捕获的
现代的cpu一般有一个描述表寄存器gdtr,指向一个描述表,描述表项就是程序运行状态参数,包括内存位置这些信息都在里面。操作系统一般是写表项,注册例外处理例程。你程序访问越界,cpu就执行操作系统例外,这时操作系统就有了机会来执行处理代码。一般是给你抛一个例外,产生一个core,你这样拿着这个core来重现程序状态。没什么东西可以看,看了也没什么意思,理解这么回事就可以。原创 2014-10-30 16:42:42 · 1150 阅读 · 0 评论 -
malloc对应的汇编语句
#include int main(){0132B350 push ebp 0132B351 mov ebp,esp 0132B353 sub esp,0CCh 0132B359 push ebx 0132B35A push esi 0132B35B push edi原创 2014-10-30 16:54:09 · 2499 阅读 · 0 评论 -
linux中的fork函数到底做了什么事
前面已经谈了内核加载与系统引导过程,下面我们来看看内核的 do_fork() 函数是如何创建一个新的进程的。在 Linux 内核中,供用户创建进程的系统调用fork()函数的响应函数是 sys_fork()、sys_clone()、sys_vfork()。这三个函数都是通过调用内核函数 do_fork() 来实现的。根据调用时所使用的 clone_flags 参数不同,do_for转载 2014-10-22 13:58:49 · 1057 阅读 · 0 评论 -
什么是docker
docker、lxc、cgroup、namespace是最近比较的技术。先了解一下他们分别是什么,然后说一下他们怎么用,具体实现机制以后再单独研究。docker是lxc的管理器,lxc是cgroup的管理工具,cgroup是namespace的用户空间的管理接口。namespace是linux内核在task_struct中对进程组管理的基础机制。再详细点说:docker是用原创 2014-09-23 16:51:37 · 675 阅读 · 0 评论 -
cgroup----memory子系统
memory子系统memory 子系统可以设定 cgroup 中任务使用的内存限制,并自动生成由那些任务使用的内存资源报告。memory子系统是通过linux的resource counter机制实现的。下面我们就先来看一下resource counter机制。resource counter是内核为子系统提供的一种资源管理机制。这个机制的实现包括了用于记录资源的数据结构和相关函数转载 2014-09-23 18:46:06 · 1270 阅读 · 0 评论 -
linux系统学习一 系统调用详解
LINUX 源码解读:系统调用的设计与实现介绍系统调用是操作系统内核提供的,为了和用户空间上运行的进程进行交互的一组接口,通过该接口,应用程序可以访问硬件设备和其他操作系统资源。系统调用主要有三个作用:a. 为用户空间提供一种硬件的抽象接口。b. 保证了系统的稳定与安全。c. 实现多任务和虚拟内存。对于用户空间的进程,在一般情况下是通过应用编程接口(API原创 2014-07-23 23:08:43 · 770 阅读 · 0 评论 -
ubutun用户操作相关命令
可以用adduser和useradd来添加用户,用userdel来删除用户。最简单的命令:sudo adduser test会自动同名组,创建/home/test/,从etc/skel/复制文件,并设定密码和相关初始身份信息原始一点的命令:sudo useradd -mk /home/test2 -s /bin/bash test2sudo passwd test2转载 2014-09-10 20:48:32 · 990 阅读 · 0 评论 -
linux线程实现机制分析----------转自IBM中国开发者社区
一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果原创 2014-09-11 08:10:06 · 669 阅读 · 0 评论 -
linux常用命令用法整理
(1)字符串查找:例子:ls -li | grep ssh原创 2014-08-28 08:36:40 · 370 阅读 · 0 评论 -
linux学习 linux进程相关
(1)进程和线程原创 2014-08-30 20:34:20 · 477 阅读 · 0 评论 -
linux学习--linux内存管理整理
(1)逻辑地址(2)线性地址(3)wul原创 2014-08-30 17:09:12 · 519 阅读 · 0 评论 -
cgroup文件系统
Cgroup文件系统Cgroups用户空间管理Cgroups用户空间的管理是通过cgroup文件系统实现的。比如要创建一个层级:mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem这个命令就创建一个名为cpu_and_mem的层级,这个层级上附加了cpu,cpuset,mem转载 2014-09-23 18:42:35 · 700 阅读 · 0 评论 -
linux中的namespace
Linux Namespace一、Linux Namespace Linux Namespace是Linux提供的一种OS-level virtualization的方法。目前在Linux系统上实现OS-level virtualization的系统有Linux VServer、OpenVZ、LXC Linux Container、Virtuozzo等,其中Virtu原创 2014-09-23 19:05:33 · 1272 阅读 · 0 评论 -
chroot的作用及详解
什么是 chrootchroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。图 1. Linux 系统的目录结构回页首为何使用 chroot在经过转载 2014-09-23 16:48:29 · 12841 阅读 · 0 评论 -
LXC(Linux containers)配置文件简介
LXC配置文件的man page :http://manpages.ubuntu.com/manpages/natty/man5/lxc.conf.5.htmlLXC配置项都是以key=value的形式,#开始的一行代码注释。配置也可以在lxc-execute或者lxc-start的命令行以-s key=value设定这里介绍一下常用的配置:1.Cgroup部分(所有Cgroup子系统转载 2014-09-23 18:07:24 · 798 阅读 · 0 评论 -
cgroup的数据结构
cgroups 数据结构设计我们从进程出发来剖析cgroups相关数据结构之间的关系。在Linux中,管理进程的数据结构是task_struct,其中与cgroups有关的:#ifdef CONFIG_CGROUPS /* Control Group info protected by css_set_lock */ struct css_set转载 2014-09-23 18:41:25 · 800 阅读 · 0 评论 -
cgroup-----freezer子系统
freezer子系统freezer子系统用于挂起和恢复cgroup中的进程。freezer有一个控制文件:freezer.state,将FROZEN写入该文件,可以将cgroup中的进程挂起,将THAWED写入该文件,可以将已挂起的进程恢复。该文件可能读出的值有三种,其中两种就是前面已提到的FROZEN和THAWED,分别代表进程已挂起和已恢复(正常运行),还有一种可能的值为FREEZIN转载 2014-09-23 18:43:06 · 1759 阅读 · 0 评论 -
linux前后台进程
当你用shell启动一个程序时,往往他是在前台工作的。 例如经常用PUTTY连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。因此有必要进行前后台进程的切换。例如直接在终端里输入firefox,那么会打开firefox,但当你关闭此终端或者ctrl+c强制终止时,firefox也随机关闭了。你可以在执行时后面加一个&,这样就在后台工作了转载 2014-11-24 14:09:16 · 607 阅读 · 0 评论