
linux技术
djinglan
喜欢
展开
-
Debian 6.0.6 安装bochs-2.6.2 出现的问题解决
直接进入正题:1、 进入bochs源码目录后, ./configure --enable-gdb-stub2、make 进行编译 。。。。。。 x.cc error: X11/Xlib.h: No such file or directory x.cc error: X11/Xutil.h: No such file or di原创 2014-01-16 10:47:42 · 2381 阅读 · 0 评论 -
select详解
#inlcude >int select(int nfds, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict errorfds, struct timeval *restrict timeout);参数:nfds给出了要监原创 2012-12-14 22:55:37 · 1419 阅读 · 0 评论 -
在Unix/Linux中创建一个后台进程的步骤
http://www.linuxidc.com/Linux/2011-07/39587.htm在Unix/Linux中创建一个后台进程的步骤1、调用fork函数,创建一个子进程。2、先让父进程自然结束。3、在子进程中调用setpgrp(),把子进程的进程组ID设为子进程的进程ID。4、在子进程中调用setsid(),创建一个新的Session(会话),这样子进程就与当前转载 2012-12-14 20:04:26 · 1798 阅读 · 0 评论 -
原子日志生成器-----UNIX系统编程笔记
要生成原子日志器,就必须用单个的write调用来输出我们希望在日志中同时出现的信息。必须用标识符O_APPEND打开文件。(有这个,每次在写操作之前,文件偏移都会被设置到文件的末尾,而且在修改文件偏移和写操作之间不会出现干扰性的文件修改操作)。使用日志器,首先调用atomic_log_open创建日志文件。在完成了所有的日志操作后由,atomic_log_close()关闭。日志器提供三种写入原创 2012-12-24 19:07:33 · 1396 阅读 · 2 评论 -
loopback 文件系统
回环设备(loop-back devices)回环设备( 'loopback device')允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为 disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image 必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)回环设备允许你这样使用一个普转载 2012-12-11 09:51:31 · 1953 阅读 · 0 评论 -
对于gcc glibc和binutils升级的次序问题分析与思考
一、相关知识 1、GCC是一个用于linux系统下编程的编译器。GCC原本只能处理C语言,但后来扩展到可处理C++,之后也可处理Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持。(注意它所提供的库,以便于当安装软件时,可以知道缺少的是gcc提供的库还是Glibc原创 2012-12-08 23:31:05 · 6060 阅读 · 0 评论 -
在3.6.0内核中升级binutils , gcc 和glibc(期待交流)
今天,就实验了一下昨天对于binutils,gcc和glibc的思考。我在内核3.6.0下升级的。(参考资料:手把手教你构建自己的linux系统,lFS-7.2英文版,还有gcc,glibc的帮助文档README,INSTALL,及一些博客)1、升级binutils 这个安装比较简单,注意一下configure 时的配置就行。2. 升级gcc gcc对原创 2012-12-09 20:22:22 · 2945 阅读 · 0 评论 -
gcc glibc 和binutils之间的关系
一、关于gcc、glibc和binutils模块之间的关系1、gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等。2、binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档转载 2012-12-08 22:35:08 · 2788 阅读 · 0 评论 -
linux shell 2>&1问题解析
试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出. 你可以用 ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1; ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;转载 2012-11-19 21:46:21 · 1245 阅读 · 0 评论 -
工具链 (编译程序,汇编程序,和链接程序和内核头文件)linux
1. 工具链:是创建linux内核映像的一组程序的集合。链的概念源于一个工具的输出将作为另一个工具的输入。 2. 编译程序:可以将高级语言转换为目标语言。目标代码是运行在目标系统上并依赖于机器的一系列指令。 汇编程序:可将汇编语言变为目标代码。 二者不同在于:汇编程序产生的机器指令与汇编语句一一对应,二高级语言的每条语句可能对应多条机器指令。当然,编译器也可先原创 2012-03-05 08:43:45 · 1701 阅读 · 0 评论 -
LFS完成心得
历时5天左右的LFS工作终于完成了。现在说说制作中的感想。首先,要找到材料。 材料就是网上下载的 《手把手教你构建自己的linux系统》word版,最好还要有本 孙海勇 出版的那本书籍, 当然英文文档也要有。前边的材料就是让你快速操作,后边这两本就是告诉你,为什么那么操作以及正确性检查。其次,要有 必然成功的信心。 在制作遇到问题时,我想,别人能成功,我也一定能成功。正原创 2012-11-30 11:31:12 · 1639 阅读 · 0 评论 -
linux 在i386下的内存管理
http://blog.youkuaiyun.com/li_shyng/article/details/5545973 对于i386 保护模式 和 linux i386下内存管理的相关资料: 1. linux源代码情景分析 (第一章 和 第二章) 2. 深入理解linux内核 (第二章) I386是Intel的x86系列CUP中一个重要的里程碑。Linux最初就是I386 CPU上实现的。本文介绍转载 2012-10-25 16:20:06 · 1149 阅读 · 0 评论 -
linux内核模块编写
主题: linux内核模块的程序结构--模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)一个linux内核模块主要由以下几个部分组成。 1、模块加载函数"用module_init()来指定"(必须) 当通过insmod和modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本转载 2012-10-22 09:43:20 · 1077 阅读 · 0 评论 -
Debian 下编译内核过程
1. 构建编译环境 (Debian 和 Ubuntu 发行版上用到的工具包) kernel-package :包括了make-kpkg等工具。 libncurses5-dev : make menuconfig 需要有此工具支持。 build-essential : 提供了c/c++的编译环境,包括了gcc、make等工具 (moduti原创 2012-03-06 12:38:07 · 2739 阅读 · 0 评论 -
linux路径查找
前面(见 http://www.linuxidc.com/Linux/2012-02/53694.htm )对linux虚拟文件系统的架构以及设计到的数据结构有了一个整体的认识,这里看看linux内核怎么根据给定的文件路径名在内存中找到和建立代表着目标文件或目录的dentry结构和inode结构。文件路径的搜索是文件系统中最基本也是最重要的一部分之一,后面我们会看到,文件的打开、关闭等等操作都将涉转载 2012-10-08 15:07:23 · 1433 阅读 · 0 评论 -
poll()函数详解
poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。 #include int poll(struct pollfd fd[], nfds_t nfds, int timeout); 参数: 1)第一个参数:一个结构数组,struct pollfd结构如下: struct pollfd{ int fd;原创 2012-12-16 23:30:08 · 106138 阅读 · 5 评论 -
linux服务程序详解
acpidACPI(全称 Advanced Configuration and Power Interface)服务是电源管理接口。建议所有的笔记本用户开启它。一些服务器可能不需要 acpi。支持的通用操作有:“电源开关“,”电池监视“,”笔记本 Lid 开关“,“笔记本显示屏亮度“,“休眠”, “挂机”,等等。anacron, atd, crond这几个调度程序有很小的差别。 建议开转载 2012-12-18 14:26:52 · 3540 阅读 · 0 评论 -
fork以及vfork
1、fork()通过复制父进程在内存中的映像创建了一个新的子进程。子进程继承了诸如环境和权限这样的父进程属性。子进程还继承了某些父进程资源,如打开的文件和设备 ,但不是父进程的每个属性或资源都被子进程继承。例如,子进程有一个新的进程id与父进程不同,子进程的CPU使用时间被重置为0.子进程没有获得父进程持有的锁原创 2012-12-18 19:01:08 · 946 阅读 · 0 评论 -
关于Linux cached内存简析
http://www.2cto.com/os/201204/126594.html测试MBS系统,AP的weblogic 只是设置了1.5G内存,但是经过3次稳定性测试,内存的利用率达到99%。 nmon的监控揭发发现存在5.6G的cached内存,下面介绍一下: Linux与Windows不同,会存在缓存内存,通常叫做Cache Memory。有些时候你会发现转载 2013-08-21 10:44:21 · 1054 阅读 · 0 评论 -
linux后台执行
http://www.cnblogs.com/SuperXJ/archive/2011/10/31/2230314.html注:可以借助shell后台执行, 模拟多线程执行程序,其中可以借助sleep和wait 来管理线程。(added by renkic )想退出secureCRT后,能够继续跑自己的进程 为什么会有这样的需求?作为系统管理员,经常遇到转载 2013-08-20 15:47:55 · 728 阅读 · 0 评论 -
Chapter 20. I/O Redirection
http://www.tldp.org/LDP/abs/html/io-redirection.htmlChapter 20. I/O RedirectionTable of Contents20.1. Using exec20.2. Redirecting Code Blocks20.3. ApplicationsThere are always three de转载 2013-06-29 17:47:45 · 791 阅读 · 0 评论 -
Lex和Yacc入门 [翻译 2009-10-7 3:45:06]
http://coanor.blog.hexun.com/38241166_d.html1. 简介只要你在Unix环境中写过程序,你必定会邂逅神秘的Lex&YACC,就如GNU/Linux用户所熟知的Flex&Bison,这里的Flex就是由Vern Paxon实现的一个Lex,Bison则是GNU版本的YACC.在此我们将统一称呼这些程序为Lex和YACC.新版本的程序是向上转载 2013-07-07 14:59:06 · 3014 阅读 · 0 评论 -
linux shell中 括号的各种用法
http://blog.sina.com.cn/s/blog_4a2a29f00100o2os.html小括号和大括号用法在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:1.${var}2.$(cmd)3.()和{}4.${var:-string},${var:+string},${var:=string},${var:?str转载 2013-06-20 15:01:38 · 1195 阅读 · 1 评论 -
linux c中的函数可以这样定义
今天发现, linux c中的函数居然可以这样定义。int func(a,b) int a; int b;{ return a + b;}int main(void){ int i = 2; int j = 3; int k = 0; k = func(i, j); printf(原创 2013-05-15 17:39:26 · 966 阅读 · 2 评论 -
linux下c库的源代码下载地址(即glibc的源代码)
相信有好多朋友也很想看c库源代码是如何实现的,但是一般人不知道去哪下,这里介绍下下载地址在浏览器地址栏:ftp.gnu.org-->进去后, 到gnu-->再这个目录下找到glibcok。原创 2013-04-12 15:37:01 · 1973 阅读 · 0 评论 -
AIX 下的 core dump 分析入门
Core dump 基本知识 本节主要探讨 core dump 产生的背景知识。对这部分不感兴趣的读者可以直接阅读第二章,了解基本的 core dump 定位手段。起源 软件是人思维的产物。智者千虑,必有一失,人的思维总有缺陷,反映到软件层面上就是程序 bug。程序 bug 的终极体现就是 core dump,core dump 是软件错误无法恢复的产物。生成过程 进程 c转载 2013-03-27 17:18:09 · 2254 阅读 · 0 评论 -
Linux下利用backtrace追踪函数调用堆栈以及定位段错误
一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于获取当前线程的调用堆栈转载 2013-03-27 15:38:18 · 2112 阅读 · 0 评论 -
在Debian中 将DVD光盘制作成ISO
方法1:在debian中, 制作ISO的工具是genisoimage。(其他linux版本可能是mkisofs)首先安装:apt-get install genisoimage安装之后用命令: genisoimage [option] -o 输出文件 光盘源/(或者目录)例如:genisoimage -r -J -o m原创 2013-02-21 23:02:41 · 3110 阅读 · 0 评论 -
https://wiki.archlinux.org/index.php/LVM_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
https://wiki.archlinux.org/index.php/LVM_(简体中文)Contents1介绍2Advantages3安装3.1在 LVM 上安装 Arch Linux3.2创建 LVM 分区3.3创建物理卷(PV)3.4创建卷组(VG)3.5创建逻辑卷(LV)3.6建立文件系统与挂载逻辑卷3.7重要转载 2013-02-22 20:35:16 · 4405 阅读 · 0 评论 -
Mysql导入导出
1.导入数据库1)sourcesource /home/platvt/product/pc2_create_tables.sql2)mysqlimport使用mysqlimport导入数据:出现情况:(1)出现 Error: 1146[platvt@qa-qd-62-180 tmp]$ mysqlimport -uro转载 2013-01-05 14:55:57 · 886 阅读 · 0 评论 -
在Debian中玩转MySql
http://blog.youkuaiyun.com/lllxy/article/details/1708156debian的安装版本:debian-40r0-i386-netinst.iso,从www.debian.org中下载 MySql的版本mysql-max-5.0.22-linux-i686-glibc23.tar.gz,从www.mysql.com中下载 WinSCP软件:转载 2013-01-04 17:05:07 · 838 阅读 · 0 评论 -
Debian安装MYSQL
http://www.2cto.com/database/201207/144756.html # chmod 755 mysql-5.5.25.tar.gz# tar xfz mysql-5.5.25.tar.gz解压后生成5.5.25目录,我们进入该目录:cd mysql-5.5.25进入后就开始配置mysql了,配置过程中我们要给mysql设置一个安装目录,我们设转载 2013-01-04 14:52:08 · 676 阅读 · 0 评论 -
kthread_create与kernel_thread的区别
kernel thread可以用kernel_thread创建,但是在执行函数里面必须用daemonize释放资源并挂到init下,还需要用completion等待这一过程的完成。kthread_create是比较正牌的创建函数,这个不必要调用daemonize,用这个创建的kernel thread都挂在了kthread线程下。从表面上来看,这两个函数非常的类似,但是实现却是相差甚远转载 2012-08-02 10:40:49 · 1029 阅读 · 0 评论 -
内核线程
http://blog.youkuaiyun.com/yunsongice/article/details/5522012 按照传统UNIX规定的一些操作系统标准,一些重要的任务需要由进程来周期性地执行。这些任务包括刷新磁盘高速缓存,交换出不用的页框,维护网络连接等等。那么,由于这些系统进程只运行在内核态,所以Linux将他改造了,跟一般的进程不一样了,给它取个名称叫内核线程(kernel threa转载 2012-07-31 11:07:12 · 684 阅读 · 0 评论 -
ldd3 scull错误移除
由于linux内核版本的升级,往往会让能在老版本内核上编译通过的驱动程序移植到新版本内核中出现各种编译和链接错误,这里就将我遇到的一些问题做个整理,让后续开发更流畅^_^!当前内核版本为3.2.41.make[1]: Entering directory `/usr/src/linux-***' scripts/Makefile.build:49: *** CFLAGS was c转载 2012-03-20 15:44:11 · 981 阅读 · 0 评论 -
浏览内核源码工具
有网络的时候,使用LXR(The Linux Cross Referencer)在线阅读源码固然是一件很爽的事情。在无网络的情况下,只通过vim进入内核源码那样查找就显得有些勉强。接下来,本文将介绍一种快速定位源码的工具:ctags和cscope。通过vim编辑器,再配合使用上述两种工具就可以快速定位想要查看的源码。好了,开始吧!1.下载最新内核源码包,解压至主目录下接下来的步骤当然可以在转载 2012-03-20 14:50:50 · 885 阅读 · 0 评论 -
Fix it to use EXTRA_CFLAGS. Stop.
来源:http://blog.youkuaiyun.com/snow25bz/article/details/6282877 LDD3 :1. 在linux2.6.34.1编译提示 Fix it to use EXTRA_CFLAGS. Stop. 将makefile中的 CFLAGS 替换成 EXTRA_CFLAGS就可以了。原因是在2.6的内核的版本中所有的 EXTRA_ 变量只在转载 2012-03-20 11:00:54 · 1061 阅读 · 0 评论 -
神奇的vfork()
在学习vfork的时候遇到了return与exit区别的问题: #includestdio.h>#includeerrno.h>#includeunistd.h>int main(void){pid_t pid;int ret = 0;if((pid= vfork()) 0)printf("Fork error:%s\n",s转载 2012-04-05 23:06:24 · 1421 阅读 · 0 评论 -
fork函数的两次返回和父子进程的执行顺序简介
http://hi.baidu.com/%CE%A8%C0%D6ice/blog/item/c78270ff877db72d5c600889.html 今天为了参加腾讯的面试,特地研究了一下fork的两次返回。大家都知道,调用fork后会返回两个值或者一个值。两个值是指在调用成功的情况下,返回0表示子进程在运行,大于0的数表示父进程在运行,错误情况下就返回一个值转载 2012-04-05 20:59:11 · 8390 阅读 · 0 评论 -
Debian 6.0.4安装配置lamp(Apache+MySQL+PHP)
l来源:http://www.osyunwei.com/archives/2372.html 准备篇:1、配置防火墙,开启80端口、3306端口说明:debian默认安装是没有开启任何防火墙的,为了服务器的安全,建议大家安装启用防火墙设置,这里推荐使用iptables防火墙。whereis iptables #查看系统是否安装防火墙iptables: /sbin/ipt转载 2012-04-04 23:30:16 · 1870 阅读 · 0 评论