Tip:
Highlight text to annotate it
X
[00:00:00.01] We'll go ahead and get started
[00:00:04.20] Hi, my name's Kris Moore, I'm the found of
the PC-BSD project
[00:00:08.23] and today I'm going to be giving a talk
about making FreeBSD on the desktop a reality
[00:00:12.26] First what we're going to do is take a look
at
[00:00:16.34] some of the pros and cons of using FreeBSD
on the desktop. If anyone's tried it
[00:00:20.39] they may be familiar with it, but we're
going to go ahead and go through them anyway just to make
[00:00:24.45] people up to speed. First of all we're going
to look at the strengths. Now obviously
[00:00:28.50] those of you who run FreeBSD we're looking
at rock solid stability, security
[00:00:32.55] and speed. I mean that's a huge selling
point for not only a server but a desktop.
[00:00:36.59] A lot of the things that apply on the server
are going to apply very well on the desktop.
[00:00:40.62] as well. Another thing is a large
availability of ported software
[00:00:44.66] I don't know what the last count of the
ports tree, but 12,000
[00:00:48.70] around there, compatible for free on there
[00:00:52.74] FreeBSD, other things that we offer
[00:00:56.78] 3D acceleration and sound support. You know
FreeBSD and people think of consoles
[00:01:00.81] servers, they don't assume that oh, hey we
can play sound we can do 3D video games
[00:01:05.00] I mean it's all there. Again another plus
for FreeBSD on the desktop market.
[00:01:09.02] Wireless support as well. So I'm running it
right here on my laptop
[00:01:13.05] and wireless is a plus for the desktop
[00:01:17.07] and of course for people coming over windows
is the one I like to tell 'em, resistance to viruses. It's
[00:01:21.25] definitely better implemented with more
security and user levels and layer which can
[00:01:25.30] protect you against viruses and other
malware that might be common on a Windows desktop.
[00:01:29.33] However, with those plusses there are also
some
[00:01:33.35] negatives. With FreeBSD, the vanilla version
as it stands right now. We'll take a look
[00:01:37.53] at some of those. First of all
[00:01:41.54] is the lack of an easy to use graphical
installer. That's the very first thing a
[00:01:45.56] desktop user will notice and identify as a
problem when they first boot up
[00:01:49.74] to try and install FreeBSD. No doubt many of
you guys have installed it
[00:01:53.77] to a desktop it's great, but give it to your
mother-in-law or your father and have him boot up to that
[00:01:57.80] sys install and see what happens.
[00:02:01.99] The other thing which is a big deal in the
desktop word is pretty much a non existent Xorg configuration
.
[00:02:06.00] tool. I mean we do support Xorg through
ports, but there's no tool which allow
[00:02:10.04] you to configure it aside from running some
command line options which again you have
[00:02:14.05] to have a pretty decent knowledge of how
Xorg works in order to manipulate
[00:02:18.23] them. Another thing will be difficult
network setup
[00:02:22.24] again if you're a power user, go ahead edit
etcrc.com
[00:02:26.42] if you're WPA.. that's fine but for your
desktop user they don't
[00:02:30.46] have a clue what any of that is I just said,
and they're stuck trying to figure out how do I get on the
net
[00:02:34.51] and just surf the web. Another thing is
[00:02:38.55] the difficult online updates for a desktop.
You know, if you know how to build world
[00:02:42.56] you're kernel's great, you're in good shape
but a desktop user all they want to do is click ""ok""
[00:02:46.73] and it'll restart and they're up to date.
Again FreeBSD doesn't excel
[00:02:50.74] much in that area. And then manual package
management would have to be
[00:02:54.76] the last one. Again, we have ton of software
, ports is great, but how does a user
[00:02:58.94] utilize them. We don't have a lot of
graphical front ends to that and
[00:03:02.95] if they like compiling source or
manipulating the package add common it can get a little bit
hairy
[00:03:07.13] for mom or pop or just somebody who's not a
unix expert.
[00:03:11.20] Now we're going to take a look at how we're
trying to address and fix these
[00:03:15.29] weaknesses to create a complete desktop
package with FreeBSD
[00:03:19.31] First thing we're trying to do is improve
the user installation
[00:03:23.36] experience, and problem one which I
identified already is sysintsall
[00:03:27.40] again a great tool, I don't want to knock it
if any of the developers from sysinstall are here
[00:03:31.43] but it, you know, it is beginning to look a
bit dated. Let's go ahead a take
[00:03:35.62] a look here. The first thing I've gotten
from people when I show them this is
[00:03:39.80] what is this, some DOS program, you know,
how do I use this?
[00:03:43.81] Again coming form a desktop user who doesn't
understand unix or linux and this maybe their first
[00:03:48.00] experience touching open source. Yeah, it's
not intuitive.
[00:03:52.04] For the most part again, they're looking for
point and click, where do I click next and just say here's
my disc and
[00:03:56.07] install. There's a little more to do with
sysinstall to get that far
[00:04:00.24] you know partitioning's a little more
difficult, network setup etc.
[00:04:04.30] just assumed it's going to autodetect set
everything up while all I do is tell it where's my
[00:04:08.34] drive or my disk drive, go ahead and install
the system for me they don't want all the partition options
[00:04:12.38] how do I setup user partitions that's
confusing to your average desktop user
[00:04:16.40] And here's the solution we've come up with
on the PC
[00:04:20.59] PCBSD project, our own installer called
PCInstall
[00:04:24.60] it is graphical based, again very intuitive
[00:04:28.62] take a look here, i mean it's very simple
right up front, we support multiple languages which is
[00:04:32.81] great, so if you're installing in Japanese
for example you can just select it
[00:04:36.86] there, all your characters will come up in
Japanese and it will walk you through the installation, you
can setup
[00:04:40.90] keyboard options right here, which will go a
head and let you adjust your keyboard
[00:04:44.94] layout, again if your not using a standard
104 key English keyboard
[00:04:48.95] time zone, etc.
[00:04:48.96] time zone, etc. right on the first screen
with quick and helpful tips at the
[00:04:53.13] bottom which again makes it pretty painless
for a desktop user who's usually
[00:04:57.16] more proficient but still has never done a
UNIX or LINUX install, this is
[00:05:01.19] a good way for them to get their feet wet.
First thing that
[00:05:05.38] everybody notices when they boot this up is
it looks like a modern desktop install, you know boot right
[00:05:09.43] to a GUI, very comfortable, my mouse works,
everybody's happy, that's what people are looking
[00:05:13.46] for when they bring up the desktop, the
intuitive interface again
[00:05:17.50] tips tools it's very simple basically, it
takes about a minute to go through
[00:05:21.53] hit next a couple times, just you can take
the defaults for the most part and it does all the work
[00:05:25.71] for you. And i mentioned the tips as well
which help guide the user in case
[00:05:29.75] you have some questions about what each
option does, those are listed at the bottom there.
[00:05:33.79] We've also simplified the disk setup and
package selection, um we do have options
[00:05:37.82] for custom partitioning, but they are hidden
under advanced menu so for
[00:05:42.00] you average desktop user, they can just
select use my entire disk or install on this
[00:05:46.04] partition it takes it from there and just
sets up what we defined
[00:05:50.09] as a best desktop defaults
[00:05:54.28] and the package selection also lets you just
select some packages like firefox, thunderbird
[00:05:58.46] pidgin, various things they may want to use.
The next thing.
[00:06:02.65] The next problem we have in vanilla FreeBSD
is the no XORG setup wizard.
[00:06:06.84] if you boot FreeBSD, this is your Xorg setup
wizard
[00:06:11.02] you get dropped to this prompt, and if you
are a desktop user, you are clueless
[00:06:15.20] to the point and usually calling whoever
your tech support person is to figure out ok that's great
[00:06:19.39] how do I get a mouse how do I get a desktop
this doesn't look like the internet to me
[00:06:23.57] uh that's the first another problem we're
trying to fix through PC-BSD and we
[00:06:27.67] are interested in developing our own tool
called the XORG setup GUI, you know I know
[00:06:31.79] not a very imaginative name, there's nothing
flashy or, but it just works and that's all that matters
[00:06:35.90] again very simple options for a user, most
of them will understand, I have resolutions
[00:06:40.04] color depth, and then you can pick your
driver. THis was a sample
[00:06:44.19] normally that gives you a monitor and video
card info up there as well so if you
[00:06:48.35] doesn't know what they're even running,
they'll get that. Yes. Do people
[00:06:52.53] understand what things like color depth mean
? Most of the time they
[00:06:56.71] just leave it as the default, again we
default to 24 bit so
[00:07:00.90] we just tell him hit apply just change.
Usually the only thing people touch in here is the uh
screen
[00:07:05.08] resolution. Most users get a pretty good
feel what that is because then
[00:07:09.25] when you hit apply it actually lets you test
it and see if you like this resolution and if you ought to
go
[00:07:13.45] bigger or smaller. ""I'm imagining my mother
doing this."" Yeah, yeah, well again and if you find
[00:07:17.63] ways or if you run into little hiccups like
that it's good to give me suggestions on how we can
[00:07:21.82] make it simpler. I mean we can throw color
depth under advanced but you know it's still
[00:07:26.01] basic options so we like to keep it. ..
video driver.. Yeah
[00:07:30.18] video drive now we do auto detect that, so
for example it's so
[00:07:34.36] right now because I'm installing it on an
NVidia system so it'll default to that now if
[00:07:38.40] you're a more advanced user we have the
binary Nvidia drivers, you just click down it gives you the
options
[00:07:42.43] and you can switch between the two. Can you
auto detect
[00:07:46.62] ... yeah, yeah, definitely, and then of
course
[00:07:50.64] other video drivers listed there, again if
you're a little more advanced user you can use VESA
[00:07:54.67] mode, it's that driver, we have an advanced
tab there I don't think I have a screenshot of it
[00:07:58.70] but under the advanced tab we have options
for dual head, so again
[00:08:02.89] if you're a dual head user, I know that can
be a nightmare to setup
[00:08:06.94] in xorg, we make it very simple, basically
it's one check box, enable
[00:08:10.98] dual head, what resolution do i want on my
second monitor, it basically does all the massaging
[00:08:15.02] figures out what driver you got and then
sets up your XORG.conf with those options
[00:08:19.05] and under advanced we also offer refresh
rate options for your monitor
[00:08:23.22] we try and let xorg auto detect those which
works
[00:08:27.24] 90% of the time, maybe 85% I mean it's not
foolproof, xorg's not perfect at
[00:08:31.27] that, so if somebody needs to, they can
still go enter their manual refresh rate
[00:08:35.45] and we've pretty much went through most of t
his here
[00:08:39.51] it basically allows somebody to configure
their display if you have point and click, which they want
[00:08:43.55] it runs by default in 1024x768 with all the
auto detected driver
[00:08:47.56] uh refresh settings, and a lot of users if
they don't know what they're doing just click skip on this
[00:08:51.73] wizard because they're happy they like what
they see on the screen, good enough for me so they just skip
[00:08:55.75] right into the desktop. And it supports some
failsafe mode
[00:08:59.79] we actually do quite a few check when you
boot up for the first time, it detects if it can even start
[00:09:03.82] Xorg, do we have an auto detected configuration that works, if it fails it will
[00:09:08.01] fall back to a few different modes until it
hits basically the most generic VESA 60
[00:09:12.02] HZ refresh rate mode there is, and that work
s usually in every case. It's very rare
[00:09:16.05] to find a system that we can't get that up
and running.
[00:09:20.24] Next problem we're looking at for a desktop
user is networking setup,
[00:09:24.29] many of you probably recognize what this is.
this is your wireless setup in traditional
[00:09:28.30] FreeBSD which again to the home user that's
pretty complicated
[00:09:32.31] take your average windows user and tell them
yeah, go into
[00:09:36.48] pico or VI and set that up, and then have
fun
[00:09:40.52] and so we're trying to solve this problem.
And we've come up with our own network
[00:09:44.55] device manager to help. Basically in PC-BSD
we auto detect all your
[00:09:48.73] networks and wireless devices and we just
set em to DHCP by default and they're
[00:09:52.77] in your tray, and when you double click um
you bring up a tool that lists, OK here's
[00:09:56.82] your cards, it shows if they're active or
not, the little uh
[00:10:00.89] circle in the corner means it's not plugged
in so no active connection and if you double click it
[00:10:04.93] you can bring up additional settings so if
it's a
[00:10:08.96] wireless device, we have a WiFi setup and an
ethernet setup. The WiFi setups
[00:10:13.14] is very simple and intuitive, just point and
click and say, scan for my
[00:10:17.16] SSID, enter my password, and get me on the
net and it does all the
[00:10:21.20] FreeBSD backend configuration by itself,
sets up WPA supplicant, restarts the
[00:10:25.22] network device if it needs to, just makes it
easy for the user to use
[00:10:29.39] but again it's graphical so very simple
point and click most of the
[00:10:33.43] time if you're setting this up for somebody
it's a one time deal you just setup their network and
[00:10:37.46] set it and leave it and forget it and it
just works from there
[00:10:41.65] supports various encryption methods for WiFi
which is important on laptops
[00:10:45.70] another cool thing we have is a tray
application which is a separate app we've written that just
monitors
[00:10:49.72] and sits in your tray just like on a windows
and mac desktop and tells you
[00:10:53.75] here's my WiFi, here's what strength I have,
what's my IP, my MAC address
[00:10:57.95] let's the user know what's going on
[00:11:01.97] so we've taken a look at some of the
problems that I wanted to address today but now we're going
to look at some of the
[00:11:06.02] system modifications we're making to FreeBSD
itself to
[00:11:10.06] make it a desktop. Again we're not a fork,
so we're not changing a whole lot but
[00:11:14.07] I do want to point out some of the things we
're doing
[00:11:18.25] we use a little bigger configuration than
generic just to include some extra drivers out of box
[00:11:22.30] WiFi cards and firmware so it works without
a user having to do a kernel recompile
[00:11:26.34] we also include a lot of packages in the
base system
[00:11:30.36] which again, FreeBSD starts with no packages
unless you select them
[00:11:34.55] having X11, KD4, Nvidia drivers, Flash
[00:11:38.57] 9, right out of the box. Again most things
the desktop user's going to need to
[00:11:42.59] get going in a few minutes. This is
something new
[00:11:46.77] which I wanted to touch on here a little bit
today. We use a custom local
[00:11:50.79] base starting in the new version of PC-BSD
we're not defaulting to user local
[00:11:54.83] I'm going to touch on that in a little bit
here but this is going to open up some new
[00:11:58.84] interesting avenues for us. And we're gonna
look at
[00:12:05.52] the last problem here, is our packaging
system for software, I mentioned before Free BSD has a ton of
ports but what use of it is to
[00:12:09.63] a user if they can't get em installed if
they don't understand MakeInstall or they don't know
what it means to wait
[00:12:13.74] compile or figure out package add then
what's the point, so we're trying to
[00:12:17.87] to make the package manager a little more
friendly here. So let me look through some
[00:12:22.01] of the strengths and weaknesses of ports,
again a ton of available applications for that
[00:12:26.16] but any open source app you want will be in
the ports tree and if it's not somebody's probably working
on it
[00:12:30.33] to get it in right now. It's up to date
pretty currently with most
[00:12:34.52] popular releases of open source packages
like Firefox, Thunderbird
[00:12:38.71] here's a downside though, long wait times
for builds, again
[00:12:42.89] if you run FreeBSD and ever need to use Open
Office you know the
[00:12:47.07] pain involved with compiling something like
that, or even Firefox can take 4 or 5
[00:12:51.25] hours on a more modest system. Tedious
upgrade process
[00:12:55.43] port upgrades, cool, again if you're a power
user, very neat but if
[00:12:59.61] you're a desktop user that can be pretty
hairy trying to go through and figure out what dependency
[00:13:03.63] needs to be updated which ones need to be re
built, might take a day to do it, I mean depending on how bi
[00:13:07.82] your package tree is. Another thing is is's
prone to dependency
[00:13:12.01] link failures, this is a problem desktop use
rs don't understand. When I when they would
[00:13:16.18] install a package, they don't care what
decencies it needs, all they assume is
[00:13:20.37] I install firefox, firefox should work, I
don't care about GTkey I don't care about
[00:13:24.38] they don't know what those are half the time
, it should just work when I click the icon, and
[00:13:28.40] the ports tree is still prone to those kind
of failures, not as often, it does a good job, but
[00:13:32.58] when it happens, it's again a huge roadblock
for a desktop user to get fixed.
[00:13:37.73] a lot of packages won't contain desktop icon
data. When makeinstall
[00:13:41.92] if the user gets that far you're just kinda
stuck at the command prompt going okay
[00:13:46.10] installed, wheres my, what command do I run,
wheres my icons, what's all the different
[00:13:50.29] flags, so that's another downside
[00:13:54.49] for the packages we solved the problem of no
compile times, it's precompiled, so you
[00:13:58.67] packageadd, again no tedious upgrade process
[00:14:02.86] so if you're upgrading your ports through
the portupgrade again you're looking at dependency
[00:14:07.04] choose and possible failures, there's no GUI
driven installation method
[00:14:11.23] on FreeBSD by default, there may be some
ports but again, that's something
[00:14:15.27] the user has to go add first, and may not co
ntain desktop icon
[00:14:19.31] data, some programs do, not all.
[00:14:23.49] Now this is something we've done called PBI,
push button installer, for PC-BSD which is designed to
address
[00:14:27.50] so here's some of the strengths and weakness
es of it, again no long compile times
[00:14:31.53] it's a static binary package, so just
download and ready to go
[00:14:35.71] it's very simple to upgrade, because our pac
kages work a little differently with all
[00:14:39.72] other dependencies and libraries included
within the PBI,
[00:14:43.76] they're not stuck having issues doing
upgrades of various libraries that are
[00:14:47.78] required by your new package, they're in the
re you basically remove a directory and add the new
[00:14:51.97] version, you're ready to go, again includes
all the necessary libraries
[00:14:56.02] and we also have a GUI and command line
interface.
[00:15:00.05] for the PBI system, for the average user,
[00:15:04.09] a downside is a larger total installation
size
[00:15:08.28] PBI firefox, which includes pango GTK all
the libraries, you will have some extra
[00:15:12.32] megabytes, but for this day and age most use
rs don't care, they just want
[00:15:16.38] to work, they don't mind if it's an extra 5
megs bigger than the port may have been
[00:15:20.39] Now we're going to look at some of the
differences here in how we do
[00:15:24.41] libraries, do we depend or do we not depend,
that's really the question here
[00:15:28.59] this is a model of a standard package
[00:15:32.64] running under FreeBSD or linux, which see he
re is you got your base system
[00:15:36.68] and then you have your packages sitting on
top of your base system, and if you notice, there's a lot of
[00:15:40.70] lines connected there, a lot of things
depend on one another, package F needs
[00:15:44.88] C needs B in order to function but J needs F
which requires the ones under
[00:15:48.93] neath the function as well, that's your
typical mode, and of course this is very
[00:15:52.97] simplified, you may have 10,000 of these
with little connections and dependencies every
[00:15:57.01] where. This is what we've done on PC-BSD wit
h the
[00:16:01.20] PBI model, we have given you your base
system which is FreeBSD of course
[00:16:06.57] PBIs and if you notice, they are self
contained now, all they rely on is the base system
[00:16:10.76] you know, just some generic libraries like
LIBC basically, very standard stuff
[00:16:14.95] that doesn't change that often, but packages
are now self contained all the libraries
[00:16:19.13] are inside and they're not touching each
other, Firefox is not depending on
[00:16:23.32] other libraries from thunderbird for example
, they both include their right version
[00:16:27.50] and the desktop is also separate, this would
be KDE
[00:16:31.68] Xorg, these are not, you know, don't touch
your PBIs as well, so
[00:16:35.72] independent of your desktop updates, we can
roll out an update of xorg for example
[00:16:39.76] or an update to KDE or QT and it won't break
[00:16:43.93] your pBI packages, it's not going to affect
them in that way where all of a sudden they're
[00:16:47.95] looking at libraries that don't work or
aren't there anymore
[00:16:52.00] in practice, this is how we do it.
[00:16:56.04] In building the pBI package, first of all
applications are compiled from ports, so we're essentially
piggybacking
[00:17:00.22] off the ports tree in order to build these
packages which saves us a little bit of work
[00:17:04.24] most of you guys have done the work porting
it to FreeBSD in the first place
[00:17:08.27] this is how we build the PBI file, we're
just setting a custom LOCALBASE
[00:17:12.30] this is one way we create them self
contained, so when we build firefox we
[00:17:16.48] set that LOCALBASE to programs firefox
whatever the version is
[00:17:20.55] all the libraries are now linked with that
path in their libraries
[00:17:24.62] so they can find each other and not look
into user local or whatever base we're
[00:17:28.66] using. When it's finished we just compress
[00:17:32.70] all the data with TAR and LZMA so we get a
good compression ratio
[00:17:36.74] and then we take the compressed data and we
append it to a binary
[00:17:40.92] which is our PBI push button installer
binary that includes the GUI and the command
[00:17:44.94] line, so from the user perspective, is't
like downloading an EXE file for example
[00:17:48.98] that's just executable, you run it, it asks
you if you want to install you know, enter
[00:17:53.00] your password, boom, it extracts the data in
to the programs directory and you're good to go
[00:17:57.19] This is what a PBI actual structure
[00:18:01.24] looks like here, again, I kinda touched on
this, we have the loader, binary which sits at the front
[00:18:05.28] of the package so if you actually do a file
on it it'll show up as a FreeBSD elf binary
[00:18:09.31] next we have a small tarball with just some
package details that gets
[00:18:13.49] extracted when you run some commands one it,
it just checks okay, here's the name here's the version,
[00:18:17.51] here's the MD5 sum and some hashes to make
sure the package
[00:18:21.55] archive is uh, the integrity's good of it at
the end there
[00:18:25.57] when you actually execute it for the first
time it goes through and runs a complete check and warns
[00:18:29.75] you if you have a corrupted package before
you try and install it
[00:18:33.79] this is what the actual end user sees,
though, when they double click it, this is all in the
background
[00:18:37.88] the average desktop user don't care about
any of the stuff I just told you about
[00:18:41.92] they bring up an application, we have a nice
GUI,
[00:18:45.95] and we can support custom graphics, what's
kinda cool is you can even pick
[00:18:50.14] where you want to install it now on the
system, you can install apps in your home directory if you
like
[00:18:54.17] tells you how much disk space you have, how
much is needed, hit next a couple times
[00:18:58.18] and you're done, that's again very painless
if any if anyones
[00:19:02.20] coming from windows or mac, this is not
difficult to figure out, and they would
[00:19:06.39] be surprised to find out half the time
they're running on FreeBSD, but uh
[00:19:10.44] again the presentation's everything, so
basically
[00:19:14.46] the point I'm trying to make here is FreeBSD
can and does make a great desktop
[00:19:18.48] PC-BSD is FreeBSD, again we're not a fork,
we're not
[00:19:22.66] messing with the system too much here, we're
just trying to make it easier for the user
[00:19:26.68] so they can use it as a real desktop and we
can push into that market where linux has been trying
[00:19:30.70] to go and take back some of that market
share from them and from the windows and mac
[00:19:34.88] systems as well. Now the one thing I did wan
t to talk about a little bit for more technical
[00:19:38.94] that I didn't have in the slides was the
localbase. Starting in the new release
[00:19:42.95] of PC-BSD 7.1 which is due out by the end of
the month or so
[00:19:46.98] we're switching to a PC-BSD slash local base
for
[00:19:51.16] all of our ports, and this is cool for a
couple reasons, if you're a FreeBSD
[00:19:55.17] user this will be of interest to you. We've
localized everything there so that
[00:19:59.19] user local is now empty. When you install PC
-BSD and go run a package info,
[00:20:03.36] it shows no packages installed, I mean every
thing's been separated out, your desktop is
[00:20:07.40] now not a part of the traditional ports tree
, this is cool because
[00:20:11.44] in the past we were using user local and
when you'd run a package info it would show all
[00:20:15.62] of our packages installed, KDE, XORG
whatever, and then you'd go install
[00:20:19.68] ports, cause a lot of guys, you know they do
n't want to use a PBI, they know what they're doing they
just want to go
[00:20:23.70] run make or add some package, which is great
but the downside was
[00:20:27.74] when we ran an online update or issued
updates we couldn't control what ports
[00:20:31.77] you'd installed or we couldn't guarantee the
y wouldn't break when we did online updates
[00:20:35.96] again you were basically installing stuff in
to the desktop. Now what we've done is you;re
[00:20:39.98] desktop separate, you can run the FreeBSD
ports tree concurrently with
[00:20:44.02] PBIs, simultaneously, they don't touch each
other they don't touch the desktop
[00:20:48.06] so you can use it in effect as a normal
FreeBSD system again, like
[00:20:52.23] it's a brand new fresh install, so if you're
a ports user this will be of great interest to you
[00:20:56.28] and you know, I use it from time to time,
cause sometimes there's a complicated server port or something
[00:21:00.32] we don't have a PBI oven I just want to go
make it an do it
[00:21:04.35] this will let us roll out and issue updates
and you don't have to worry about it clobbering your data on
userlocal anymore
[00:21:08.53] which is a big deal, so that's actually why
we've been so delayed on this
[00:21:12.55] release since FreeBSD 7.1 came out is were
just trying to fine tune and adjust
[00:21:16.59] and get this all working. We actually had to
write a patch to FreeBSD to make
[00:21:20.61] this work, FreeBSD does not play well with
multiple localbases, I found out the hard way
[00:21:24.80] when we went forward with this involving
[00:21:28.85] LDbig and LDelf.so
[00:21:32.86] basically what happened is the hints file we
shared between our localbase and the regular localbase
[00:21:37.05] and uh john here back in the corner wrote a
patch for me which uh
[00:21:41.07] allows us to set an environment very well an
d use an alternate hints file for the desktop versus
[00:21:45.10] your normal ports, which is pretty cool, so
again we're keeping em separate
[00:21:49.13] because when you run a portmake sometimes it
runs LDCONFIG in the background to check
[00:21:53.31] and see what libraries are installed and if
it needs to build em, well not it's not going to try and
[00:21:57.33] libraries in the desktop and accidentally in
clude them because it assumes the libraries
[00:22:01.37] are there in LDCONFIG but then the include
files aren't in userlocal
[00:22:05.42] things like that caused a lot of make
problems but now that's completely separated out
[00:22:09.59] and on your desktop you just have a couple
icons that say make ports or run ports
[00:22:13.61] and it just switches you to that localbase
and you're good to go, so that'll be a new feature
[00:22:17.65] we're gonna tout a bit, because again for
more advanced users who wanna use
[00:22:21.69] dependencies like building ports or are just
ports developers
[00:22:25.87] even will like this cause now they can do
that on PC-BSD without any distraction from
[00:22:29.89] what's actually included on the desktop
[00:22:33.94] but that's just something I wanted to touch
on because that's kind of a whats happening right now with
PC-BSD
[00:22:37.97] but that's actually pretty much it, I mean
that's what we've done to make the desktop
[00:22:42.16] a reality with FreeBSD and you know, we're
growing
[00:22:46.18] and we're doing good, and we're hoping to
improve it in the future, the goal is to get to the point
where you can throw
[00:22:50.23] it on mom or dad's system, they can get on t
he net do email, visit Facebook, send pictures
[00:22:54.27] print, everybody's happy, the world is great
and they're not worried about getting viruses
[00:22:58.45] and they have good speed and stability, so a
gain, I think FreeBSD
[00:23:02.48] there's been a lot of misconception here
that FreeBSD can't be a desktop, well
[00:23:06.49] I beg to differ a bit, you know we have
Macintosh OS 10 which kinda
[00:23:10.52] pulled a little bit there and threw their
own GUI on top boom we have a full desktop
[00:23:14.69] why can't we do the same thing with regular
FreeBSD as the base we don't have to fork it
[00:23:18.70] close or set we can just push traditional
FreeBSD
[00:23:22.73] so, that's all I got for you guys this
morning, thank you guys very much for attending, is there any
question
[00:23:26.91] s? yeah. How many packages do you have
[00:23:30.96] in the PBI. IN the PBI tree? I think we're a
t like 350 now
[00:23:35.01] of just the big ones, Firefoxes, thunderbird
s and a lot of the
[00:23:39.05] GUI apps, there's a lot of stuff in ports
which are command line pearl apps and we don't
[00:23:43.23] make a lot of packages of those, we're
actually we've doubled that since last year
[00:23:47.29] we're building more every year, it takes me
a while I can't just automate it and
[00:23:51.37] san here's a port, turned into a PBI cause
there's actually some user though that has to go into this
[00:23:55.40] what icons do I need, what graphics do we
need, which libraries need to get
[00:23:59.46] copied, how what port options do we need to
use to build it, so I'm usually
[00:24:03.54] doing a few per week and we have a couple of
our developers who add a couple per week and we test em and
then
[00:24:07.55] throw em up on our website for people to
download, and one
[00:24:11.58] thing I didn't mention or show here was the
PBI update process is super simple
[00:24:15.77] I mean if you have a desktop user, it just
notifies em on the tray, hey
[00:24:19.81] there's a new version of Firefox do you want
to apply it yes now, don't click it, it just
[00:24:23.87] removes the old one throws the new one on,
replaces the desktop icons, you're good to go
[00:24:27.91] so again, for a desktop user very simple and
we hope to get to the point where we have
[00:24:31.95] you know a thousand ports, which I would
guess once we get to that point that will be the majority of
[00:24:36.14] the desktop ports, cause a lot of them are
not designed for graphical
[00:24:40.16] use and some of them we cheat with, like
QEMU is a command line interface
[00:24:44.21] but what we can do in the PBI system is we
bundle it with
[00:24:48.24] AQEM which is the graphical front-end to it
which looks kinda like VMware
[00:24:52.42] so when the user installs the QEMU PBI all
of a sudden they've got a nice icon on their desktop
[00:24:56.44] it brings up the GUI they can use QEMU
create VM environments
[00:25:00.48] without knowing any of the command like flag
s, but QEMU is still there if you want to
[00:25:04.52] you know, hack it or what. So, any other
questions?
[00:25:08.70] So by making PBIs self contained, do you
find
[00:25:12.72] that you're replicating a lot of stuff
between packages? Yes
[00:25:16.75] So what does that do your memory footprint?
Uh! I don't
[00:25:20.94] see a whole lot of difference, most desktop
users only have a few apps open at a time
[00:25:24.97] so I'm not seeing a huge loss of memory and
I've never actually had a complaint
[00:25:29.02] from anyone using it saying oh we're running
out of memory or we're going into swap now,
[00:25:33.03] on a system where you've got 512 or even a
gig of ram it seems to be fine, desktop
[00:25:37.06] disk space, yeah it does use a bit more, if
you have Tunderbird and Firefox they both
[00:25:41.24] include GTK or Pango you know, in both, so g
ranted you are going to
[00:25:45.30] use a few megs with each package in our
system, again
[00:25:49.34] with the hard drives growing as quickly as
they are it's becoming more and more of a non issue and
[00:25:53.38] for the desktop user all they care is that
it just works, they don't care if it's 5 megs bigger
[00:25:57.56] I'm actually more concerned about memory,
cause it may not seem like a lot
[00:26:01.62] but I'm stealing from other things. Yeah,
you are, you are, again this is for desktops if you're more
concerned
[00:26:05.64] about memory you might want to go use the
ports tree and that's why we've added this back in
[00:26:09.68] so if you have those concerned you're
welcome to use traditional ports
[00:26:13.72] and packages and not worry about the memory
loss, so it would be nice
[00:26:17.90] and I've been told this doesn't work in Free
BSD but I'd love it, if somehow it would determine
[00:26:21.92] if this library is already in memory even
though it's in a different location on the disk, say
[00:26:25.95] theres an identical match of pango running
between three applications, well it'd be great if they'd
[00:26:30.12] would just use the same library in memory,
way beyond my knowledge though, so
[00:26:34.14] if anyone wants to hack away at that go
right ahead, we'll be happy to use it
[00:26:38.18] but yea, that's a little beyond what, my
scope of what I do.
[00:26:42.22] Any more questions?
[00:26:46.41] No? Okay, great! Well thank you guys
[00:26:50.47] Oh, all right
[00:26:54.49] Yes, yes, we have, I don't have WiFi setup
[00:26:58.53] at the moment but on our website we have a
translation mailing list and then a
[00:27:02.57] poodle web interface where you can go and
translate into any language
[00:27:06.75] you want, I think Japanese is even finished
right now and there is I think
[00:27:10.77] 50 languages listed on there that we support
at the moment, and several of them still need some
[00:27:14.82] work so if you can translate that would be
great but as soon as
[00:27:18.86] you do that, it just when you pick say
Japanese during the installation
[00:27:23.04] the installer runs in Japanese and your desk
top just comes right up in Japanese
[00:27:27.05] it looks it works like you would expect it
to do on a desktop, so we
[00:27:31.10] appreciate as many translations as possible
because we actually see this being popular over
[00:27:35.15] seas outside of America where people aren't
quite as tied to Microsoft
[00:27:39.33] and to Apple, this is very popular, so as
many translations
[00:27:43.41] as you guys can do, or people who speak
other languages want to help with that would be much
[00:27:47.44] appreciated we definitely enjoy having extra
ones available.
[00:27:51.49]
[00:27:55.54] I could uh bring it up here, let me if I
gotta jack here.
[00:27:59.59] some where.
[00:28:03.63]
[00:28:07.81] Yeah, you know actually
[00:28:11.83] don't even thing there is an ethernet
[00:28:15.88] yeah, you've got em but they don't like us
[00:28:19.91]
[00:28:24.09]
[00:28:28.11] Ok, let's see if I can bring up the web here
and show you guys
[00:28:32.11] like the translation interface for example,
it's all web driven so it's
[00:28:36.14] very easy.
[00:28:40.19] So this would be an example of the default
desktop by the way in case
[00:28:44.23] nobody's seen it this is KDE 4.2.1 this is
the beta of PC-BSD
[00:28:48.26] 7.1 we're running here, Hmm, works
[00:28:52.44] Okay,
[00:28:56.62]
[00:29:00.80] Oh, that's just the
[00:29:04.99] letting you know the app was loaded
[00:29:09.16] were talking about changing it to like 5 or
something so it doesn't keep bouncing
[00:29:13.36] That would work too, that would work too.
[00:29:17.38] This is our translation interface. The
address is PCBSD.ORG
[00:29:21.56] 8080:8080 and essentially your languages
[00:29:25.57] are listed here, you just pick a language,
and we upload the strings whenever we
[00:29:29.60] have new translations which need to be
finished
[00:29:33.78] and as you can see Japanese just about done
only has 5 strings left to be translated
[00:29:37.84] according to this, but there's other
languages that u
[00:29:41.85] are a little farther behind here, let's see
where French is at
[00:29:45.88] I haven't checked it in a while so I'm not
sure where were at with a lot of these
[00:29:50.06] but again,
[00:29:54.12] just make a user account, you can register
for your own user account on the website
[00:29:58.13] and you can just start translating, and
other people can help, it's all very shared and
[00:30:02.32] collaborative effort here, but while that's
coming up let me show you guys an example
[00:30:06.50] this is for example PBI files in PCBSD and
another feature
[00:30:10.69] I didn't mention is we embed icon data into
the PBIs now and we're
[00:30:14.87] the first out of all the open source desktop
s on Linux or Unix, whatever
[00:30:19.05] which does this, we actually got the kDE
guys all excited cause we were to plug
[00:30:23.24] to support this, but now, even though these
are executable files they show up
[00:30:27.43] with all their icon data like on another
desktop or other
[00:30:31.62] systems would, here would be an example QEMU
[00:30:35.80] install,
[00:30:39.98] we have some custom graphics, one of our
guts designs these, and
[00:30:44.01] we'll click next a few times
[00:30:48.07] and that's pretty much it,
[00:30:52.09] install, it's just warning me get rid of the
old one first before you load the new install
[00:30:56.12]
[00:31:00.30] you can move them anywhere you want, how
does anyone know where you've put the
[00:31:04.36] Oh, we just created a symlink back to the
programs
[00:31:08.37] directory with the name of the app there to
wherever you installed it
[00:31:12.41] so it's still able to pull up it's libraries
at the default path which works
[00:31:16.60] let's see here. I don't think I have VUZE
installed we'll try that one
[00:31:20.62] Another nifty java app
[00:31:24.66] here we go, so this is what the user sees,
again, just a couple minutes,
[00:31:28.70] and it's done, actually this one will just
be a few seconds and uh
[00:31:32.89] we'll see if this one here
[00:31:36.91] there we go, so French
[00:31:40.96] 432 strings that need to be finished. Again
you can use it if all the strings
[00:31:45.01] are translated but you'll see gaps when
you're running applications or stuff
[00:31:49.05] What's a typical strand, is it just like..
It's just a
[00:31:53.23] fragment of a sentence, or it could be a
word, sometimes it could be punctuation it just depends on
[00:31:57.25] the actual app, how it uses those strings,
so
[00:32:01.30] a few sentences, a couple words a piece
[00:32:05.34] views for example just finished installing.
[00:32:09.53] And it's letting me know it's ready to go
and you can tell it to start the application when I click
finish
[00:32:13.72]
[00:32:17.91] and here we are. It comes right up from
[00:32:22.09] running a java application which is pretty
cool
[00:32:26.27] there we go
[00:32:30.45] but again, what we did here, we'll take a
look
[00:32:34.64] it made icon data for the desktop, it also
[00:32:38.82] threw itself into, trying to think if it
went in here or
[00:32:43.00] vuze down here. this one's a new one I'm
working on, I don;t have all the
[00:32:47.19] icons on yet, but it just throws it in and
you're ready to go
[00:32:51.37] for example Firefox that's a PBI it just
integrates right into the desktop like a
[00:32:55.55] app should. Let me take a peek here and show
you. for the curious
[00:32:59.66]
[00:33:03.77] The color's kinda off here, but
[00:33:07.88] here's the actual applications, so let's
take a look
[00:33:12.01] at firefox for example, that's a common one.
here's our data
[00:33:16.15] we just have some scripts which do the
actual installation um we can
[00:33:20.30] stuff in here for example firefox is a web
browser it's kinda nice if
[00:33:24.48] you can tell it to be the default web browse
r in your desktop, so our scripts set that up for
[00:33:28.66] the user, but the actual data, you know the
libraries are in LIB
[00:33:32.84] makes sense, and then you've got some
binaries that need
[00:33:37.03] to run, in order to function, makes sense,
[00:33:41.22] the beautiful thing is it doesn't leave this
directory, you have a shared directory for it
[00:33:45.41] you can't see em very well but locale pics
maps
[00:33:49.59] that just the data it needs, often we'll
find some of the PBIs will be smaller
[00:33:53.78] than the port the equivalent port, because
what will happen is when you build a port of firefox
[00:33:57.96] it'll install a gazillion apps and it only
needs 10% of them to
[00:34:02.14] run, a lot of them are just there for
building so we can exclude all that, exclude the binary
[00:34:06.33] for GCC or whatever, whatever it's using for
the build make
[00:34:10.52] include relevant, running data
[00:34:14.60] so a little smaller but it is including the
libraries and you're not including all the other garbage you
need
[00:34:18.67] just to build. So that's, that's all it is,
we have a command line
[00:34:22.74] here,
[00:34:26.80]
[00:34:30.81] we can just take a look at what's installed
[00:34:34.85] we have a couple interfaces like this which
just let more advanced
[00:34:39.04] users navigate around the PBI system
[00:34:43.06] So that's how a PBI works
[00:34:47.12] let me see here, close that one,
[00:34:51.12] here's the WiFi manager,
[00:34:55.20] That's kinda what I showed you in the screen
shot here
[00:34:59.27] setup all your
[00:35:03.33] all your encryption as stuff. you know, very
very common for a user if you're running a mac
[00:35:07.40] or windows you should know most of this
stuff to get on the network of you can ask somebody
[00:35:11.46] what's my WEP key, but for desktop
[00:35:15.54] user this is very simple. And here's our
online update notifier down here just letting me know
[00:35:19.59] my systems up to date, you're good to go don
't have to worry about it, and that'll change and let you
know
[00:35:23.64] if something's available for your system, so
here's my nix.
[00:35:27.70] Telling me here's what I've got
[00:35:31.74] Advanced tab, so if you want to get a little
more into it and customize your network
[00:35:35.77] a bit you can PPoE, DNS all those goodies.
[00:35:39.86] I can use 6 gateways, I haven't done a lot
of IPv6 yet I don't have a
[00:35:43.88] access at the house, but yeah, one of the
tools we've written to
[00:35:47.93] again run on top of FreeBSD and make it
accessible to a desktop user
[00:35:51.99] anything else somebody'd like to see
specifically on the system?
[00:35:56.05] I'll show you one thing really quick though
then
[00:36:00.10] the PBI remove tool
[00:36:04.15]
[00:36:08.33]
[00:36:12.35]
[00:36:16.39] Ok, this is checking for updates and right
now it's checking the PBIs to see if there's any available
[00:36:20.43] the delay might be a bit because the
server's here in america but again
[00:36:24.62] here's your list of pBIs you know add remove
very simple.
[00:36:28.64] and we do some other stuff here, we have
optional components, parts of the system that we
[00:36:32.70] do not install by default because a lot of
users may not want them
[00:36:36.76] if you have source code you can just add it
right here, so if you don't even know how to use port snap
[00:36:40.81] or CVS we can take care of that for you
[00:36:44.85] KDE which not everyone will want but some
people do so we offer them as options
[00:36:49.04] right over here, and then just minimal
configuration stuff
[00:36:53.06] custom temporary directory for downloads if
you've custom
[00:36:57.12]
[00:37:01.31] so that's pretty much how it works I mean at
this point
[00:37:05.33] it boots right up to a desktop that looks
just like this, this is pretty much a default install
[00:37:09.38] I just did here a couple days ago, and the
user's able to go from there
[00:37:13.43]
[00:37:17.61] we've written our own system tool as well,
which shows you what's actually
[00:37:21.69] going on under the hood, see it's running
FreeBSD 7.1 stable
[00:37:25.71] information about the hardware, set some
kernel options
[00:37:29.79] fetch your source if you wan to get a little
more up to date one then
[00:37:33.82] the tarball we include you can run portsnap
or CVS up right here
[00:37:37.83] and then splash screens for the boot up if
you want to use something and not see all the
[00:37:42.01] kernel messages.
[00:37:46.08]
[00:37:50.10] KDE also supports 3D acceleration and stuff
now for the desktop
[00:37:54.16] which is really cool so you get those compiz
vista like effects on eyecandy
[00:37:58.22] which is pretty neat, I don't have it enable
d here because I'm not running at my native resolutions
[00:38:02.24] for the projector so I can't show that off
at the moment but
[00:38:06.42] anybody else have any questions?
[00:38:10.48] Cool. Well, thank you guys very much for
coming and listening
[00:38:14.50] I appreciate it and any way I can help
please let me know
[00:38:18.55] I'm easily available on the web, so
[00:38:22.74]
[00:38:26.82]
[00:38:31.00] Still checking for updates, like I said,
it's back in the US so maybe we need to get a server
[00:38:35.19] over here in Japan somewhere to make it a
little faster
[00:38:39.38] Do you support anything other than x86
hardware?
[00:38:43.56] AMD64, those are the only 2 builds we do.
[00:38:47.74] So.. AMD64's not for me.
[00:38:51.93] yeah, the only downside I'll mention about
the AMD64 is we are still messing the
[00:38:55.94] drivers for it. We have flash 9, works on
AMD64 so that's cool
[00:39:00.12] but if you want Nvidia 3D acceleration
[00:39:04.14] talk to me, we have stuff for you to fix in
the kernel
[00:39:08.20] there's a couple things that need to be
addressed still, actually Nvidia has told us, you know as soon
as you get
[00:39:12.24] these we want to give you this driver
because it will run better than on linux, we're talking SLI
support
[00:39:16.42] you know, all the dual head, all the pretty
stuff, so they're real eager
[00:39:20.51] to push it out, and I think there was a list
of 5 things that need to be addressed and
[00:39:24.54] four of them are done i believe. There's
just one function that needs to be implemented
[00:39:28.59] and they'll be able better support than on
the linux side so
[00:39:32.61] if anyone knows a little bit more about
kernel development than me and wants to tackle it go right ahead
[00:39:36.65] cause that's it NMAP functionality is a
little beyond my head, cause that's
[00:39:40.83] my favorite, so.
[00:39:44.85] Yeah, yea, matter of fact you guys may want
to bookmark this URL
[00:39:49.02] here.
[00:39:53.20] It's the first one on my list here, This is
it right here
[00:39:57.40] what's needed for
[00:40:01.58] to fix all the Nvidia support for AMD64 and
to improve it on the i386
[00:40:05.78] side, so you can see it's Alan ***, fixed a
few
[00:40:09.97] bugs, this is the big one, NMAP importation
that's the one
[00:40:14.15] we really need to get AM64 out and to give
us the huge boost in performance
[00:40:18.21] we had an intern this last summer this may
be of interest to somebody here
[00:40:22.25] who worked on the VMAP like interface for
the kernel, and wrote some patches
[00:40:26.43] and they're in our subversion repository but
nobody's committed em yet, we just need somebody to
[00:40:30.46] look, clean em up, determine that they're ok
and throw em in. I
[00:40:34.47] I've run and built with systems running it,
so it doesn't cause any problems that I can detect
[00:40:38.53] but again, I need a kernel developer, somebody to look at it and really you know
[00:40:42.73] run it through and make sure it's good to go
[00:40:46.75] these three things here, already implemented
.
[00:40:50.80] and there's a whole list here with back
links and information and the video guys
[00:40:54.84] want to create like an 8 page document on
heres what we need in FreeBSD here's why
[00:40:58.90] we need it, here's how it has to be
implemented and then we'll be happy to support you.
[00:41:02.95] so, but aside from that the AMD64 port runs
great
[00:41:07.14] looks pretty much identical to this
[00:41:11.22] cool. Yea if you want to bookmark that
address or you can just pull it up
[00:41:15.25] on the wiki.freebsd.org site it's right on
the main page there at down to the bottom
[00:41:19.30] so there you go
[00:41:23.36] anybody else still writing that address
down or can I close this up?
[00:41:27.41] good deal, well thank you guys very much, I
know lunch is in about
[00:41:31.60] 5 minutes, so, you guys are welcome to go
grab some.
[00:41:35.79]
[00:41:39.97] There we go. Thank you guys.