
Linux
文章平均质量分 78
shyodx
这个作者很懒,什么都没留下…
展开
-
Linux C SQLite3 编程
SQLite3 SQLite是一个轻量级的数据库。和常用的MySQL大同小异。和MySQL相比,数据类型基本一样,只是sqlite的指令都是以"."开头(如:mysql中查看当前有哪些数据库是“show databases",而sqlite中是".databases")。当然,SQL语句都是一样的语法规则。Host System: Archlinuxgcc: 4.6.1 2原创 2011-10-24 21:15:24 · 2065 阅读 · 0 评论 -
iptables IP转发
有两台服务器:A:219.246.xxx.yyy。这是一个内网地址,外网无法访问。B:202.201.aaa.bbb。这是一个公网地址,它和xxx.lzu.edu.cn这个域名绑定。两台服务器上都跑了一个HTTP的服务,他们之间可以互相访问。现在希望访问mmm.lzu.edu.cn时,能自动跳转到219.246.xxx.yyy上,因此可以做IP转发,或叫IP映射。来使所有发到202原创 2012-09-14 09:09:31 · 5359 阅读 · 0 评论 -
结构体中的零长度数组
参考:http://hi.chinaunix.net/?uid-21744621-action-viewspace-itemid-48823struct node { int len; int array[];};这种零长度的的数组是为了方便结构体长度的动态扩展。一个 node 的结构体,它的长度并不包括 array[]。但是如果使用 ma原创 2012-04-19 10:18:31 · 1275 阅读 · 0 评论 -
x86从 start_kernel 开始的中断初始化
以下主要看了 linux 3.2 中,从 start_kernel() 开始的一些跟中断有关的初始化代码,并做了一点点简单的分析。start_kernel() 在 init/main.c 中,其中和中断有关的大概就有这样一些函数:/* filename: init/main.c */467 asmlinkage void __init start_kernel(void)468 {原创 2012-04-13 21:45:04 · 2594 阅读 · 0 评论 -
关于 XtratuM 的中断接管过程
这里分析的是 XtratuM 1.0 的代码。关于 XM 中断接管的代码主要在 arch/$ARCH/kernel/irq.c ($ARCH = i386) 中。还有一部分在 patch 文件中,不过那个貌似关系不是很大,主要是替换了某些 cli 和 sti 指令,但是这些替换后的代码实质上和 cli、sti 的作用是一样的,所以我也有点奇怪为什么要有这样的替换,貌似不替换也是可以的……原创 2012-04-15 13:23:06 · 971 阅读 · 0 评论 -
PowerPC OpenFirmware
参考:Documentation/devicetree/booting-without-of.txtOF 是在 PowerPC 上,用于在系统加点或者重启时,初始化设备的,这些都是为操作系统的启动做准备工作。bootloader 会把系统中某些设备组织在一个树形表中,然后会把这个表传给内核。参数的传递是通过寄存器完成的,其中: r3:指向 device-tree block原创 2012-04-13 21:54:06 · 1271 阅读 · 0 评论 -
PowerPC 堆栈
PowerPC 在处理器级别上是没有实现堆栈操作的,也就是说,在 PowerPC 架构中,没有专门的堆栈操作汇编命令。但事实上 PowerPC 又使用到了堆栈,比如在函数调用、传参、返回错误码等操作。 在讲 PowerPC 堆栈处理之前,先提一下要用到的某些寄存器。首先是32个通用寄存器 GPR0 ~ GPR31。据说这32个寄存器是64位的,但是高32位的访问方式不同,通常只用原创 2012-03-19 13:38:05 · 3434 阅读 · 0 评论 -
Archlinux conky配置
conky 是一个轻量级的系统监视器,可以实时反映出系统的相关信息。参考: http://www.linuxidc.com/Linux/2011-02/32508.htm有图有真相代码主要和参考中的一致,只是天气那块我是自己用 python 写的,因为原来的 weather.com 已经不能用了,所以也就不需要安装 conkyforecase 这个东西。原创 2012-03-10 22:11:14 · 3501 阅读 · 0 评论 -
U-Boot: inflate() error 和 unable to open an initial console
最近开始做 PowerPC 上的一些东西,在编译内核,启动内核的过程中遇到了很多问题,这两天都块搞屎我了…… 不过最终还是解决了,现在把我遇到的问题和解决办法贴在这里,可以供大家参考,也方便我下次遇到同样的问题时可以迅速的找到解决方案。但是需要说的是,导致同样问题的原因可能是多样的,所以我的方法不一定百分百能解决大家的问题。先说下我的环境:主机:Archlinux (原创 2012-02-29 21:26:28 · 2214 阅读 · 0 评论 -
在enum中的宏定义
转自:http://bbs.chinaunix.net/thread-795201-1-1.html 今天在代码里看到有一点很奇怪的代码,代码定义了一个枚举类型,但是这个枚举类型没有变量名,而且在其中包含了宏定义,宏定义也是自己定义自己enum { exit_domain_nr,#define exit_domain_nr exit_domain_n转载 2012-02-24 20:26:33 · 2277 阅读 · 1 评论 -
initrd 和 initramfs
原文:https://www.linux.com/learn/linux-training/92607-the-kernel-newbie-corner-qinitrdq-and-qinitramfsq-whats-up-with-thatinitrd:initial ramdiskinitramfs:initial ram filesystem 这两个东西都是我们经常会用到翻译 2012-02-11 17:03:28 · 2163 阅读 · 0 评论 -
container_of -- 巧妙的宏定义
内核中的 container_of() 宏定义container_of() 宏的功能就是通过结构体中的一个元素,来找到这个结构体的首地址。先来看看他的代码:// include/linux/kernel.h#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member )原创 2011-11-29 21:04:48 · 742 阅读 · 0 评论 -
Bash - the shell (2)
1. 更改bash为vi模式 bash默认是使用emacs模式,就是说在命令行编辑命令的很多快捷键是和emacs一样的(快捷键《bash-the shell(1)》中讲过了)。但是除了emacs,另外一个神器就是vi(vim)。vi是一个遵循POSIX的文本编辑器,因此如果需要让shell具有模式兼容性的话,让bash工作在vi模式是很有必要的。使用以下命令切换bash的模式:原创 2011-10-29 17:01:10 · 958 阅读 · 0 评论 -
强制重启Linux
前段时间服务器出了问题,挂载iscsi的过程中貌似出了问题,+C无法终止程序,kill,pkill,killall都没有效果。实在是没办法了,想着干脆重启好了,结果reboot,没有响应…… 服务器又托管在网络中心的,没办法直接关电源。后来从网上搜了两条命令,可以强制重启,在这里记录一下,以后遇到同样的问题就好解决了~# echo 1 > /proc/sys/kernel/sysrq#原创 2011-10-25 21:06:31 · 5451 阅读 · 1 评论 -
Bash - the shell (1)
1. 什么是shell? shell是一种用户接口,我们可以通过shell来与计算机进行通信,或者说可以通过shell来操作计算机。所以任何可以操作计算机的程序应该都可以叫做shell。事实上,shell是一个循环执行的程序。它的框架可以大体表示如下:while you do not exit or logout { print a prompt read a stri原创 2011-10-25 20:09:47 · 841 阅读 · 0 评论 -
POSIX消息队列 发送接收简单子
Linux的函数库提供有两种消息队列,一种是POSIX消息队列,另一种是SYS V消息队列。这里介绍POSIX消息队列。涉及到的函数主要有:mq_open() - 创建消息队列mq_close() - 关闭消息队列mq_send() - 往消息队列里发送消息mq_receive() - 从消息队列里接受消息消息队列实际上是一个文件,因此需要消息队列虚拟文件系统的支持。通常系统启原创 2012-12-22 15:23:12 · 1320 阅读 · 0 评论