日度归档:2010 年 04 月 03 日

lianxiang的人喜欢玩LED?

仔细地数了一下,23个LED小灯管(含网卡的黄灯和绿灯和ideapad的logo背景灯)。

 

 

 

夜深关灯后,还看到那么多灯光闪耀,炫啊!

 

这些小灯都应该可以通过系统来控制的,其中有7个还可以调节亮度和触摸感应。有空用sgos2弄个驱动来完全控制一下,应该很好玩!

read和_read?

昨晚把uname函数解决了,成功地在模拟的cygwin兼容层上运行了GNU uname程序。接着又尝试了一个比较简单的程序—cat。

 

在运行的过程中,还需要下面两个函数_read和_write。

 

其实这两个函数和read、write有什么区别呢?

 

我懒得去翻GNU的源代码了,_read和read的函数声明是一样的,所以我估计_read是cygwin内部使用的函数。于是,直接在read中调用_read,在_read里实现真正的读取操作的代码。

 

在基本实现了fstat功能后,我发现里面有一个指出块大小的变量。我把这个变量设置为一个页面的大小4096之后,惊奇地发现每次调用_read的时候都是4KB对齐的。真好,看来我在api层的FsReadFile函数里又设置了一下页面对齐有点多余的感觉。

 

附一个运行cat程序显示一个文本文件startup.txt的内容的截图。

 

 

 

下一步准备实现标准输出输入了。写一下tty和kdb的驱动。