Linux编程

使用gitolite搭建git源码仓库

一、操作环境

使用gitolite搭建git仓库,首先服务器端要安装有软件:

1. Git 1.6.6+

2. Perl 5.8.8+

3. Openssh 5.0+

二、创建git账户

ubuntu@ubuntu-virtual-machine:/home$ sudo adduser git2

正在添加用户”git2″…

正在添加新组”git2″ (1004)…

正在添加新用户”git2″ (1004) 到组”git2″…

创建主目录”/home/git2″…

正在从”/etc/skel”复制文件…

输入新的 UNIX 密码:

重新输入新的 UNIX 密码:

passwd:已成功更新密码

正在改变 git2 的用户信息

请输入新值,或直接敲回车键以使用默认值

全名 []:

房间号码 []:

工作电话 []:

家庭电话 []:

其它 []:

这些信息是否正确? [Y/n]

ubuntu@ubuntu-virtual-machine:/home$ ls

git git2 my test ubuntu

Continue reading “使用gitolite搭建git源码仓库” »

Beaglebone black 搭建LAMP服务器及动态域名解析

beaglebone black lamp

bbb搭建的wordpress,欢迎大家测试!

http://bbb.ydea.net

Beaglebone Black板子闲置的有一段时间了。这周突然有一个想法:在Beaglebone Black上搭建服务器,运行个wordpress玩玩。说做就做,中间遇到了许多问题,不过都一一解决,几乎花费了这周下班后的全部休息时间。

一、Beaglebone Black 系统安装与SD卡挂载

bbb开发板系统烧写有两种方式:一种是直接烧写到内置的4G空间的emmc上,一种是把系统烧写到SD卡上。本来想采用第二种方法,但是适合烧写在SD卡上的最新版系统下了好久都下不下来,在中国访问国外的网站,下载一些资料真是受罪。而恰好下载下了适合烧写在emmc的系统,于是采用了第一种方法。但是内置的emmc只有4G,烧写完空间就剩余不多了,于是准备把8G的SD卡挂载到bbb上,以便拓展存储空间。

烧写好了Debian 8.3版本的系统后,开机修改/etc/fstab文件,添加sd卡配置信息,结果发现,系统启动不起来了,通过连接串口工具,查看启动信息发现,文件系统的挂载有问题。原来把SD卡插入BBB板子后重新启动系统,系统会把sd卡变为/dev/mmcblck0,emmc变为/dev/mmcblck1,但是我在fstab文件中是这样配置sd的开机挂载的:
Continue reading “Beaglebone black 搭建LAMP服务器及动态域名解析” »

内核空间与用户空间共享内存(mmap)

好多次遇见mmap,但都没有实际实验过,最近终于抽出时间做了个mmap的小实验。这篇博文中的代码是在其他人的基础上修改而成,并非个人原创。

一、mmap实现方法:
将内核的物理内存通过mmap映射到用户空间,直接在用户空间对内核数据进行存取。
1、在内核中分配一片内存(kzalloc/__get_free_pages),将这片内存的虚拟地址转换成物理地址;
2、在内核的mmap函数中通过remap_pfn_range实现内核物理内存空间映射到用户虚拟地址空间转换的功能;
3、在应用程序中可以调用用户态的mmap函数,完成内核物理内存向用户空间的映射;
4、可直接利用这片被映射了的用户空间对内核空间进行存取操作。

二、程序实现功能:
1、创建mmap_dev字符设备,实现该设备的mmap函数;
2、在/proc中创建获取内核中分配的物理内存信息(起始地址和大小)的接口;
3、通过/proc读取内核中分配的物理内存信息(起始地址和大小);
4、通过读取的这些内存信息调用mmap函数,完成用户空间到内核空间的映射;
5、向这片映射过的用户空间写入数据。

Continue reading “内核空间与用户空间共享内存(mmap)” »

Linux字符设备驱动

模块头文件

Continue reading “Linux字符设备驱动” »