http://extundelete.sourceforge.net/ About extundelete extundelete is a utility that can recover deleted files from an ext3 or ext4 partition. The ext3 file system is the most common file system when using Linux, and ext4 is its successor. extundelete uses the information stored in the partition’s journal to attempt to recover a file that has been deleted […]
READ MORE »独立思考
不盲从,独立思考; 多阅读,遍地学问。
READ MORE »英文版Skype Full Offline Installer下载
国内访问Skype网站,会自动跳转到Tom Skype,而无法下载到英文原版Skype。若希望下载纯英文版本Skype,可到下面链接地址下载最新版。 下载链接:http://download.skype.com/SkypeSetup.msi http://download.skype.com/SkypeSetupFull.exe
READ MORE »Linux动态Lib库文件路径的环境变量设置
在运行程序时,我们希望程序到指定路径搜索动态库。方法是设置LD_LIBRARY_PATH环境变量即可。 环境变量LD_LIBRARY_PATH所指明的路径。 缺省的路径:/lib和/usr/lib /etc/ld.so.conf中指明的路径。 实例:#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/chen/Downloads/diskdiag-1.0.0/x86_64/lib64/
READ MORE »Grub中如何启动ISO文件
介绍 在Linux或PXE环境中,我们希望直接启动ISO文件,而无须刻录光盘或制作复杂的U盘。 本文介绍基于memdisk来实现Grub或Syslinux启动环境中直接引导ISO文件。ISO文件如Windows Xp安装ISO文件、Ubuntu 11.04 ISO文件等。
READ MORE »FlashCache调试及内核栈信息
[328048.563382] Pid: 0, comm: swapper Tainted: G N 2.6.32.12-0.7-xen #1 [328048.563384] Call Trace: [328048.563401] [<ffffffff80009af5>] dump_trace+0x65/0x180 [328048.563412] [<ffffffff8034f056>] dump_stack+0x69/0x73 [328048.563420] [<ffffffff8019730b>] blk_update_request+0xbb/0x3d0 [328048.563426] [<ffffffff8019763f>] blk_update_bidi_request+0x1f/0x70 [328048.563432] [<ffffffff80198447>] blk_end_bidi_request+0x27/0x80 [328048.563461] [<ffffffffa00251fa>] scsi_end_request+0x3a/0xc0 [scsi_mod] [328048.563490] [<ffffffffa00255e9>] scsi_io_completion+0x109/0x4e0 [scsi_mod] [328048.563505] [<ffffffff8019daf5>] blk_done_softirq+0x85/0xa0 [328048.563512] [<ffffffff80044bbe>] __do_softirq+0xde/0x1a0 [328048.563518] [<ffffffff8000800c>] call_softirq+0x1c/0x30 [328048.563524] [<ffffffff80009635>] do_softirq+0xa5/0xe0 [328048.563530] [<ffffffff80258912>] evtchn_do_upcall+0x212/0x2a0 [328048.563536] [<ffffffff80007a6e>] do_hypervisor_callback+0x1e/0x30 [328048.563543] […]
READ MORE »Linux内核源码特殊用法
Linux内核源码主要以C语言为主,有一小部分涉及汇编语言,编译器使用的是Gcc。初次看内核源码,会遇到一些难以理解、晦涩的代码;而恰恰是这些晦涩的代码,在内核源码中经常出现。把一些晦涩、常见的代码看懂后,大家会发现看内核代码越来越顺利。 本文以x86_64架构中的Linux 2.6.32-71.el6(RHEL 6,点击下载)源码为例,选择一些经常出现且晦涩的源码进行解释,选择的源码虽以2.6.32-71.el6为例,但很多内容同样使用其他版本的源码。主要内容包括Gcc中C语言的扩展用法、及其他一些杂项。 点击阅读完整内容
READ MORE »[转]Linux Power Management Architecture
介绍Linux内核电源管理框架,非常不错的材料。 来源:http://home.dei.polimi.it/bellasi/doku.php?id=teaching:2010:embeddedsystems1 点击下载:Linux Power Management Architecture A review on Linux PM frameworks
READ MORE »[转]Building a RootFS using the BBFS toolkit
来源:http://home.dei.polimi.it/bellasi/doku.php?id=blog#blogmainpage Sometimes you need a very simple root filesystem (rootfs) to bootup fast a new board. Among the different possible tools available out on the net, the bbfs [1] by Alessandro Rubini is perhaps the simplest and effective way I’ve found to get straight to the goal. The tools presents as a tar.gz [2] archive […]
READ MORE »Linux内核初始化时如何切换到64位模式
Linux内核初始化时,最初工作在CPU实地址模式下,然后进入保护模式。那么内核代码在哪里进入初始化CPU,让进入64位(x86_64)模式? Intel 64 CPU中,支持IA-32和IA-32e两种模式,如下图。IA-32e模式就是支持64位程序运行,也支持传统的32位程序运行。在Linux内核初始化时,要进入64位模式,就是进入Intel CPU的IA-32e模式。 本文以内核源码2.6.32-71.el6为例,切换到64位CPU模式源码在arch/x86/boot/compressed/head_64.S中。对于下面的设置步骤理解,可参考《Intel 64 and IA-32 Architectures Software Developer’s ManualVolume 3 (3A & 3B) System Programming Guide March 2011》. 这里补充一下IA32_EFER寄存器的含义。IA32_EFER寄存器是Intel CPU中的其中一个MSR(Model-Specific Registers)。在读写这个MSR寄存器之前,必须要先通过CPUID指令来确认这个寄存器是否存在。 00100: / * 00101: * Prepare for entering 64 bit mode 00102: */ 00103: 00104: / * Load new GDT with the 64bit segments using 32bit descriptor */ 00105: leal […]
READ MORE »