gvim 发表于 2013-03-14 11:49

回复 40# send_linux


    用的uc浏览器,提交就那样了。:em17:

axlrose 发表于 2013-03-14 12:14

本帖最后由 axlrose 于 2013-03-14 12:18 编辑

好书,支持
看了英文版的pdf, 英文太烂看得费力,很多也没看懂

看了中断那章,资源分配,还有 FreeBSD git仓库的代码,还是看明白在哪里设置中断号的, 像linux的通过request_irq() 指定中断号
现在FB也针对嵌入式启用设备树功能,中断这些应该是可以在设备树里指定的,不过代码上也得有地方去取得中断分配才对

看了Pi板子的支持在FB内核里支持得挺好的,而使用全志A10的那块板子CubieBoard目前FreeBSD的支持代码还比较少,进到目录里也没几个文件

FB内核分配函数调比起linux麻烦了点 (MALLOC_DEFINE 跟 kmalloc()),但有好处,可以通过userland的工具可以观察到核心分配内存的情况,因为是命了名的,比较好看出来哪个驱动占用内存历害,看了一下,里面都是以2^n来分配的
还有同步那里介绍互斥的类型就挺多的,英文太差,只看懂皮毛
newbus这个设计得非常好,模拟像面向对象的方式,不像linux模拟类大量使用了sys的功能
cv_wait方式,很像posix的线程通知方式

延时处理那块比较有意思
tsleep() 可以支持打断, 在延时的时间范围内,如果被其他地方wakeup唤醒立马就退出延时往后执行了,然后还有支持互斥配合的sleep等

taskqueue_enqueue()这个有点像linux的workqueue,不过还没搞明白,得继续学习
FB, OB, NB里面的驱动框架还不同,我还是把精力放在FB上得了

希望以后有条件在嵌入式上使用上FreeBSD, 现在FB的驱动上还比较缺乏,还有像很多框架的东西,比如linux的输入框架,用户只要很简单的就能实现多点触摸的功能,这个要是FB以后也有就太好了
现在开始做个积累,等有机会上FreeBSD嵌入式项目的时候不会手忙脚乱心里没底
等空闲的时候,打算弄个Cubieboard的板子跑一跑体验一下FB在嵌入式上的表现

axlrose 发表于 2013-03-14 12:32

本期话题:
1、谈谈您在FreeBSD上使用和程序开发的经验
2、如果您还是Linux或者Windows下的程序员,说说FreeBSD和这些平台的区别

1. FreeBSD真正安在笔记本上使用才几个月的时间,后面也都放在虚拟机下跑了,平时经常关注FreeBSD, 以前用fb做桌面系统的时候,一直觉得升级是个麻烦事,虽然ports很方便,因为用了几年的gentoo,编译方式升级已经烦了,还是想用pkg方式,结果用pkg升级整个系统,根本不像pacman -Syu, apt-get upgrade, emerge 这些方便,不过现在好了有了pkgng,跑桌面用户有福了
在FreeBSD下也没咋开发过啥,以前拿在linux下写的应用程序,然后原封不动用gmake编译直接就能跑了,到了用户层的东西跟linux没啥区别,我原来使用的vim, tmux, i3wm等都一个样,只要不是跟底层梆定得的东西问题都不大
,然后就是习惯了sysctl方式跟内核打交道的方式还是不错

2. linux下的折腾的人多,特别驱动方面,像我最近用的rtl的usb无线网卡和sdio的,从官方就能拿到现成的for linux源代码,编译insmod就能用了,而在FB下没找到,看到论坛也有人问这个网卡的驱动,主要是厂商不支持没办法,还有像linux现在的CAN框架整使用net那套里面,上层的iproute2工具就能很方便的访问,当个网络设备来处理
开发方式都差不多,在FreeBSD下写些小程序还是用的vim + Makefile,不过那个bsd的那套makefile做得太强了,重用性太好了,像写个helloworld应用程序还是驱动程序,没几行就搞定了
在linux下写些GUI工具使用的是Qt, 这个跨平台工具,在FreeBSD下也是一样,非常好用

mirnshi 发表于 2013-03-14 14:57

回复 42# axlrose

其实很多资料如果要翻译成中文,准确度很大程度依赖于翻译者的经验,如果做过类似的工作,准确率就很高。

FreeBSD的内核代码是非常简洁的,可读性非常高,目录归整的都很好。只是限于核心组开发,导致很多在Linux上跑得很好的硬件在FreeBSD上不能很好地识别运行。随之Arm的普及度提高,Arm的支持会越来越大。

FreeBSD自6以后,版本特性增加得很快,不像版本4,小版本号很大。主版本号变化,有些内核的接口也随之变化了,不过变化不是很大的。

tsleep只是挂起当前kthread,如果要唤醒,必须来自其他kthread. 字符设备可以用tsleep做一些等待操作。

   

mirnshi 发表于 2013-03-14 15:02

axlrose 发表于 2013-03-14 12:32 static/image/common/back.gif
本期话题:
1、谈谈您在FreeBSD上使用和程序开发的经验
2、如果您还是Linux或者Windows下的程序员,说说F ...

网卡驱动,如果有源码,可以移植到FreeBSD的。

ddd010 发表于 2013-03-14 15:49

真个真不懂,和linux的驱动开发相差很大???

aa443399 发表于 2013-03-14 16:07

1、谈谈您在FreeBSD上使用和程序开发的经验
最开始是在虚拟机上装了,然后还是搭建web环境啥的,当时特喜欢ports;


使用呢,和linux还是有些细节不同的,例如:
默认好像是csh,不是bash
packages的安装好像是pkg_add -r
用户的增删:pw useradd username 和 pw groupadd

当然最后还是安装的vim,默认那个用不惯,或者说没用两下就被我无情抛弃了

2、如果您还是Linux或者Windows下的程序员,说说F ...

曾经是,,想起08年,部门主管建议我读FB源码,后来一直就留了个心,留意着FB的消息;
对FB的印象就一直不知道为啥,特别好。。
哎呀,
荒废了不少时间啊,小子

中文资料少,,当然,要自己有心,还是能啃英文的

axlrose 发表于 2013-03-14 16:59

本帖最后由 axlrose 于 2013-03-14 17:01 编辑

其实操作系统的东西,都是类unix的系统,很多概念都差不多
目前要丰富FreeBSD的驱动的话,排除从linux驱动移植过去 GPL的问题外,还需要开发人员同时熟悉linux和FreeBSD的驱动开发才行
毕竟现在大量的驱动能在linux下看到,很大的原因都是硬件厂商为了推广他们的硬件,所以去开发针对linux的驱动,我选的那个wifi芯片,听说今年一月份, 光一个月出货量就9kk, 如果他们移植到FreeBSD下,也能达到这个量的话,我想for FreeBSD的驱动肯定马上就出来了
加强英文和代码阅读很重要啊,光靠翻译文档我看短期是没啥大的希望的了
目前打算开发上层软件尽量考虑到跨平台的方案,底层嘛,平时学学FB
建议有FB开发经验的朋友,平时多写写BLOG之类的分享下经验,要不然google一下,能找到的参考挺少的,不像现在的linux,很容易搜索到大片的BLOG文章,社区需要大家的努力呀


说到使用习惯上,我安FreeBSD都要安上bash, vim , tmux这些,还是按linux应用层的那套习惯来,有时用着用着都忘了是在用FB

shang2010 发表于 2013-03-14 17:44

现在研究fb驱动还有市场吗??

hellioncu 发表于 2013-03-15 09:55

工作中不用FreeBSD,缺乏学习的动力:((
页: 1 2 3 4 [5] 6 7 8
查看完整版本: FreeBSD设备驱动和程序开发您知晓多少,积极分享送好书(获奖名单已公布2013-4-12)