- 博客(26)
- 收藏
- 关注
转载 匿名 Namespace和static 的区别
原文链接:http://www.cnblogs.com/JefferyZhou/archive/2012/09/24/2700306.htmlC++的链接性质,也就是translation unit的作用范围。在C中,给全局变量,函数,加上 static,表示当前函数和变量的linkage 为 internal,这样,就可以在不同的unit 中定义同名的函数和变量了。但是,加了st
2015-01-08 17:17:29
879
转载 linux下编译c或c++
一、gcc和g++1、最简单的编译 gcc编译c程序:gcc -c test.cgcc -o test test.o g++编译c++程序:g++ -c test.cppg++ -o testpp test.o gcc与g++g++和gcc的区别是会在c++程序链接时,自动引用c++库,而gcc不会。
2014-12-30 09:52:39
351
转载 移植sbull至kernel version > 2.6.31
最近在看LDD3和ULK,学习kernel中块设备的驱动机制,kernel 2.6中block layer API已经变更了许多,主要有以下几点:1. 对于request的请求处理机制,去除掉了原先的elv_next_request和blk_dequeue_request结构,取而代之的是blk_peek_request和blk_start_request,详见如下链接(htt
2014-12-22 18:02:09
312
转载 linux 内核定时器 timer_list详解
http://www.linux-cn.com/html/linux/kernel/20070412/1886.shtml http://linux.ccidnet.com/art/741/20061116/952655_1.htmlLinux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()函数中也不再通过run_old_timers
2014-12-22 17:37:02
369
原创 grub2无法启动系统
今天让内核panic来产生vmcore文件时,使操作系统无法正常启动。以下是自救方法,特此记录。1. 使用centos系统光盘挽救模式启动,然后使用以下命令成功使linux系统可以正常启动:2. chroot /mnt/sysimage #根据提示chroot到指定目录3. grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成以下grub2
2014-12-19 17:10:24
536
原创 kernel vmcore调试环境搭建步骤
1. 在http://debuginfo.centos.org/网站找到kernel对应的debuginfo以及debuginfo-common rpm包。这两个rpm包是包含debug符号表的kernel镜像。2. 安装这两个包.注意,由于依赖关系,首先安装common包。rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-123.9
2014-12-19 16:11:27
517
原创 centos获取内核源码,编译内核,编译内核模块
http://wiki.centos.org/zh/HowTos/I_need_the_Kernel_Sourcehttp://wiki.centos.org/zh/HowTos/Custom_Kernelhttp://wiki.centos.org/zh/HowTos/BuildingKernelModules
2014-12-19 14:39:29
404
转载 Linux内核补丁与patch/diff使用详解
转发自:http://blog.chinaunix.net/uid-7295895-id-2230796.html注意下述内容部分不能应用到3.x系列内核。一、Linux内核版本类型及patch简介:1) 2.6.x为基础版本,patch位置: http://www.kernel.org/pub/linux/kernel/v2.6/
2014-12-19 14:35:07
721
转载 怎样为内核打补丁
转发自:http://blog.chinaunix.net/uid-705824-id-2679556.html校对完了,终于可以贴出来了。其间和作者Jesper Juhl商谈了好几个回合,得到了他的热心帮助,在此表示感谢! 怎样为Linux内核打补丁
2014-12-19 13:16:13
601
转载 lvm管理相关-基础命令
LVM简介LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是一种磁盘管理工具,最主要的功能就是可以随时在线调整分区的大小,解决了安装Linux系统时需要评估分区大小的烦恼。LVM相关术语物理存储介质(The physical media)这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
2014-12-17 17:42:08
293
转载 帧栈
转发:http://blog.csdn.net/yxysdcl/article/details/5569351首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地)。下图为典型的存取器安排,观察栈在其中的位置
2014-12-12 17:27:15
315
转载 块设备入门
转载自:http://hbhuanggang.cublog.cn一、开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、块设备基本概念扇区(Sectors):任何块设备硬件对数据处理的基本单位。通常,1个扇区的大小为512b
2014-12-11 16:05:19
439
转载 走马观花: Linux 系统调用 open 七日游(七)
【场景三】open(pathname, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR) 在这个场景中我们希望创建一个新文件(O_CREAT),并赋予该文件用户可读(S_IRUSR)和用户可写(S_IWUSR)的权限,然后以只写(O_WRONLY)的方式打开这个文件。O_EXCL 在这里保证该文件必须被创建,如果该文件已经存在则失败返回。
2014-12-11 14:03:49
1568
转载 走马观花: Linux 系统调用 open 七日游(六)
还记得在上一个场景中,build_open_flags 里面有一个对标志位 O_PATH 的判断么?现在我们就来看看这个标志位是干啥的:【场景二】open(pathname, O_PATH) 这个 O_PATH 似乎是不常用的,咱们先看看它的使用说明:【open(2)】http://man7.org/linux/man-pages/man2/open.2.html
2014-12-11 14:02:47
401
转载 走马观花: Linux 系统调用 open 七日游(五)
回到 path_openat:【fs/namei.c】sys_open > do_sys_open > do_filp_open > path_openat点击(此处)折叠或打开 ... error = do_last(nd, &path, file, op, &opened, pathname); while (unl
2014-12-11 14:01:07
1530
转载 走马观花: Linux 系统调用 open 七日游(四)
现在,我们的“路径行走”只剩下最后一个小问题需要处理了——符号链接。【fs/namei.c】sys_open > do_sys_open > do_filp_open > path_openat > link_path_walk点击(此处)折叠或打开 ... if (err) { err = nest
2014-12-11 13:59:38
417
转载 走马观花: Linux 系统调用 open 七日游(三)
接着上回,当对“.”和“..”处理完成后就直接返回进入下一个子路径循环了,但如果当前子路径不是“.”或“..”呢?【fs/namei.c】sys_open > do_sys_open > do_filp_open > path_openat > link_path_walk > walk_component点击(此处)折叠或打开 ...
2014-12-11 13:58:00
516
转载 走马观花: Linux 系统调用 open 七日游(二)
接着昨日的旅程,我们应该开始处理具体的子路径了:【fs/namei.c】sys_open->do_sys_open->do_filp_open->path_openat->link_path_walk点击(此处)折叠或打开 ... err = walk_component(nd, &next, LOOKUP_FOLLOW);
2014-12-11 13:56:53
1492
转载 走马观花: Linux 系统调用 open 七日游(一)
转载自:http://blog.chinaunix.net/uid-20522771-id-4419666.html 友情提示:您需要一个 kernel 3.15.6,下载地址:https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.15.6.tar.xz 我们将以 Linux 系统调用 open 为主线,参
2014-12-11 13:54:42
1888
转载 sysctl中文手册
SYSCTL(8) System Administration SYSCTL(8)名字 sysctl - 在运行时配置内核参数语法 sysctl [options] [variable[=value]] [...] sysctl -p [file or regexp] [..
2014-12-10 13:54:08
385
转载 rpm中文手册
RPM(8) System Manager's Manual RPM(8)名字 rpm - RPM 软件包管理器语法 查询软件包: rpm {-q|--query} [select-options] [query-o
2014-12-10 13:52:56
418
转载 mount中文手册
MOUNT(8) System Administration MOUNT(8)名称 mount - 挂载文件系统语法 mount [-lhV] mount -a [-fFnrsvw] [-t vfstype
2014-12-10 13:51:09
578
转载 linux内核引导参数简介
概述内核引导参数大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导参数,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导参数说明。大多数参数是通过"__set
2014-12-10 13:40:43
981
转载 中缀表达式转后缀表达式
中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.遇到左括号:将其入栈3.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。4.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈5.最终将栈中的元素依次出栈,输出。6. 注意,运算符优先级:*/ > +- > ()
2014-12-08 16:30:43
290
转载 dirty_ratio与dirty_background_ratio两个参数区别
这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响,故调研了一些降低文件系统缓存大小的方法,其中一种是通过修改/proc/sys/vm/dirty_background_ration以及/proc/sys/vm/dirty_ratio两个参数的大小来实现。看了不少相关博文的介绍,不过一直弄不清楚这两个参数的区别在哪里,后来看了下面的一篇英文博客才大致了解了它们的不同。
2014-12-05 18:08:14
1280
转载 linux下proc里关于磁盘性能的参数
我们在磁盘写操作持续繁忙的服务器上曾经碰到一个特殊的性能问题。每隔 30 秒,服务器就会遇到磁盘写活动高峰,导致请求处理延迟非常大(超过3秒)。后来上网查了一下资料,通过调整内核参数,将写活动的高峰分布成频繁的多次写,每次写入的数据比较少。这样可以把尖峰的写操作削平成多次写操作。以这种方式执行的效率比较低,因为内核不太有机会组合写操作。但对于繁忙的服务器,写操作将更一致地进行,并将极大地改进交互式
2014-11-21 16:39:27
295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人