Linux OS
文章平均质量分 77
ctthuangcheng
这个作者很懒,什么都没留下…
展开
-
列举几种系统调用
操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。 Linux系统调用,包含了大部分常用系统调用和由系统调用派生出的的函数。 一、进程控制: fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exi原创 2013-01-11 12:07:11 · 2976 阅读 · 0 评论 -
linux 技术网站
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=embedded Linux Forumhttp://linux.chinaunix.net/原创 2013-01-12 13:02:50 · 1359 阅读 · 0 评论 -
Linux创建静态库和动态库
第1步:编辑得到举例的程序--hello.h、hello.c和main.c;hello.h为该函数库的头文件。hello.c是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。main.c为测试库文件的主程序,在主程序中调用了公用函数hello。 第2步:将hello.c编译成.o文件;无论静态库,还是动态库,都是由.o文件创建的转载 2013-01-16 14:56:52 · 1166 阅读 · 1 评论 -
mmap msync munmap close
转自:http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201082753446602/ open 打开文件后——>使用mmap建设文件映射;建立文件映射后,可以对映射到的空间进行操作。用msync同步到文件中。 问:close后对映射空间的操作能够同步到文件中吗? 答:可以,只要文件转载 2013-03-14 17:21:43 · 3704 阅读 · 0 评论 -
suse 11 root密码重新设置
1. 启动grub时候选择 Failsafe下面的“boot option“内容全部删除,写入init=/bin/bash,进入单用户模式。 2. 稍等会出现命令行 (none)#: #mount -o remount, rw / //根文件系统重新mount为可读写,有了读写权限后就可以通过passwd命令修改密码了 #cd /usr/bin #pas原创 2013-04-25 16:01:46 · 2819 阅读 · 0 评论 -
linux开机关机命令
重启命令:1、reboot2、shutdown -r now 立刻重启(root用户使用)3、shutdown -r 10 过10分钟自动重启(root用户使用) 4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启关机命令:1、halt原创 2013-05-01 23:50:51 · 1813 阅读 · 0 评论 -
VMware网络配置详解
VMware网络配置详解安装好虚拟机以后,在网络连接里面可以看到多了两块网卡:其中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口,这些后面会详细介绍。选择虚拟机网络模式方法如下,单击“Edit virtual machine settings”,如图所示:然后在“Hardware”选项卡中选择“Etherne转载 2013-05-04 12:07:12 · 1626 阅读 · 0 评论 -
VMware设置桥接上网
环境:主机Win7、VMware Workstation 6.5.3、虚拟机Ubuntu10.04。 一、桥接的基本原理 配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑,可以像主机一样可以访问以太网中的所有共享资源和网络连接,可以直接共享主机网络的互联网接入线路访问互联网。主机与虚拟机之间,以及转载 2013-05-04 12:09:06 · 1189 阅读 · 0 评论 -
ubuntu 10.04 源
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backupgedit /etc/apt/sources.listsudo apt-get updatesudo apt-get upgradehttp://wiki.ubuntu.org.cn/index.php?title=Qref/Source&va原创 2013-05-04 12:16:53 · 1343 阅读 · 0 评论 -
linux core文件设置
1.ulimit -c 查看当前系统配置的core文件大小ulimit -c unlimited 修改core文件大小为无限制2./proc/sys/kernel/core_uses_pid 改成1, 设置成可以控制产生core文件的文件名。修改文件的方法,必须使用 echo "1" > /proc/sys/kernel/core_uses_pid的方式放入3./proc/sys/kernel/c原创 2013-01-08 13:12:18 · 2168 阅读 · 1 评论 -
linux core文件设置
在Linux中,一般当进程非正常退出时,会生成一个core文件,这个文件是进程猝死时内存的转储文件,也称为core dump。查看Linux脚本解析方式: echo $0 1.检验core是否打开以see/see登录 csh: limit; coredumpsize = 0 , 说明没有打开core, 否则打开了。bash: ulimit –a ; 关注红色部分。 如果是0,表示原创 2013-05-23 09:51:36 · 10363 阅读 · 0 评论 -
Linux环境下获取网卡连接状态
在嵌入式项目中,有时需要获取设备本身的一些运行信息,网口的连接状态就是其中之一,这还真不太好弄,网上查了一下资料,整理了一下,pIfName为网口名称,比如eth0,返回1为连接,0为断开。int getNetLinkStates(const char *pIfName){ int skfd; struct ifreq ifr; struct ethtool_value e转载 2013-05-10 16:59:01 · 2449 阅读 · 0 评论 -
Linux基本网络设置(IP配置等,网卡驱动缓存,网卡中断)
1.简单配置a.修改IP地址和掩码[html] view plaincopyprint?ifconfig eth0 192.168.0.100 netmask 255.255.255.0 b.修改网关,对于多网卡多网段的机器,需要配置一个默认网关[html] view plaincopyprint?route add def转载 2013-05-10 17:02:15 · 2416 阅读 · 0 评论 -
Linux常用性能检测命令
Linux常用性能检测命令、uptime、top、iostat、Vmstat、pstree、Numastat、sar、free、Pmap、Strace、ulimit一、uptime Uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况转载 2013-05-11 02:37:03 · 1847 阅读 · 0 评论 -
TOP命令详解
一 概述在终端中可以查看top命令的路径和所属软件包。top程序对运行的系统提供一个动态的实时的监控。它能够显示系统的总体信息和一些正被Linux内核管理的任务。它所显示的系统总体信息的样式以及任务信息显示的样式,顺序和大小都是可以由用户配置,而且配置信息可以重启后永久生效。top能够对进程操作提供一个有限的交互式界面,对个性化配置提供更多扩展性的界面。当使用top原创 2013-05-11 02:46:19 · 3257 阅读 · 0 评论 -
linux进程调度浅析
操作系统要实现多进程,进程调度必不可少。 进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。如果进程不可执行(正在睡眠或其他),那么它跟进程调度没多大关系。 所以,如果你的系统负载非常低,盼星星盼月亮才出现一个可执行状态的进程。那么进程调度也就不会太重要。哪个进程可执行,就让它执行去,没有什么需要多考虑的。 反之,如原创 2013-05-11 15:01:19 · 4100 阅读 · 1 评论 -
linux中断处理浅析
最近在研究异步消息处理, 突然想起linux内核的中断处理, 里面由始至终都贯穿着"重要的事马上做, 不重要的事推后做"的异步处理思想. 于是整理一下~第一阶段--获取中断号每个CPU都有响应中断的能力, 每个CPU响应中断时都走相同的流程. 这个流程就是内核提供的中断服务程序.在进入中断服务程序时, CPU已经自动禁止了本CPU上的中断响应, 因为CPU不能假定中断服务程序是原创 2013-05-11 18:46:42 · 2779 阅读 · 1 评论 -
linux线程浅析
关于linux线程 在许多经典的操作系统教科书中, 总是把进程定义为程序的执行实例, 它并不执行什么, 只是维护应用程序所需的各种资源. 而线程则是真正的执行实体. 为了让进程完成一定的工作, 进程必须至少包含一个线程. 如图1. 进程所维护的是程序所包含的资源(静态资源), 如: 地址空间, 打开的文件句柄集, 文件系统状态, 信号处理handler等;原创 2013-05-11 16:25:07 · 3077 阅读 · 0 评论 -
神奇的vfork
一段神奇的代码在论坛里看到下面一段代码:int createproc();int main(){pid_t pid=createproc();printf("%d\n", pid);exit(0);}int createproc(){pid_t pid;if(!(pid=vfork())) {printf("child proc:%d\n",原创 2013-05-11 15:54:48 · 2776 阅读 · 0 评论 -
linux异步信号handle浅析
在初学linux编程的时候,一直觉得异步信号handle是个很神奇的东西,用户程序可以使用singal之类的系统调用为某某信号注册一个信号处理函数(handle函数)。 程序的二进制代码在内存中都有着确定的执行流程,为什么收到异步信号以后,程序会被“中断”,然后跳转到这个handle函数里面去运行呢?内核怎么有能力让程序做这样的跳转呢,总不可能临时修改程序的可执行代码吧?原创 2013-05-11 15:43:33 · 2640 阅读 · 0 评论 -
linux进程状态浅析
众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。 在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。linux内核对进程的这种管理分两个方面:进程状态管理,和进程调度。本文主要介绍进程状态管理,进程调度见《linux进程调度原创 2013-05-11 15:41:36 · 2702 阅读 · 0 评论 -
linux内核SMP负载均衡浅析
需求 在《linux进程调度浅析》一文中提到,在SMP(对称多处理器)环境下,每个CPU对应一个run_queue(可执行队列)。如果一个进程处于TASK_RUNNING状态(可执行状态),则它会被加入到其中一个run_queue(且同一时刻仅会被加入到一个run_queue),以便让调度程序安排它在这个run_queue对应的CPU上面运行。 一个CPU对应一个run原创 2013-05-11 17:49:46 · 4788 阅读 · 0 评论 -
剖析一个由sendfile引发的linux内核BUG
在论坛上看到一个讲linux内核BUG的帖子,利用这个BUG,一个普通用户能够在运行某个程序之后,获得root权限。 示例的代码如下:http://www.securityfocus.com/data/vulnerabilities/exploits/36038-4.tgz在ubuntu 9.04,内核版本2.6.28.12的机器上测试通过。(警告,此BUG已经是公开的秘密了。如果转载 2013-05-11 19:04:57 · 1547 阅读 · 0 评论 -
linux组调度浅析
cgroup与组调度 linux内核实现了control group功能(cgroup,since linux 2.6.24),可以支持将进程分组,然后按组来划分各种资源。比如:group-1拥有30%的CPU和50%的磁盘IO、group-2拥有10%的CPU和20%的磁盘IO、等等。具体参阅cgroup相关文章。 cgroup支持很多种资源的划分,原创 2013-05-11 17:08:21 · 5723 阅读 · 0 评论 -
shell脚本图书
《高级Bash脚本编程指南》《Linux命令行和Shell脚本编程》Linux与UNIX Shell编程指南--------------------已看!unix shell编程(第三版)Shell十三问实战LINUX+SHELL编程与服务器管理linuxsir的shell脚本赏析shell脚本学习指南《Linux命令、编辑器与Shell编程》 SSH Secure File Transfer原创 2013-05-29 11:17:09 · 1545 阅读 · 1 评论 -
proc文件系统
一:proc文件系统: (1)proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。(2)简要介绍其下文件:/proc/cpuinfo cpu信息/proc/partitions 系统识别的分区表/proc/meminfo 内存信息/proc/up原创 2013-05-31 09:49:05 · 1545 阅读 · 0 评论 -
vim命令键盘图
原创 2013-06-06 11:01:19 · 4031 阅读 · 0 评论 -
UNIX环境高级编程——进程基本概述
一、什么是进程从用户的角度来看进程是程序的一次执行过程。从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位。进程是资源分配的最小单位。每一个进程都有自己独立的地址空间与执行状态。像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程。二、进程数据结构进程的静态描述:由三部分组成:PCB、有关程序段和该程序段对其进行操作的数据结构集。进程控原创 2013-07-06 11:35:08 · 1317 阅读 · 0 评论 -
UNIX环境高级编程——文件和目录
1.原创 2013-07-04 18:28:16 · 1237 阅读 · 0 评论 -
UNIX环境高级编程——信号
1原创 2013-07-07 13:25:35 · 1315 阅读 · 0 评论 -
UNIX环境高级编程——守护进程
一、守护进程简介守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的,同时,守护进程还能完成许多系统任务,例如,作业规划进程crond、打印进程lqd等(这里的结尾字母d就原创 2013-07-07 14:43:52 · 1392 阅读 · 0 评论 -
UNIX环境高级编程——无名管道和有名管道
一、进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。如下图所示。二、管道是一种最基本的IPC机制,由pipe函数创建:#inclu转载 2013-07-07 15:12:18 · 2088 阅读 · 0 评论 -
UNIX环境高级编程——创建与打开IPC通道
创建或打开一个IPC对象的三个getXXX函数的第一个参数key是类型为key_t的IPC键,返回值identifier是一个整数标识符。该标识符不同于ftok函数的id参数。对于key值,应用程序有两种选择。(1)调用ftok,给它传递pathname和id。(2)指定key为IPC_PRIVATE,这将保证创建一个新的,唯一的IPC对象。所有三个getXXX函数都有一个名为oflag的参数,它原创 2013-07-07 18:11:42 · 1674 阅读 · 0 评论 -
UNIX环境高级编程——进程间通讯方法整理
一.无名管道pipe#include int pipe(int fd [2])二.fifo#include int mkfifo(const char *path, mode_t mode);三.信号#include void (*signal(int sig, void (*func)(int)))(int);#include int sigaction(int sig, const s转载 2013-07-07 18:45:00 · 1488 阅读 · 0 评论 -
UNIX环境高级编程——文件I/O
1.原创 2013-07-04 12:53:28 · 1387 阅读 · 0 评论 -
UNIX环境高级编程——标准I/O库
一、原创 2013-07-05 12:09:36 · 1335 阅读 · 0 评论 -
UNIX环境高级编程——标准I/O库函数和Unbuffered I/O函数
以写文件为例,C标准I/O库函数(printf(3) 、putchar(3) 、fputs(3) )与系统调用write(2) 的关 系如下图所示。 库函数与系统调用的层次关系open 、read 、write 、close 等系统函数称为无缓冲I/O(Unbuffered I/O)函数,因为它们位于C标 准库的I/O缓冲区的底层。用户程序在读写文件时既可以调用C标准I/O库函数,也可以直接调用转载 2013-07-05 16:55:42 · 1294 阅读 · 0 评论 -
UNIX环境高级编程——Linux进程地址空间和虚拟内存
一、虚拟内存分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确定是否有权限访问。每个特权级都有自己的程序栈,当程序从一个特权级切换到另一个特权级上执行时,堆栈段也随之改换到新级别的堆栈中。段选择符:每个段都有一个原创 2013-07-05 17:19:44 · 2205 阅读 · 0 评论 -
UNIX环境高级编程——进程关系
一、终端的概念在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用原创 2013-07-06 15:54:36 · 1105 阅读 · 0 评论 -
UNIX环境高级编程——sigqueue、sigsuspend函数
啊转载 2013-07-07 10:55:17 · 1579 阅读 · 0 评论