On Being a man

男孩必须死亡(The boy must die)
. 为了使男人降生,男孩必须死亡
. 为了使蝴蝶降生,幼虫必须死亡...一种完整的转化,而非部分的
. 这里的意思不是指失去你天真的一面
. 我们指的“没长大男人”综合症是指: 蛮横、恐吓、威逼、牢骚大王、爱做受害者,等
. 回忆一下,当你还是男孩时,你用试图操纵别人的一些小手段
. 现在,想想看你还在做这种不成熟事情的方式,仅仅是一种更老到,更精明,更能为自己找到理由,更世故的版本。
. 第一步就是看到并且承认你身上依然表现得像个男孩的部分

成熟 Vs 装B
远见 Vs 操纵
. 成熟男人的一个标志是远见.(亚里士多德)
. 成熟的一部分是将未来事件有约束地考虑一遍.. 而非猜测,但愿,将事情留给运气
. 当你已将所有的剧情考虑清楚,你可以带着力量和自信向前,因为你已对大部分可能发生的事都作了计划,任何临时情况你都能处理
. 这样一来,当意外发生,你身心轻松
. 一个不成熟,没长大的男人认为他也做了这样的事,但事实上完全不是一回事
. 一个不成熟,没长大的男人用小把戏,技法来操纵他人,只追求一时的快感,快速的回报
. 一个你任何时候都可以应用的测试是:问问你自己,你正在做的事情是否有暗地操纵别人的感觉,是否卑鄙,是否有任何不诚实的感觉。如果有的话,那么你正在让自己内心当中不成熟的小男孩控制事情... 这最终只会减少你的满足感,而非增加更多
. 如果你内心的感受是力量,可靠和想要增添你女人的人生经历和快乐,那么你在正确的轨道上

成为一个男人意味着你要放弃这些东西:
. 抛出你的情绪、愤怒只为了或得他人注意
. 不必要地纠正别人无伤大雅的错误,只为了显示出你很重要
. 只为了显示你的优越而不同意别人
. 变成一个“什么都知道”的人,认为这样别人会更赞同你
. 说和做的事情是为了赢得注意力和他人的赞同,而不是增添价值,真实地希望对境况有所帮助。

一些你可以考虑的外在品质
. 谜一般的自信(源自内在)
. 幽默
. 急智
. 魅力(温暖)
. 博学睿智
. 领导力
. 优雅
. 骑士精神
. 个人风格
. 自然
. 舒适
. 镇静沉着

The Art Of Cool
. 什么是"Cool"?
. 为什么这个词被用得这么多?
. 它暗示一种在温暖和寒冷之间的温度..当被应用到个性或态度上时,暗示着并不太强烈,也不太冷淡
. 一个"Cool"的人不对任何事过度兴奋,不被任何事影响太多,不会有过度情绪化的反应,能控制自己
. 记住:一个"Cool"的人可以与一个"过度老实(Square)"的人很自如地交互,而一个“过度老实”的人无法做到

Cool的元素:
. 幽默感
. 向后靠,不被他人的观点所影响
. 冷静的自信
. 可以开自己的玩笑
. 不显得凌驾于他人之上
. 独立,鼓励他人独立
. 总是与他人呈现出一种“Cool”的连结,头向后一靠作为招呼,说“Hey”,“怎么了”

感受不同的说你好的方式
. 表面的"Hello,你好",微笑
. 不安地"Oh,嗯..额..你好"
. Cool家伙"什么事?",头向后靠
. 狡猾的微笑,慢慢向后靠..没有任何语言


一些通向成熟之门的问题
. 什么事你不承认?
. 什么事你在逃避?
. 有哪些事你看得太理想化?关于你自己,人与人之间的关系,女人
. 你需要意识到和接受什么?
. 在什么地方你接受了自己二流的思想和行为
. 你在生活的什么地方变得不可靠?
. 你在什么地方没有保持自己人格的完整
. 你在隐瞒什么?
. 为什么你要隐瞒?
. 你野性的一面始终在那里,如果你压抑他,他会反噬你
. 用整合代替压抑
. 接受 - 整合 - 超越


为自己的成长负责
. 为自己负责, 为你的想法负责,为你目前的境况负责
. 学会看到你之前做的决定如何引领出你的现况
. 拒绝成为受害者
. 看从经验中学到的东西,而非经验本身
. 拒绝让任何人取走你的快乐


对影响力的一瞥
. 你个人的影响力基于什么?
. 你和他人之间的竞争,是一种健康有力的,有男子气的,有安全感而成熟的...还是一种懦弱的,缺乏安全感的,过分竞争而不成熟的?
. 你是否尊重其他成熟的人,把他们当作值得尊重的对手,还是在心里悄然地把自己凌驾于他人之上 ?
. 你说服别人的能力是基于别人对你的信任,你的智慧,还是抱怨、哭诉、蛮横或发怒?
. 你对影响力的理解是根植于认为世界很丰瘐还是稀缺?


悲伤是通向深层感觉之门
. 为了与自己的真实感觉相连,你很可能要先愿意感受悲伤
. 男人们被教育表现得强硬, 而不表达他们的感情
. 只有允许自己去体验悲伤,透彻地感受它,往深处探寻,你才能体验到更多更微妙的情绪
. 一个成熟的男人有意识地悲伤,明白这是一个健康的过程
. 当悲伤出现之时,让你自己去感受它是非常重要的.. 它将带你通向一个有丰富情绪的生活


对感情印迹反应
. 一件事若与情绪有关,我们会牢牢记得
. 当一件类似的事发生,我们常常产生与过去一样的情绪,而不是对当时的事件本生重新评估、反应
. 成为一个男人意味着打断这种连接,活在当下,将每一个情况当作全新..当作一个新的机会


确定性
. 人们喜欢确定性
. 现实当中没有这种东西
. 如果你能提供它,表现它,传递它,你会变得很有吸引力
. 如果你对自己做的事情没把握,别人不会愿意跟随你,他们会怀疑你


不必要的失落感
. 许多男人觉得被“冷落”,当一个女人想要单独或与其他朋友在一起。
. 克服掉这种无意识的猜忌,失落或忧伤的感觉
. 培养她不在身边一样可以享受所做事情的能力
. 这点很重要,特别是还没有和你在一起的女人(Interesting..),或在你生活中新出现的女人
. 这个观念事实上可以用于生活中的所有人际关系
. 作为一个成熟的人,如果他人享受没有你在身边的生活和经历,你完全没必要因此感到你失去什么
. 硬币的另一面,就是你应该允许自己创造自己的生活,享受自己的经历,而不必感到你需要其他人对你的认可

清晰
. 对自己的人生道路,使命,梦想,价值观的清晰是很有吸引力的


定律
. 永远保持镇定
. 学会牺牲短期回报换取长期满足
. 不要哀诉, 发牢骚,或抱怨
. 无论什么事发生,总是想办法让自己享受
. 发展你的自我知觉
. 学会控制你的情绪
. 变为一个识别你所有自我欺骗习惯的专家
. 停止理想化女人
. 停止理想化人和人之间的关系
. 明白你人生的目的和路径,维持在之上
. 不停地改进你自己
. 停止将你的优点和缺点映射于他人之上
. 赶出你心里的弱者
. 构建有益的习惯,废除自我破坏的习惯
. 永远保持诚实,有道德,可靠
. 当你失去对自己的控制时,意识到它
. 当你遇到挑战,回到基本功的练习中.
. 废除所有因紧张而发出的小动作,手势,面部表情
. 变得不可思议的诚实,可信,坦诚,率直当需要率直之时
. 当你学到一样伟大的东西时,立刻将它教给别人
. 通过向失败学习来排除失败
. 自己的进步和成功只和自己比,而非别人
. 不停地有意识地进化自己 - 总是寻找更深的层面和下一个范式



将女人理想化作为自我欺骗
. 一个在男人当中反复出现的主题就是他们将女人理想化的模式,将所有自己压抑了的优点映射在她们身上,而蒙蔽了缺点,之后在情感上卷入,用她来填补性格上的缺漏。
. 当然,女人永远比男人设想的不完美得多,男人设想的形象最后变得完全不准确,最终伤害了他自己(常常也伤害了女人)
. 这种主题的一种,是男人内心的一部分想要拯救在困境,受伤的女人
. 很不幸,试图拯救一个你在接触之前已经理想化的女人几乎可以保证是一场必败的战争
. 你必须首先变得无情地对自己坦诚,然后学着更准确地判断女人,基于更成熟的知识和理解,小心地选择你的关系

逃避和沉溺(Self-Medication,可能翻译成意淫比较好?)
. 我们人类对逃避不想要面对的想法非常在行
. 当我们必须要面对让我们不舒服的事情时,我们能让自己长时间的“没反应”和“麻木”,这样我们便感
觉不到他们的影响
. 一种我们处理不愿面对问题的方法是"沉溺"于其他事
. 我们沉溺于
- 食物
- 性
- 幻想
- 他人的同情
- 他人的罪恶
- 他人对自己的注意
- 借口
- 诉苦
- 解脱责任(有趣的概念)
- 逃避

. 然而事实是,处理问题本身总是比处理负面心理,情绪和身理反应--这些我们用来逃避的模形来得简单
. 着手去处理问题的根本,当你在自我沉溺的时候,请意识到它


上瘾(Addiction)
. 上瘾是习惯的阴暗面
. 以下是一些常见的和不常见的上瘾
. 对奋斗上瘾
. 对理想化上瘾
. 对映射(Project)于他人上瘾(注: 荣格的概念,认为我们常常不健康地过度将自己的缺点和优点映射在他人身上,如果我们讨厌某人,往往是因为他们身上有我们自己的缺点,如果我们过度理想化某人,往往是因为他们身上有我们自身没有挖掘出的优点。)
. 对故事上瘾
. 对自我形象上瘾
. 对肉体和物质上瘾(物质,或肉体上的满足)
. 对情感的上瘾(爱,对爱的渴望.. 想念某人)
. 心理上的上瘾(某种观念,想法,理想情况,某种形象,文字,各种内容(Content))

---------
On Being a Man
做恒星,而非行星
. 大部分的男人表现得就像一颗行星,寻找恒星环绕
. 做恒星
. 当你的内心变得像磐石般稳固,变得真正成熟,没有哪个人可以影响你,之后你就开始影响别人
. 你真正不在乎别人怎样想,这让你的头脑,情绪,沟通变得轻松,变得像你自己
. 这样做的好处是这让你变得无可比拟的透明和可靠..但负面在于,如果你没有将你在真实内在和内心当中那个不成熟的男孩处理清楚,它们会传递出将会伤害你的东西。


Real Man
. 完全地接受所有事情的真实面目,不下判断-- 然后着手改变它们
. 亮剑而不伤人
. 不使用威胁和恐吓
. 在任何场合,都是力量,安全,保护的支点
. 鼓励并享受他人的闪耀,胜利,进步
. 不需要任何外在的事物使自己开心

Qualities Of Male Maturity
. 平衡的视角
. 一种不急于下判断的态度
. 理解每一个人内心深处都有正面的动机
. 强大的自我感
. 稳定感...
. 可信任

一些你面前是一个Real Man的线索
. 一种可以接近的感觉
. 一种“永远不让别人看见他害怕”的态度
. 不愿意接受二流的想法和行为
. 年轻人的导师
. 稳固,有力的自我和价值观
. 是那些还无力保护自己的人的保护者
. 鼓励和挑战那些没有发挥出自己潜力的人


. 大部分男人: 一个人不开心 -> 终于粘上一个女人 -> 粘得太紧, 把自己完全交出,失去了吸引力
. 转换为:建立快乐的单身生活-> 主动选择一个人生活 -> 选择一段关系 -> 进入婚姻或长期关系
. 这全是关于变为一个在内在外都拥有愉快生活的男人,他愿意先选择一个人生活
. 让你的个人生活变得极好,甚至没有办法为关系腾出时间
. 拥有一个你热爱的生活
. 在你的生活中填满你享受的事情,以至你需要考虑如何将一个女人安排进来
. 选择一段关系,是为了改善你已经美好的生活,而不是成为你的生活
. 如果你已经进入一段关系,拥有你自己可以享受的生活,这样当你和你的伴侣(这个词好土..)在一起

的时候,你处于最佳状态

.将你的参照系置内
. 大部分的人在外在的世界寻找他们应该怎样行动,怎样感觉,怎样思考的提示
. 可以说他们有的是一个“外在参照系”
. 参照系在外的人无意识地将控制权交给他人,寻求他人的领导

内在指向
.定义"用自己的一套价值观指导自己的想法和行为,而非社会标准"
. 一个内在指向的人总是先考虑自己空间想要什么,自己的目标,想要的结果 -- 而不是根据别人的要

求和标准考虑自己的想法和志向
. 一个内在指向的人工作是为了取得个人的目标,用自己的进步作为衡量指标
. 当需要做人生中的重大决定时,内在指向的人依靠他们自身的价值观系统 - 而非别人的价值观

.内在参照系
. 一个“拥有内在参照系的人”
. 将他们自己作为思考的脉络或框架
. 将他们的世界观,自我形象,信念和价值观系统作为判断标准
. 将进步与自己的标准比较,努力改善他们过去的成绩 -- 而不是去击败他人
. 倾向于不太在意别人怎样谈论他,因为这对他们来说真的无足轻重
. 他们觉得是自己在掌控生活,自己决定生命中的成果
. 不让自己因为他人或环境而变成一个受害者
. 非常清楚地明白他们可以选择如何对环境作出自主的反应,身理上,逻辑上和情绪上
. 带着这样一个内在假设进入任何环境:他们可以让事情发生,可以改变外在环境,可以在生活的世界上创造出他们想要的结果

独立
一个真正能够独立的人
. 不必要追随"适当"或变得"符合社会价值观"(例:当老板,赚大钱,出名,没意义的应酬)
. 想法和行动不是为了获得社会的同意
. 在框架外思考 -- 非常有创造力
. 当别人将他们的规则和权力强压在他身上时,感到非常挫败
. 有更强的心理素质和情绪弹性


领袖
一个真正能被描述为“领袖”的人
. 了解大部分人的人总是在寻找一个人追随和模仿
. 当他们认为一件事是对的,他们立刻着手去做,绝不犹豫地观察是否其他所有人都这样想
. 如果他人不同意或不接受,他们并不很在意
. 集中精力于获得他们想要的成果


A Real man(中文翻译这种东西很土...直接用英文)有自己的生活。他的一切都很协调。当然,他愿意
找到一个漂亮,聪明的女孩共享美好时光,但他不显得“必须要”这样。当他遇见并和有吸引力的女人交互时,他身上的每一个细节都显示出他无比自然,在谁面前都很自在。他让人感觉他拥有整座他居住的城市。当他和一个女人做眼神接触时,他不因为自我紧张而立即转移目光..他保持目光,好像在说“我看到了一些有趣的东西...让我用一点时间考虑一下”. 他无时无刻都很冷静,他的动作仅仅是相比所有其他人都放慢了一点点。关于他的一切都暗示着他毫不着急,因为事情总会在最后如他所愿。A Real man和女人沟通时让女人同时感到兴奋和困惑。因为他毫不自我紧张,他完全不在乎女人的同意与否,他说一些完全超出期待的话。 A Real man不怕说出心里想的话,甚至拿眼前的女人开玩笑..只是因为他喜欢这样。很明显,他只是成为他自己(being who he is). 这种关于他的自在的风度和毫无不安感有致命的吸引力。他对人有礼貌-- 但必要的时候会近乎残酷地直率。他不像一些人一出事就不分青红皂白地道歉(特别是他知道如何把握自己的生活,他并不会因为不成熟,迟到,不诚实或无理的批评他人以致制造问题)。他很自然率直 - 但却富于责任感。 他不遮掩自己,敢说出自己的想法。他的生活不为取悦任何其他人-- 父母,朋友,特别是女人。 他从不表现得或沟通得像一个受害者。 A real man是每个女人都想要的,但他如此稀少,以至于许多女人怀疑永远找不到。

(Example: James Bond..)

转载自:http://blog.sina.com.cn/s/blog_49227a6c01009sh8.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是复习及备战六级的秘籍,很赞的资源哦2008年6月大学英语六级A卷真题 Part I Writing (30 minutes) Will E-books Replace Traditional Books? 1.随着信息技术的发展,电子图书越来越多; 2.有人认为电子图书将会取代传统图书,理由是… 3.我的看法。 Part Ⅱ Reading Comprehension(Skimming and Scanning)(15 minutes) What Will the World Be Like in Fifty Years? This week some top scientists, including Nobel Prize winners, gave their vision of how the world will look in 2056, from gas-powered cars to extraordinary health advances, John Ingham reports on what the world’s finest minds believe our futures will be. For those of us lucky enough to live that long, 2056 will be a world of almost perpetual youth, where obesity is a remote memory and robots become our companions. We will be rubbing shoulders with aliens and colonising outer space. Better still, our descendants might at last live in a world at peace with itself. The prediction is that we will have found a source of inexhaustible, safe, green energy, and that science will have killed off religion. If they are right we will have removed two of the main causes of war-our dependence on oil and religious prejudice. Will we really, as today’s scientists claim, be able to live for ever or at least cheat the ageing process so that the average person lives to 150? Of course, all these predictions come with a scientific health warning. Harvard professor Steven Pinker says: “This is an invitation to look foolish, as with the predictions of domed cities and nuclear-powered vacuum cleaners that were made 50 year ago.” Living longer Anthony Atala, director of the Wake Forest Institute in North Carolina, believes failing organs will be repaired by injecting cells into the body. They will naturally go straight to the injury and help heal it. A system of injections without needles could also slow the ageing process by using the same process to “tune” cells. Bruce Lahn, professor of human genetics at the University of Chicago, anticipates the ability to produce “unlimited supplies” of transplantable human organs without the need for human donors. These organs would be grown in animals such as pigs. When a patient needed a new organ, such as a kidney, the surgeon would contact a commercial organ producer, give him the patient’s immunological profile and would then be sent a kidney with the correct tissue type. These organs would be entirely composed of human cells, grown by introducing them into animal hosts, and allowing them to develop into an organ in place of the animal’s own. But Prof. Lahn believes that farmed brains would be “off limits”. He says: “Very few people would want to have their brains replaced by someone else’s and we probably don’t want to put a human brain in an animal body.” Richard Miller, a professor at the University of Michigan, thinks scientist could develop “authentic anti-ageing drugs” by working out how cells in larger animals such as whales and human resist many forms of injuries. He says: “It is now routine, in laboratory mammals, to extend lifespan by about 40%. Turning on the same protective systems in people should, by 2056, create the first class of 100-year-olds who are as vigorous and productive as today’s people in their 60s” Aliens Colin Pillinger, professor of planetary sciences at the Open University, says: I fancy that at least we will be able to show that life did start to evolve on Mars well as Earth.” Within 50years he hopes scientists will prove that alien life came here in Martian meteorites(陨石). Chris McKay, a planetary scientist at NASA’s Ames Research Center. believes that in 50 years we may find evidence of alien life in the ancient permanent frost of Mars or on other planers. He adds: There is even a chance we will find alien life forms here on Earth. It might be as different as English is to Chinese. Princeton professor Freeman Dyson thinks it “likely” that life form outer space will be discovered before 2056 because the tools for finding it, such as optical and radio detection and data processing, are improving. He says: “As soon as the first evidence is found, we will know what to look for and additional discoveries are likely to follow quickly. Such discoveries are likely to have revolutionary consequences for biology, astronomy and philosophy. They may also change the way we look at ourselves and our place in the universe.” Colonies in space Richard Gott, professor of astrophysics at Princeton, hopes man will set up a self-sufficient colony on Mars, which would be a “life insurance policy against whatever catastrophes, natural or otherwise, might occur on Earth. “The real space race is whether we will colonise off Earth on to other worlds before money for the space programme runs out.” Spinal injuries Ellen Heber-Katz, a professor at the Wistar Institute in Philadelphia, foresees cures for injuries causing paralysis such as the one that afflicted Superman star Christopher Reeve. She says: “I believe that the day is not far off when we will be able to prescribe drugs that cause severed (断裂的) spinal cords to heal, hearts to regenerate and lost limbs to regrow.” “People will come to expect that injured or diseased organs are meant to be repaired from within, in much the same way that we fix an appliance or automobile: by replacing the damaged part with a manufacturer-certified new part.” She predicts that within 5 to 10 years fingers and toes will be regrown and limbs will start to be regrown a few years later. Repairs to the nervous system will start with optic nerves and, in time, the spinal cord.” Within 50 years whole body replacement will be routine,” Prof. Heber-Katz adds. Obesity Sydney Brenner, senior distinguished fellow of the Crick-Jacobs Center in California, won the 2002 Nobel Prize for Medicine and says that if there is a global disaster some humans will survive-and evolution will favour small people with bodies large enough to support the required amount of brain power.” Obesity,” he says.” will have been solved.” Robots Rodney Brooks, professor of robotics at MIT, says the problems of developing artificial intelligence for robots will be at least partly overcome. As a result, “the possibilities for robots working with people will open up immensely” Energy Bill Joy, green technology expert in California, says:” The most significant breakthrough would be to have an inexhaustible source of safe, green energy that is substantially cheaper than any existing energy source.” Ideally, such a source would be safe in that it could not be made into weapons and would not make hazardous or toxic waste or carbon dioxide, the main greenhouse gas blamed for global warming. Society Geoffrey Miller, evolutionary psychologist at the University of New Mexico, says: The US will follow the UK in realizing that religion is not a prerequisite (前提)for ordinary human decency. “This, science will kill religion-not by reason challenging faith but by offering a more practical, universal and rewarding moral framework for human interaction.” He also predicts that “absurdly wasteful” displays of wealth will become unfashionable while the importance of close-knit communities and families will become clearer. These three changer, he says, will help make us all” brighter, wiser, happier and kinder”. 1.What is john lngham’s report about? A) A solution to the global energy crisis B) Extraordinary advances in technology. C) The latest developments of medical science D) Scientists’ vision of the world in half a century 2. According to Harvard professor Steven Pinker, predictions about the future_____. A) may invite trouble B) may not come true C) will fool the public D) do more harm than good 3. Professor Bruce Lahn of the University of Chicago predicts that____. A) humans won’t have to donate organs for transplantation B) more people will donate their organs for transplantation C) animal organs could be transplanted into human bodies D) organ transplantation won’t be as scary as it is today 4. According to professor Richard Miller of the University of Michigan, people will____. A) life for as long as they wish B) be relieved from all sufferings C) live to 100 and more with vitality D) be able to live longer than whales 5.Priceton professor Freeman Dyson thinks that____. A) scientists will find alien life similar to ours B) humans will be able to settle on Mars C) alien life will likely be discovered D) life will start to evolve on Mars 6.According to Princeton professor Richard Gott, by setting up a self-sufficient colony on Mars, Humans_____. A) might survive all catastrophes on earth B) might acquire ample natural resources C) Will be able to travel to Mars freely D)Will move there to live a better life 7.Ellen Heber-Katz, professor at the Wistar Institute in Philadelphia, predicts that_____. A) human organs can be manufactured like appliances B) people will be as strong and dynamic as supermen C) human nerves can be replaced by optic fibers D) lost fingers and limbs will be able to regrow 8. Rodney Brooks says that it will be possible for robots to work with humans as a result of the development of _____ 9. The most significant breakthrough predicted by Bill Joy will be an inexhaustible green energy source that can’t be used to make__. 10. According to Geoffrey Miller, science will offer a more practical, universal and rewarding moral framework in place of_______. Part III Listening Comprehension (35minutes) Section A 11. A) The man might be able to play in the World Cup. B) The man’s football career seems to be at an end. C) The man was operated on a few weeks ago. D) The man is a fan of world-famous football players. 12. A) Work out a plan to tighten his budget B) Find out the opening hours of the cafeteria. C) Apply for a senior position in the restaurant. D) Solve his problem by doing a part-time job. 13. A) A financial burden. B) A good companion C) A real nuisance. D) A well-trained pet. 14. A) The errors will be corrected soon. B) The woman was mistaken herself. C) The computing system is too complex. D) He has called the woman several times. 15. A) He needs help to retrieve his files. B) He has to type his paper once more. C) He needs some time to polish his paper. D) He will be away for a two-week conference. 16. A) They might have to change their plan. B) He has got everything set for their trip. C) He has a heavier workload than the woman. D) They could stay in the mountains until June 8. 17. A) They have to wait a month to apply for a student loan. B) They can find the application forms in the brochure. C) They are not eligible for a student loan. D) They are not late for a loan application. 18. A) New laws are yet to be made to reduce pollutant release. B) Pollution has attracted little attention from the public. C) The quality of air will surely change for the better. D) It’ll take years to bring air pollution under control. Questions 19 to 22 are based on the conversation you have just heard. 19. A) Enormous size of its stores. B) Numerous varieties of food. C) Its appealing surroundings. D) Its rich and colorful history. 20. A) An ancient building. B) A world of antiques. C) An Egyptian museum. D) An Egyptian Memorial. 21. A) Its power bill reaches £9 million a year. B) It sells thousands of light bulbs a day. C) It supplies power to a nearby town. D) It generates 70% of the electricity it uses. 22. A) 11,500 B) 30,000 C) 250,000 D) 300,000 Questions 23 to 25 are based on the conversation you have just heard. 23. A) Transferring to another department. B) Studying accounting at a university C) Thinking about doing a different job. D) Making preparations for her wedding. 24. A) She has finally got a promotion and a pay raise. B) She has got a satisfactory job in another company. C) She could at last leave the accounting department. D) She managed to keep her position in the company. 25. A) He and Andrea have proved to be a perfect match. B) He changed his mind about marriage unexpectedly. C) He declared that he would remain single all his life. D) He would marry Andrea even without meeting her. Section B Passage One Questions 26 to 29 are based on the passage you have just heard. 26.A) They are motorcycles designated for water sports. B) They are speedy boats restricted in narrow waterways. C) They are becoming an efficient form of water transportation. D) They are getting more popular as a means or water recreation. 27.A) Water scooter operators’ lack of experience. B) Vacationers’ disregard of water safety rules. C) Overloading of small boats and other craft. D) Carelessness of people boating along the shore. 28.A) They scare whales to death. B) They produce too much noise. C) They discharge toxic emissions. D) They endanger lots of water life. 29.A)Expand operating areas. B) Restrict operating hours. C) Limit the use of water scooters. D) Enforce necessary regulations. Passage Two Questions 30 to 32 are based on the passage you have just heard. 30.A) They are stable. B) They are close. C) They are strained. D) They are changing. 31.A) They are fully occupied with their own business. B) Not many of them stay in the same place for long. C) Not many of them can win trust from their neighbors. D) They attach less importance to interpersonal relations. 32.A) Count on each other for help. B) Give each other a cold shoulder. C) Keep a friendly distance. D) Build a fence between them. Passage Three Questions 33 to 35 are based on the passage you have just heard. 33.A) It may produce an increasing number of idle youngsters. B) It may affect the quality of higher education in America. C) It may cause many schools to go out of operation. D) It may lead to a lack of properly educated workers. 34. A)It is less serious in cities than in rural areas. B) It affects both junior and senior high schools. C) It results from a worsening economic climate. D) It is a new challenge facing American educators. 35. A) Allowing them to choose their favorite teachers. B) Creating a more relaxed learning environment. C) Rewarding excellent academic performance. D) Helping them to develop better study habits. Section C I'm interested in the criminal justice system of our country. It seems to me that something has to be done if we’re to (36) ___ as a country. I certainly don't know what the answers to our problems are. Things certainly get (37) ____in a hurry when you get into them. But I wonder if something couldn't be done to deal with some of these problems. One thing I'm concerned about is our practice of putting (38) _____ in jail who haven't harmed anyone. Why not work out some system (39) _____ they can pay back the debts they owe society instead of (40) ___ another debt by going to prison, and of course, coming under the (41) ____of hardened criminals? I'm also concerned about the short prison sentences people are (42) ______ for serious crimes. Of course, one alternative to this is to (43) ______ capital punishment, but I'm not sure I would be for that. I'm not sure it's right to take an eye for eye. (44) _____. I also think we must do something about the insanity plea. In my opinion, anyone who takes another person’s life intentionally is insane; however, (45) _____. It’s sad, of course, that a person may have to spend the rest of his life, or (46) ______. Part IV Reading Comprehension (Reading in Depth) (25 minutes) Section A Questions 47 to 51 are based on the following passage. If movie trailers(预告片)are supposed to cause a reaction, the preview for "United 93" more than succeeds. Featuring no famous actors, it begins with images of a beautiful morning and passengers boarding an airplane. It takes you a minute to realize what the movie’s even about. That’s when a plane hits the World Trade Center. the effect is visceral(震撼心灵的). When the trailer played before "Inside Man" last week at a Hollywood theater, audience members began calling out, "Too soon!" In New York City, the response was even more dramatic. The Loews theater in Manhattan took the rare step of pulling the trailer from its screens after several complaints. “United 93” is the first feature film to deal explicitly with the events of September 11, 2001, and is certain to ignite an emotional debate. Is it too soon? Should the film have been made at all? More to the point, will anyone want to see it? Other 9/11 projects are on the way as the fifth anniversary of the attacks approaches, most notably Oliver Stone's " World Trade Center." but as the forerunner, “United 93” will take most of the heat, whether it deserves it or not. The real United 93 crashed in a Pennsylvania field after 40 passengers and crew fought back against the terrorists. Writer-director Paul Greengrass has gone to great lengths to be respectful in his depiction of what occurred, proceeding with the film only after securing the approval of every victim's family. "Was I surprised at the agreement? Yes. Very. Usually there’re one or two families who're more reluctant," Greengrass writes in an e-mail. "I was surprised at the extraordinary way the United 93 families have welcomed us into their lives and shared their experiences with us." Carole O'Hare, a family member, says, “They were very open and honest with us, and they made us a part of this whole project.” Universal, which is releasing the film, plans to donate 10% of its opening weekend gross to the Flight 93 National Memorial Fund. That hasn't stopped criticism that the studio is exploiting a national tragedy. O’Hare thinks that’s unfair. “This story has to be told to honor the passengers and crew for what they did,” she says. “But more than that, it raises awareness. Our ports aren’t secure. Our borders aren’t secure. Our airlines still aren’t secure, and this is what happens when you’re not secure. That’s the message I want people to hear.” 47. The trailer for “United 93” succeeded in ________ when it played in the theaters in Hollywood and New York City. 48. The movie “United 93” is sure to give rise to _______________. 49. What did writer-director Paul Greengrass obtain before he proceeded with the movie? 50. Universal, which is releasing “United 93”, has been criticized for _________. 51. Carole O’Hare thinks that besides honoring the passengers and crew for what they did, the purpose of telling the story is to _________ about security. Part IV Reading Comprehension (Reading in Depth) (25 minutes) Section A Questions 47 to 51 are based on the following passage. If movie trailers(预告片)are supposed to cause a reaction, the preview for "United 93" more than succeeds. Featuring no famous actors, it begins with images of a beautiful morning and passengers boarding an airplane. It takes you a minute to realize what the movie’s even about. That’s when a plane hits the World Trade Center. the effect is visceral(震撼心灵的). When the trailer played before "Inside Man" last week at a Hollywood theater, audience members began calling out, "Too soon!" In New York City, the response was even more dramatic. The Loews theater in Manhattan took the rare step of pulling the trailer from its screens after several complaints. “United 93” is the first feature film to deal explicitly with the events of September 11, 2001, and is certain to ignite an emotional debate. Is it too soon? Should the film have been made at all? More to the point, will anyone want to see it? Other 9/11 projects are on the way as the fifth anniversary of the attacks approaches, most notably Oliver Stone's " World Trade Center." but as the forerunner, “United 93” will take most of the heat, whether it deserves it or not. The real United 93 crashed in a Pennsylvania field after 40 passengers and crew fought back against the terrorists. Writer-director Paul Greengrass has gone to great lengths to be respectful in his depiction of what occurred, proceeding with the film only after securing the approval of every victim's family. "Was I surprised at the agreement? Yes. Very. Usually there’re one or two families who're more reluctant," Greengrass writes in an e-mail. "I was surprised at the extraordinary way the United 93 families have welcomed us into their lives and shared their experiences with us." Carole O'Hare, a family member, says, “They were very open and honest with us, and they made us a part of this whole project.” Universal, which is releasing the film, plans to donate 10% of its opening weekend gross to the Flight 93 National Memorial Fund. That hasn't stopped criticism that the studio is exploiting a national tragedy. O’Hare thinks that’s unfair. “This story has to be told to honor the passengers and crew for what they did,” she says. “But more than that, it raises awareness. Our ports aren’t secure. Our borders aren’t secure. Our airlines still aren’t secure, and this is what happens when you’re not secure. That’s the message I want people to hear.” 47. The trailer for “United 93” succeeded in ________ when it played in the theaters in Hollywood and New York City. 48. The movie “United 93” is sure to give rise to _______________. 49. What did writer-director Paul Greengrass obtain before he proceeded with the movie? 50. Universal, which is releasing “United 93”, has been criticized for _________. 51. Carole O’Hare thinks that besides honoring the passengers and crew for what they did, the purpose of telling the story is to _________ about security. Section B Passage One Questions 52 to 56 are based on the following passage. Imagine waking up and finding the value of your assets has been halved. No, you’re not an investor in one of those hedge funds that failed completely. With the dollar slumping to a 26-year low against the pound, already-expensive London has become quite unaffordable. A coffee at Starbucks, just as unavoidable in England as it is in the United States, runs about $8. The once all-powerful dollar isn’t doing a Titanic against just the pound. It is sitting at a record low against the euro and at a 30-year low against the Canadian dollar. Even the Argentine peso and Brazilian real are thriving against the dollar. The weak dollar is a source of humiliation, (屈辱),for a nation’s self-esteem rests in part on the strength of its currency. It’s also a potential economic problem, since a declining dollar makes imported food more expensive and exerts upward pressure on interest rates. And yet there are substantial sectors of the vast U.S. economy-from giant companies like Coca-Cola to mom-and-pop restaurant operators in Miami-for which the weak dollar is most excellent news. Many Europeans may view the U.S. as an arrogant superpower that has become hostile to foreigners. But nothing makes people think more warmly of the U.S. than a weak dollar. Through April, the total number of visitors from abroad was up 6.8 percent from last year. Should the trend continue, the number of tourists this year will finally top the 2000 peak? Many Europeans now apparently view the U.S. the way many Americans view Mexico-as a cheap place to vacation, shop and party, all while ignoring the fact that the poorer locals can’t afford to join the merrymaking. The money tourists spend helps decrease our chronic trade deficit. So do exports, which thanks in part to the weak dollar, soared 11 percent between May 2006 and May 2007. For first five months of 2007, the trade deficit actually fell 7 percent from 2006. If you own shares in large American corporations, you’re a winner in the weak-dollar gamble. Last week Coca-Cola’s stick bubbled to a five-year high after it reported a fantastic quarter. Foreign sales accounted for 65 percent of Coke’s beverage (饮料)business. Other American companies profiting from this trend include McDonald’s and IBM. American tourists, however, shouldn’t expect any relief soon. The dollar lost strength the way many marriages break up-slowly, and then all at once. And currencies don’t turn on a dime. So if you want to avoid the pain inflicted by the increasingly pathetic dollar, cancel that summer vacation to England and look to New England. There, the dollar is still treated with a little respect. 52. Why do Americans feel humiliated? A) Their economy is plunging B) Their currency has slumped C) They can’t afford trips to Europe D) They have lost half of their assets. 53.How does the current dollar affect the life of ordinary Americans? A) They have to cancel their vacations in New England. B) They find it unaffordable to dine in mom-and-pop restaurants. C) They have to spend more money when buying imported goods. D) They might lose their jobs due to potential economic problems. 54. How do many Europeans feel about the U.S with the devalued dollar? A) They feel contemptuous of it B) They are sympathetic with it. C) They regard it as a superpower on the decline. D) They think of it as a good tourist destination. 55. what is the author’s advice to Americans? A) They treat the dollar with a little respect B) They try to win in the weak-dollar gamble C) They vacation at home rather than abroad D) They treasure their marriages all the more. 56. What does the author imply by saying “currencies don’t turn on a dime” (Line 2,Para 7)? A) The dollar’s value will not increase in the short term. B) The value of a dollar will not be reduced to a dime C) The dollar’s value will drop, but within a small margin. D) Few Americans will change dollars into other currencies. Passage Two Questions 57 to 61 are based on the following passage. In the college-admissions wars, we parents are the true fights. We’re pushing our kids to get good grades, take SAT preparatory courses and build resumes so they can get into the college of our first choice. I’ve twice been to the wars, and as I survey the battlefield, something different is happening. We see our kids’ college background as a prize demonstrating how well we’ve raised them. But we can’t acknowledge that our obsession(痴迷) is more about us than them. So we’ve contrived various justifications that turn out to be half-truths, prejudices or myths. It actually doesn’t matter much whether Aaron and Nicole go to Stanford. We have a full-blown prestige panic; we worry that there won’t be enough prizes to go around. Fearful parents urge their children to apply to more schools than ever. Underlying the hysteria(歇斯底里) is the belief that scarce elite degrees must be highly valuable. Their graduates must enjoy more success because they get a better education and develop better contacts. All that is plausible—and mostly wrong. We haven’t found any convincing evidence that selectivity or prestige matters. Selective schools don’t systematically employ better instructional approaches than less selective schools. On two measures—professors’ feedback and the number of essay exams selective schools do slightly worse. By some studies, selective schools do enhance their graduates’ lifetime earnings. The gain is reckoned at 2-4% for every 100-poinnt increase in a school’s average SAT scores. But even this advantage is probably a statistical fluke(偶然). A well-known study examined students who got into highly selective schools and then went elsewhere. They earned just as much as graduates from higher-status schools. Kids count more than their colleges. Getting into Yale may signify intelligence, talent and ambition. But it’s not the only indicator and, paradoxically, its significance is declining. The reason: so many similar people go elsewhere. Getting into college is not life’s only competition. In the next competition—the job market and graduate school—the results may change. Old-boy networks are breaking down. princeton economist Alan Krueger studied admissions to one top Ph.D. program. High scores on the GRE helped explain who got in; degrees of prestigious universities didn’t. So, parents, lighten up. The stakes have been vastly exaggerated. Up to a point, we can rationalize our pushiness. America is a competitive society; our kids need to adjust to that. But too much pushiness can be destructive. The very ambition we impose on our children may get some into Harvard but may also set them up for disappointment. One study found that, other things being equal, graduates of highly selective schools experienced more job dissatisfaction. They may have been so conditioned to being on top that anything less disappoints. 57.Why dose the author say that parents are the true fighters in the college-admissions wars? A) They have the final say in which university their children are to attend. B) They know best which universities are most suitable for their children. C) They have to carry out intensive surveys of colleges before children make an application. D) They care more about which college their children go to than the children themselves. 58.Why do parents urge their children to apply to more schools than ever? A) They want to increase their children’s chances of entering a prestigious college. B)They hope their children can enter a university that offers attractive scholarships. C) Their children will have a wider choice of which college to go to. D) Elite universities now enroll fewer student than they used to. 59.What does the author mean by “kids count more than their colleges”Line1, para.4? A) Continuing education is more important to a person’s success. B) A person’s happiness should be valued more than their education. C) Kids’ actual abilities are more important than their college background. D) What kids learn at college cannot keep up with job market requirements. 60.What does Krueger’s study tell us? A) Getting into Ph.D. programs may be more competitive than getting into college. B) Degrees of prestigious universities do not guarantee entry to graduate programs. C) Graduates from prestigious universities do not care much about their GRE scores. D) Connections built in prestigious universities may be sustained long after graduation. 61.One possible result of pushing children into elite universities is that______ A) they earn less than their peers from other institutions B) they turn out to be less competitive in the job market C) they experience more job dissatisfaction after graduation D) they overemphasize their qualifications in job application Part V Cloze Seven years ago, when I was visiting Germany, I met with an official who explained to me that the country had a perfect solution to its economic problems. Watching the U.S. economy 62 during the’ 90s, the Germans had decided that they, too, needed to go the high-technology _63_. But how? In the late’ 90s, the answer schemed obvious: Indians. _64_ all, Indian entrepreneurs accounted for one of every three Silicon Valley start-ups. So the German government decided that it would _65_ Indians to Germany just as America does: by _66_ green cards. Officials created something called the German Green Card and _67_ that they would issue 20,000 in the first year. _68_, the Germans expected that tens of thousands more Indians would soon be begging to come, and perhaps the _69_ would have to be increased. But the program was a failure. A year later _70_ half of the 20,000 cards had been issued. After a few extensions, the program was _71_. I told the German official at the time that I was sure the _72_ would fail. It’s not that I had any particular expertise in immigration policy, _73_ I understood something about green cards, because I had one (the American _74_). The German Green Card was misnamed, I argued, _75_ it never, under any circumstances, translated into German citizenship. The U.S. green card, by contrast, is an almost _76_ path to becoming American (after five years and a clean record). The official _77_ my objection, saying that there was no way Germany was going to offer these people citizenship. “We need young tech workers,” he said. “That’s what this program is all _78_.” So Germany was asking bright young _79_ to leave their country, culture and families, move thousands of miles away, learn a new language and work in a strange land—but without any _80_ of ever being part of their new home. Germany was sending a signal, one that was _81_ received in India and other countries, and also by Germany’s own immigrant community. 62. A) soar B) hover C) amplify D) intensify 63. A) circuit B) strategy C) trait D) route 64. A) Of B) After C) In D) At 65. A) import B) kidnap C) convey D) lure 66. A) offering B) installing C) evacuating D) formulating 67. A) conferred B) inferred C) announced D) verified 68. A) Specially B) Naturally C) Particularly D) Consistently 69. A) quotas B) digits C) measures D) scales 70. A) invariably B) literally C) barely D) solely 71. A) repelled B) deleted C) combated D) abolished 72. A) adventure B) response C) initiative D) impulse 73. A) and B) but C) so D) or 74. A) heritage B) revision C) notion D) version 75. A) because B) unless C) if D) while 76. A) aggressive B) automatic C) vulnerable D) voluntary 77. A) overtook B) fascinated C) submitted D) dismissed 78. A) towards B) round C) about D) over 79. A) dwellers B) citizens C) professionals D) amateurs 80. A) prospect B) suspicion C) outcome D) destination 81. A) partially B) clearly C) brightly D) vividly Part VI Translation 82. We can say a lot of things about those ________________(毕生致力于诗歌的人): they are passionate, impulsive, and unique. 83. Mary couldn’t have received my letter, ___________ (否则她上周就该回信了). 84. Nancy is supposed to ____________________ (做完化学实验) at least two weeks ago. 85. Never once ___________________ (老两口互相争吵) since they were married 40 years ago. 86. ________________________ (一个国家未来的繁荣在很大程度上有赖于) the quality of education of its
A project model for the FreeBSD Project Niklas Saers Copyright © 2002-2005 Niklas Saers [ Split HTML / Single HTML ] Table of Contents Foreword 1 Overview 2 Definitions 2.1. Activity 2.2. Process 2.3. Hat 2.4. Outcome 2.5. FreeBSD 3 Organisational structure 4 Methodology model 4.1. Development model 4.2. Release branches 4.3. Model summary 5 Hats 5.1. General Hats 5.1.1. Contributor 5.1.2. Committer 5.1.3. Core Team 5.1.4. Maintainership 5.2. Official Hats 5.2.1. Documentation project manager 5.2.2. CVSup Mirror Site Coordinator 5.2.3. Internationalisation 5.2.4. Postmaster 5.2.5. Quality Assurance 5.2.6. Release Coordination 5.2.7. Public Relations & Corporate Liaison 5.2.8. Security Officer 5.2.9. Source Repository Manager 5.2.10. Election Manager 5.2.11. Web site Management 5.2.12. Ports Manager 5.2.13. Standards 5.2.14. Core Secretary 5.2.15. GNATS Administrator 5.2.16. Bugmeister 5.2.17. Donations Liaison Officer 5.2.18. Admin 5.3. Process dependent hats 5.3.1. Report originator 5.3.2. Bugbuster 5.3.3. Mentor 5.3.4. Vendor 5.3.5. Reviewers 5.3.6. CVSup Mirror Site Admin 6 Processes 6.1. Adding new and removing old committers 6.2. Adding/Removing an official CVSup Mirror 6.3. Committing code 6.4. Core election 6.5. Development of new features 6.6. Maintenance 6.7. Problem reporting 6.8. Reacting to misbehaviour 6.9. Release engineering 7 Tools 7.1. Concurrent Versions System (CVS) 7.2. CVSup 7.3. GNATS 7.4. Mailman 7.5. Perforce 7.6. Pretty Good Privacy 7.7. Secure Shell 8 Sub-projects 8.1. The Ports Subproject 8.2. The FreeBSD Documentation Project References List of Figures 3-1. The FreeBSD Project's structure 3-2. The FreeBSD Project's structure with committers in categories 4-1. Jørgenssen's model for change integration 4-2. The FreeBSD release tree 4-3. The overall development model 5-1. Overview of official hats 6-1. Process summary: adding a new committer 6-2. Process summary: removing a committer 6-3. Process summary: adding a CVSup mirror 6-4. Process summary: A committer commits code 6-5. Process summary: A contributor commits code 6-6. Process summary: Core elections 6-7. Jørgenssen's model for change integration 6-8. Process summary: problem reporting 6-9. Process summary: release engineering 8-1. Number of ports added between 1996 and 2005 Foreword Up until now, the FreeBSD project has released a number of described techniques to do different parts of work. However, a project model summarising how the project is structured is needed because of the increasing amount of project members. [1] This paper will provide such a project model and is donated to the FreeBSD Documentation project where it can evolve together with the project so that it can at any point in time reflect the way the project works. It is based on [Saers, 2003]. I would like to thank the following people for taking the time to explain things that were unclear to me and for proofreading the document. Andrey A. Chernov <ache@freebsd.org> Bruce A. Mah <bmah@freebsd.org> Dag-Erling Smørgrav <des@freebsd.org> Giorgos Keramidas<keramida@freebsd.org> Ingvil Hovig <ingvil.hovig@skatteetaten.no> Jesper Holck<jeh.inf@cbs.dk> John Baldwin <jhb@freebsd.org> John Polstra <jdp@freebsd.org> Kirk McKusick <mckusick@freebsd.org> Mark Linimon <linimon@freebsd.org> Marleen Devos Niels Jørgenssen<nielsj@ruc.dk> Nik Clayton <nik@freebsd.org> Poul-Henning Kamp <phk@freebsd.org> Simon L. Nielsen <simon@freebsd.org> Chapter 1 Overview A project model is a means to reduce the communications overhead in a project. As shown by [Brooks, 1995], increasing the number of project participants increases the communication in the project exponentionally. FreeBSD has during the past few year increased both its mass of active users and committers, and the communication in the project has risen accordingly. This project model will serve to reduce this overhead by providing an up-to-date description of the project. During the Core elections in 2002, Mark Murray stated “I am opposed to a long rule-book, as that satisfies lawyer-tendencies, and is counter to the technocentricity that the project so badly needs.” [FreeBSD, 2002B]. This project model is not meant to be a tool to justify creating impositions for developers, but as a tool to facilitate coordination. It is meant as a description of the project, with an overview of how the different processes are executed. It is an introduction to how the FreeBSD project works. The FreeBSD project model will be described as of July 1st, 2004. It is based on the Niels Jørgensen's paper [Jørgensen, 2001], FreeBSD's official documents, discussions on FreeBSD mailing lists and interviews with developers. After providing definitions of terms used, this document will outline the organisational structure (including role descriptions and communication lines), discuss the methodology model and after presenting the tools used for process control, it will present the defined processes. Finally it will outline major sub-projects of the FreeBSD project. [FreeBSD, 2002A, Section 1.2 and 1.3] give the vision and the architectural guidelines for the project. The vision is “To produce the best UNIX-like operating system package possible, with due respect to the original software tools ideology as well as usability, performance and stability.” The architectural guidelines help determine whether a problem that someone wants to be solved is within the scope of the project Chapter 2 Definitions 2.1. Activity An “activity” is an element of work performed during the course of a project [PMI, 2000]. It has an output and leads towards an outcome. Such an output can either be an input to another activity or a part of the process' delivery. 2.2. Process A “process” is a series of activities that lead towards a particular outcome. A process can consist of one or more sub-processes. An example of a process is software design. 2.3. Hat A “hat” is synonymous with role. A hat has certain responsibilities in a process and for the process outcome. The hat executes activities. It is well defined what issues the hat should be contacted about by the project members and people outside the project. 2.4. Outcome An “outcome” is the final output of the process. This is synonymous with deliverable, that is defined as “any measurable, tangible, verifiable outcome, result or item that must be produced to complete a project or part of a project. Often used more narrowly in reference to an external deliverable, which is a deliverable that is subject to approval by the project sponsor or customer” by [PMI, 2000]. Examples of outcomes are a piece of software, a decision made or a report written. 2.5. FreeBSD When saying “FreeBSD” we will mean the BSD derivative UNIX-like operating system FreeBSD, whereas when saying “the FreeBSD Project” we will mean the project organisation. Chapter 3 Organisational structure While no-one takes ownership of FreeBSD, the FreeBSD organisation is divided into core, committers and contributors and is part of the FreeBSD community that lives around it. Figure 3-1. The FreeBSD Project's structure Number of committers has been determined by going through CVS logs from January 1st, 2004 to December 31st, 2004 and contributors by going through the list of contributions and problem reports. The main resource in the FreeBSD community is its developers: the committers and contributors. It is with their contributions that the project can move forward. Regular developers are referred to as contributors. As by January 1st, 2003, there are an estimated 5500 contributors on the project. Committers are developers with the privilege of being able to commit changes. These are usually the most active developers who are willing to spend their time not only integrating their own code but integrating code submitted by the developers who do not have this privilege. They are also the developers who elect the core team, and they have access to closed discussions. The project can be grouped into four distinct separate parts, and most developers will focus their involvement in one part of FreeBSD. The four parts are kernel development, userland development, ports and documentation. When referring to the base system, both kernel and userland is meant. This split changes our triangle to look like this: Figure 3-2. The FreeBSD Project's structure with committers in categories Number of committers per area has been determined by going through CVS logs from January 1st, 2004 to December 31st, 2004. Note that many committers work in multiple areas, making the total number higher than the real number of committers. The total number of committers at that time was 269. Committers fall into three groups: committers who are only concerned with one area of the project (for instance file systems), committers who are involved only with one sub-project and committers who commit to different parts of the code, including sub-projects. Because some committers work on different parts, the total number in the committers section of the triangle is higher than in the above triangle. The kernel is the main building block of FreeBSD. While the userland applications are protected against faults in other userland applications, the entire system is vulnerable to errors in the kernel. This, combined with the vast amount of dependencies in the kernel and that it is not easy to see all the consequences of a kernel change, demands developers with a relative full understanding of the kernel. Multiple development efforts in the kernel also requires a closer coordination than userland applications do. The core utilities, known as userland, provide the interface that identifies FreeBSD, both user interface, shared libraries and external interfaces to connecting clients. Currently, 162 people are involved in userland development and maintenance, many being maintainers for their own part of the code. Maintainership will be discussed in the Maintainership section. Documentation is handled by The FreeBSD Documentation Project and includes all documents surrounding the FreeBSD project, including the web pages. There were during 2004 101 people making commits to the FreeBSD Documentation Project. Ports is the collection of meta-data that is needed to make software packages build correctly on FreeBSD. An example of a port is the port for the web-browser Mozilla. It contains information about where to fetch the source, what patches to apply and how, and how the package should be installed on the system. This allows automated tools to fetch, build and install the package. As of this writing, there are more than 12600 ports available. [2] , ranging from web servers to games, programming languages and most of the application types that are in use on modern computers. Ports will be discussed further in the section The Ports Subproject. Chapter 4 Methodology model 4.1. Development model There is no defined model for how people write code in FreeBSD. However, Niels Jørgenssen has suggested a model of how written code is integrated into the project. Figure 4-1. Jørgenssen's model for change integration The “development release” is the FreeBSD-CURRENT ("-CURRENT") branch and the “production release” is the FreeBSD-STABLE branch ("-STABLE") [Jørgensen, 2001]. This is a model for one change, and shows that after coding, developers seek community review and try integrating it with their own systems. After integrating the change into the development release, called FreeBSD-CURRENT, it is tested by many users and developers in the FreeBSD community. After it has gone through enough testing, it is merged into the production release, called FreeBSD-STABLE. Unless each stage is finished successfully, the developer needs to go back and make modifications in the code and restart the process. To integrate a change with either -CURRENT or -STABLE is called making a commit. Jørgensen found that most FreeBSD developers work individually, meaning that this model is used in parallel by many developers on the different ongoing development efforts. A developer can also be working on multiple changes, so that while he is waiting for review or people to test one or more of his changes, he may be writing another change. As each commit represents an increment, this is a massively incremental model. The commits are in fact so frequent that during one year [3] , 85427 commits were made, making a daily average of 233 commits. Within the “code” bracket in Jørgensen's figure, each programmer has his own working style and follows his own development models. The bracket could very well have been called “development” as it includes requirements gathering and analysis, system and detailed design, implementation and verification. However, the only output from these stages is the source code or system documentation. From a stepwise model's perspective (such as the waterfall model), the other brackets can be seen as further verification and system integration. This system integration is also important to see if a change is accepted by the community. Up until the code is committed, the developer is free to choose how much to communicate about it to the rest of the project. In order for -CURRENT to work as a buffer (so that bright ideas that had some undiscovered drawbacks can be backed out) the minimum time a commit should be in -CURRENT before merging it to -STABLE is 3 days. Such a merge is referred to as an MFC (Merge From Current). It is important to notice the word “change”. Most commits do not contain radical new features, but are maintenance updates. The only exceptions from this model are security fixes and changes to features that are deprecated in the -CURRENT branch. In these cases, changes can be committed directly to the -STABLE branch. In addition to many people working on the project, there are many related projects to the FreeBSD Project. These are either projects developing brand new features, sub-projects or projects whose outcome is incorporated into FreeBSD [4]. These projects fit into the FreeBSD Project just like regular development efforts: they produce code that is integrated with the FreeBSD Project. However, some of them (like Ports and Documentation) have the privilege of being applicable to both branches or commit directly to both -CURRENT and -STABLE. There is no standards to how design should be done, nor is design collected in a centralised repository. The main design is that of 4.4BSD. [5] As design is a part of the “Code” bracket in Jørgenssen's model, it is up to every developer or sub-project how this should be done. Even if the design should be stored in a central repository, the output from the design stages would be of limited use as the differences of methodologies would make them poorly if at all interoperable. For the overall design of the project, the project relies on the sub-projects to negotiate fit interfaces between each other rather than to dictate interfacing. 4.2. Release branches The releases of FreeBSD is best illustrated by a tree with many branches where each major branch represents a major version. Minor versions are represented by branches of the major branches. In the following release tree, arrows that follow one-another in a particular direction represent a branch. Boxes with full lines and diamonds represent official releases. Boxes with dotted lines represent the development branch at that time. Security branches are represented by ovals. Diamonds differ from boxes in that they represent a fork, meaning a place where a branch splits into two branches where one of the branches becomes a sub-branch. For example, at 4.0-RELEASE the 4.0-CURRENT branch split into 4-STABLE and 5.0-CURRENT. At 4.5-RELEASE, the branch forked off a security branch called RELENG_4_5. Figure 4-2. The FreeBSD release tree The latest -CURRENT version is always referred to as -CURRENT, while the latest -STABLE release is always referred to as -STABLE. In this figure, -STABLE refers to 4-STABLE while -CURRENT refers to 5.0-CURRENT following 5.0-RELEASE. [FreeBSD, 2002E] A “major release” is always made from the -CURRENT branch. However, the -CURRENT branch does not need to fork at that point in time, but can focus on stabilising. An example of this is that following 3.0-RELEASE, 3.1-RELEASE was also a continuation of the -CURRENT-branch, and -CURRENT did not become a true development branch until this version was released and the 3-STABLE branch was forked. When -CURRENT returns to becoming a development branch, it can only be followed by a major release. 5-STABLE is predicted to be forked off 5.0-CURRENT at around 5.3-RELEASE. It is not until 5-STABLE is forked that the development branch will be branded 6.0-CURRENT. A “minor release” is made from the -CURRENT branch following a major release, or from the -STABLE branch. Following and including, 4.3-RELEASE[6], when a minor release has been made, it becomes a “security branch”. This is meant for organisations that do not want to follow the -STABLE branch and the potential new/changed features it offers, but instead require an absolutely stable environment, only updating to implement security updates. [7] Each update to a security branch is called a “patchlevel”. For every security enhancement that is done, the patchlevel number is increased, making it easy for people tracking the branch to see what security enhancements they have implemented. In cases where there have been especially serious security flaws, an entire new release can be made from a security branch. An example of this is 4.6.2-RELEASE. 4.3. Model summary To summarise, the development model of FreeBSD can be seen as the following tree: Figure 4-3. The overall development model The tree of the FreeBSD development with ongoing development efforts and continuous integration. The tree symbolises the release versions with major versions spawning new main branches and minor versions being versions of the main branch. The top branch is the -CURRENT branch where all new development is integrated, and the -STABLE branch is the branch directly below it. Clouds of development efforts hang over the project where developers use the development models they see fit. The product of their work is then integrated into -CURRENT where it undergoes parallel debugging and is finally merged from -CURRENT into -STABLE. Security fixes are merged from -STABLE to the security branches. Chapter 5 Hats Many committers have a special area of responsibility. These roles are called hats [Losh, 2002]. These hats can be either project roles, such as public relations officer, or maintainer for a certain area of the code. Because this is a project where people give voluntarily of their spare time, people with assigned hats are not always available. They must therefore appoint a deputy that can perform the hat's role in his or her absence. The other option is to have the role held by a group. Many of these hats are not formalised. Formalised hats have a charter stating the exact purpose of the hat along with its privileges and responsibilities. The writing of such charters is a new part of the project, and has thus yet to be completed for all hats. These hat descriptions are not such a formalisation, rather a summary of the role with links to the charter where available and contact addresses, 5.1. General Hats 5.1.1. Contributor A Contributor contributes to the FreeBSD project either as a developer, as an author, by sending problem reports, or in other ways contributing to the progress of the project. A contributor has no special privileges in the FreeBSD project. [FreeBSD, 2002F] 5.1.2. Committer A person who has the required privileges to add his code or documentation to the repository. A committer has made a commit within the past 12 months. [FreeBSD, 2000A] An active committer is a committer who has made an average of one commit per month during that time. It is worth noting that there are no technical barriers to prevent someone, once having gained commit privileges to the main- or a sub-project, to make commits in parts of that project's source the committer did not specifically get permission to modify. However, when wanting to make modifications to parts a committer has not been involved in before, he/she should read the logs to see what has happened in this area before, and also read the MAINTAINER file to see if the maintainer of this part has any special requests on how changes in the code should be made 5.1.3. Core Team The core team is elected by the committers from the pool of committers and serves as the board of directors of the FreeBSD project. It promotes active contributors to committers, assigns people to well-defined hats, and is the final arbiter of decisions involving which way the project should be heading. As by July 1st, 2004, core consisted of 9 members. Elections are held every two years. 5.1.4. Maintainership Maintainership means that that person is responsible for what is allowed to go into that area of the code and has the final say should disagreements over the code occur. This involves involves proactive work aimed at stimulating contributions and reactive work in reviewing commits. With the FreeBSD source comes the MAINTAINERS file that contains a one-line summary of how each maintainer would like contributions to be made. Having this notice and contact information enables developers to focus on the development effort rather than being stuck in a slow correspondence should the maintainer be unavailable for some time. If the maintainer is unavailable for an unreasonably long period of time, and other people do a significant amount of work, maintainership may be switched without the maintainer's approval. This is based on the stance that maintainership should be demonstrated, not declared. Maintainership of a particular piece of code is a hat that is not held as a group. 5.2. Official Hats The official hats in the FreeBSD Project are hats that are more or less formalised and mainly administrative roles. They have the authority and responsibility for their area. The following illustration shows the responsibility lines. After this follows a description of each hat, including who it is held by. Figure 5-1. Overview of official hats All boxes consist of groups of committers, except for the dotted boxes where the holders are not necessarily committers. The flattened circles are sub-projects and consist of both committers and non-committers of the main project. 5.2.1. Documentation project manager The FreeBSD Documentation Project architect is responsible for defining and following up documentation goals for the committers in the Documentation project. Hat held by: The DocEng team <doceng@FreeBSD.org>. The DocEng Charter. 5.2.2. CVSup Mirror Site Coordinator The CVSup Mirror Site Coordinator coordinates all the CVSup Mirror Site Admins to ensure that they are distributing current versions of the software, that they have the capacity to update themselves when major updates are in progress, and making it easy for the general public to find their closest CVSup mirror. Hat currently held by: John Polstra <jdp@FreeBSD.org>. 5.2.3. Internationalisation The Internationalisation hat is responsible for coordinating the localisation efforts of the FreeBSD kernel and userland utilities. The translation effort are coordinated by The FreeBSD Documentation Project. The Internationalisation hat should suggest and promote standards and guidelines for writing and maintaining the software in a fashion that makes it easier to translate. Hat currently available. 5.2.4. Postmaster The Postmaster is responsible for mail being correctly delivered to the committers' email address. He is also responsible for ensuring that the mailing lists work and should take measures against possible disruptions of mail such as having troll-, spam- and virus-filters. Hat currently held by: David Wolfskill <dhw@FreeBSD.org>. 5.2.5. Quality Assurance The responsibilities of this role are to manage the quality assurance measures. Hat currently held by: Robert Watson <rwatson@FreeBSD.org>. 5.2.6. Release Coordination The responsibilities of the Release Engineering Team are Setting, publishing and following a release schedule for official releases Documenting and formalising release engineering procedures Creation and maintenance of code branches Coordinating with the Ports and Documentation teams to have an updated set of packages and documentation released with the new releases Coordinating with the Security team so that pending releases are not affected by recently disclosed vulnerabilities. Further information about the development process is available in the release engineering section. Hat held by: the Release Engineering team <re@FreeBSD.org>, currently headed by Murray Stokely <murray@FreeBSD.org>. The Release Engineering Charter. 5.2.7. Public Relations & Corporate Liaison The Public Relations & Corporate Liaison's responsibilities are: Making press statements when happenings that are important to the FreeBSD Project happen. Being the official contact person for corporations that are working close with the FreeBSD Project. Take steps to promote FreeBSD within both the Open Source community and the corporate world. Handle the “freebsd-advocacy” mailing list. This hat is currently not occupied. 5.2.8. Security Officer The Security Officer's main responsibility is to coordinate information exchange with others in the security community and in the FreeBSD project. The Security Officer is also responsible for taking action when security problems are reported and promoting proactive development behaviour when it comes to security. Because of the fear that information about vulnerabilities may leak out to people with malicious intent before a patch is available, only the Security Officer, consisting of an officer, a deputy and two Core team members, receive sensitive information about security issues. However, to create or implement a patch, the Security Officer has the Security Officer Team <security-team@FreeBSD.org> to help do the work. Hat held by: the Security Officer <security-officer@FreeBSD.org>, currently headed by Colin Percival <cperciva@FreeBSD.org>. The Security Officer and The Security Officer Team's charter. 5.2.9. Source Repository Manager The Source Repository Manager is the only one who is allowed to directly modify the repository without using the CVS tool. It is his/her responsibility to ensure that technical problems that arise in the repository are resolved quickly. The source repository manager has the authority to back out commits if this is necessary to resolve a CVS technical problem. Hat held by: the Source Repository Manager <cvs@FreeBSD.org>, currently headed by Peter Wemm <peter@FreeBSD.org>. 5.2.10. Election Manager The Election Manager is responsible for the Core election process. The manager is responsible for running and maintaining the election system, and is the final authority should minor unforseen events happen in the election process. Major unforseen events have to be discussed with the Core team Hat held only during elections. 5.2.11. Web site Management The Web site Management hat is responsible for coordinating the rollout of updated web pages on mirrors around the world, for the overall structure of the primary web site and the system it is running upon. The management needs to coordinate the content with The FreeBSD Documentation Project and acts as maintainer for the “www” tree. Hat held by: the FreeBSD Webmasters <www@FreeBSD.org>. 5.2.12. Ports Manager The Ports Manager acts as a liaison between The Ports Subproject and the core project, and all requests from the project should go to the ports manager. Hat held by: the Ports Management Team <portmgr@FreeBSD.org>, 5.2.13. Standards The Standards hat is responsible for ensuring that FreeBSD complies with the standards it is committed to , keeping up to date on the development of these standards and notifying FreeBSD developers of important changes that allows them to take a proactive role and decrease the time between a standards update and FreeBSD's compliancy. Hat currently held by: Garrett Wollman <wollman@FreeBSD.org>. 5.2.14. Core Secretary The Core Secretary's main responsibility is to write drafts to and publish the final Core Reports. The secretary also keeps the core agenda, thus ensuring that no balls are dropped unresolved. Hat currently held by: Joel Dahl <joel@FreeBSD.org>. 5.2.15. GNATS Administrator The GNATS Administrator is responsible for ensuring that the maintenance database is in working order, that the entries are correctly categorised and that there are no invalid entries. Hat currently held by: Ceri Davies <ceri@FreeBSD.org> and Mark Linimon <linimon@FreeBSD.org>. 5.2.16. Bugmeister The Bugmeister is the person in charge of the problem report group. Hat currently held by: Ceri Davies <ceri@FreeBSD.org> and Mark Linimon <linimon@FreeBSD.org>. 5.2.17. Donations Liaison Officer The task of the donations liason officer is to match the developers with needs with people or organisations willing to make a donation. The Donations Liason Charter is available here Hat held by: the Donations Liaison Office <donations@FreeBSD.org>, currently headed by Michael W. Lucas <mwlucas@FreeBSD.org>. 5.2.18. Admin (Also called “FreeBSD Cluster Admin”) The admin team consists of the people responsible for administrating the computers that the project relies on for its distributed work and communication to be synchronised. It consists mainly of those people who have physical access to the servers. Hat held by: the Admin team <admin@FreeBSD.org>, currently headed by Mark Murray <markm@FreeBSD.org> 5.3. Process dependent hats 5.3.1. Report originator The person originally responsible for filing a Problem Report. 5.3.2. Bugbuster A person who will either find the right person to solve the problem, or close the PR if it is a duplicate or otherwise not an interesting one. 5.3.3. Mentor A mentor is a committer who takes it upon him/her to introduce a new committer to the project, both in terms of ensuring the new committers setup is valid, that the new committer knows the available tools required in his/her work and that the new committer knows what is expected of him/her in terms of behaviour. 5.3.4. Vendor The person(s) or organisation whom external code comes from and whom patches are sent to. 5.3.5. Reviewers People on the mailing list where the request for review is posted. 5.3.6. CVSup Mirror Site Admin A CVSup Mirror Site Admin has accesses to a server that he/she uses to mirror the CVS repository. The admin works with the CVSup Mirror Site Coordinator to ensure the site remains up-to-date and is following the general policy of official mirror sites. Chapter 6 Processes The following section will describe the defined project processes. Issues that are not handled by these processes happen on an ad-hoc basis based on what has been customary to do in similar cases. 6.1. Adding new and removing old committers The Core team has the responsibility of giving and removing commit privileges to contributors. This can only be done through a vote on the core mailing list. The ports and documentation sub-projects can give commit privileges to people working on these projects, but have to date not removed such privileges. Normally a contributor is recommended to core by a committer. For contributors or outsiders to contact core asking to be a committer is not well thought of and is usually rejected. If the area of particular interest for the developer potentially overlaps with other committers' area of maintainership, the opinion of those maintainers is sought. However, it is frequently this committer that recommends the developer. When a contributor is given committer status, he is assigned a mentor. The committer who recommended the new committer will, in the general case, take it upon himself to be the new committers mentor. When a contributor is given his commit bit, a PGP-signed email is sent from either Core Secretary, Ports Manager or nik@freebsd.org to both admins@freebsd.org, the assigned mentor, the new committer and core confirming the approval of a new account. The mentor then gathers a password line, SSH 2 public key and PGP key from the new committer and sends them to Admin. When the new account is created, the mentor activates the commit bit and guides the new committer through the rest of the initial process. Figure 6-1. Process summary: adding a new committer When a contributor sends a piece of code, the receiving committer may choose to recommend that the contributor is given commit privileges. If he recommends this to core, they will vote on this recommendation. If they vote in favour, a mentor is assigned the new committer and the new committer has to email his details to the administrators for an account to be created. After this, the new committer is all set to make his first commit. By tradition, this is by adding his name to the committers list. Recall that a committer is considered to be someone who has committed code during the past 12 months. However, it is not until after 18 months of inactivity have passed that commit privileges are eligible to be revoked. [FreeBSD, 2002H] There are, however, no automatic procedures for doing this. For reactions concerning commit privileges not triggered by time, see section 1.5.8. Figure 6-2. Process summary: removing a committer When Core decides to clean up the committers list, they check who has not made a commit for the past 18 months. Committers who have not done so have their commit bits revoked. It is also possible for committers to request that their commit bit be retired if for some reason they are no longer going to be actively committing to the project. In this case, it can also be restored at a later time by core, should the committer ask. Roles in this process: Core team Contributor Committer Maintainership Mentor [FreeBSD, 2000A] [FreeBSD, 2002H] [FreeBSD, 2002I] 6.2. Adding/Removing an official CVSup Mirror A CVSup mirror is a replica of the official CVSup master that contains all the up-to-date source code for all the branches in the FreeBSD project, ports and documentation. Adding an official CVSup mirror starts with the potential CVSup Mirror Site Admin installing the “cvsup-mirror” package. Having done this and updated the source code with a mirror site, he now runs a fairly recent unofficial CVSup mirror. Deciding he has a stable environment, the processing power, the network capacity and the storage capacity to run an official mirror, he mails the CVSup Mirror Site Coordinator who decides whether the mirror should become an official mirror or not. In making this decision, the CVSup Mirror Site Coordinator has to determine whether that geographical area needs another mirror site, if the mirror administrator has the skills to run it reliably, if the network bandwidth is adequate and if the master server has the capacity to server another mirror. If CVSup Mirror Site Coordinator decides that the mirror should become an official mirror, he obtains an authentication key from the mirror admin that he installs so the mirror admin can update the mirror from the master server. Figure 6-3. Process summary: adding a CVSup mirror When a CVSup mirror administrator of an unofficial mirror offers to become an official mirror site, the CVSup coordinator decides if another mirror is needed and if there is sufficient capacity to accommodate it. If so, an authorisation key is requested and the mirror is given access to the main distribution site and added to the list of official mirrors. Tools used in this process: CVSup SSH 2 Hats involved in this process: CVSup Mirror Site Coordinator CVSup Mirror Site Admin 6.3. Committing code The committing of new or modified code is one of the most frequent processes in the FreeBSD project and will usually happen many times a day. Committing of code can only be done by a “committer”. Committers commit either code written by themselves, code submitted to them or code submitted through a problem report. When code is written by the developer that is non-trivial, he should seek a code review from the community. This is done by sending mail to the relevant list asking for review. Before submitting the code for review, he should ensure it compiles correctly with the entire tree and that all relevant tests run. This is called “pre-commit test”. When contributed code is received, it should be reviewed by the committer and tested the same way. When a change is committed to a part of the source that has been contributed from an outside Vendor, the maintainer should ensure that the patch is contributed back to the vendor. This is in line with the open source philosophy and makes it easier to stay in sync with outside projects as the patches do not have to be reapplied every time a new release is made. After the code has been available for review and no further changes are necessary, the code is committed into the development branch, -CURRENT. If the change applies for the -STABLE branch or the other branches as well, a “Merge From Current” ("MFC") countdown is set by the committer. After the number of days the committer chose when setting the MFC have passed, an email will automatically be sent to the committer reminding him to commit it to the -STABLE branch (and possibly security branches as well). Only security critical changes should be merged to security branches. Delaying the commit to -STABLE and other branches allows for “parallel debugging” where the committed code is tested on a wide range of configurations. This makes changes to -STABLE to contain fewer faults and thus giving the branch its name. Figure 6-4. Process summary: A committer commits code When a committer has written a piece of code and wants to commit it, he first needs to determine if it is trivial enough to go in without prior review or if it should first be reviewed by the developer community. If the code is trivial or has been reviewed and the committer is not the maintainer, he should consult the maintainer before proceeding. If the code is contributed by an outside vendor, the maintainer should create a patch that is sent back to the vendor. The code is then committed and the deployed by the users. Should they find problems with the code, this will be reported and the committer can go back to writing a patch. If a vendor is affected, he can choose to implement or ignore the patch. Figure 6-5. Process summary: A contributor commits code The difference when a contributor makes a code contribution is that he submits the code through the send-pr program. This report is picked up by the maintainer who reviews the code and commits it. Hats included in this process are: Committer Contributor Vendor Reviewer [FreeBSD, 2001] [Jørgensen, 2001] 6.4. Core election Core elections are held at least every two years. [8] Nine core members are elected. New elections are held if the number of core members drops below seven. New elections can also be held should at least 1/3 of the active committers demand this. When an election is to take place, core announces this at least 6 weeks in advance, and appoints an election manager to run the elections. Only committers can be elected into core. The candidates need to submit their candidacy at least one week before the election starts, but can refine their statements until the voting starts. They are presented in the candidates list. When writing their election statements, the candidates must answer a few standard questions submitted by the election manager. During elections, the rule that a committer must have committed during the 12 past months is followed strictly. Only these committers are eligible to vote. When voting, the committer may vote once in support of up to nine nominees. The voting is done over a period of four weeks with reminders being posted on “developers” mailing list that is available to all committers. The election results are released one week after the election ends, and the new core team takes office one week after the results have been posted. Should there be a voting tie, this will be resolved by the new, unambiguously elected core members. Votes and candidate statements are archived, but the archives are not publicly available. Figure 6-6. Process summary: Core elections Core announces the election and selects an election manager. He prepares the elections, and when ready, candidates can announce their candidacies through submitting their statements. The committers then vote. After the vote is over, the election results are announced and the new core team takes office. Hats in core elections are: Core team Committer Election Manager [FreeBSD, 2000A] [FreeBSD, 2002B] [FreeBSD, 2002G] 6.5. Development of new features Within the project there are sub-projects that are working on new features. These projects are generally done by one person [Jørgensen, 2001]. Every project is free to organise development as it sees fit. However, when the project is merged to the -CURRENT branch it must follow the project guidelines. When the code has been well tested in the -CURRENT branch and deemed stable enough and relevant to the -STABLE branch, it is merged to the -STABLE branch. The requirements of the project are given by developer wishes, requests from the community in terms of direct requests by mail, Problem Reports, commercial funding for the development of features, or contributions by the scientific community. The wishes that come within the responsibility of a developer are given to that developer who prioritises his time between the request and his wishes. A common way to do this is maintain a TODO-list maintained by the project. Items that do not come within someone's responsibility are collected on TODO-lists unless someone volunteers to take the responsibility. All requests, their distribution and follow-up are handled by the GNATS tool. Requirements analysis happens in two ways. The requests that come in are discussed on mailing lists, both within the main project and in the sub-project that the request belongs to or is spawned by the request. Furthermore, individual developers on the sub-project will evaluate the feasibility of the requests and determine the prioritisation between them. Other than archives of the discussions that have taken place, no outcome is created by this phase that is merged into the main project. As the requests are prioritised by the individual developers on the basis of doing what they find interesting, necessary or are funded to do, there is no overall strategy or priorisation of what requests to regard as requirements and following up their correct implementation. However, most developers have some shared vision of what issues are more important, and they can ask for guidelines from the release engineering team. The verification phase of the project is two-fold. Before committing code to the current-branch, developers request their code to be reviewed by their peers. This review is for the most part done by functional testing, but also code review is important. When the code is committed to the branch, a broader functional testing will happen, that may trigger further code review and debugging should the code not behave as expected. This second verification form may be regarded as structural verification. Although the sub-projects themselves may write formal tests such as unit tests, these are usually not collected by the main project and are usually removed before the code is committed to the current branch. [9] 6.6. Maintenance It is an advantage to the project to for each area of the source have at least one person that knows this area well. Some parts of the code have designated maintainers. Others have de-facto maintainers, and some parts of the system do not have maintainers. The maintainer is usually a person from the sub-project that wrote and integrated the code, or someone who has ported it from the platform it was written for. [10] The maintainer's job is to make sure the code is in sync with the project the code comes from if it is contributed code, and apply patches submitted by the community or write fixes to issues that are discovered. The main bulk of work that is put into the FreeBSD project is maintenance. [Jørgensen, 2001] has made a figure showing the life cycle of changes. Figure 6-7. Jørgenssen's model for change integration Here “development release” refers to the -CURRENT branch while “production release” refers to the -STABLE branch. The “pre-commit test” is the functional testing by peer developers when asked to do so or trying out the code to determine the status of the sub-project. “Parallel debugging” is the functional testing that can trigger more review, and debugging when the code is included in the -CURRENT branch. As of this writing, there were 269 committers in the project. When they commit a change to a branch, that constitutes a new release. It is very common for users in the community to track a particular branch. The immediate existence of a new release makes the changes widely available right away and allows for rapid feedback from the community. This also gives the community the response time they expect on issues that are of importance to them. This makes the community more engaged, and thus allows for more and better feedback that again spurs more maintenance and ultimately should create a better product. Before making changes to code in parts of the tree that has a history unknown to the committer, the committer is required to read the commit logs to see why certain features are implemented the way they are in order not to make mistakes that have previously either been thought through or resolved. 6.7. Problem reporting FreeBSD comes with a problem reporting tool called “send-pr” that is a part of the GNATS package. All users and developers are encouraged to use this tool for reporting problems in software they do not maintain. Problems include bug reports, feature requests, features that should be enhanced and notices of new versions of external software that is included in the project. Problem reports are sent to an email address where it is inserted into the GNATS maintenance database. A Bugbuster classifies the problem and sends it to the correct group or maintainer within the project. After someone has taken responsibility for the report, the report is being analysed. This analysis includes verifying the problem and thinking out a solution for the problem. Often feedback is required from the report originator or even from the FreeBSD community. Once a patch for the problem is made, the originator may be asked to try it out. Finally, the working patch is integrated into the project, and documented if applicable. It there goes through the regular maintenance cycle as described in section maintenance. These are the states a problem report can be in: open, analyzed, feedback, patched, suspended and closed. The suspended state is for when further progress is not possible due to the lack of information or for when the task would require so much work that nobody is working on it at the moment. Figure 6-8. Process summary: problem reporting A problem is reported by the report originator. It is then classified by a bugbuster and handed to the correct maintainer. He verifies the problem and discusses the problem with the originator until he has enough information to create a working patch. This patch is then committed and the problem report is closed. The roles included in this process are: Report originator Maintainership Bugbuster [FreeBSD, 2002C]. [FreeBSD, 2002D] 6.8. Reacting to misbehaviour [FreeBSD, 2001] has a number of rules that committers should follow. However, it happens that these rules are broken. The following rules exist in order to be able to react to misbehaviour. They specify what actions will result in how long a suspension the committer's commit privileges. Committing during code freezes without the approval of the Release Engineering team - 2 days Committing to a security branch without approval - 2 days Commit wars - 5 days to all participating parties Impolite or inappropriate behaviour - 5 days [Lehey, 2002] For the suspensions to be efficient, any single core member can implement a suspension before discussing it on the “core” mailing list. Repeat offenders can, with a 2/3 vote by core, receive harsher penalties, including permanent removal of commit privileges. (However, the latter is always viewed as a last resort, due to its inherent tendency to create controversy). All suspensions are posted to the “developers” mailing list, a list available to committers only. It is important that you cannot be suspended for making technical errors. All penalties come from breaking social etiquette. Hats involved in this process: Core team Committer 6.9. Release engineering The FreeBSD project has a Release Engineering team with a principal release engineer that is responsible for creating releases of FreeBSD that can be brought out to the user community via the net or sold in retail outlets. Since FreeBSD is available on multiple platforms and releases for the different architectures are made available at the same time, the team has one person in charge of each architecture. Also, there are roles in the team responsible for coordinating quality assurance efforts, building a package set and for having an updated set of documents. When referring to the release engineer, a representative for the release engineering team is meant. When a release is coming, the FreeBSD project changes shape somewhat. A release schedule is made containing feature- and code-freezes, release of interim releases and the final release. A feature-freeze means no new features are allowed to be committed to the branch without the release engineers' explicit consent. Code-freeze means no changes to the code (like bugs-fixes) are allowed to be committed without the release engineers explicit consent. This feature- and code-freeze is known as stabilising. During the release process, the release engineer has the full authority to revert to older versions of code and thus "back out" changes should he find that the changes are not suitable to be included in the release. There are three different kinds of releases: .0 releases are the first release of a major version. These are branched of the -CURRENT branch and have a significantly longer release engineering cycle due to the unstable nature of the -CURRENT branch .X releases are releases of the -STABLE branch. They are scheduled to come out every 4 months. .X.Y releases are security releases that follow the .X branch. These come out only when sufficient security fixes have been merged since the last release on that branch. New features are rarely included, and the security team is far more involved in these than in regular releases. For releases of the -STABLE-branch, the release process starts 45 days before the anticipated release date. During the first phase, the first 15 days, the developers merge what changes they have had in -CURRENT that they want to have in the release to the release branch. When this period is over, the code enters a 15 day code freeze in which only bug fixes, documentation updates, security-related fixes and minor device driver changes are allowed. These changes must be approved by the release engineer in advance. At the beginning of the last 15 day period a release candidate is created for widespread testing. Updates are less likely to be allowed during this period, except for important bug fixes and security updates. In this final period, all releases are considered release candidates. At the end of the release process, a release is created with the new version number, including binary distributions on web sites and the creation of a CD-ROM images. However, the release is not considered "really released" until a PGP-signed message stating exactly that, is sent to the mailing list freebsd-announce; anything labelled as a "release" before that may well be in-process and subject to change before the PGP-signed message is sent. [11]. The releases of the -CURRENT-branch (that is, all releases that end with “.0”) are very similar, but with twice as long timeframe. It starts 8 weeks prior to the release with announcement of the release time line. Two weeks into the release process, the feature freeze is initiated and performance tweaks should be kept to a minimum. Four weeks prior to the release, an official beta version is made available. Two weeks prior to release, the code is officially branched into a new version. This version is given release candidate status, and as with the release engineering of -STABLE, the code freeze of the release candidate is hardened. However, development on the main development branch can continue. Other than these differences, the release engineering processes are alike. .0 releases go into their own branch and are aimed mainly at early adopters. The branch then goes through a period of stabilisation, and it is not until the Release Engineering Team> decides the demands to stability have been satisfied that the branch becomes -STABLE and -CURRENT targets the next major version. While this for the majority has been with .1 versions, this is not a demand. Most releases are made when a given date that has been deemed a long enough time since the previous release comes. A target is set for having major releases every 18 months and minor releases every 4 months. The user community has made it very clear that security and stability cannot be sacrificed by self-imposed deadlines and target release dates. For slips of time not to become too long with regards to security and stability issues, extra discipline is required when committing changes to -STABLE. Figure 6-9. Process summary: release engineering These are the stages in the release engineering process. Multiple release candidates may be created until the release is deemed stable enough to be released. [FreeBSD, 2002E] Chapter 7 Tools The major support tools for supporting the development process are CVS, CVSup, Perforce, GNATS, Mailman and OpenSSH. Except for CVSup, these are externally developed tools. These tools are commonly used in the open source world. 7.1. Concurrent Versions System (CVS) Concurrent Versions System or simply “CVS” is a system to handle multiple versions of text files and tracking who committed what changes and why. A project lives within a “repository” and different versions are considered different “branches”. 7.2. CVSup CVSup is a software package for distributing and updating collections of files across a network. It consists of a client program, cvsup, and a server program, cvsupd. The package is tailored specifically for distributing CVS repositories, and by taking advantage of CVS' properties, it performs updates much faster than traditional systems. 7.3. GNATS GNATS is a maintenance database consisting of a set of tools to track bugs at a central site. It supports the bug tracking process for sending and handling bugs as well as querying and updating the database and editing bug reports. The project uses one of its many client interfaces, “send-pr”, to send “Problem Reports” by email to the projects central GNATS server. The committers have also web and command-line clients available. 7.4. Mailman Mailman is a program that automates the management of mailing lists. The FreeBSD Project uses it to run 16 general lists, 60 technical lists, 4 limited lists and 5 lists with CVS commit logs. It is also used for many mailing lists set up and used by other people and projects in the FreeBSD community. General lists are lists for the general public, technical lists are mainly for the development of specific areas of interest, and closed lists are for internal communication not intended for the general public. The majority of all the communication in the project goes through these 85 lists [FreeBSD, 2003A, Appendix C]. 7.5. Perforce Perforce is a commercial software configuration management system developed by Perforce Systems that is available on over 50 operating systems. It is a collection of clients built around the Perforce server that contains the central file repository and tracks the operations done upon it. The clients are both clients for accessing the repository and administration of its configuration. 7.6. Pretty Good Privacy Pretty Good Privacy, better known as PGP, is a cryptosystem using a public key architecture to allow people to digitally sign and/or encrypt information in order to ensure secure communication between two parties. A signature is used when sending information out many recipients, enabling them to verify that the information has not been tampered with before they received it. In the FreeBSD Project this is the primary means of ensuring that information has been written by the person who claims to have written it, and not altered in transit. 7.7. Secure Shell Secure Shell is a standard for securely logging into a remote system and for executing commands on the remote system. It allows other connections, called tunnels, to be established and protected between the two involved systems. This standard exists in two primary versions, and only version two is used for the FreeBSD Project. The most common implementation of the standard is OpenSSH that is a part of the project's main distribution. Since its source is updated more often than FreeBSD releases, the latest version is also available in the ports tree. Chapter 8 Sub-projects Sub-projects are formed to reduce the amount of communication needed to coordinate the group of developers. When a problem area is sufficiently isolated, most communication would be within the group focusing on the problem, requiring less communication with the groups they communicate with than were the group not isolated. 8.1. The Ports Subproject A “port” is a set of meta-data and patches that are needed to fetch, compile and install correctly an external piece of software on a FreeBSD system. The amount of ports have grown at a tremendous rate, as shown by the following figure. Figure 8-1. Number of ports added between 1996 and 2005 Figure 8-1 is taken from the FreeBSD web site. It shows the number of ports available to FreeBSD in the period 1995 to 2005. It looks like the curve has first grown exponentionally, and then since the middle of 2001 grown linerly. As the external software described by the port often is under continued development, the amount of work required to maintain the ports is already large, and increasing. This has led to the ports part of the FreeBSD project gaining a more empowered structure, and is more and more becoming a sub-project of the FreeBSD project. Ports has its own core team with the Ports Manager as its leader, and this team can appoint committers without FreeBSD Core's approval. Unlike in the FreeBSD Project, where a lot of maintenance frequently is rewarded with a commit bit, the ports sub-project contains many active maintainers that are not committers. Unlike the main project, the ports tree is not branched. Every release of FreeBSD follows the current ports collection and has thus available updated information on where to find programs and how to build them. This, however, means that a port that makes dependencies on the system may need to have variations depending on what version of FreeBSD it runs on. With an unbranched ports repository it is not possible to guarantee that any port will run on anything other than -CURRENT and -STABLE, in particular older, minor releases. There is neither the infrastructure nor volunteer time needed to guarantee this. For efficiency of communication, teams depending on Ports, such as the release engineering team, have their own ports liaisons. 8.2. The FreeBSD Documentation Project The FreeBSD Documentation project was started January 1995. From the initial group of a project leader, four team leaders and 16 members, they are now a total of 44 committers. The documentation mailing list has just under 300 members, indicating that there is quite a large community around it. The goal of the Documentation project is to provide good and useful documentation of the FreeBSD project, thus making it easier for new users to get familiar with the system and detailing advanced features for the users. The main tasks in the Documentation project are to work on current projects in the “FreeBSD Documentation Set”, and translate the documentation to other languages. Like the FreeBSD Project, documentation is split in the same branches. This is done so that there is always an updated version of the documentation for each version. Only documentation errors are corrected in the security branches. Like the ports sub-project, the Documentation project can appoint documentation committers without FreeBSD Core's approval. [FreeBSD, 2003B]. The Documentation project has a primer. This is used both to introduce new project members to the standard tools and syntaxes and acts as a reference when working on the project. References [Brooks, 1995] Frederick P. Brooks, 1975, 1995, 0201835959, Addison-Wesley Pub Co, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition). [Saers, 2003] Niklas Saers, 2003, A project model for the FreeBSD Project: Candidatus Scientiarum thesis. [Jørgensen, 2001] Niels Jørgensen, 2001, Putting it All in the Trunk: Incremental Software Development in the FreeBSD Open Source Project. [PMI, 2000] Project Management Institute, 1996, 2000, 1-880410-23-0, Project Management Institute, Pennsylvania, PMBOK Guide: A Guide to the Project Management Body of Knowledge, 2000 Edition. [FreeBSD, 2000A] 2002, Core Bylaws. [FreeBSD, 2002A] 2002, FreeBSD Developer's Handbook. [FreeBSD, 2002B] 2002, Core team election 2002. [Losh, 2002] Warner Losh, 2002, Working with Hats. [FreeBSD, 2002C] Dag-Erling Smørgrav and Hiten Pandya, 2002, The FreeBSD Documentation Project, Problem Report Handling Guidelines. [FreeBSD, 2002D] Dag-Erling Smørgrav, 2002, The FreeBSD Documentation Project, Writing FreeBSD Problem Reports. [FreeBSD, 2001] 2001, The FreeBSD Documentation Project, Committers Guide. [FreeBSD, 2002E] Murray Stokely, 2002, The FreeBSD Documentation Project, FreeBSD Release Engineering. [FreeBSD, 2003A] The FreeBSD Documentation Project, FreeBSD Handbook. [FreeBSD, 2002F] 2002, The FreeBSD Documentation Project, Contributors to FreeBSD. [FreeBSD, 2002G] 2002, The FreeBSD Project, Core team elections 2002. [FreeBSD, 2002H] 2002, The FreeBSD Project, Commit Bit Expiration Policy: 2002/04/06 15:35:30. [FreeBSD, 2002I] 2002, The FreeBSD Project, New Account Creation Procedure: 2002/08/19 17:11:27. [FreeBSD, 2003B] 2002, The FreeBSD Documentation Project, FreeBSD DocEng Team Charter: 2003/03/16 12:17. [Lehey, 2002] Greg Lehey, 2002, Greg Lehey, Two years in the trenches: The evolution of a software project. Notes [1] This goes hand-in-hand with Brooks' law that “adding another person to a late project will make it later” since it will increase the communication needs Brooks, 1995. A project model is a tool to reduce the communication needs. [2] Statistics are generated by counting the number of entries in the file fetched by portsdb by April 1st, 2005. portsdb is a part of the port sysutils/portupgrade. [3] The period from January 1st, 2004 to December 31st, 2004 was examined to find this number. [4] For instance, the development of the Bluetooth stack started as a sub-project until it was deemed stable enough to be merged into the -CURRENT branch. Now it is a part of the core FreeBSD system. [5] According to Kirk McKusick, after 20 years of developing UNIX operating systems, the interfaces are for the most part figured out. There is therefore no need for much design. However, new applications of the system and new hardware leads to some implementations being more beneficial than those that used to be preferred. One example is the introduction of web browsing that made the normal TCP/IP connection a short burst of data rather than a steady stream over a longer period of time. [6] The first release this actually happened for was 4.5-RELEASE, but security branches were at the same time created for 4.3-RELEASE and 4.4-RELEASE. [7] There is a terminology overlap with respect to the word "stable", which leads to some confusion. The -STABLE branch is still a development branch, whose goal is to be useful for most people. If it is never acceptable for a system to get changes that are not announced at the time it is deployed, that system should run a security branch. [8] The first Core election was held September 2000 [9] More and more tests are however performed when building the system &
This paper will give an overview of3 D laser sensing and related activities at the Swedish Defence Research Agency (POT) in the view ofsystem needs and applications. Our activities include data collection oflaser signatures for target and backgrounds at various wavelengths. We will give examples of such measurements. The results are used in build ing synthetic environments, modelling of laser radar systems and as training sets for development of algorithms for target recognition and weapon applications. Present work on rapid environment assessment includes the use of data from airborne laser for terrain mapping and depth sounding. Methods for automatic target detection and object classification buildings, trees, man-made objects etc. ) havebeen developed together with techniques for visualisation. This will be described in more detail in a separate paper. The ability to find and correctly identify "difficult" targets, being either at very long ranges, hidden in the vegetation, behind windows or under camouflage, is one ofthe top priorities for any military force. Example of such work will be given using range gated imagery and 3 D scanning laser radars. Different kinds ofsignal processing approaches have been studied and will be presented more in two separate papers. We have also developed modeling tools for both 2 D and 3 D laser imaging. Finally we will discuss the use of3 D laser radars in some system applications in the lightof new component technology, processing needs and sensor fusion.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值