WWDC2001 Session 115

Transcript

Kind: captions
Language: en
in 1998 Apple Computer became first
computer company to make open-source
development part of its ongoing software
strategy and we've had great successes
then and today we would like to give you
an update and status on some of the
projects which includes Darwin itself
QuickTime streaming server open play net
sprocket and so at this point I'd like
to bring on stage the director of core
OS engineering Brad Hallie good morning
certainly open source at Apple I think
one to realize is becoming fairly
pervasive through our project plans and
then certainly this isn't the only
session at all that's dealing with open
source but in this session we're gonna
spend some time today and actually go
over kind of more of the infrastructure
and mechanisms and stuff behind what
we're doing around open source you can
learn a lot of that open source
throughout the week in other sessions as
well there's a huge number of technical
sessions for Darwin something on the
order of 20 different sessions as well
as some of the other technology so you
know it's not just here we're gonna
talking about open source this is
something that's pretty consistent
through much of the technology
discussions so we're gonna spend a few
minutes and talk about a number of the
various projects around open source at
Apple in addition we're gonna give you a
little idea of you know where we're
going particularly in some of the
infrastructure and support to kind of
enable open source development in the
community and most importantly how you
can get involved and participate in the
process so first it's it's worth
mentioning that our public source
license that version 1.2 is released
just a little while ago and that's
actually been extremely well received
we've since the original release of our
public source license we've been working
with the community to kind of refine it
and make it work well for both our
developers and an Apple Computer and I
think we've done extremely well and
clearly the community believes that
because we've been approved by the OSI
as being a certified open source license
certainly someday invert we're we're
very happy about I'd like to actually
make it a bit of an announcement that
we've have added a new project to the
open source projects at Apple and this
is a CD essay the common data security
architecture Thank You sounds like that
one person is very excited about that so
this is a an open group standard and
it's basically the basis the underlying
foundation for a lot of the security
features within Mac OS 10 support for
the keychain and and other key services
of the system it provides a number of
modular plugins for cryptography and
certificate management and key
management and things like that and this
is now available as of today I believe
we've got all the stuff all up last
night and this morning it should be
available now on our website for you to
download and play with should be pretty
obvious to most of the community in the
Apple community at this point what you
know value there is an open source it's
pretty tremendous but it really bears
repeating that there's a lot of value
that occurs in open sourcing technology
in both to Apple and the community one
certainly for the developer provides an
opportunity to really get in and look at
the source code see what we're doing you
know it's a lot it's very hard for us to
kind of keep up with documenting each
and every single capability and there's
nothing like the source to really you
know give you a clear idea of how things
truly work it's obviously a great source
of example code and you know it's an
opportunity when things don't seem to be
working quite the way you think they
should to be able to go and see what the
system is truly doing in addition it
really becomes more than just access to
the source but an opportunity to
actually work and collaborate and work
with other developers in the community
to help resolve issues to actually take
advantage of kind of this shared
knowledge base that exists around
open-source and the technology and as
we'll see in a minute that community is
growing quite significantly and
ultimately allows you as developers to
really improve the quality and
capability
of your software since you really can
find out how the system works and where
the best and the best services and
capabilities and features are in the
system
I mean allows you to really be able to
tune your your software to work much
better on Mac OS 10 from our perspective
of course you know there's certainly a
lot of advantage to to get the community
actively involved in the development and
evolution if you will of Darwin and the
system certainly you know we've noticed
there's a lot of people who are
interested in seeing us succeed and are
always willing to actually if they find
a problem and actually you know they
many times even know what the bug fix is
we've some of our feedback that we've
gotten through our support lines have
included you know a particular problem
in including the fix which is certainly
and have a new experience for our
support organization in addition you
know it there's a lot of things that we
just don't have enough people to do we
can't do all the things we want to and
this is an opportunity for the the
community at large to get involved in
the process and actually enhance and
make the product better and of course
work on things like compatibility and
performance and other aspects of the
system there's a ton of project being
ported to Mac OS 10 and I think to a
large degree that's because of the open
source nature of Darwin and other parts
of the system it really you know
Foster's the the philosophy and being
able to get these kinds of services and
capabilities under the system as of
today for example as I understand it on
sale and developer Depot is the CD of
something like twelve hundred ports BSD
ports from the port's collection a
thousand yeah mm I am I guess a guy
sorry
you know tools and commands and
applications if you will that to run
into the Darwin environment also I think
that's one of the other aspects that we
think is pretty important is being able
to actually keep up with the community
at large there's you know an order of
magnitude more people involved in the
development process and there's you know
a way to really leverage that community
far beyond the walls
Apple and I think it's it's a pretty
important capability in facility and
certainly all of this really comes down
to try and make make sure that we make
the best possible products we can for
our customers and our developers the
community itself really benefits pretty
substantially from this the community is
not just Apple and our customers but
also the rest of the open-source
community we do not believe that this is
a one-way process our goal is not to
take in technology and use it in our
product we've really worked hard to try
and develop relationships with the
external developer community to find
ways to feed fixes and changes and other
things upstream to the to those
developers and actually be involved in
the open-source community and that's
really is a very hard thing to do but
something we take very very seriously
because of that of course I think that
just continues to to help foster and
grow the community at large and if they
realize that we're serious and we're
going to contribute and help and and you
know invest in the in the open-source
community there's a much greater
opportunity for an interest for the
community themselves to be to
participate in the process in addition
we've seen quite a lot of interest in
taking some of the technology that we've
developed things like the QuickTime
streaming server there's others and
actually adapt that software to other
other new environments things beyond
what we might have considered by
ourselves and then the developers are
taking advantage of technology we've
developed in new and interesting ways
and of course certainly you know because
it's more than just Apple the
communities involved there's you know
kind of a you know a growth that occurs
there and then the ability to
communicate to collaborate and to
exchange and for to be able to use other
resources than just depending upon you
know it's the small handful of people
that we have developing software inside
Apple to actually get involved in your
software development processes and much
like there's you know quality benefits
for us I think that's true as well - the
open source environment they're really
the reason it works is because there's a
lot of people working on the
technologies and everybody benefits by
the improvements and the quality and
testing capabilities for Apple this
community is growing pretty
significantly since we released Darwin
we
had over 700,000 downloads which is
pretty damn significant even the next
door is clapping I think this is great
they think it's pretty cool we've had
over 95,000 users registered in our site
and that's a pretty significant
developer community our mailing list
activity year-over-year has grown by two
and a half times a year that's
exponential and we're at this point
about eighteen hundred you know I didn't
saying they're in the mailing list
discussions every month and we see this
growing and I pretty at a pretty
ferocious rate clearly as we've reached
major milestones of reaching to the
Developer Preview releases and the
public beta and now of course the final
release you know this is ends up being
pretty significant you know milestones
of developer involvement and adoption
and as people continue to port their
products and technologies to mac OS 10
this is a great forum for them to
participate in if you're not on the
mailing list we encourage you to there's
a lot of great discussion there there's
a lot of activity going on in a specific
activity going on in the community well
certainly we're actively involved in
supporting FreeBSD and changes and
things that we have there's a very
vibrant relationship there sharing
information about technology issues and
collaborations that we're doing on you
know packaging and other kinds of things
there's also we work very tightly with
the apache group we've certainly had
them on campus and sponsored their
activities and and try and provide
hardware and other things to them as
well as fixes to support the platform
the x3 86 project mysql pam etc there's
a number of projects where there's been
a lot of two-way activity in addition
there's been quite a lot of interest in
you know you know the open source
developer community to actually port
darwin to the x86 platform and we've you
know been supporting that that work
that's not something that you know we're
doing for any product direct interest
this is something the community is
pretty excited about doing and as that
work continues to evolve we take the
fixes and changes incorporated in the
source base
so that people can take advantages of
one shared source for all of that
technology the streaming server has been
ported to just about every significant
platform that's out there and as a
result you can make sure that it's
possible that you can do you know stream
QuickTime content on just about any
anything that you want also certainly
I'm sure you've seen recent
announcements on on things new
participants in net partner sprocket and
open Play and there's been a lot of
positive progress there and we'll talk
more about that in a few minutes in
addition we've been really you know
working with the community as I said
there's been a lot of fixes and things
that have come in things like security
fixes or other fixes that have come in
we've actually you know watched those
things it's coming if they're
opportunity we fold them into software
updates so as you've seen we've had you
know three software updates since Mac OS
10 was released and in those when
there's been opportunities to include
security fixes or things from the
community we do and like I said already
the support line has been and I'm now
kind of dealing with this new concept of
getting fixes along with their with bug
report so there's been quite a lot of
exciting activity there we have this as
part of the infrastructure forum working
with the open source community as I
mentioned it's not just apple we
actually have people in the community
who actually have write access to our
CVS repositories and actually in a
position to contribute directly to the
code for Darwin and some of these other
projects and these folks we call Darwin
developers these are partners in the
open source arena and for a number of
specific open source projects there
should be considered peers to their to
the rest of the engineers and people at
Apple in terms of their ability to help
you know contribute code changes and
kind of participate in the process of
evolving the source code they can help
with questions and then certainly
they're in a position because they have
CVS commit access to be able to commit
changes and modifications and things
into the into the CVS repositories
obviously from a standpoint of just
managing the source code it's not a
complete free-for-all we do try and make
sure that there are specific point
people for each of the key technologies
but again it's worth noting
those people aren't necessarily people
who work for or aunt Apple these
developers are folks that the community
has you know and the core team of Darwin
have selected for technical ability you
know kind of a well known participation
in the open-source community
you know folks that are actually
approved by the Apple executive
management so that they actually you
know we are giving them access to our
our repositories like I said there's
quite a number of people who are
involved in this and here's a list of
some of the key people if you're
involved involved with and one important
announcement that I want to make today
is that we've just recently in the past
day of signed a Jordan Hubbard of
FreeBSD to be part of the the Darwin
core team as mentioned this is Darwin
Jordan if you can raise your hand and if
you know Jordan is actually one of the
founders of FreeBSD and as certainly I
think the kind of the the real spiritual
leader of the FreeBSD community if you
will and we really take you know
involvement in collaboration with that
community to be very very serious goal
of Darwin in the open our open source
project so we're really glad to have him
on as a Darwin developer in addition
there's a large number of other people
here I won't go through this you can
look at the list but you'll actually get
a chance to meet some of these folks
here a little bit later in the
presentation
so from my particular section of this I
think one thing to note again is that
there's some really important benefits
we seed open-source this is not an
experiment for an experiment for us this
is the way we do business for Mac os10
and for a large number of our you know
technologies and this is something that
we're really working to try and make
what work well for Apple Computer we
really you know think this is something
that worked you know as a real benefit
to you we think it's a benefit to Apple
to the open-source community and to our
customers and we really would like to
you know have you guys be part of that
more and more so if you get an
opportunity please get on the mailing
list get involved and we'll talk a
little bit more about how you can do
that and some of the specifics and just
minutes you'll see as mentioned today
with the growth of addition of CDSA now
in our open source Arsenal that you know
this is something that we're you know
continuing to evolve and grow projects
that we think are appropriate candidates
for for open sourcing at Apple and you
know if you're interested if you think
you're one of those people who really
can make a contribution and want to be
directly involved as a darwin developer
or just as part of the darwin community
we'd love to have you so up next in the
presentation we have a number of things
we're going to talk about dedos ickey is
going to come up next and talk about
some of the support resources and kind
of the mechanisms for supporting the
community is also going to talk about
about darwin itself and how you can get
involved in building and and working
with that Chris Lacroix will talk a bit
about the streaming server lain Roth for
now rocket so an own play and run Hayden
will talk about our open documentation
efforts with header doc and we'll also
do some Q&A in the end and on that I'll
pass this on to Dave all right so we're
gonna start off talking about what
infrastructure you guys have to work
with us first of all let's start off
with the fact with our Darwin repository
our repository where most of our
projects live is beyond our firewall so
you guys can get at it fairly quickly
and our external Darwin developers have
direct access to it too we also have an
internal repository where some of our
non live projects live for a few
specific reasons either we've got source
code from third parties that we can't
release there's some information we've
received under NDA that we can't release
you know things like that but we we try
to minimize that where we can and keep
our projects in the external repository
where you guys can get it at them read
the history read the comments know why
we did things the way we did we have a
web forum where you guys can come in and
provide us with patches or feedback
those have come to us and also we
they're available to our Darwin
developers so we can get them back into
our CVS repositories
and of course our Darwin developers work
with us and you the community to
incorporate changes and fixes into our
code and make it better we have a bug
tracking system inside of Apple of
course we also thought it was good for
you guys to be able to see what changes
we're making or need to be made so you
can help us out if we need needed you
can browse and submit them via our
website you can it is incorporated with
our internal bug tracking system so it's
not a separate bug tracking system it's
just an import and an export of our bugs
so you don't need to worry about you
know any disconnect in nature or the
bugs isn't it a reporter there there
what's in our bug tracking system and we
updated three times a day so you guys
can see quick updates these are a bunch
of the resources we have and there's of
course our main website there's also our
page on CBS and how to use it at Apple
with our repositories we have a few
mailing lists of it hosted on list.com
and that includes Darwin development our
main development mailing list that
includes Darwin OS users are kind of
discussion lists for people that are
actually using Darwin and there's also
some mailing lists for the streaming
server and the security project also
known as the CDSA project and I think
that's it for mailing lists there's of
course our bug tracking system if you
want to see what's going on with our
projects and a list of our Darwin
developers is available we also have
hexley which is logo they was come up
with by the community of course created
by John Hooper for the use by the Darwin
community
there's also t-shirts available that we
can you can talk to us later you saw a
bread of course wearing one and there
are few others of us around here wearing
them and now I'll talk about Darwin
itself
Darwin is the core of Mac OS 10 it's the
foundation it's the same you can swap in
a kernel you build yourself from our
repository with the kernel provided in
our system we consider that very
important thing you can do that
and you know if you ever run in any
problems let us know but it it's works
today and we plan on keeping it working
so now you've probably seen this picture
a lot I'll show it to you again
Darwin is the foundation of macron was
10 it provides the file systems the
networking Mach I Oh kid drivers and it
also provides user land which would
probably sit right next to QuickTime and
all sorts of other or cocoa actually so
yeah the foundation of my go is 10 its
be as debased with a mock kernel and I
okayed we think it's very important that
is BSD based because it provides a
foundation for lots of your applications
to be ported over in a quick way it's
extensible to provide a support for a
lot of file systems we already have a
bunch in the base system today including
you know HFS ufs NFS UDF ms-dos but
there's certainly more out there we'd
like to see them it provides dynamic and
flexible configuration management as
you've seen in earlier presentations we
provide things like mobility hot-plug of
disks and etc and it supports multiple
platforms and we'd certainly like to see
more today we support piracy in x86 you
can download binaries for both platforms
from our website and be able to run them
today on your system and now we're gonna
have a demo by Alfredo Sanchez
hey Brett my name is Fred Sanchez I'm a
Darwin developer what that means is
basically that like anyone else who
works at Apple for bread in the core OS
group that I'm one of the engineers that
works on mac OS 10
and I'm one of the authors of some of
the software that you'll see in your
system when you boot up in particular I
wrote a program called system starter
which turns your computer on from the
sort of in it has run you've just turned
the computer on up to the state where
it's safe to bring up the login prompt
for it for the multi-user tomorrow there
will be a talk on performance and Joe
Sokol and Robert Budaj will be like
whining loud system start it doesn't go
fast enough I mean that's a personal
affront to me so I had to fix that and
so I got a demo here of a thing I've
been hacking on yes shut the switch
number one all right I am going to bring
up the very famous terminal application
which scares a lot of people but there's
a lot of fun for me
if you're a Darwin developer you spent
an awful lot of time on the UNIX command
line prompts though this shouldn't scare
you too much basically a system starter
is a like all good Apple software it has
a demo mode so I'll show you how it
normally works it runs a series of
startup items in in serialized order so
it knows this item has to start before
this other item can go and it runs one
at a time in order and what I did
different here is if you if you turn on
your computer you might notice that it
takes a while to run each one one at a
time and this might look different to
you in that you see a whole bunch of
things happening at once and then you
see a few more and then you see a few
more so what I changed is that the
startup items rather than running
serially in order it'll run as many as
it can possibly run all at once in
parallel and then as soon as it can run
another one it runs a few more and so
they're debugging up what you see here
is it's showing you like it's print
launching a whole bunch of commands and
then waiting on the right one to exit
for you and I do this because I have a
vested interest in seeing Mac OS become
a better system mostly because I don't
want to use Windows for the rest of my
life and I don't work at Apple but I
have access to the software I can do
this as well and so can you before you
think I'm a liar I actually used to work
at Apple which is why I wrote this but
now I don't so it's all good so that's
my demo do I do the you do that Thanks
[Applause]
we switch back to the slides
so the roadmap for what's left in the
week we have a 193 leveraging BSD
Services in Mac OS 10 it's going to be
in the Civic Center Friday 2 p.m. we
have 140 the Darwin kernel which is also
going to be at the Civic Center on
Friday at 3:30 which I highly recommend
for those of you that are interested in
what's going on inside the kernel and
then there's our feedback forum on and
also in the civic center at 5:00 p.m. so
up next we have Kris Lacroix from the
quick time group thanks Dave
I'm just gonna really briefly go through
or Pennock provide some status on where
we're at with the QuickTime streaming
server first thing I want to do is kind
of take care of some some confusion that
people have there's a Darwin streaming
server and there's a QuickTime streaming
server and people always ask well what's
the difference between those two and
there's actually nothing different at
all other than the name QuickTime
streaming servers just a branding our
brand name that we use for the Mac OS 10
version of the server other than that
they're built from the same source code
the Darwins platforms are freebsd linux
windows NT solaris it's all identical
source code there they have an identical
functionality they have the same user
interface size of three oh there's no
difference so here's what here the
platform's we currently built on the
ones on the top or platforms that Apple
actually builds and tests on so and we
actually provide binaries that you can
download of all of those platforms the
ones underneath or platforms that other
people have ported to Mac OS was done by
some-some guys in Brazil there's a SGI
our export Compaq actually ported it to
their tru64 systems which are like
massive 64-bit big hardware and it's
been ported to a bunch of other Linux I
or Linux eyes or whatever the plural is
for that in 300 the newest features are
we've added a web-based administration
and what that with that'll that's one of
the things that allowed 302 be exactly
the same on every platform
inversions - and earlier we actually had
a little cocoa app for Mac os10 we've
gotten rid of that and everything is all
web-based now we've added some broadcast
automation functionality which allows
the broadcaster to automatically start
up broadcasts to a server which then get
reflected to clients skip protection is
new which and skip protection is just
another brand name for a collection of
quality of service enhancements that
were that we've added 2/3 own we'll
continue adding in future versions we've
improved the authentication we now have
digest md5 authentication and we've done
a few minor API changes so if want to
hear more about these there's a session
tomorrow that'll go into a lot more
detail and so here we're here's where we
are with downloads so we have over
150,000 downloads of the server itself
the client has over 150 million copies
of the client and distribution which is
a pretty big number and then the number
I just looked up recently which kind of
surprised me is that we have over 500
developers that are currently subscribed
to the developer mailing list which
means that they're actively watching
mail go by so I guess we've got probably
the biggest we have the biggest
development team for any streaming
server in the world I guess you can look
at it that way and another thing I did
is I just kind of did a search on Google
for QuickTime streaming server Darwyn
streaming server just to kind of see
what kind of people were using this and
here's a list of some of them I came up
with there are actually a bunch I got
like massive number of pages in Google
when I did the search so NASA is using
it someplace I'm not sure exactly what
department department it is pop-y or
actually does some pretty cool stuff
they've got they provide kind of radio
internet radio station and they've taken
the playlist broadcaster portion of the
server and modified that so that you
could basically provide creates an
internet radio station that has you know
ad insertion and things like that then
Cooper film-school
have standardized on this River they
actually use it for they've got a little
internal TV show that they do and they
put that up on the web in the streaming
format for QuickTime only surf net TVs I
think that's a European site I actually
don't remember what they do this is a
week ago that I looked at this stuff
and Inktomi have created a caching proxy
that works with the server and Compaq as
I mentioned ported it to their tru64
system and they include that as well one
of the things they provide is a
collection of open-source software for
that platform and the Darwins streaming
server is one of those items and the
amount of rebus Volcano Observatory
they've got a camera that's up in the
crater and is actually watching the
volcano all the time and they've got a
live stream that you can you can go and
watch they use the Darwin streaming
server for that so the resources are the
mailing list that I just mentioned if
you go to lists Apple comm just search
for the word stream and you'll see two
lists you'll see a developer list any
user list and they're both they actually
could to subscribe to they don't have a
massive amount of traffic traffic so
somewhere between 5 and 20 message
messages a day but they're all there
they're all really really focused and
good messages so it's actually good and
although all of our engineers are
actually up on those lists too so that's
like the best way to get a hold of those
guys you can get all the information
about the product up on Apple Apple's
open-source site and then you can go to
the QuickTime site if you want to find
out more about QuickTime and more of the
and more the client-side features of
QuickTime and how they interact with the
server and a couple or three or four
more sessions so there's a broad cating
live with quicktime streaming or
broadcasting live five o'clock and then
tomorrow we've got two sessions that are
that are server-side oming starting at 9
o'clock just an overview the server I'll
go into more detail about with the
server how it works
the new features things like that and
then I'll have a bunch of the engineers
come up in the in the 407 session and
show you all the different ways you can
customize the cervix truly the most
customizable screening server in the
world and then we've got our feedback
forum on Friday or on Thursday at 3:30
and we'll also be at the beer bust at
Apple it's all the engineer or the
engineers they're asleep
look either in the server group or the
QuickTime group will be in one or the
other and that's it next is lean roads
thank you
[Applause]
all right so I'm covering the open play
effort that with Jim Darwin the biggest
news is that net sprocket which was
released as open source a while back is
now part of the open play effort and it
has been carbonized all of the net
sprocket functionality all those api's
are now part of open play and are being
tested right now and getting all that
functionality working currently the
package that will be checked into CVS
shortly consists of two separate
projects the open play project and the
net sprocket project this is a legacy of
how this all came to be and how it was
developed it makes things a little bit
tough to figure out we are working to
correct that we will combine both of
those projects into a single project
that will be called open play this will
alleviate some of the weirdness with
having multiple directories that are the
same name and some duplication of source
files so forth like that the current
next sprocket source is available and
will remain as such that all future work
will be on the combined open play
project okay so the networking API is
designed to be cross-platform
and pop protocol agnostic currently it
is running under Mac OSX in a carbonized
form under Mac OS as well as under
Windows there is a tcp/ip network module
that is available for all of those
platforms and then apple talk is
available for Mac OS there are three API
layers to the new open play there's the
game interface and that's the highest
level interface which was known
previously as Ness ruckette that
interface is what most of the games and
out of their applications we use the
protocol interface was the former
straight open play
face its the lower-level interface just
for connecting and passing packets back
and forth the networking interface is
just a wrapper or to go around the
different networking api's and most
people won't be using that it all comes
together as you see your application can
talk to any one of the three api's
within open play it can also talk
directly to any of the OS networking
api's as you feel needed inside of open
play the game interface talks to the
protocol interface and that talks to the
net module interface that is selected
for whichever game you're running and it
will talk directly to the networking API
in the OS okay so the game interface as
I said is the highest level interface
this is basically the net sprocket API
it's the easiest way for you to add
functionality networking functionality
to your game the API is handle hosting
games joining games it handles all the
game management it handles your player
management for just two or more players
it also handles packet management so you
can send data back and forth very simply
you don't have to worry about a lot of
the details like all the wrapper
functions are in the cross-platform
segment are swapped in there by daughter
you still are responsible from doing
that for your specific data but you
don't have to worry about all the
underlying data that's all handled by
those api's let's cross-platform again
OSX
mac OS windows the protocol interface is
a lower-level interface this is where
all the platform agnostic and networking
a wrappers are I
like I said there's IP for all the
platforms and there is appletalk for Mac
OS F or Mac OS and then besides running
on the the mentioned platforms this
interface has a start into a Linux
version and that is underway by the
community the networking interface is
the just very low level wrapper to go
around your different protocols it has a
plug-in design so that in the future if
it's needed somebody can drop in a new
protocol module and they can do that
independent of the release package so
you can do it just if you have some
private networking API that you need to
do you can have your own separate module
and not have to check it into CVS and
this single API can also be used by your
program if you want to have that very
low level control and still have the
network diversity that's it
[Applause]
I'm Ron Hayden and I manage the Darwin
documentation project so a couple years
ago Apple obviously did a big leap into
open source with Darwin and then a few
months ago we did another major leap
into open source with our documentation
it was a recognition that the
documentation is often as important as
the source code and what the purpose of
this project is is to provide the tools
and resources to allow developers to
provide the documentation directly which
is very exciting for me I've worked for
a long time in technical publications
and one of the things I've discovered is
that frequently the writers are a
bottleneck to the information that you
need the engineer may have the
information especially reference
material the engineer may have written
down that information for the writer the
technical support people may have the
information some of our customers using
the product may have the information but
because of the enormous number of thing
the writers have to cover that may not
get into the next release and it's wrong
and it's a problem so one of the things
that we're learning from open source is
how to remove that bottleneck and let
the person who has the information
provide the information as quickly as
possible to the audience this doesn't
mean that we're not writing
documentation anymore or that we're
asking the community to provide it all
we have a Darwin technologies writing
team which is concentrating on some of
the big-picture stuff so we're doing an
i/o kit fundamentals book we're doing
text tutorials we're doing stuff on on
handling USB and hid and such but the
actual reference material is more and
more frequently coming directly from the
engineer and getting into people's hands
so here's the things that we cover in
Darwin documentation project first and
probably most important is heterodox and
what is important about this is that
every person in this room who's doing a
C or C++ project should be using header
doc we want all of we want a standard
reference format that
where everything is uses what we use it
for all of our i/o kit documentation and
what everyone else to use it what it is
is a set of structured tags very similar
to Javadoc except for c and c++ which
get processed into highly formatted HTML
for you automatically and we want we
like to say we want to pervasive we want
everyone using it the next area that we
cover how to documents how to documents
are individuals usually small documents
one to ten pages long that tell you how
to do how to get your job done with one
piece of the Darwins system the how-to
project has really just gotten rolling
recently so thanks to some submissions
from people like Rob Ron we now have
how-tos on how to be a Darwin developer
how to build Darwin we have how to
package UNIX applications for Darwin and
we have more rollin in every week and
that's something that that anyone can
participate in and it's well with
heterodox the engineer who owns the code
typically provides the header doc in the
case of how to documents its whoever has
the knowledge there might be a subject
area expert it might be a writer might
be someone just interested in that area
they can provide a how-to document to
help everyone else finally we have man
pages which are not in the state we'd
like them to be in Darwin and we're
putting a lot of focus over the next
couple of months into changing that
we're going to break out the man pages
get them there right now they're there
tied into a documentation project we're
gonna break them out give them back into
the commands get the engineers handling
them we're gonna work on on our upstream
from BSD and such getting those main
pages back in and cleaned up so
hopefully you'll see a lot of things
improve there and in general we provide
a lot of tools and support and if you
want to learn about this the thing to do
is come to the Darwin documentation
project meeting in this room on Friday
at 10:30 where we're gonna go in detail
over how we hetero dock works how to
create how-to documents using docbook
xml what exactly we're doing form and
pages and also what documentation we
have especially for i/o kit in the
kernel what documentation we're working
and some of the areas where we could
really use some assistance from the
Darwin community in filling in some
things that we're not going to get to in
the near future that people need so
that's the Darwin documentation project
and I do hope that some people will come
to the to the session on that so we can
go over in in some detail how you could
contribute so as you can see we have
quite a lot of different projects and
things that we're involved in Apple is
extremely committed to open source as
I've mentioned before this isn't an
experiment this is a way we're doing
business and you'll see more and more
involvement from us as and each day goes
by as new project come online as it's
appropriate and we get more and more
infrastructure in place we'd really want
to encourage you to join the community
of open-source developers there's I said
over 3,500 just on our mailing list
alone there's a lot of great information
there and there's a lot of people who
really know the software inside and out
including a lot of the internal Apple
developers this is a great way to get to
them directly and you know the people
are quite willing to jump on and answer
questions if you've got any so please
participate there's a lot of conferences
that we're also involved in so in the
open source community and such so we're
going to be at Mac hack we have a number
of different sessions there we'll talk
about the booting architecture and then
more information about Darwin and a
number of other talks going on at
macaque you snicks
we have a one-off and participation that
going on that Ernie will be at and as
well we'll be at the O'Reilly open
source conference I know I have a talk
there an executive forum talk and we've
got some others as well so we're
certainly looking at ways that we can be
more involved in some of these external
activities and you know if you're going
to be there we're going to be there too
um it's on that I'd like to have Jason
come up and we're going to do some Q&A
you