shyodx的专栏

Stay Hungry, Stay Fool.

POSIX消息队列 发送接收简单子

Linux的函数库提供有两种消息队列,一种是POSIX消息队列,另一种是SYS V消息队列。这里介绍POSIX消息队列。 涉及到的函数主要有: mq_open() - 创建消息队列mq_close() - 关闭消息队列mq_send() - 往消息队列里发送消息mq_receive()...

2012-12-22 15:23:12

阅读数 983

评论数 0

iptables IP转发

有两台服务器: A:219.246.xxx.yyy。这是一个内网地址,外网无法访问。B:202.201.aaa.bbb。这是一个公网地址,它和xxx.lzu.edu.cn这个域名绑定。 两台服务器上都跑了一个HTTP的服务,他们之间可以互相访问。现在希望访问mmm.lzu.edu.cn...

2012-09-14 09:09:31

阅读数 3510

评论数 0

结构体中的零长度数组

参考:http://hi.chinaunix.net/?uid-21744621-action-viewspace-itemid-48823 struct node { int len; int array[]; }; 这种零长度的的数组是为了方...

2012-04-19 10:18:31

阅读数 586

评论数 0

关于 XtratuM 的中断接管过程

这里分析的是 XtratuM 1.0 的代码。 关于 XM 中断接管的代码主要在 arch/$ARCH/kernel/irq.c ($ARCH = i386) 中。还有一部分在 patch 文件中,不过那个貌似关系不是很大,主要是替换了某些 cli 和 sti 指令,但是这些替换后的代码实质上和...

2012-04-15 13:23:06

阅读数 760

评论数 0

PowerPC OpenFirmware

参考:Documentation/devicetree/booting-without-of.txt OF 是在 PowerPC 上,用于在系统加点或者重启时,初始化设备的,这些都是为操作系统的启动做准备工作。bootloader 会把系统中某些设备组织在一个树形表中,然后会把这个表传给...

2012-04-13 21:54:06

阅读数 977

评论数 0

x86从 start_kernel 开始的中断初始化

以下主要看了 linux 3.2 中,从 start_kernel() 开始的一些跟中断有关的初始化代码,并做了一点点简单的分析。start_kernel() 在 init/main.c 中,其中和中断有关的大概就有这样一些函数: /* filename: init/main.c */ 4...

2012-04-13 21:45:04

阅读数 2054

评论数 0

PowerPC 堆栈

PowerPC 在处理器级别上是没有实现堆栈操作的,也就是说,在 PowerPC 架构中,没有专门的堆栈操作汇编命令。但事实上 PowerPC 又使用到了堆栈,比如在函数调用、传参、返回错误码等操作。         在讲 PowerPC 堆栈处理之前,先提一下要用到的某些寄存器。首先是32个通...

2012-03-19 13:38:05

阅读数 1880

评论数 0

Archlinux conky配置

conky 是一个轻量级的系统监视器,可以实时反映出系统的相关信息。 参考: http://www.linuxidc.com/Linux/2011-02/32508.htm 有图有真相 代码主要和参考中的一致,只是天气那块我是自己用 python 写的,因为原来的 w...

2012-03-10 22:11:14

阅读数 2433

评论数 0

U-Boot: inflate() error 和 unable to open an initial console

最近开始做 PowerPC 上的一些东西,在编译内核,启动内核的过程中遇到了很多问题,这两天都块搞屎我了……         不过最终还是解决了,现在把我遇到的问题和解决办法贴在这里,可以供大家参考,也方便我下次遇到同样的问题时可以迅速的找到解决方案。但是需要说的是,导致同样问题的原因可...

2012-02-29 21:26:28

阅读数 1379

评论数 0

在enum中的宏定义

转自:http://bbs.chinaunix.net/thread-795201-1-1.html     今天在代码里看到有一点很奇怪的代码,代码定义了一个枚举类型,但是这个枚举类型没有变量名,而且在其中包含了宏定义,宏定义也是自己定义自己 enum { e...

2012-02-24 20:26:33

阅读数 1402

评论数 1

initrd 和 initramfs

原文:https://www.linux.com/learn/linux-training/92607-the-kernel-newbie-corner-qinitrdq-and-qinitramfsq-whats-up-with-that initrd:initial ramdisk ini...

2012-02-11 17:03:28

阅读数 1794

评论数 0

用堆栈做队列

程序中的临时变量都是存放在进程的堆栈中的,那么要实现队列,只需要在一次函数调用中不释放函数中的局部变量,然后让一个指针始终指向队列头,另一个指针始终指向队列的第二个成员就可以了。这时,就需要被调用的函数不能退出,那么它的所有局部变量就不会被释放。 为了做一个例子,我们让一个函数递归调用它...

2011-12-13 19:45:43

阅读数 530

评论数 0

Linux 内核DMA机制

DMA控制器硬件结构 DMA允许外围设备和主内存之间直接传输 I/O 数据, DMA 依赖于系统。每一种体系结构DMA传输不同,编程接口也不同。 数据传输可以以两种方式触发:一种软件请求数据,另一种由硬件异步传输。 在第一种情况下,调用的步骤可以概括如下(以read为例): (...

2011-11-29 21:44:37

阅读数 1145

评论数 0

container_of -- 巧妙的宏定义

内核中的 container_of() 宏定义 container_of() 宏的功能就是通过结构体中的一个元素,来找到这个结构体的首地址。先来看看他的代码: // include/linux/kernel.h #define container_of(ptr, type, me...

2011-11-29 21:04:48

阅读数 554

评论数 0

Bash - the shell (2)

1. 更改bash为vi模式        bash默认是使用emacs模式,就是说在命令行编辑命令的很多快捷键是和emacs一样的(快捷键《bash-the shell(1)》中讲过了)。但是除了emacs,另外一个神器就是vi(vim)。vi是一个遵循POSIX的文本编辑器,因此如果需要让s...

2011-10-29 17:01:10

阅读数 816

评论数 0

强制重启Linux

前段时间服务器出了问题,挂载iscsi的过程中貌似出了问题,+C无法终止程序,kill,pkill,killall都没有效果。实在是没办法了,想着干脆重启好了,结果reboot,没有响应……  服务器又托管在网络中心的,没办法直接关电源。后来从网上搜了两条命令,可以强制重启,在这里记录一下,以...

2011-10-25 21:06:31

阅读数 4327

评论数 1

Bash - the shell (1)

1. 什么是shell?        shell是一种用户接口,我们可以通过shell来与计算机进行通信,或者说可以通过shell来操作计算机。所以任何可以操作计算机的程序应该都可以叫做shell。事实上,shell是一个循环执行的程序。它的框架可以大体表示如下: while you d...

2011-10-25 20:09:47

阅读数 664

评论数 0

Linux C SQLite3 编程

SQLite3         SQLite是一个轻量级的数据库。和常用的MySQL大同小异。和MySQL相比,数据类型基本一样,只是sqlite的指令都是以"."开头(如:mysql中查看当前有哪些数据库是“show databases",而sqlite中是&qu...

2011-10-24 21:15:24

阅读数 1667

评论数 0

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