DragonFly BSD

Napi DragonFlyBSD snapshotok

Címkék

Simon 'corecode' Schubert úgy döntött, hogy a DragonFlyBSD fejlesztéséből napi rendszerességgel snapshotokat generál. A snapshotok elérhetőek ISO image formátumban is. Simon projektjének kettős célja van:

1.) azoknak a felhasználóknak akar segíteni akik ki akarják próbálni a DFly-t, de nem akarják végigcsinálni a FreeBSD4/cvsup/buildworld (azaz egy FreeBSD 4.8-ról átállni a DragonFly-ra)

2.) egy tinderbox-szerű szolgáltatást szeretne nyújtani (a tinderbox egy fejlesztői gép, amelyen automatikusan fordulnak az architekturák snapshotjai, és arról a tinderbox fordítókörnyezet napi vagy (más időközönként) státuszjelentést küld adott listákra, fejlesztőknek, akik ebből megtudhatják, hogy az adott snapshot lefordul-e egyáltalán az adott architektúrán, stb.)

A napi snapshotok minden reggel 9.30-kor CEST (GMT+2) generálódnak egy Duron 1200-as gépen, ami azt jelenti, hogy kb. 11:00-re el is készülnek.

A snapshotok elérhetőek:

[HTTP] [FTP] [ISO IMAGES]

Bejelentés itt.

DragonFly BSD változások

Címkék

Matthew Dillon postázott egy HEADS UP!-ot a dragonfly.kernel listára, amelyből azt tudhatjuk meg, hogy Robert Garrett portolta az RCNG-t a FreeBSD-ből. Az RCNG az új generációs rc skripteket jelenti, amelyek már alapértelmezettek voltak a FreeBSD -CURRENT-ben 2002. szeptembere óta. Az RCNG egyébként a NetBSD-ből származik.

Úgy tűnik, hogy a DragonFly a biztonságot is erősíti, hiszen a sendmail és az inetd nincs engedélyezve alapértelmezés szerint, a névszerver pedig a bind:bind-ként fut alapértelmezés szerint, ha engedélyezve van.



Kapcsolódó HUP cikkek itt.



Matt levele:Subject: HEADS UP! RCNG in the tree...

From: Matthew Dillon

Newsgroups: dragonfly.kernel

Date: Wed, 23 Jul 2003 23:35:54 -0700 (PDT)

Robert Garrett has done an excellent job porting over the the RCNG

stuff. I spent some time doing a bit of additional work to smooth out

the wrinkles and committed it.

I also brought in the 5.x mergemaster, because it will clean up the

old rc files for you (amoung other things), and tried to synch up the

mtree config files and so forth.

If you want to update your system to run RCNG, so you can report the

bugs to us, you need to do the following:

cvsup/update your source tree. If cvsup'ing the cvs tree remember to cvs

update your source tree afterwords.

cd /usr/src/sbin/rcorder; make; make install cd

/usr/src/usr.sbin/mergemaster; make; make install

mergemaster

I'm sure things will come up but I was quite surprised how smooth it

went when I initially tried booting with it. My mistake was to forget

to install 'rcorder', and of course RCNG won't work at all without it!

Also note the following changes in the RC defaults:

sendmail is not enabled by default

inetd is not enabled by default

named runs as user bind and group bind by default, if enabled

-Matt

Matt Dillon: Call for Developers

Címkék

Hát DragonFlyBSD témakör még nincs úgyhogy egyelőre a FreeBSD-be teszem. Aztán meglátjuk majd, hogy érdemes-e ikont készíteni.

Matthew Dillon csatlakozásra szólítja fel a fejlesztőket. A munka amelyre felhív az az userland (felhasználó szint) szálkezelő könyvtárak (library) átdolgozása. ->Az elképzelések szerint elvetik a libc_r-t, ideiglenes jelleggel eldobják a POSIX kompatibilitást, stb.

Matt levele:

Subject: Call for Developers! Userland threading

Date: Tue, 22 Jul 2003 11:55:58 -0700 (PDT)

To: kernel@crater.dragonflybsd.org

Ok, this is an official call for developers to begin working on userland

threading. I've come up with a timetable and infrastructure that

should be sufficient for those developers interested in the work to

actually begin working! I would like to hand-out some commit bits for

those doing the work, and I would like to find someone to head up this

sub-project (i.e. not me, I will be focusing on the kernel-side support).

I was kinda thinking of Peter da Silva or Jeffrey Hsu to lead this effort,

but I don't know what kind of time commitment people have.

Here's the infrastructure idea I've come up with:

* We throw away libc_r. Er, that is, we keep it around but base all

new development on a copy of the original libc. We would call

it, oh, libcr (as a pun on libc_r). It wouldn't be an 'alias'

of libc like libc_r is, it would be an actual physical copy of

libc.

When all is said and done, several months from now, the new libcr

will *become* our libc, i.e. it will be responsible for both

non-threaded and threaded programs. Don't worry about non-threaded

overhead, it won't be that big a deal because LWKTs can be made

quite optimal in non-threaded environments.

* We (temporarily) throw away POSIX compatibility. I believe that

the userland threading implementation should be based around LWKTs

and LWKT messaging - i.e. a direct port of the LWKT modules now

in the kernel. The problem with trying to maintain the POSIX

infrastructure is that the signal handling will bog down the

development. I believe the signal handling can be dealt with with

supporting kernel infrastructure that does not yet exist. So for

now we throw away POSIX. Later on we will re-implement it.

Direct LWKT port but: maybe rename struct thread to struct

userthread?

I will happily provide the userland assembly bits for I386 for

the initial entry and switching functions for LWKTs. They're

really easy to do, basically just pushal, stack switch, popal, ret.

* We (temporarily) build the new system call emulation layer into

libcr with an eye towards eventually separating it out into its own

independant library.

This new layer is very simple in concept. Basically you will begin

implementing system calls which convert to messages. For example,

in libcr read() would be:

ssize_t

read(int fd, void *buf, size_t nbytes)

{

syscall_any_msg_t msg;

int error;

/*

* Use the convenient mostly pre-built message stored in the

* userthread structure

*/

msg = &curthread->td_sysmsg;

msg->fd = fd;

msg->buf = buf;

msg->nbytes = bytes;

error = lwkt_domsg(&syscall_port, msg);

curthread->td_errno = error;

if (error)

msg->result = -1;

return(msg->result);

}

The actual int 0x80 would be done by syscall_port's beginmsg

function (it would point to a bit of assembly). And, yes, that

means you can theoretically shim the syscall port if you want

(mantra fodder: flexibility!), and it also means that errno

handling is done in userland (more mantra fodder: flexibility!).

I think this would be a great project for developers to really sink their

teeth into, because there is so much to do it can be worked on by

several people in parallel, and because the breakages will not effect

the stability of the development environment, and for all the reasons

above it means I can start handing out commit bits.

I would like to find one developer to act as the head-honcho for the

userland work, and any number of developers to work on the pieces. The

piecemeal work is:

* Messaging for individual syscalls (i.e. each system call, like

read() above, needs to be coded for the messaging interface).

* The LWKT threading port (I can help with the assembly bits).

* Implementation of the per-cpu-area abstraction (becomes per-rfork).

* (later on) Use %fs or %gs (kernel-supported?) to aid in access

to per-cpu areas? Anyone have any ideas here? It isn't necessary

for the initial threading work.

* (later on) Thread migration between rforks (i.e. more sophisticated

scheduling actions).

* (later on) development of a kernel-supported signal infrastructure

for proper POSIX signal handling.

I will be focusing on the kernel side of things. I would like those

interested in doing the userland threading project to focus on the

userland side of things.

I have decided to forego the VFS work for a few weeks and instead focus on

implementing the new system call messaging system calls, messaging for

the struct file ops, and asychronization of key system calls like

select(), kqueue(), usleep(), etc... all with an eye towards

asynchronizing enough syscall messages that the userland threading work

can do real testing with real results. Basically I will be doing work

on the kernel side specifically to support the userland threading effort.

I should have a basic syscall messaging syscall working this week,

even though it will initially operate synchronously.

-Matt

DragonFly BSD

Címkék

Matthew Dillon volt FreeBSD fejlesztő úgy tűnik végleg elszánta magát és elindította a saját BSD operációs rendszerének a fejlesztését. Az újonc a DragonFly BSD nevet kapta.A DragonFly BSD a FreeBSD 4-es verziójára alapul, amelyet Matt egy teljesen új irányba kíván továbbfejleszteni az SMP támogatást illetően. Matt tervei szerint a csomagkezelést is teljesen újraírja. Később átkerülhetnek a FreeBSD 5-ben bemutatkozott új lehetőségek, de mint Dillon mondta, jelenleg nem erre irányul a figyelme.

Matt nem csak egy új weblapot készített, hanem már dolgozott is. Munkájának eredménye meg is tekinthető. A jelenlegi forrás a FreeBSD 5 kezdeti stádiumának továbbgondolását tartalmazza (SMP oldalról), de egy teljesen mutex-mentes könnyűsúlyú kernel szál rendszerrel.

A leglényegesebb különbség úgy tűnik az, hogy minden processzor egy saját LWKT (Light Weight Kernel Threading) ütemezővel rendelkezik, amely az adott processzoron futó szálak közti váltást koordinálja, ugyanakkor az egy processzora kerülő futó kódot soha nem engedi át másik CPU-ra. Mindezt multiprocesszoros lockolás nélkül.

A rendszer -érhető okokból- az első időben csak i386-on fog futni, de a későbbiekben Matt tervezi más architektúrák meghódítását is.

Bővebb részletek is olvashatók a projekt weblapján.

DragonFly BSD

Announcing DragonFly BSD!

FreeBSD core fejlesztő kifakadása

Interjú Matthew Dillonnal (FreeBSD kernelhacker)