
linux系统相关
文章平均质量分 68
正义飞
大数据专业分享技术公众号:bigdatatip
展开
-
哲学家进餐问题
产生背景2问题描述3死锁问题4管程机制1产生背景由荷兰学者Dijkstra提出的哲学家进餐问题(The Dinning Philosophers Problem)是经典的同步问题之一。哲学家进餐问题是一大类并发控制问题的典型例子,涉及信号量机制、管程机制以及死锁等操作系统中关键问题的应用,在操作系统文化史上具有非常重要的地转载 2015-04-09 17:04:10 · 1764 阅读 · 0 评论 -
解决办法:warning: Clock skew detected. Your build may be incomplete.
由于时钟同步问题,出现 warning: Clock skew detected. Your build may be incomplete.这样的警告,解决办法:find . -type f | xargs -n 5 touch原创 2014-04-18 00:21:26 · 7232 阅读 · 0 评论 -
ARM-Linux开机自启动设置-ok6410开发板
要在开发板上的Linux开机启动自己的程序,想着简单,却改了很久,绕了一圈下来确实很简单,只是自己一开始太过迂腐吧!如果不想看完全文,这一段应该就够了,从我使用的开发板的角度讲,一般只要在/etc/init.d/rcS中加入你的程序或者脚本命令就可以实现开机自动运行;想在超级终端输入回车,登录后执行,则可以在/etc/profile中加入命令;如果想去掉每次开机完后的“Please press原创 2014-05-02 20:11:24 · 1913 阅读 · 0 评论 -
BUSYBOX下的TFTP介绍
Busybox下的tftp命令可以用来进行单文件传输。使用的时候,是把电脑作为服务器Server,Busybox作为客户端Client,使用tftp命令可以实现从Server下载单个文件到Client,或者从Client上***个文件到Server。 首先来了解一下tftp命令参数,在Busybox下输入tftp –help,得到tftp使用的详细参数,如下图原创 2014-04-30 18:14:05 · 1052 阅读 · 0 评论 -
内核编译错误提示
1.warning :make dep is unnecessary now 答:先介绍一下,make dep的作用。make dep的意思就是说:如果你使用程序A(比如支持特殊设备),而A需用到B(比如B是A的一个模块/子程序)。而你在做make config的时候将一个设备的驱动由内核支持改为module,或取消支持,这将可能影响到B的一个参数的设置,需重新编译B,重新编译或连接A..原创 2014-03-29 18:48:49 · 1370 阅读 · 0 评论 -
C语言编写CGI程序
一、CGI概述 CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互, 也就是CGI程序接受Web浏览器发送给Web服务器的信息,进行处理, 将响应结果再回送给Web服务器及Web浏览器。CGI程序一般完成Web网页中表单(Form)数据的处理、数据库查询和实现与传统应用系统的集成等工 作。CGI程序原创 2014-03-01 23:49:51 · 1790 阅读 · 0 评论 -
linux多CPU进程负载均衡解析
在linux中,支持对称smp的处理器模型,在多处理器的情况下,每个处理器都有自己的一个运行队列,这样就存在着分配不均的情况,有的cpu运行队列很多进程,导致一直很忙,有的cpu运行队列可能很少的进程甚至没有任何运行进程,导致cpu经常处于空转的状态,因此我们需要一种机制,来均衡各个cpu上运行队列的进程数。1数据结构为了支持多种多处理器模型,linux提出了调用域及组的概念,一个调用域可转载 2013-11-15 16:50:15 · 1519 阅读 · 1 评论 -
shell脚本的一些注意事项
ssh user@server bash ssh到远程服务器执行一个脚本,此命令可以避免将脚本上传到远程服务器ssh user@host cat /path/to/remotefile | diff /path/to/localfile -比较远程文件和本地文件的差异vim scp://username@host//path/to/somefilevi一个远程文件转载 2013-11-14 16:40:01 · 824 阅读 · 0 评论 -
linux文件属性
1、文件的普通属性与权限在Linux系统中将文件可存取访问的身份分为3个类别,分别为:所有者(owner)、所属组(group)、其他人(other),并其三种身份各有read、write、execute等权限。当执行 ls -l 命令时,系统输出格式如下:-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log第一列转载 2013-11-14 16:34:04 · 914 阅读 · 0 评论 -
理解linux系统调用
系统调用1.系统调用和普通函数完全不同,系统调用实际上是0x80号中断对应的中断处理程序的子程序。换句话说,在linux系统上,0x80中断是系统调用的统一入口。某个具体的系统调用是这个中断处理程序的子程序,进入具体某个系统调用是通过内核定义的系统调用号码来实现的。linux通过执行如下汇编代码陷入内核执行系统调用:int 0x80; //这一句是进入系统调用统一入口。2.每个系统调用转载 2013-11-14 16:42:50 · 1349 阅读 · 1 评论 -
ubuntu apt-get 使用
用apt-get安装软件时,它会从网上(在sources.list里指的那个站点)下载所用的软件包,这个包将存在本机上,目录是:/var/cache/apt/archives/时间长了,这里会变得非常巨大,占用大量的硬盘空间。要想清理这个目录,可以运行:# apt-get clean还有一个自动清理功能,它只清除那些没用的或者是不完整的软件包:# apt-g转载 2013-11-14 16:41:05 · 892 阅读 · 0 评论 -
error: stray '\302' in program
问:这类错误是什么原因:error: stray '\302' in program?答:此种错误,可能程序本身没有语法错误,应该是每一行的空格的编码不对,只需要将程序出错行前面的空格删掉,然后让程序再退回即可解决问题!原创 2014-05-05 10:23:04 · 65376 阅读 · 0 评论 -
UDP打洞原理
本文博客链接:http://blog.youkuaiyun.com/jdh99,作者:jdh,转载请注明.许多P2P软件比如SKYPE,QQ,电驴之类需要不同内网的两台机子进行通信,而路由器的NAT机制决定了内网访问外网容易,而外网访问内网困难,那如何才能做到这一点呢?有办法------打洞!具体实现方法需要一台服务器,现在假设两台内网PC,A和B想用端口40000通信,网关分别为NATA原创 2014-04-27 00:01:26 · 635 阅读 · 0 评论 -
银行家算法
我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:(1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量;(3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有转载 2015-04-09 16:52:41 · 825 阅读 · 0 评论 -
__func__函数的使用
__func__是C99标准里面预定义标识符, 它是一个static const char[], 会在每一个使用__func__的函数里隐式定义.下面是ISO9899里的例子#include void myfunc(void){ printf("%s/n", __func__); /* ... */}输出: myfunc 据我所知好像只有GC转载 2015-04-12 23:11:58 · 23296 阅读 · 0 评论 -
Linux 线程属性函数总结
1、初始化一个线程对象的属性int pthread_attr_init(pthread_attr_t *attr); 返回值:若是成功返回0,否则返回错误的编号 形 参: attr 指向一个线程属性的指针 说 明:Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先转载 2015-04-10 18:14:00 · 551 阅读 · 0 评论 -
Linux线程属性总结
线程属性标识符:pthread_attr_t 包含在 pthread.h 头文件中。[c] view plaincopy//线程属性结构如下: typedef struct { int etachstate; //线程的分离状态 int schedpolicy;转载 2015-04-10 18:12:06 · 506 阅读 · 0 评论 -
linux多线程中信号的使用(2)
简介: 关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。Linux 多线程应用中编写安全的信号处理函数在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中转载 2015-04-10 17:15:39 · 598 阅读 · 0 评论 -
linux多线程中信号的使用(1)
在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些函数不能在信号处理函数中调用;再比如一些函数read、recv等调用时会被异步的信号给中断(inter转载 2015-04-10 17:04:02 · 528 阅读 · 0 评论 -
linux多线程学习设置线程调度权限
pthread_setschedparam 设置线程的权限int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param)参数 1. target_thread是使用pthread_create所获得的线程ID。 2.线程的调度有三种策略:SCHED_OT转载 2015-04-10 18:26:05 · 1319 阅读 · 0 评论 -
Linux 线程同步的三种方法
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。一、互斥锁(mutex)通过锁机制实现线程间的同步。初始化锁。在Linux下,线程的互斥量数据类型是pthread_mutex_t。在使用前,要对它进行初始化。静态分配:pthread_mutex_t mutex = PTHREA转载 2015-04-10 18:16:19 · 520 阅读 · 0 评论 -
TCP打洞技术
//转http://iamgyg.blog.163.com/blog/static/3822325720118202419740/建立穿越NAT设备的p2p的TCP连接只比UDP复杂一点点,TCP协议的“打洞”从协议层来看是与UDP的“打洞”过程非常相似的。尽管如此,基于TCP协议的打洞至今为止还没有被很好的理解,这也造成了对其提供支持的NAT设备不是很多。在NAT设备支持的前提下,基原创 2014-04-27 00:05:45 · 1550 阅读 · 0 评论 -
TCP打洞与UDP打洞的区别
为什么网上讲到的P2P打洞基本上都是基于UDP协议的打洞?难道TCP不可能打洞?还是TCP打洞难于实现? 假设现在有内网客户端A和内网客户端B,有公网服务端S。 如果A和B想要进行UDP通信,则必须穿透双方的NAT路由。假设为NAT-A和NAT-B。 A发送数据包到公网S,B发送数据包到公网S,则S分别得到了A和B的公网IP,S也和A B 分别建立了会原创 2014-04-27 00:07:37 · 2144 阅读 · 0 评论 -
嵌入式操作系统一些基本概念
◆ 何为嵌入式系统?嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务的体系。◆ 嵌入式实时多任务操作系统实时多任务操作系统(Real Time Operating System)是根据操作系统的工作特性而言的。实时是转载 2013-11-13 13:21:25 · 992 阅读 · 0 评论 -
如何用busybox制作一个自己文件系统
下面说说如何使用busybox定制自己的应用程序。4.1 busybox的配置首先到网上下载一个稳定的BusyBox版本,我用的版本是busybox-1.0.1,然后解压到工作目录下。busybox的配置方法和标准的linux内核的配置方法非常相似,我们只要切换到busybox的根目录下,使用make menuconfig就会轻松定制出适合特定用途的一组应用程序。#make menu转载 2013-11-13 12:46:12 · 1716 阅读 · 0 评论 -
linux的基础知识
1、linux文件系统分配策略:块分配( block allocation ) 和 扩展分配 ( extent allocation )块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续,从而导致过多的磁盘寻道时间。每一次文件扩展时,块分配算法就需要写入文件块的结构信息,也就是 -dada 。-data总是转载 2013-11-12 20:48:36 · 652 阅读 · 0 评论 -
常用网络端口号
端口:0 服务:Reserved 说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。端口:1 服务:tcpmux 说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmu原创 2013-11-16 15:07:23 · 2494 阅读 · 0 评论 -
linux下搭建smb服务
1.检测安装Samba服务 (1).检查Samba服务包是否已安装: rpm -qa | grep samba (2).如未安装,则插入第一张安装盘,执行: mount /mnt/cdrom cd /cdrom/Redhat/RPMS (3).进入目录后安装Samba文件: 注意:运Samba至少需要三个文件,分别为:转载 2013-11-16 15:04:48 · 2061 阅读 · 0 评论 -
linux进程调度
linux进程调度浅析操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(转载 2013-11-16 01:59:02 · 923 阅读 · 0 评论 -
linux网络字节转换
不同的 CPU 有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1 . Little endian :将低序字节存储在起始地址2 . Big endian :将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观转载 2013-11-16 00:15:15 · 1420 阅读 · 0 评论 -
linux索引节点的介绍
1、用ls -i命令来查看文件系统对象的索引节点号 $ ls -i /usr 558145 bin 607393 games 2429605 kerberos 705889 local 131329 share 32833 X11R6 574561 dict 623809 include 640225 lib转载 2013-11-16 00:00:23 · 1440 阅读 · 0 评论 -
linux多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用转载 2013-11-16 01:49:44 · 838 阅读 · 0 评论 -
linux系统的基本目录
/bin:bin是binary(二进制)的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat。 /boot:这里存放的是启动LINUX时使用的一些核心文件。 /dev:dev是device(设备)的缩写。这个目录下是所有LINUX的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在LINUX中设备和文件是用同种方法访问的。例如原创 2013-11-13 19:37:37 · 723 阅读 · 0 评论 -
linux环境变量的设置
1. 显示环境变量HOME $ echo $HOME /home/terry 2. 设置一个新的环境变量WELCOME $ export WELCOME="Hello!" $ echo $WELCOME Hello! 3. 使用env命令显示所有的环境变量 $ env HOSTNAME=terry.mykms.org PVM_RSH=/usr/bin转载 2013-11-16 01:27:17 · 915 阅读 · 0 评论 -
linux文件系统与节点列表
一 linux的文件系统1 我们都知道当我们安装linux时会首先给系统分区,然后我们会把分区格式化成EXT3格式的文件系统。那么在linux系统中还有没有其他的文件系统呢,下面我们就简单的介绍一下linux系统中常见的几种文件系统。(1)EXT3文件系统:ext3(第三级扩展linux文件系统,third extended linux filesystem)。跟EXT2文件不同之处转载 2013-11-15 17:20:41 · 1244 阅读 · 0 评论 -
linux设备节点
linux中的设备节点(/dev/*)(转) http://www.linuxsir.org/bbs/showthread.php?t=306623设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂本文是我在写作《DIY 一个基转载 2013-11-15 17:16:26 · 1688 阅读 · 0 评论 -
linux套接字
套接字连接的过程如同(客户)打一个电话到一个大公司,接线员(服务器进程)接听电话并把它转接到你要找的部门,然后再从那里转到你要找的人(服务器套接字),然后接线员(服务器进程)再继续转接其它(客户)的电话。 套接字有本地套接字和网络套接字两种。本地套接字的名字是Linux文件系统中的文件名,一般放在/tmp或/usr/tmp目录中;网络套接字的名字是与客户连接的特定网络有关的服务标识符转载 2013-11-16 00:17:21 · 1028 阅读 · 0 评论 -
linux的shell编程
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对转载 2013-11-16 01:30:50 · 939 阅读 · 0 评论 -
linux进程之间通讯常用信号
1)SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控 制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端 不再关联. 2)SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出 3)SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到 SI原创 2013-11-23 01:36:59 · 1056 阅读 · 0 评论 -
linux设置环境变量的三种方法
PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH (3)重新登录 注解: a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的jdk安装目原创 2013-11-23 01:37:19 · 1074 阅读 · 0 评论