FreeBSD

共 688 篇文章。

FreeBSD 1.x时代的CVS

• Development

由于Caldera已经将32/V开源,目前FreeBSD 1.x时代的CVS已经可以重见天日。特设立此cvsweb以供世人观看。

FreeBSD 1.x受到AT&T诉讼的影响,曾在1994年6月和解并发布1.1.5.1-RELEASE之后,不得不重建了CVS库(这也是为什么FreeBSD的src/代码库的目录名是/home/ncvs而不是/home/cvs的原因)。随后,经过数月的努力,基于可自由再发布的4.4BSD-Lite代码系的FreeBSD 2.0于1994年11月正式发布。

阅读全文… ( 本文约 323 字,阅读大致需要 1 分钟 )

GPL gzip(1)将于今天被执行死刑

• Development

今天我将把FreeBSD中的又一个 「自由」 (GPL授权)软件——gzip——替换为一个 可以自由再发布 的(BSD授权)版本。这一版本已经经过长期测试,特别是FreeBSD port联编集群的考验。

替换gzip的主要导火索是去年由Google公司安全团队发现的CVE-2006-4334、CVE-2006-4335、CVE-2006-4336、CVE-2006-4337、CVE-2006-4338等一系列问题,以及由于修正这些问题所引入的f2c压缩文件无法解压的回归问题。新版本的FreeBSD gzip来自于NetBSD的Matthew R. Green所撰写的、基于可自由再发布的zlib压缩库的用户界面接口。

阅读全文… ( 本文约 371 字,阅读大致需要 1 分钟 )

PRS_NEW: Check it or not?

• Kernel

It seems that I have caught a race condition which can be triggered by renice(1), and we need to take PRS_NEW into account when we need to access several attributes of a process object.

Robert has pointed out that we may want to just initialize the attribute early to avoid the race condition. After reading some old 4.4BSD code it seems that the process object is linked into allproc list *before* everything is initialized.

阅读全文… ( 本文约 97 字,阅读大致需要 1 分钟 )

说一个笑话,大家一乐

• Life

起初,他们只是不支持FreeBSD/Linux,我有Windows远程桌面,我没投诉;
到后来,他们不允许Windows远程桌面,我可以本地访问一台64位的Windows 2003 Server,勉强投诉两句,暂时也忍了;
再后来,他们又写了不支持64位Windows 2003 Server的所谓「安全」驱动,我拼命投诉,可是他们不理我了,更有人说,我是「小众系统」,正如一开始人们说FreeBSD/Linux两种系统一样。

阅读全文… ( 本文约 285 字,阅读大致需要 1 分钟 )

ULE 2.0 hits -HEAD

• Kernel

Today, Jeff Roberson has committed his version 2.0 ULE scheduler. This new version has addressed several design issues as well as several bugs.

The new scheduler has adopted a circular queue, instead of the double-queue structure which is also found in the Linux O(1) scheduler. The latter has lead to difficulty implementing nice correctly.

For uniprocessor case, ULE is now faster.

MP algorithm has been simplified a bit.

A lot of bugfixes, etc.

To quote the original commit message:

ULE 2.0:

  • Remove the double queue mechanism for timeshare threads. It was slow due to excess cache lines in play, caused suboptimal scheduling behavior with niced and other non-interactive processes, complicated priority lending, etc.
  • Use a circular queue with a floating starting index for timeshare threads. Enforces fairness by moving the insertion point closer to threads with worse priorities over time.
  • Give interactive timeshare threads real-time user-space priorities and place them on the realtime/ithd queue.
  • Select non-interactive timeshare thread priorities based on their cpu utilization over the last 10 seconds combined with the nice value. This gives us more sane priorities and behavior in a loaded system as compared to the old method of using the interactivity score. The interactive score quickly hit a ceiling if threads were non-interactive and penalized new hog threads.
  • Use one slice size for all threads. The slice is not currently dynamically set to adjust scheduling behavior of different threads.
  • Add some new sysctls for scheduling parameters.

Bug fixes/Clean up:

  • Fix zeroing of td_sched after initialization in sched_fork_thread() caused by recent ksegrp removal.
  • Fix KSE interactivity issues related to frequent forking and exiting of kse threads. We simply disable the penalty for thread creation and exit for kse threads.
  • Cleanup the cpu estimator by using tickincr here as well. Keep ticks and ltick/ftick in the same frequency. Previously ticks were stathz and others were hz.
  • Lots of new and updated comments.
  • Many many others.

Tested on: up x86/amd64, 8way amd64.

阅读全文… ( 本文约 506 字,阅读大致需要 3 分钟 )