易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : linux

linux系统维护常用操作命令

linux下查看目录大小- -
 du -sb /dir
查找当前用户主目录下的所有文件
find . -print
查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们
find /var/logs -type f -mtime +7 -ok rm {  } \;
未完待续! ......

linux环境编译c++动态库以及调用方式

上一次用linux是2002年用kdevelop及qt库开发多媒体软件。
时隔8年再一次在linux下搞开发,依然菜鸟,还是生疏。
感觉自己的大脑的存储空间,随着年龄的增加在变小,很多弄过的,又只能从头学起。
不过有句话“活到老,学到老”哈!
惭愧,惭愧。
1、编写动态库的c++文件
    cvpnlib.cpp cvpnlib.h
2、编译成动态库
    g++ -c -fPIC cvpnlib.cpp
    g++ -shared -fPIC -o libvpnlib.so cvpnlib.o
3、编写调用的动态库的控制台程序文件
    main.cpp
4、编译控制台程序
     g++ -c main.cpp
     g++ -o main main.o -L. -lvpnlib
5、拷贝libvpnlib.so文件到/usr/lib目录下
6、运行./main ......

linux环境编译c++动态库以及调用方式

上一次用linux是2002年用kdevelop及qt库开发多媒体软件。
时隔8年再一次在linux下搞开发,依然菜鸟,还是生疏。
感觉自己的大脑的存储空间,随着年龄的增加在变小,很多弄过的,又只能从头学起。
不过有句话“活到老,学到老”哈!
惭愧,惭愧。
1、编写动态库的c++文件
    cvpnlib.cpp cvpnlib.h
2、编译成动态库
    g++ -c -fPIC cvpnlib.cpp
    g++ -shared -fPIC -o libvpnlib.so cvpnlib.o
3、编写调用的动态库的控制台程序文件
    main.cpp
4、编译控制台程序
     g++ -c main.cpp
     g++ -o main main.o -L. -lvpnlib
5、拷贝libvpnlib.so文件到/usr/lib目录下
6、运行./main ......

Linux内核编译

继续梳理以前学习的知识,当初学习《Linux and Open Source》时候的作业,内核编译。
【实验环境】
Fedora,内核2.6.21.6
【实验步骤】
一、 编译内核
1. 从www.kernel.org 下载源代码 linux-2.6.21.6.tar.bz2 至 /usr/src
2. cd /usr/src ,进入/usr/src 目录
3. tar xvjf linux-2.6.21.6.tar.bz2 解压源码包
4. ln –s linux-2.6.21.6 linux 符号连接至linux
5. cd /usr/src/linux
6. make mrproper
7. make menuconfig 配置内核
8. make 编译
9. make modules_install 安装模块
10. make install 安装内核
11. reboot 重新启动
12. 选择新内核进入,内核编译成功。 ......

添加Linux系统调用

【实验环境】
Fedora,内核2.6.21.6
【实验步骤】
1. cd /usr/src/linux
2. vi kernel/sys.c
在最后添加如下代码:
asmlinkage long sys_processinfo(void)
{
int num=0;
unsigned long state;
struct task_struct *p;
for_each_process(p)
{
printk("pid=%-5d,name=%-20s",p->tgid,p->comm);
printk("prio=%-5d,",p->prio);
state=p->state;
if(state==-1)
printk("state: Z\n");
else if (state==1)
printk("state: R\n");
else printk("state: S\n");
num++;
}
return num;
}
上述代码实现遍历整个任务列表,并将进程id,name 及state 打印在屏幕上,返回进程总
7
数。
3. vi arch/i386/kernel/syscall_table.S
在最后加入 .long sys_processinfo
4. vi include/asm/unistd.h
在中间添加 #define __NR_process 322 分配系统调用号
将下面改为 #define NR_syscalls 323
5. vi /usr/include/asm/unistd.h
在最后添加 #define __NR_process 322
6. 开始重新编译内核
cd /usr/src/linux
make mrproper
make menuconfig
make
make modules_install
make install ......

Linux查看硬件信息

在LINUX环境开发驱动程序,首先要探测到新硬件,接下来就是开发驱动程序。
常用命令整理如下:
用硬件检测程序kudzu探测新硬件:service kudzu start ( or restart)
查看CPU信息:cat /proc/cpuinfo
查看板卡信息:cat /proc/pci
查看PCI信息:lspci (相比cat /proc/pci更直观)
查看内存信息:cat /proc/meminfo
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用情况:fdisk & disk - l & df
查看各设备的中断请求(IRQ):cat /proc/interrupts
查看系统体系结构:uname –a
dmidecode查看硬件信息,包括bios、cpu、内存等信息
dmesg | more 查看硬件信息
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo       主机CPU信息
Dma          主机DMA通道信息
Filesystems    文件系统信息
Interrupts       主机中断信息
Ioprots          ......

添加Linux模块

有了系统调用的经验,添加模块还是很顺利的。
【实验环境】
Fedora,内核2.6.21.6
【实验步骤】
1. cd /root/homework/module
2. vi process.c
3. 加入如下代码:
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
static int process_init(void)
{
int num=0;
struct task_struct *p;
for_each_process(p)
{
struct task_struct *q=p->parent;
printk("pid=%-5d,name=%-20s,",p->tgid,p->comm);
printk("prio=%-5d,",p->prio);
printk("my_parent is: %s[%d]\n",q->comm,q->tgid);
num++;
}
printk("\ntotal number is: %d\n",num);
return num;
}
static void process_exit(void)
{
printk("==================\n");
printk("process_exit,GoodBye!\n");
}
module_init(process_init);
module_exit(process_exit);
MODULE_LICENSE("GPL");

4. vi Makefile
5. 加入如下代码
obj-m :=process.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(shell uname -r ......
总记录数:5772; 总页数:962; 每页6 条; 首页 上一页 [102] [103] [104] [105] 106 [107] [108] [109] [110] [111]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号