04 2013 档案

E430安装ubuntu12.04
摘要:关键词:EFI,grub rescue,broadcom无线网卡联想E430的硬盘接口是EFI的(当然也可以配成IDE的),安装时必须有一个100MB以上的FAT32分区挂载到/boot/efi路径下,否则进入引导菜单项后就走不下了。调整、恢复分区之类操作,都会影响GRUB2引导器。这时候,GRU... 阅读全文

posted @ 2013-04-26 22:30 胡永光 阅读(230) 评论(0) 推荐(0) 编辑

suse 11 root密码重新设置
摘要:1. 启动grub时候选择 Failsafe 下面的“boot option“内容全部删除,写入init=/bin/bash,进入单用户模式。 2. 稍等会出现命令行 (none)#: #mount -o remount, rw / //根文件系统重新mount为可读写,... 阅读全文

posted @ 2013-04-25 16:01 胡永光 阅读(256) 评论(0) 推荐(0) 编辑

Linux/Unix 编程中 POSIX 函数的线程安全问题
摘要:线程安全介绍 在目前的计算机科学中,线程是操作系统调度的最小单元,进程是资源分配的最小单元。在大多数操作系统中,一个进程可以同时派生出多个线程。这些线程独立执行,共享进程的资源。在单处理器系统中,多线程通过分时复用技术来技术,处理器在不同的线程间切换,从而更高效地利用系统 CPU资源。在多处... 阅读全文

posted @ 2013-04-19 22:58 胡永光 阅读(234) 评论(0) 推荐(0) 编辑

Linux/Unix编程中的线程安全问题
摘要:线程主要由控制流程和资源使用两部分构成,因此一个不得不面对的问题就是对共享资源的访问。为了确保资源得到正确的使用,开发人员在设计编写程序时需要考虑避免竞争条件和死锁,需要更多地考虑使用线程互斥变量。 判断一个函数是否线程安全不是一件很容易的事情。但是读者可以通过下面这几条确定一个函数是线程不... 阅读全文

posted @ 2013-04-19 22:55 胡永光 阅读(239) 评论(0) 推荐(0) 编辑

linux-多线程--面试题
摘要:刚无意中看到MoreWindows博主秒杀多线程面试题(http://blog.csdn.net/column/details/killthreadseries.html),第一篇就有他收集的面试题。那我就用来检验一下自己学的怎么样吧。 前面的选择题那些跳过,直接看最后的编程题。 ... 阅读全文

posted @ 2013-04-19 22:51 胡永光 阅读(217) 评论(0) 推荐(0) 编辑

Linux多线程编程(不限Linux)
摘要:——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。 前言 线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题: 是否熟悉POSIX多... 阅读全文

posted @ 2013-04-19 22:48 胡永光 阅读(139) 评论(0) 推荐(0) 编辑

linux-多线程
摘要:一、什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。 二、什么时候使用... 阅读全文

posted @ 2013-04-19 22:46 胡永光 阅读(175) 评论(0) 推荐(0) 编辑

Linux下的多线程编程
摘要:1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包... 阅读全文

posted @ 2013-04-19 22:43 胡永光 阅读(86) 评论(0) 推荐(0) 编辑

Linux多线程与同步
摘要:典型的UNIX系统都支持一个进程创建多个线程(thread)。在Linux进程基础中提到,Linux以进程为单位组织操作,Linux中的线程也都基于进程。尽管实现方式有异于其它的UNIX系统,但Linux的多线程在逻辑和使用上与真正的多线程并没有差别。 1. 多进程 我们先来看一下什么是多... 阅读全文

posted @ 2013-04-19 22:40 胡永光 阅读(136) 评论(0) 推荐(0) 编辑

Linux一个多线程的面试题
摘要:[html] view plaincopy int main(int argc, char *argv[]) { int i; for(i=0; i<10; i++) fork(); while(1); } 这段程序运行时,系统中存在多少... 阅读全文

posted @ 2013-04-19 22:38 胡永光 阅读(259) 评论(0) 推荐(0) 编辑

linux内核主要模块图
摘要:下图清楚的表示了linux内核的主要模块图。 阅读全文

posted @ 2013-04-16 10:07 胡永光 阅读(162) 评论(0) 推荐(0) 编辑

实模式与保护模式
摘要:1. 实模式,又叫实地址模式,CPU完全按照8086的实际寻址方法访问从00000h--FFFFFh(1MB大小)的地址范围的内存,在这种模式下,CPU只能做单任务运行;寻址公式为:物理地址=左移4位的段地址+偏移地址,即:物理地址是由16位的段地址和16位的段内偏移地址组成的。 2.保护模式... 阅读全文

posted @ 2013-04-16 09:56 胡永光 阅读(240) 评论(0) 推荐(0) 编辑

Linux0.11内核--几种地址(逻辑地址、线性地址、物理地址)的含义
摘要:程序(进程)的虚拟地址和逻辑地址 虚拟地址(virtual address)指程序产生的有段选择符和段内偏移两部分组成的地址。一个程序的虚拟地址空间有GDT映射的全地址空间和LDT映射的局部地址空间组成。 逻辑地址(logical address)指程序产生的段内偏移地址。应用程序只与逻辑... 阅读全文

posted @ 2013-04-16 09:50 胡永光 阅读(187) 评论(0) 推荐(0) 编辑

Ubuntu 下安装LXR(linux源代码阅读工具)
摘要:1.安装apache2 sudo apt-get install apache2 2.安装lxrglimpse sudo apt-get install lxr 下载最新glimpse解压 下载地址http://download.csdn.net/detail/yming0221/30760... 阅读全文

posted @ 2013-04-15 11:41 胡永光 阅读(130) 评论(0) 推荐(0) 编辑

Linux0.11内核--内核态与用户态
摘要:内核态与用户态 intel x86 架构的 CPU 分 Ring0-Ring3 三种级别的运行模式,Ring0级别最高,Ring3 最低。 针对不同的 级别,有很多的限制,比如说传统的 in ,out 指令,就是端口的输入输出指令,在 Ring0 级下是可以用的,但在 Ring3 级下就不... 阅读全文

posted @ 2013-04-15 11:38 胡永光 阅读(222) 评论(0) 推荐(0) 编辑

进程的用户栈和内核栈
摘要:进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,而进程则相当于剧本的一次演出,舞台、灯光则相当于进程的运行环境。 进程的堆栈 每个进程都有自己的堆栈,内核在创建一个新的进程时,在创建进程控制块task_struct的同时,也为进程创建自己堆栈。一个进程 有2个堆栈,用户堆栈和系... 阅读全文

posted @ 2013-04-15 11:37 胡永光 阅读(194) 评论(0) 推荐(0) 编辑

Linux0.11内核--进程的结束
摘要:进程的结束 结束一个进程,就是要释放该进程所有的结构和资源,让系统从此之后再也感觉不到它的存在。如前面所说的,一个进程的结构包括: task[]数组中一项,指向了该进程的task_struct和内核堆栈所在页面; GDT中两项,一项是TSS描述符,一项是LDT描述符; 若干页目录项和... 阅读全文

posted @ 2013-04-15 11:35 胡永光 阅读(254) 评论(0) 推荐(0) 编辑

static,inline,volatile的作用
摘要:1、static (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容 [cpp] v... 阅读全文

posted @ 2013-04-15 11:31 胡永光 阅读(253) 评论(0) 推荐(0) 编辑

Linux 内核--fork()函数创建进程 (续)之copy_mem(int nr, struct task_struct *p)
摘要:本问分析基于Linux 0.11内核,转载请标明出处http://blog.csdn.net/yming0221/archive/2011/06/06/6528490.aspx copy_mem(int nr, struct task_struct *p)函数是为进程设置段基址,限长,并复制页... 阅读全文

posted @ 2013-04-15 11:29 胡永光 阅读(162) 评论(0) 推荐(0) 编辑

Linux 内核--fork()函数创建进程
摘要:本文分析基于Linux 0.11内核,转载请表明出处http://blog.csdn.net/yming0221/archive/2011/06/05/6527337.aspx Linux在move_to_user_mode()之后,进程0通过fork()产生子进程实际就是进程1(in... 阅读全文

posted @ 2013-04-15 11:27 胡永光 阅读(268) 评论(0) 推荐(0) 编辑

Linux 内核--任务0的运行(切换到用户模式)move_to_user_mode
摘要:本文分析基于Linux 0.11内核,转载请标明出处,http://blog.csdn.net/yming0221/archive/2011/06/01/6459119.aspx 在main.c的程序中,当设备初始化完毕后,程序将从内核模式切换到用户模式,也就是所说的任务0,执行fork()函数... 阅读全文

posted @ 2013-04-15 11:24 胡永光 阅读(291) 评论(0) 推荐(0) 编辑

Linux 内核--任务0的调度切换
摘要:本文分析基于Linux 0.11内核,转载请标明出处 http://blog.csdn.net/yming0221/archive/2011/06/09/6533865.aspx。 main.c中在move_to_user_mode()之后,切换到用户模式下运行,task0然后执行fo... 阅读全文

posted @ 2013-04-15 11:21 胡永光 阅读(214) 评论(0) 推荐(0) 编辑

Linux添加系统调用
摘要:本文基于Linux 2.4.26内核,GCC 3.2.2添加系统调用mycall(int num) 增加系统调用只修改/usr/src/linux-2.4.29/include/asm-i386/unistd.h和arch/i386/kernel/entry.S,系统调用函数一般在kerne... 阅读全文

posted @ 2013-04-15 11:20 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

Linux 内核编译 添加系统调用
摘要:主机:Ubuntu 11.04 现在内核版本:2.6.38.9 编译的目标内核版本:2.6.39 编译成功后修改内核,添加个系统调用,并重新编译内核,编写C程序,调用自己添加的系统调用 首先编译内核 1、从下载Linux内核版本2.6.39 2、解压内核到任意目录(这里不用必须解压到/u... 阅读全文

posted @ 2013-04-15 11:19 胡永光 阅读(168) 评论(0) 推荐(0) 编辑

关于vmlinux,vmlinuz,bzImage,zImage的区别和联系
摘要:vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,... 阅读全文

posted @ 2013-04-15 11:18 胡永光 阅读(296) 评论(0) 推荐(0) 编辑

linux进程调度浅析
摘要:操作系统要实现多进程,进程调度必不可少。 有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TAS... 阅读全文

posted @ 2013-04-15 11:15 胡永光 阅读(93) 评论(0) 推荐(0) 编辑

内核中断,异常,抢占总结篇
摘要:一、基本概念 中断分为同步中断和异步中断。同步中断是由CPU控制单元产生的,“同步”是指只有在一条指令执行完毕后,CPU才会发出中断,而不是发生在代码指令执行期间,比如系统调用。而异步中断是由其他硬件设备依照CPU时钟信号产生的,即意味着中断能够在指令之间发生,例如键盘中断。 按照Intel的微... 阅读全文

posted @ 2013-04-15 11:13 胡永光 阅读(204) 评论(0) 推荐(0) 编辑

深入理解linux内核自旋锁
摘要:最近在内核频繁使用了自旋锁,自旋锁如果使用不当,极易引起死锁,在此总结一下。 自旋锁是一个互斥设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试相关的位。如果锁可用,则“锁定”被设置,而代码继续进入临界区;相反,如果锁被其他人获得,则代码进入忙... 阅读全文

posted @ 2013-04-15 11:09 胡永光 阅读(166) 评论(0) 推荐(1) 编辑

软中断小结
摘要:内核处理的任务中有的不是那么紧迫的,在必要的时间可以把它们延迟一段时间,这就是软中断形成的背景。这对于哪些期望它们的中断能在几毫秒内得到处理的“急迫”应用来说是非常重要的。由此,硬中断负责处理紧急的任务,软中断负责处理不是那么紧迫的任务。 Linux 2.6内核提供了两种非紧迫、可中断函数:所... 阅读全文

posted @ 2013-04-15 11:09 胡永光 阅读(113) 评论(0) 推荐(0) 编辑

Linux 中断总结
摘要:Linux中断分为硬中断和软中断。 硬中断是由硬件设备触发的中断。I/O设备要产生硬中断时,会由中断控制器发送一个电信号,内核的设备驱动程序接收到这个电信号,就会调用相应的中断处理函数对这个中断进行处理。硬中断可以在任何时刻到来,它代表的系统必须马上处理的紧急任务,也简称为中断的上半部,与此对应... 阅读全文

posted @ 2013-04-15 11:07 胡永光 阅读(191) 评论(0) 推荐(0) 编辑

在用户空间发生中断时,上下文切换的过程
摘要:先引用一篇博文,再总结一下相关问题。 所谓上下文切换,实质就是寄存器堆的切换过程。这其中一部分需要硬件来切换,一部分需要软件来处理。 当在用户空间发生中断时,首先由 x86 CPU 从硬件角度进行处理,然后才是 linux 内核的处理。当中断处理完毕,返回到用户空间时,最后的步骤也是交给 CP... 阅读全文

posted @ 2013-04-15 11:06 胡永光 阅读(225) 评论(0) 推荐(0) 编辑

Linux内核抢占实现机制分析
摘要:Linux内核抢占实现机制分析 【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。 【关键字】... 阅读全文

posted @ 2013-04-15 11:03 胡永光 阅读(182) 评论(0) 推荐(0) 编辑

【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Linux内核抢占实现机制分析
摘要:Linux内核抢占实现机制分析 【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。 【关键字... 阅读全文

posted @ 2013-04-15 11:00 胡永光 阅读(237) 评论(0) 推荐(0) 编辑

《一个程序员的奋斗史》猜“封面+页数”结果揭晓!!
摘要:《一个程序员的奋斗史》猜“封面+页数”结果揭晓!! 猜“封面+页数”的活动在大伙的热情支持下,终于圆满结束。封面自然不用说,主流的便是大家喜欢的“封面一”! 至于页数嘛,出版社给我的答案是429页! 根据这结果,最后是这两位朋友获得赠书: 62楼 randy1098 封面1 + 430页(因为两... 阅读全文

posted @ 2013-04-14 21:22 胡永光 阅读(92) 评论(0) 推荐(0) 编辑

《一个程序员的奋斗史》猜“封面+页数”结果揭晓!!
摘要:《一个程序员的奋斗史》猜“封面+页数”结果揭晓!! 猜“封面+页数”的活动在大伙的热情支持下,终于圆满结束。封面自然不用说,主流的便是大家喜欢的“封面一”! 至于页数嘛,出版社给我的答案是429页! 根据这结果,最后是这两位朋友获得赠书: 62楼 randy1098 封面1 + 430页(因为两... 阅读全文

posted @ 2013-04-14 21:22 胡永光 阅读(67) 评论(0) 推荐(0) 编辑

《一个程序员的奋斗史》猜“封面+页数”结果揭晓!!
摘要:《一个程序员的奋斗史》猜“封面+页数”结果揭晓!! 猜“封面+页数”的活动在大伙的热情支持下,终于圆满结束。封面自然不用说,主流的便是大家喜欢的“封面一”! 至于页数嘛,出版社给我的答案是429页! 根据这结果,最后是这两位朋友获得赠书: 62楼 randy1098 封面1 + 430页(因为两... 阅读全文

posted @ 2013-04-14 21:22 胡永光 阅读(94) 评论(0) 推荐(0) 编辑

Linux 2.6 内核定时器
摘要:一、定义: /include/linux/timer.h struct timer_list { struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsig... 阅读全文

posted @ 2013-04-13 13:46 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

内核源码学习:伙伴算法
摘要:1.原理 Linux的伙伴算法把所有的空闲页面分为10个块组,每组中块的大小是2的幂次方个页面,例如,第0组中块的大小都为20 (1个页面),第1组中块的大小为都为21(2个页面),第9组中块的大小都为29(512个页面)。也就是说,每一组中块的大小是相同的,且这同样大小的块形成... 阅读全文

posted @ 2013-04-13 13:45 胡永光 阅读(125) 评论(0) 推荐(0) 编辑

内存管理简介之Buddy算法和slab分配
摘要:1.Buddy算法 linux对空闲内存空间管理采取buddy算法, Buddy算法: 把内存中所有页面按照2^n划分,其中n=0~5,每个内存空间按1个页面、2个页面、4个页面、8个页面、16个页面、32个页面进行六次划分。划分后形成了大小不等的存储块,称为页面块,简称页块,包含一个页面的页... 阅读全文

posted @ 2013-04-13 13:45 胡永光 阅读(289) 评论(0) 推荐(0) 编辑

进程通信方式介绍
摘要:Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量(semaphore),信号(signal),套接字(Socket). (1) 管道(pipe)... 阅读全文

posted @ 2013-04-13 13:44 胡永光 阅读(165) 评论(0) 推荐(0) 编辑

Linux内核--网络协议栈深入分析(五)--套接字的绑定、监听、连接和断开
摘要:本文分析基于Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7996528 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel... 阅读全文

posted @ 2013-04-13 13:42 胡永光 阅读(320) 评论(0) 推荐(0) 编辑

Linux内核--网络协议栈深入分析(四)--套接字内核初始化和创建过程
摘要:本文分析基于Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7984238 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel... 阅读全文

posted @ 2013-04-13 13:41 胡永光 阅读(282) 评论(0) 推荐(0) 编辑

Linux内核--网络协议栈深入分析(三)--BSD socket和传输层sock
摘要:本文分析基于Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7979838 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel... 阅读全文

posted @ 2013-04-13 13:39 胡永光 阅读(354) 评论(0) 推荐(0) 编辑

Linux内核--网络协议栈深入分析(二)--sk_buff的操作函数
摘要:本文分析基于Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7972647 更多请查看网络栈分析专栏http://blog.csdn.net/column/details/linux-k... 阅读全文

posted @ 2013-04-13 13:38 胡永光 阅读(254) 评论(0) 推荐(0) 编辑

Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
摘要:本文分析基于Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7971463 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel... 阅读全文

posted @ 2013-04-13 13:36 胡永光 阅读(233) 评论(0) 推荐(0) 编辑

Linux内核--基于Netfilter的内核级包过滤防火墙实现
摘要:测试内核版本:Linux Kernel 2.6.35----Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7572382 更多请查看专栏http://blog.csdn.net/co... 阅读全文

posted @ 2013-04-13 13:36 胡永光 阅读(205) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(十一)--驱动程序层(下)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7555870 更多请查看专栏,地址http://blog.csdn.net/column/details/linux-ke... 阅读全文

posted @ 2013-04-13 13:33 胡永光 阅读(169) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(十)--网络层之IP协议(下)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7552455 更多请查看专栏,地址http://blog.csdn.net/column/details/linux-ke... 阅读全文

posted @ 2013-04-13 13:33 胡永光 阅读(127) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7549340 更多请查看专栏,地址http://blog.csdn.net/column/details/linux-ke... 阅读全文

posted @ 2013-04-13 13:31 胡永光 阅读(181) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(八)--应用层发送数据(下)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7547826 更多请查看专栏,地址http://blog.csdn.net/column/details/linux-ke... 阅读全文

posted @ 2013-04-13 13:29 胡永光 阅读(171) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(七)--数据包的传递过程(下)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地址http://blog.csdn.net/column/details/linux-ke... 阅读全文

posted @ 2013-04-13 13:28 胡永光 阅读(157) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(六)--应用层获取数据包(上)
摘要:本文分析基于内核Linux 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7541907 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-n... 阅读全文

posted @ 2013-04-13 13:27 胡永光 阅读(166) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(五)--传输层之UDP协议(上)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7532512 更多请看专栏,地址http://blog.csdn.net/column/details/linux-k... 阅读全文

posted @ 2013-04-13 13:26 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(四)--网络层之IP协议(上)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017 更多请看专栏,地址http://blog.csdn.net/column/details/linux-ker... 阅读全文

posted @ 2013-04-13 13:24 胡永光 阅读(217) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260 更多请看专栏,地址http://blog.csdn.net/column/details/linux-ker... 阅读全文

posted @ 2013-04-13 13:23 胡永光 阅读(226) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(二)--数据包的传递过程(上)
摘要:本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7492423 更多请看专栏,地址http://blog.csdn.net/column/details/linux-ker... 阅读全文

posted @ 2013-04-13 13:20 胡永光 阅读(132) 评论(0) 推荐(0) 编辑

Linux内核--网络栈实现分析(一)--网络栈初始化
摘要:本文分析基于内核Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7488828 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kern... 阅读全文

posted @ 2013-04-12 16:48 胡永光 阅读(241) 评论(0) 推荐(0) 编辑

工具使用_Purify使用的图形化工具Xmanager
摘要:Purify使用的图形化工具Xmanager 一、安装及配置 取软件,按照流程安装。 二、使用-建立新session Step1:开始建立新session向导 Step2: Step3: Host的IP为第一章安装部分,purify安装的机器的IP Step4: 同step3,是... 阅读全文

posted @ 2013-04-12 10:45 胡永光 阅读(146) 评论(0) 推荐(0) 编辑

Purify命令大全
摘要:1 ABR: array bounds read数组越界读 1.1 介绍 An ABR message indicates that your program is about to read a value from before or after a block or... 阅读全文

posted @ 2013-04-12 09:59 胡永光 阅读(155) 评论(0) 推荐(0) 编辑

Purify检测的代码错误类型
摘要:一、 红色叹号提示 1、 ABR: Array Bounds Read 数组越界读(只检测动态内存分配的数组,对Global、Local、Static的数组无法检测)。 2、 ABW: Array Bounds Write 数组越界写(只检测动态内存分配的数组,对Gl... 阅读全文

posted @ 2013-04-10 17:09 胡永光 阅读(129) 评论(0) 推荐(0) 编辑

内存分析利器purify简介
摘要:1.内存问题的原因及分类 在C/C++程序中,有关内存使用的问题是最难发现和解决的。这些问题可能导致程序莫名其妙地停止、崩溃,或者不断消耗内存直至资源耗尽。由于C/C++语言本身的特质和历史原因,程序员使用内存需要注意的事项较多,而且语言本身也不提供类似Java的垃圾清理机制。编程人员使用一... 阅读全文

posted @ 2013-04-10 17:07 胡永光 阅读(334) 评论(0) 推荐(0) 编辑

ldd 的一个安全问题
摘要:源文:http://coolshell.cn/?p=1626 (酷壳) 我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的。是的,这就是这个命令的用处。可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务器。其实,l... 阅读全文

posted @ 2013-04-10 16:38 胡永光 阅读(140) 评论(0) 推荐(0) 编辑

用GDB调试程序(七)
摘要:改变程序的执行 ——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改... 阅读全文

posted @ 2013-04-10 16:35 胡永光 阅读(98) 评论(0) 推荐(0) 编辑

用GDB调试程序(六)
摘要:七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: ... 阅读全文

posted @ 2013-04-10 16:34 胡永光 阅读(115) 评论(0) 推荐(0) 编辑

用GDB调试程序(五)
摘要:查看运行时数据 ——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print / 是表达式,是你所调... 阅读全文

posted @ 2013-04-10 16:33 胡永光 阅读(106) 评论(0) 推荐(0) 编辑

用GDB调试程序(四)
摘要:查看栈信息 ————— 当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。 下面是一些查看函数调用栈信息的GDB命令: backtrac... 阅读全文

posted @ 2013-04-10 16:32 胡永光 阅读(86) 评论(0) 推荐(0) 编辑

用GDB调试程序(三)
摘要:四、维护停止点 上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clea... 阅读全文

posted @ 2013-04-10 16:31 胡永光 阅读(89) 评论(0) 推荐(0) 编辑

用GDB调试程序(二)
摘要:GDB的命令概貌 ——————— 启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free S... 阅读全文

posted @ 2013-04-10 16:30 胡永光 阅读(114) 评论(0) 推荐(0) 编辑

用GDB调试程序(一)
摘要:用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有... 阅读全文

posted @ 2013-04-10 16:24 胡永光 阅读(99) 评论(0) 推荐(0) 编辑

C/C++内存问题检查利器—Purify (五)
摘要:十、 设置WatchPoint 你可以在你的程序中,对你所想监控的程序设置一些WatchPoint,以方便于你对程序进行调试,或更容易找出问题的原因。就像我前面说,Purify可以找到你的内存泄露,但其不能找到内存泄露的原因,你可以通过设置WatchPoint来跟踪一块... 阅读全文

posted @ 2013-04-10 16:19 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

C/C++内存问题检查利器—Purify (四)
摘要:七、 Purify的退出码 像UNIX下的软件,一般都会提供和别的应用程序的接口,像上面的生成文本文件,也是给别的应用程序提供接口的一种方式。这里,我们所要讲述的是Purify的退出码,我们知道程序都有退出码,以提供给别的程序或操作系统自己运行的信息。被Purify编译... 阅读全文

posted @ 2013-04-10 16:17 胡永光 阅读(183) 评论(0) 推荐(0) 编辑

C/C++内存问题检查利器—Purify (三)
摘要:五、 文件描述符问题 在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉C/C++的程序员,并不陌生。有一些关于Watchpoint和文件描述符的内容,可能会让你看得比较模糊,对于Watchpoint,我会在后面讲述。这一节,我就一个示例说一说文件描述述问题是... 阅读全文

posted @ 2013-04-10 16:16 胡永光 阅读(170) 评论(0) 推荐(0) 编辑

C/C++内存问题检查利器—Purify (二)
摘要:三、 示例 假设我们现在有这样一段程序:hello.c #include #include static char *helloWorld = "Hello, World"; main() { char *mystr = malloc(strle... 阅读全文

posted @ 2013-04-10 16:15 胡永光 阅读(190) 评论(0) 推荐(0) 编辑

C/C++内存问题检查利器—Purify (一)
摘要:C/C++内存问题检查利器——Purify 陈皓 一、 引言 我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试案例,也无法彻底地检测到... 阅读全文

posted @ 2013-04-10 16:13 胡永光 阅读(153) 评论(0) 推荐(0) 编辑

oracle 字符集 AL32UTF8、UTF8
摘要:简介:ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持,ORACLE为用户提供自己熟悉的数据库母语环境,诸如日期格式、数字格式和存储序列等。Oracle可以... 阅读全文

posted @ 2013-04-03 18:06 胡永光 阅读(127) 评论(0) 推荐(0) 编辑

Oracle 字符集的查看和修改
摘要:转载:http://blog.csdn.net/tianlesoftware/article/details/4915223 一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用... 阅读全文

posted @ 2013-04-03 18:05 胡永光 阅读(130) 评论(0) 推荐(0) 编辑

Oracle字符集问题总结
摘要:经常有同事咨询oracle数据库字符集相关的问题,如在不同数据库做数据迁移、同其它系统交换数据等,常常因为字符集不同而导致迁移失败或数据库内数据变成乱码。现在我将oracle字符集相关的一些知识做个简单总结,希望对大家今后的工作有所帮助。 一、什么是oracle字符集 Oracle字符集... 阅读全文

posted @ 2013-04-03 16:32 胡永光 阅读(100) 评论(0) 推荐(0) 编辑

oracle数据库查看修改字符集问题
摘要:1、查看数据库服务器的字符集 有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:SQL>select userenv('language') from dual; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK 2、查... 阅读全文

posted @ 2013-04-03 15:37 胡永光 阅读(475) 评论(0) 推荐(0) 编辑

linux内存管理之活动内存区
摘要:Linux内存活动区域其实就是全局变量e820中的内存块做了相关的检查和对其处理后的区域。在管理区初始化等地方有用到。 数据结构 [cpp] view plaincopyprint? struct node_active_region { unsigned long sta... 阅读全文

posted @ 2013-04-03 09:52 胡永光 阅读(326) 评论(0) 推荐(0) 编辑

linux物理内存探测
摘要:linux在被bootloader加载到内存后, cpu最初执行的linux内核代码是/header.S文件中的start_of_setup函数,这个函数在做了一些准备工作后会跳转到boot目下文件main.c的main函数执行,在这个main函数中我们可以第一次看到与内存管理相关的代码,这段代... 阅读全文

posted @ 2013-04-03 09:33 胡永光 阅读(292) 评论(0) 推荐(0) 编辑

linux物理内存描述
摘要:linux使用于广泛的体系结构,因此需要用一种与体系结构无关的方式来描述内存。linux用VM描述和管理内存。在VM中兽药的普遍概念就是非一致内存访问。对于大型机器而言,内存会分成许多簇,依据簇与处理器“距离”的不同,访问不同的簇会有不同的代价。 每个簇都被认为是一个节点(pg_data_t),... 阅读全文

posted @ 2013-04-03 09:20 胡永光 阅读(338) 评论(0) 推荐(0) 编辑

linux内存管理概述
摘要:linux内存管理建立在基本的分页机制基础上,在linux内核中RAM的某些部分将会永久的分配给内核,并用来存放内核代码以及静态内核数据结构。RAM的其余部分称为动态内存,这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。因此,现在所有多... 阅读全文

posted @ 2013-04-03 09:10 胡永光 阅读(109) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示