OpenBSD之开篇

  对BSD有特殊的情节,早在大学的时候最初迷恋FreeBSD,还记得第一个折腾的版本是5.x,后来组件转到折腾Linux,但那份情节还是在心底,再加上越发觉得Linux的一盘散沙和BSD的完整性形成鲜明的对比,也许这本就是两者的出身所决定的——BSD的大学出身和Linux的“集市”出身。

  说到代码,认识我的人都知道我对代码的正确性有着近乎强迫症的要求,是的,在我心里认为正确性必须是首要的,虽然很多人口头也是这么说的,但他们没有用实际行动要求他们所写出来的代码的正确性;OpenBSD就是这样一个项目,正确性是她的First Goal!很多人知道OpenBSD是以安全性著名的OS,但OpenBSD的官方FAQ第一段就写着:

Our goals place emphasis on correctness, security, standardization, and portability.

  想想也就明白了,没有绝对的正确性,哪来的安全性?要正确性就必须要求代码有好的设计、一致的格式、清晰的实现,所以正确性是所有正确的事情的基础!

  很早就想写些关于OpenBSD的文字,从5.7到6.0,晚上时间断断续续的看了些代码,有用户态的代码也有内核代码,OpenBSD的代码就是我一直所追求的代码!过程中还把MIT的教学操作系统xv6看了遍,xv6几乎可以认为是OpenBSD这个实际生产用的操作系统的demo版,让我能从整体上理解UNIX内核的运作,顺带强烈推荐xv6代码。

  这篇就算是开篇吧,希望能找到更多有同样追求、理念的同学一起研究。

时间: 2024-10-06 23:40:45

OpenBSD之开篇的相关文章

2016年开篇 - 敏捷与成果经济

Manifesto for Agile Software Development 敏捷软件开发宣言 Individuals and interactions over processes and tools 个体和互动 高于 流程和工具 Working software over comprehensive documentation 工作的软件 高于 详尽的文档 Customer collaboration over contract negotiation 客户合作 高于 合同谈判 Resp

2015黑帽大会开篇:“互联网自由和开放正走向消亡”

2015年黑帽大会于上周三在拉斯维加斯正式拉开帷幕,本次大会新增关注互联网文化中的法律角色极其暗淡前景的话题. 当天开讲人Jennifer Granick,系斯坦福大学社交网络中心公民自由系主任,因其在合法防御黑客方面的建树而知名,以理想主义的口吻开篇. "我一直坚信自由和开放的互联网终将到来.且我一直相信我们需要一个信息可免费获取的世界,"Granick这样说道,"我认为人们可以自由获取tinker--这样的手动命令人们应该能够研究.操控乃至对定义着世界的设备和软件进行反向

Android异步加载全解析之开篇瞎扯淡

Android异步加载 概述 Android异步加载在Android中使用的非常广泛,除了是因为避免在主线程中做网络操作,更是为了避免在显示时由于时间太长而造成ANR,增加显示的流畅性,特别是像ListView.GridView这样的控件,如果getView的时间太长,就会造成非常严重的卡顿,非常影响性能. 本系列将展示在Android中如何进行异步加载操作,并使用ListView来作为演示的对象. 如何下载图像 下载自然是需要使用网络,使用网络就不能在主线程,在主线程就会爆炸.所以我们必须要在

OPENBSD:如何创建新分区,如何使用u盘?

看到 u盘的消息后,就知道U盘的设备名称了.假设是 sd0, 那么接着运行 disklabel sd0 ,看卡 sd0 是怎么分区的,c 代表整个硬盘,剩下的代表分区,a.b.i等,组合起来就是分区名称: sd0a.sd0b.sd0c.sd0i 等,其中 sd0c 代表整个硬盘.同时 disklabel 显示分区的分区类型. 常见的分区是,一个c和i(当分区为Windows格式时显示为i分区).linux分区时显示为a分区. c 不能mount ,i 可以.运行mount /dev/sd0i /

OPC学习开发记录(C#):OPC客户端【开篇】

OPC客户端 1.前言 思前想后,还是写下来实在一点,一来可以对自己的学习开发结果进行总结,二来可以锻炼自己表达能力,如何能够将意思表达清楚.博客园真的没有认真做做记录,也不会排版,丑的一比.关于OPC开发的,从零慢慢开始学习(谁不是呢),从简单的开始,OPC客户端是怎么使用的问题,站在用户(相对)的角度,也是比较简单的一部分,易从这一部分入手.根据网上的源码,我很快就自己开发了一个将就能用的OPC客户端,主要目的还是掌握OPC的结构和用法,为以后OPC服务器开发做铺垫.本篇为记录开篇,新手上路

webService(一)开篇

Webservice技术在web开发中算是一个比较常见技术.这个对于大多数的web开发者,别管是Java程序员还是.NET程序员应该都不是很陌生.今天我就和大家一起来学习一下webservice的基本内容.此篇文章作为webservice的开篇,首先我们来看一下什么是webservice.他能干什么用呢? 什么是webservice Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务. 用简单点的话说,就是系

Html5 Egret游戏开发 成语大挑战(一)开篇

最近接触了Egret白鹭引擎,感觉非常好用,提供了各种各样的开发工具让开发者和设计者更加便捷,并且基于typescript语言开发省去了很多学习成本,对于我们这种掉微软坑许久的童鞋来说,确实很有吸引力,在开发中最浪费时间就是设计和调试的阶段,js的语言过于自由,自由到有时候写错了都不知道,但typescript可以使用开发IDE帮助排错和调试,不得不说确实很有效率,在这之前,我在egret论坛里发了几个小游戏做练手,最近的一个<疯狂猜歌名>在素材齐备的情况下,仅用了不到1天的时间完成了开发,以

[转]MVVM架构~mvc,mvp,mvvm大话开篇

MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示.作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller. 在MVC里,View是可以直接访问

JAVA 多线程开篇 -从按顺序打印ABC开始

序言 很想把一个问题弄清楚,特别是以前一直模模糊糊的并发编程,今天在华为OJ上碰到一道题,“顺序打印ABC的两种方法开始写起”,就以这道题开篇,希望日后有时间把并发编程的基本问题弄清楚. 问题 启动三个线程,一个线程打印A,一个打印B,一个打印C,按顺序打印ABC.....如输入3,输出就是“ABCABCABC” 程序 线程的调度是由系统操作的,要想多个线程按照要求顺序打印,就必须做好线程间的同步. 思路:四个线程循环打印,但是一个线程打印一个字母释放锁后无法确定获得锁的是哪一个线程,这就需要用