自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ropyn的Linux专栏

Linux/Unix

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 使oracle运行在selinux中的实践-附源代码

已经差不多1年半没有发文了,眼看着2012即将成为过去,看着荒草丛生的博客,心中想着还是发点什么东西,也许会帮到别人。同时,也聊以自慰自己还在技术圈混呢。2011年初,在一次安装体验FC14的过程中注意到了其已经很完善的SELinux模块。记得在几年前第一次看到Linux发行版中的SELinux简直认为就是个鸡肋,什么都不能运行。但在FC14中大量的模块使我映像深刻,所有系统的默认服务

2012-12-14 00:56:53 2397 1

原创 从CPU角度看内存访问对齐

关于自然对齐 1. 首先什么是cache line? cache line就是处理器从RAM load/store数据到CPU cache所使用的数据线。2. 什么是对齐:有些人说,address of data % sizeof(data type)==0 就是对齐,其实这不准确,全面的理解它必须从CPU为什么需要对齐,不对齐就会造成数据访问花费额外的时钟周期,和额外的指令(编译器或

2011-06-26 17:03:00 6944 4

原创 再谈位运算

其实位运算最有用的是在程序中发挥什么作用,往往是妙用,会让你的程序变得简洁高效许多。用其他办法无法实现位运算的效率。今天我不讲运算规则,而从作用入手,用我们习惯的数学语言描述它们的作用,C/C++的位运算包括:1. 按位与&:a&b,作用有。

2011-02-22 18:21:00 1972

原创 迁移到fedora core 13的要点备查,和fc 13的新特性总结

最近终于放弃我的老redhat9,全部迁移到FC13,虽然很早就接触过fc2,3,4。但好像现在FC13的变化很大,不得不花点时间看看。整理一点心得以备查阅。1.selinux, 记得刚开始接触fc最讨厌的就是selinux,总是莫名奇妙禁止很多以前RH7/8/9的正常操作,所以以前一安装好就将selinux关闭。裸奔的好处是自由:0),但人要与时俱进,不能还停留在以前的时代了, 看到FC13的selinux的policy越来越完善,心里叫好,一定会省事很多。问题一:首先遇到的第一个问题是从RH9迁移过来的

2010-11-10 18:11:00 1688

原创 调试linux内核总览

<br />1. 内核自带的trace方法:<br />    a. 直接在内核中添加printk()调用。<br />    c. Oops, 基本上是用来显示内核出错的瞬间寄存器的内容。参见内核文档.kernel-Oops.txt<br />2. 无源内核调试器:<br />    a. kdb,使用SysRq键中断后,进行内核内存和寄存器的检查。需要在内核源码上打kdb补丁。也可以用一个串口终端程序。<br />    b. Kprobes, 通过编写一个简单的module,获取任何内核数据结构。 使

2010-11-01 02:04:00 1463

原创 redhat9成功升级至2.6.36内核备忘

redhat9升级至2.6内核昨天我升级内核搞了几天终于搞好了特意跟各位分享一下心得,希望对各位有效一、2.6内核有哪些特点? 1. 内核是抢占式的, 这将显著地提高交互式和多媒体应用程序的性能。2. 添加了sysfs文件系统, 它集成了下面3种文件系统的信息:针对进程信息的proc文件    系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统(    安装在/sys目录)是核心看到的设备树的一个直观反映。3. 为了区别以 .o 为扩展名的常规对象文件,内核模块现在使用的扩展

2010-10-22 12:54:00 3257 4

原创 IEEE 754浮点数表示及浮点数转换全解

基本上我们记住几个公式就行了(蓝色字体公式)。第一:浮点表示形式: N=|s|  E  |         M         |    。 单精度:s=1位,E=8位,M=23位。 双精度 s=1位,E=11位,M=52位 第二:bias=2^(k-1) - 1, bias是归一化偏置值,或模,代表指数E所能表达的最大值,k是E的位数。它的作用是将浮点数的值分布向0的方向靠拢,本来2

2010-04-01 19:04:00 2985

转载 Grub源码分析

GRUB整体分析总体上我们可以把GRUB看成一个微型的操作系统,他有Shell,支持Script,有文件系统……我们可以把Stage1和Stage1.5看成一个引导程序,而Stage2则是一个操作系统,只不过这个操作系统是专门用来引导其他操作系统的操作系统,为此,Stage2支持像kernel,initrd,chainloader等等为此目的而设置的内部“命令”。3.1  GRUB引导操作系统的两

2009-11-11 17:59:00 5666

原创 关于登录认证过程

最近,安装pam和登录过程,一些经验总结如下:Linux系统登录过程简述如下:       read /etc/inittab                    get username in tty             get password init ---------------------> mingetty ---------------------------> lo

2008-06-02 16:36:00 1803

转载 从程序员角度看ELF

创建时间:2001-09-15文章属性:翻译文章来源:http://www.xfocus.org文章提交:alert7 (sztcww_at_sina.com)从程序员角度看ELF原文:《 ELF:From The Programmers Perspective》作者:Hongjiu Lu [email protected]>NYNEX Science & Technology, Inc

2008-05-29 12:45:00 3477 2

转载 将linux文件大小优化进行到底

文章来源:前言:有些时候,文件的大小是很重要的,从这片文章中,也探讨了ELF文件格式内部的工作情况与LINUX的操作系统。该片文章向我们展示了如何构造一个超小的ELF可执行文件。文章中给出的这些example都是运行在intel 386体系的LINUX上。其他系统体系上或许也有同样的效果,但我不感肯定。我们的汇编代码使用的是Nasm写的,它的风格类似于X86汇编风格。NASM软件是免费

2008-05-29 11:53:00 2586

原创 Linux 系统启动过程(initrd部分) --- Linux boot process (initrd part)

以前一直没有研究过initrd部分,只是知道linux内核启动后会首先由引导装载器读取initrd映像来启动ramdisk.它的作用是鸡和蛋问题的解决方案,即首先安装一个内存盘作为临时的root,然后加载其上的磁盘/网络磁盘驱动程序,从而找到真正的硬盘设备/网络文件系统,再挂载它为真正的root,从而进入整个linux world。但这里面到底干了些什么,以及怎么实现的没有仔细研究,也认为比较简单

2008-05-28 13:03:00 6546 6

原创 zImage和bzImage的区别

bzImage和zImage的区别来自于保护模式代码的放置位置:1.众所周知,内核映像包括两部分代码:实模式代码和保护模式代码,当引导装载器装载内核映像到代码段内存时,分别放置实模式代码和保护模式代码到不同的位置,然后进入实模式代码执行,实模式代码执行中转入CPU保护模式,开始执行32位保护模式代码。2.不管是zImage还是bzImage,他们的实模式代码部分都被装入0x9000:0000(

2007-06-22 13:51:00 4503 1

原创 Linux系统如何正确使用和安装内核模块

模块是Linux内核支持的一种动态加载的组件,大多数的模块是驱动程序。而且Linux的模块设计成可以堆叠式的----就是一个模块运行在另一个模块之上,这个模块也可能再为它上面的模块提供支持,当然所有的模块又都运行在内核之上。这样一来一个模块就可能依赖于另一个模块提供的服务,或者内核提供的服务。在安装这个模块时,安装程序就需要知道这些依赖关系并先于模块本身,安装其他依赖的模块。下面的程序和文件完成整

2007-06-15 19:57:00 5586

原创 Linux/Unix编程怎样入门

1,先有linux环境搭minGW和cygwin都有点麻烦,最最简单的办法还是装个真正的linux,用虚拟机也好,在网络上的另一台机器也好。这样不仅快,而且你有了真正的环境。2.会C/C++语言(估计你会的)3.入门阶段熟悉gcc命令行,最基本的参数,如,-g,-W,-O,-o,-c 建议看man gcc(很大找想要的)4.编译第一个helloworld程序: 基本命令 gcc helloworl

2007-04-23 10:05:00 2689

原创 我的Linux之路

我学linux是在大学,1997年左右。那时候对计算机特别着迷,刚刚摸过一两次计算机,看着windows95的星空屏保,觉得计算机太神奇了。所以C语言就学的特别认真,没事总往村里跑,突然有一天在中关村看到一张盗版盘(基本没人问津,塑料膜已经磨成半透明了):红帽子.当时是哪个版本记不的了,但上面写着自带操作系统源码,而且是unix(盗版盘上瞎写,但我当时很崇拜unix,不光因为人们都说Unix被装在

2007-03-29 15:14:00 1882 1

原创 x86 CPU的操作模式

32位Intel处理器拥有三种基本模式,        ****保护模式:纯32位保护执行环境。该模式拥有一个子模式,虚拟8086模式:               **虚拟8086模式是运行在保护模式中的实模式,为了在32位保护模式下执行纯16位实模式程序。它不是一个真正的CPU模式,还属于保护模式。         ****实模式:纯16位无保护执行环境。         保护模式同实

2006-10-13 14:22:00 2993 1

原创 如何使用gcc进行多阶编译

关于gcc的编译选项,不要老自己调用g++,他不能连接c++目标文件,gcc不是指C编译器,而是Compiler Collection.他自己会调用需要的编译器/连接器,as,g77,g++,gcj,ld等...gcc可以做多阶编译 uh! pretty cool :-)怎么做呢...  -x 选项指定gcc从哪个等级开始编译(参数是语言名称,参见man gcc),当然可以略,gcc自己根

2006-09-05 13:31:00 1485

原创 关于Linux下C/C++开发的入门

1,先有linux环境搭minGW和cygwin都有点麻烦,最最简单的办法还是装个真正的linux,用虚拟机也好,在网络上的另一台机器也好。这样不仅快,而且你有了真正的环境。2.会C/C++语言(估计你会的)3.入门阶段熟悉gcc命令行,最基本的参数,如,-g,-W,-O,-o,-c 建议看man gcc(很大找想要的)4.编译第一个helloworld程序: 基本命令 gcc helloworl

2006-08-25 13:55:00 3096

原创 如何在安装Linux之后自己修改Swap分区大小

测试试境为RH AS4如果你不清楚swap到底是什么,或分区的概念,那么下面的过程对你来讲可能会有一定的风险。自己扩大Swap也是比较方便的。你必须有root权限,过程中一定要很小心,一不小心就破坏了整个硬盘的数据,执行下面的过程之前你需要三思而行,错误后的后果由执行者自己承担,我这个script只是作为参考。1.以root进入控制台2. #swapoff -a             #

2006-08-25 13:53:00 5540

原创 如何安装MySQL5到Linux

以RH9为例若你下载的源码包:1.解压缩源码。  然后,在源顶级目录 ./configure --prefix=/usr/local/mysql ,最好是这个目录,Mysql脚本的默认安装路径。然后make & make install2.添加用户和组  groupadd mysql  adduser -g mysql mysql3.进入安装目录(/usr/local/mysql)目录./bi

2006-08-25 13:46:00 1524

原创 如何手工启动X

第一种启动X的方式为xinitX服务器启动方式为$xinit /home/my/myapp -- :0如果你想运行多个程序编辑/home/my/.xinitrc如下/home/my/myapp &xterm & &twm      #任何你想运行的window Manager然后运行$xinit当然"-- :0"可以省略,它的作用是表示让xinit同时启动X服务器,并带有参数,“:

2006-08-25 13:41:00 1570

原创 关于Linux内核可加载模块的版本问题

内核识别模块版本号是用两种机制,一种gensym,该机制为所有内核符号根据接口生成一个唯一的CRC符号串,如果内核和模块都开启了该功能,那么当加载版本不匹配的模块时,就会报错,而且这种错误,当使用强行加载时通常也会失败,原因很简单,因为模快使用的内核函数原型发生了变化。第二种就是kernel_version,这个全局串在linux/module.h中定义,并被编译入所有的模块中,当加载时模块时如果

2006-08-25 13:33:00 2181

原创 MS-VC vs. Linux-IDE

对于vc的问题,我用VC也有多年了va当然用过,但说实在的到后来真的没有丝毫乐趣可言,直到我遇到了emacs... 我也不想多说了,引用一篇名为《完全用GNU/Linux工作>>中的话(文中作者看样子喜欢Vim,但我喜欢Emacs):为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器…… 这

2006-08-25 13:09:00 1449

原创 较简单的Makefile写法

最简单的Makefile一行就可以,但你要确信这确实是你想要的hello:因为make足够聪明,它会自动把所有hello.c/hello.cpp/hello.o作为输入,这要看你当前目录下到底有什么,是目标文件还是源文件,make会自动调用gcc -c 或 ld,并编译产生输出hello。并调用正确的编译器/连接器,这叫做隐含规则.也可以这样使用隐含规则,还是因为Make足够聪明hello

2006-08-25 12:55:00 2025

原创 关于 Redhat9 的网络配置文件

完整搜索顺序是:(*为接口名)/etc/sysconfig/networking/profiles/default/ifcfg-*/etc/sysconfig/networking/profiles/default/*/etc/sysconfig/networking/default/ifcfg-*/etc/sysconfig/networking/default/*/etc/sysconfi

2006-08-25 12:53:00 2234

原创 关于Linux下的帧缓冲介绍

fb设备提供了一个图形硬件的抽象层,代表某些视频硬件的帧缓冲,帧缓冲可以直接通过规范定义的接口供软件访问(/dev/fb*)。我们熟知的Xwindows有一个非加速X服务器,XF86_FBDev就是使用帧缓冲驱动,该驱动最早出现于XFree86 3.2版本中,现在已很成熟。帧缓冲在各种显卡硬件各有不同,如ATI Rage128提供了自己的帧缓冲,Cirrus Logic,Matrox,PowerV

2005-03-06 14:49:00 2288 1

NVMe 1.3c 规范

NVMe 最新规范。 1.3c 版本 描述PCIe 的 NVMe扩展。最新标准。

2018-06-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除