Ports

Ubuntu Open Week - Ubuntu Ports - Sat, Dec 2, 2006

09:04   jbailey = Introduction =
09:04   jbailey Hello, and welcome!  My name is Jeff Bailey, and I'll be the source of the electrons flying across your screen for the next hour!  This is, I believe, the final session of the Ubuntu Open Week series.
09:05   jbailey A bit about myself.
09:05   jbailey I got involved in the Debian world in 1999 because of the Hurd.  I'd been using and hacking on the Hurd for sometime before that
09:05   jbailey and Marcus Brinkmann wanted someone to run the buildd so that he could focus on kernel work.  I ran the buildd for a while and
09:05   jbailey sometime after that actually made it through the Debain New Maintainer process.  I still do the nightly Debian Installer snapshots
09:05   jbailey on ia64, but in the past have done them on sparc and hppa.  I participated in porting d-i for arm and alpha as well.
09:05   jbailey Upstream, I did some work in the 90's on helping with the port of GCC to SCO OpenServer and on porting glibc to Solaris 2.6.  I've
09:05   jbailey done other non-porting things, too, but that's not important right now.
09:06   jbailey In Ubuntu land, I do porting work for hppa, ia64, sparc and powerpc.  I am an Ubuntu core-dev, and worked on the Distro Team for Canonical
09:06   jbailey for about a year.  I still partcipate in toolchain work.
09:06   jbailey ObDisclosure:  I am employed by Canonical and manage the operations side of the technical support organisation as well as the standard
09:06   jbailey do-everything that comes with being in a relatively small company.
09:07   jbailey For those of you who are interesting in the Hurd, btw,
09:07   jbailey I gave a talk on that in 2003.
09:07   jbailey Not much has changed:
09:07   jbailey http://www.linuks.mine.nu/irc/hurd/ =)
09:07   jbailey http://ukai.org/d/index.cgi?2003-06-30-hurd-talk
09:07   jbailey = Definitions =
09:07   jbailey * A 'ports' architecture:  This is an processor/OS combination that is not supported directly by Canonical.  It has a few characteristics:
09:07   jbailey    * It is not mirrored.
09:07   jbailey    * If it's broken at release time, it will not block the release.
09:08   jbailey    * If it develops a critical security hole, it's up to the community to come up with a fix and get it in.
09:08   jbailey (See?  Three can sometimes be a good number)
09:08   jbailey I see lots of people joining, I'd like to refer you to the log files in the topic if you're curious.
09:08   jbailey * Soyuz: The part of Launchpad that actually builds and houses the distribution.
09:08   jbailey * Kumquat: small oval citrus fruit with thin sweet rind and very acid pulp
09:09   jbailey (Some of this next section is pre-history for me, so sorry if I have it slightly wrong)
09:09   jbailey = hppa, ia64 =
09:09   jbailey The two initial ports that came about were hppa and ia64.  These were largely pet projects by LaMont, who wanted his
09:09   jbailey favourite architectures on the release schedule and with the community of Ubuntu.
09:09   jbailey The ia64 architecture is not that interesting as a port, in that it's well supported by a large corporation and a target for a number
09:09   jbailey of major distributions.  We mostly inherit working things from upstream for this now.
09:09   jbailey Note that this isn't to say that it's not interesting as an architecture.
09:09   jbailey But just that in general we can expect it to work.
09:10   jbailey University students everywhere look at the Itanic and study it.
09:10   jbailey And make presentations at the GCC summit and OLS.
09:10   jbailey For those interested in Itanium specifically, I recommend googling for "gelato"
09:10   jbailey hppa on the other hand is an interesting challenge.  While hardware is currently still available, it won't be soon.  It was
09:10   jbailey also a bit of a technological anomaly in terms of stack handling, atomic operations and such.  hppa wasn't able to participate
09:10   jbailey in the edgy release, and is now struggling to re-enter the archive with Feisty.
09:11   jbailey hppa is a bit of a pet project of mine, specifically because it *doesn't* have great upstream support.
09:11   jbailey Although it's used in production web servers and such in a number of places.
09:11   jbailey There's also some people involved with each port that are notable:
09:11   jbailey == LaMont Jones, the ber-porter ==
09:11   jbailey If you've been involved with Debian at all, you've probably encountered LaMont.  He's only a little bit scary,
09:11   jbailey in the way that I recently handed him a set of PARISC code in hex, and he was able to tell me what the stuff meant.
09:12   jbailey = amd64 =
09:12   jbailey amd64 was the next port that came along.  amd64 was introduced with Hoary, primarily by Tollef Fog Heen.  amd64 was unusual in
09:12   jbailey that from the beginning it was sponsored by Canonical with the intention of being fully supported.
09:12   jbailey Since it is fully supported now, the support for it has grown much beyond just Tollef now.
09:13   jbailey == Tollef Fog Heen ==
09:13   jbailey Tollef is a member of Canonical's distro team.
09:13   jbailey (I had something witty in here, but he knows where I live)
09:13   jbailey = sparc... promoted! =
09:14   jbailey The sparc port was the brainchild of fabbione.  He created this in his spare time on his equipment at home, building just main.
09:14   jbailey One of the challenges of building a new architecture is the churn that we face during the development cycle.
09:14   jbailey I think there are generally 3 build boxes per architecture.
09:14   jbailey And all of those tend to be really fast boxes.
09:14   jbailey Sparc attracted some attention by others because it was one of the first to drop pre-ultrasparc support.  This meant that a number
09:15   jbailey of legacy items were dropped.  It also was one of the first ones to incorporate David Miller's work on the Niagara chipset.
09:15   jbailey For Dapper, Sparc was promoted to being a primary architecture, is mirrored and has full commercial support by Canonical now.
09:15   jbailey So again, although Fabio did the initial port work for this, support for it has spread out a bit beyond him.
09:15   jbailey Not much, as commodity Sparc hardware can be a bit harder to get.
09:15   jbailey Some universities have extras, though, that they don't mind students playing with.
09:16   jbailey == Fabio Massimo di Nitto ==
09:16   jbailey Fabionne is our Italian Stalion.
09:16   jbailey = Community =
09:16   jbailey So, umm.  What's the point, you ask?
09:16   jbailey Anyone?
09:16   jbailey Excellent!
09:17   jbailey (sometimes you have to be your own plant)
09:17   jbailey The point is that Ubuntu is a community distribution, of which Canonical happens to be the primary sponsor.  Under the guidance of the
09:17   jbailey Technical Board, the Community Council, and of course the SABDFL,  community members are free to promote their own ideas within Ubuntu
09:17   jbailey and have grown and changed Ubuntu in great ways.  The laptop testing program was largely community driven, usplash, and the xen kernels.
09:17   jbailey The documentation team, artwork, translations are all community driven.
09:17   jbailey The ports architectures are where community folks can get involved with their favourited hobby systems.  Most of the world is running
09:17   jbailey Ubuntu on ia32-based systems.  But let's say you wanted to put Ubuntu on your Linksys or Palm Pilot rather than openwrt?  A port is one
09:17   jbailey of the places you could start.
09:18   jbailey Even in general, if we look back at what Linus promoted Linux as in the first place.
09:18   jbailey I don't have the quote handy, but wasn't it something like when men were men,
09:18   jbailey sheep were men,
09:18   jbailey and device drivers were running scared?
09:19   jbailey Yes, please do ask questions as we go.
09:19   jbailey About half of the talk so far is scripted, and have is typed.
09:19   jbailey So it's easy to inerrupt. =)

<ma1kel> How do you get support if want/are starting a port for ubuntu?

  • I guess support is a tough question there. I will cover how to actually get one started shortly. In fact. How 'bout now:

09:20   jbailey = How to start one =
09:20   jbailey The first thing you'll want is:
09:20   jbailey == People ==
09:20   jbailey * Kernel
09:20   jbailey * Toolchain
09:20   jbailey * X
09:20   jbailey * Porters
09:20   jbailey * Community
09:21   jbailey Part of the trick is that when building a port, you need to make sure you have the skills available to you to make it happen.
09:21   jbailey Surprisingly, these are not as hard to come by as it seems.
09:21   jbailey On the kernel side, upstream folks are often willing to back you up, and in many cases may be running Ubuntu on their primary machines.
09:22   jbailey When I say toolchain, I generally mean compiler, debugger, linker, and associated tools.
09:22   jbailey This actually tends to be the area where it's harder to find people.
09:22   jbailey Just that GCC moves so quickly that it can be harder for community folks to keep up.
09:22   jbailey We have a couple things going for us here.
09:22   jbailey (ppc question queued up)
09:23   jbailey One is, of course, the Debian support.
09:23   jbailey The other is that if it actually builds, there's probably someone who cares about it.
09:23   jbailey The trick is getting those people integrated into the Ubuntu community such that if there are specific things that need doing, that they get into Ubuntu's gcc, glibc, etc.
09:24   jbailey X of course depends on whether you need graphics at all.
09:24   jbailey The porters are the folks who will go through and beat on softare until it actually works.
09:25   jbailey If we take an example from hppa for instance.
09:25   jbailey Every other architecture out there by default initialises it's locks to zero.
09:25   jbailey So, let's say you forget to do a pthread_init.
09:25   jbailey But you've made the variable either a class member, or global.
09:25   jbailey So it's initialised to zero by default.
09:26   jbailey On every other architecture, that will essentially be an initialised lock by accident.
09:26   jbailey On hppa, 0 is locked, 1 is unlocked.
09:26   jbailey So you'll deadlock right at startup.
09:26   jbailey That's a simple example, but it's the type of things that porters have to take care of.
09:26   jbailey Not only in the distro, but struggling to get the patches for these things accepted upstream.
09:27   jbailey Many upstreams take some convincing that just because it works for them doesn't mean it's a bug.
09:27   jbailey And ultimately, you want a reaonsably strong community.
09:27   jbailey (I guess that was the upstream contigeant leaving?)
09:27   jbailey =)
09:27   jbailey The community are the people who are going to give you feedback.
09:28   jbailey It's amazing how nice it is to see people using it, filing bugs and knowing that the work you're doing there is useful to someone.
09:28   jbailey The next thing you'll want is equipment and/or emulators.
09:28   jbailey Although right now all of the ports are built on standard hardware.
09:29   jbailey I'd like to see us begin to look at using QEMU for small systems that will never really get into the multi-gigahertz range of speed.
09:29   jbailey Without proof so far, I believe that a nice dual 4ghz machine running qemu ought to be able to out-perform your Nokia 770 for building things. =)
09:29   jbailey Building a distro from scratch isn't hard, but it does require patience.
09:30   jbailey And it's an undocumented process.
09:30   jbailey For this, it's probably useful to enlist a core-dev.

<ma1kel> What kind of systems are you thinking about?

  • arm, m68k, powerpc-embedded, mips come to mind. arm in particular is pretty common in things like palm pilots, nokia handhelds, and telephones. m68k is surprisingly popular in medical devices. We tend to think of it as an old amiga chipset, but the new coldfire systems look to be pretty nice. mips is the linksys equipment.. ppc-embedded is your standard ppc stuff, but the calling conventions are optimised slightly for the embedded applications. I can talk about ABIs and calling conventions outside of this talk if folks are interested.

<sid> Sparc isn't that popular...comparatively to other architectures. How did Sparc get such good support from Canonical/Ubuntu, did Sun pay Canonical? If not, how does Canonical benefit?(where they wouldn't benefit from supporting another architecture)

  • While I don't know the details of the business relationship, I think that Mark Shuttleworth and Jonathan Shwartz(sp?) standing on stage at the Sun One conference makes a pretty good story. =)

<samgee> Don't you always need the real hardware because of possible bugs in qemu?

  • This is a slightly disputed topic. From processor rev to processor rev there will be bugs in the system, too. The challenge here is to decide when it's good enough. Almost all of the major chips: ia32, amd64, powerpc, sparc have had third party knock-offs at some point. And even themselves have had a pile of revisions. The act of producing the code in gcc can push the emulator, but that's what a testsuite is for. I generally believe that it works out fine, and doesn't tend to produce code that's so far off of the mark that you can't work around the odd emulation bug.

    If a qemu port is fairly new or underused, I would probably be inclined to do an initial run of, say, kernel, X, gcc, glibc bootstrapped on real hardware and on the emulator. If the resulting binaries have compatible assembler, then bugs that come up are more likely to cause crashes than to cause corruption. Maybe toss MySQL and Mozilla in there for large C++ applications. But it's the type of things that I think can be verified to the "good enough" level relatively easily. And hey, usually the QEMU porters would love bug reports too. Wink ;)

09:38   jbailey More on the how to start a port:
09:38   jbailey Once you have the thing up and running and working with 5 or 10 of your closest friends, you'll need a place to publish this.
09:38   jbailey This, I think, is the riskest step for a new port.
09:38   jbailey As someone who's had his DSL slashdotted twice,
09:39   jbailey once for running a hurd-based webserver there.
09:39   jbailey once for having  an supposedly non-disclosed Hurd archive there.
09:39   jbailey *sigh*
09:39   jbailey You need a place where you can put it that, if it *does* turn out to be popular won't keep you from putting it up.
09:39   jbailey or from using your line.
09:40   jbailey For those curious: No, slashdot doesn't tell the admins of a site before they get posted.

<samgee> Can it be a problem that an emulator is slower than the real thing

  • If you can get Hardware that's a decent speed, you don't need the emulator. But if you're targetting a linksys or a palm pilot, chances are that's the commodity hardware that you're going to have around. Sure, you can buy a desktop machine that's a 1.1 ghz ARM system. But last I checked they were about three times the price of a desktop. I think that ia32 machines are now in the ~4ghz range? I don't know where current amd64 / em32t machines are. But I'd be surprised if they weren't there too. If your emulator is faster than a 1:10 penalty, you've won with comodity hardware. Or even better, you could buy three of them. Or dig up spares at your friend's house.

[ma1kel] is there anyone working on an ubuntu for mobile phones?

  • a bit off-topic, I don't know of one off hand, but there's been interest in an Embedded Ubuntu target for some time. Part of the problem is defining "Embedded" Embedded to one person means wearable computing. Ultra-low power, usually an 8 bit processor that gives off no heat and runs on a watch battery. Embedded to another person can mean an appliance or such that sits in 1u rack, or inside a fridge. (Off-topic, I saw a $15000 fridge when I was looking for one that had a full web browser on the inside of it. Phear) To do a mobile phone, you'd have to decide what you were targetting. Things like the Motoral A780 have a half to them that is Linux, but that doesn't control the GSM side. I suspect Federal regulators in the US and Canada (and whatever they call them in Europe) would think really poorly of people being able to do all the control of the radio antennae in free software. We have that problem now with wireless cards already in Linux.

<sid> What is the relationship like between Debian GNU/Linux and Ubuntu Linux-based operating system with regards to PORTs, ie if someone wants Ubuntu on their arm device(ma1kel's cellphone), should they start porting Ubuntu..or just use Debian since their arm branch is already active and kicking?

  • It depends here on what you want. The Sparc port wasn't really bootstrapped so much from the Debian one, although they share many things back and forth. Ultiamtely, you're going to win with the Debian stuff, because those pieces are already incorpoated into glibc, toolchain, kernel and installer. However, with hppa, we dropped linuxthreads before they did. There's an ABI break there, so Debian hppa and Ubuntu hppa aren't binary compatible. (This will fix itself after Etch releases and Debian will take the hit then) But with Arm, for instance, you might decide that you want to go with EABI. Or with MIPS to go with n64 or nubi? I can't remember all of the 6 or so ABIs that MIPS has as an option. In which case, the existing Debian stuff isn't going to help you at all. I think it's often worth looking at a new port as really a time where you can say "How can we do this different, or not encumber ourselves with things we had to go through the pain of learning before"

09:49   jbailey I see we're close to the end, so probably best to dive in to PPC in general.
09:49   jbailey Earlier on:
09:49   jbailey <sid> QUESTION: Is PowerPC no longer and official build for Ubuntu?
09:49   jbailey <ma1kel> QUESTION: Ubuntu and PS3?
09:49   jbailey At this time, ppc is still an official build for Ubuntu.
09:50   jbailey A spec was raised at the Ubuntu Development summit in Mountain View, California with the proposal to drop support for the PowerPC architecture.
09:50   jbailey That is to say, move it to being a community supported architecture.
09:50   jbailey This is based on a few things:
09:50   jbailey 1) Low community participation in powerpc.
09:50   jbailey - Few install reports during the development cycle.
09:51   jbailey - Few people jumping up to look at bugs on the port, such as the R300 crashes.
09:51   jbailey 2) Low download rates.
09:51   jbailey - I don't have the numbers handy, but as a total percentage of people downloading it, ppc has fallen to half what it was a year ago.
09:51   jbailey 3) Difficulty in obtaining new hardware.
09:52   jbailey - PowerPC is certainly a strong and viable architecture, but with Apple not producing desktop boxes anymore, there will be fewer systems out there in developers hands.
09:53   jbailey - New embedded systems tend to be mips and arm, rather than ppc.  Unless you happen to be porting to a Cisco Router. =)
09:53   jbailey The spec isn't finalised, and is sort of in a limbo stage right now.
09:53   jbailey I don't know off hand which way the decision will go.
09:53   jbailey But the Sony Play Station 3 uses a variant of the Ppc chip known as the Cell processor.
09:53   jbailey For those who don't know, the cell processor is amazing pile of crack just waiting to be smoked.
09:54   jbailey You have a ppc main chip, and I think 8 DSPs on board.
09:54   jbailey So the main chip can copy things into private address space for the DSPs to deal with and return values.
09:54   jbailey It's an interesting hack in that the DSPs don't speak powerpc assmebly.
09:54   jbailey And the DSPs also don't have access to main ram, or the cache.
09:54   jbailey Anything going to them has to be fed in explicitely and written to work there.
09:55   jbailey So that's a possibility.
09:55   jbailey PS3 systems are *expensive* and also not a sure thing.
09:56   jbailey I know that they're shipping now, but it's not clear how a Linux community is going to take to them.
09:56   jbailey At this point, I haven't seen anyone saying "I want to port Ubuntu to this thing"
09:56   jbailey I suspect the people willing to wait in line for it weren't waiting so that they could format it and not play their games, y'know what I mean? =)
09:56   jbailey that said, what do I think of ppc as a community arch?
09:57   jbailey I think that it will certainly fair well for at least the short term if it goes that way.
09:57   jbailey I still do much of the heavy lifting on glibc, for instance, and my main system is a ppc box.
09:57   jbailey I know that several of the core-devs still are using their PPC laptops.
09:57   jbailey But inevitably, these will all get replaced with newer and faster systems over the next few years.
09:58   jbailey So if manufacturers don't produce something that devs want to use as their primary system, usage will eventually dwindle.

<sid> Which is more popular with regards to downloads and participation(hacking) on Ubuntu sparc or powerpc?

  • No idea, sorry. The numbers I saw were only ppc against the rest of the archive.

09:59   jbailey Quickly, the last three steps in becoming a port:
09:59   jbailey Once you have a public archive, you need to start talking to the tech board.
09:59   jbailey Some of it, is that you'll want to start using malone for bug tracking.
09:59   jbailey And eventually move towards using Launchpad for your buildds.
10:00   jbailey That way your packages and versions will be reported correctly in Soyuz.
10:00   jbailey Launchpad is currently not completely setup for dealing with architectures hosted outside of the CAnonical data centre.
10:00   jbailey But it's certainly in the model.
10:00   jbailey So how it works at that point may vary by the time you get there.

<ma1kel> Which architectures do you think will grow more popular and what is Ubuntu currently ported to? (architectures)

  • Currently ported to: i486 (called i386), amd64 (includes em64t), ultrasparc (called sparc, includes ultra3, and the niagara chipsets), itanium2 (called ia64), powerpc (includes ppc64), and hppa. I'd like to see the i386 distro move to be i686 and up, in order to breath a bit more life and speed into it, but I think that we'll start to see the decline of that in the next 3 years. At this point, there isn't alot of good reason for Intel or AMD to invest new technology into building those, and I can see them pushing the amd64 systems onto their smaller fabs. amd64 is definetly on it's way up. I'm not clear where Sparc will go. I've been surprised by sparc. Where everyone else has become either high-end data centre (alpha and hppa get swallowed by ia64, they drop workstations) or become smaller (mips, arm, m68k, classic i386 chips) Sparc and ppc have managed to stay midrange. ppc took a blow because of apple dropping them, but along comes the ps3. sparc stands in it's own class, though. Sun produces Sparc workstations, servers, etc. and still manges to sell a pile of them. I believe there's someone even still producing Sparc laptops. (They were for the military) It's not a position I can see them staying in forever, but I don't know if they have something planned where someone will take them and use them in a game console, or if you'll suddently see them enter into the embedded space. The i386 legacy has got to go at some point, and I don't know how the break will be made. Intel wasn't succesful with the Itanium, and doesn't seem to be trying anymore. And if they can't do it with *their* resources...

<LKRaider> other than porting the kernel and toolchain, is it not expected that all the packages on main work with a port?

  • Sort of. =) Where you'll often see complications is either:
    • 1) Poorly written code. 2) Multimedia applications with processor-specific hacks.

    I've covered #1 above. #2 takes a moment to think about. I pick on multimedia, but it can also be things like Virtual Machines. On of the things, for instance, was when I did some porting work on the Boehm Garbage collector for Sparc. At the time, Sparc didn't have an asm label to help point to the top of the data segment. So other tricks had to be used. Jakub Jelinek from RedHat solved that problem by adding the pointer, but otherwise different hacks had to be used. So there was a bunchf of generally untested fallback code that only got used on Sparc. You'll see the same in mplayer. The traditional C routines tend to not be fast enough because C is too non-specific to render the routines with the right constraints into asm. So you'll see a smattering of asm to do the transforms.

<ma1kel> Can I see Ubuntu on my toothbrush anywhere soon in the future? :)

  • Err...

<linuxboy_> What are the difference between i386 and i486 ? instructions ?

  • GiYF for the full answer, of course, but I'm assuming the question comes from "why is our i386 distribution really i486?" In that particular case, it comes from i486 not containing the atomic insturctions needed to make multiprocessing work.

    [linuxboy_] yeah and in comparison with i686 ....... So in particular, there's two instructions: "test and set" and "Compare and exchange", which are used to make syncrhonisation work. Test and set, says to look at an instruction in memory, see if it's a particular value and change it. If you do that in a tradition C fashion:

    • if (foo) {
      • foo = 1;
      }

    Then you have the small problem that between the test and the setting, the other process could've changed the value of foo. test&set is a magic instruction that promises that this all happens in one step.i686 then added superpages, So rather than 4k pages, I think you can get 4megs I think? I don't do alot of direct ASM work. i686 optionally added an instruction called CMOV The optionally is the part that kills us here. When writing the specs, intel said that you didn't need to include some instructions that would be hard to build in. So when via made a knockoff, they didn't include it. For CMOV details, see: http://www.x86.org/secrets/opcodes/cmov.htm

<sid> To add to linuxboy_'s question 386/486/586/686...all those packages seem to work on my system...not sure what the differences are between them.(which kernel/packages should one chose when there are 386/486/586/686 stuff listed)

  • The trick with the different kernels is that the advantage of running an optimised application is usually very small outside of the multimedia space. Sure, if you're doing video, you want mmx, or ppc970 specific instructions. (This is, incidentally, which other processors don't need to play the megahertz race so much as Intel does. the ia32 chipset really isn't very well done. Even Intel admits that, that's why the itanium exists) In your kernel, which is always running, flipping things around, dealing with device drivers, devices, video, etc. you can see some neat advantages to how it handles everything when it can assume a higher processor level. It's also worth noting that we install the libc6-i686 package by default. So your code C library, math functions and string functions are all optimised. That usually makes all the difference you need in an application if you're not particularily intensive with video/memory/etc.

<ma1kel> You said you guys have a problem with wireless cards, do you think that there are gonna be the same sort of problems with other things in the future?

  • Yup. The problem is that as soon as you connect to the world outside of yourself, you have to play by other people's rules. The question is the risk of what happens if you accidentally get it wrong. If you spew crap onto the Internet, your ISP has to filter it or you take the world out. Luckily, we had the Internet before the rest of the world, so we win. =) But with wireless devices, you risk blocking out emergency frequencies, or air traffic control and the like. So from a pure safety point of view, regulators are going to want to make that as closed as possible. So once we get Linux into cars, and take drivers out of them. (something that I see as inevitable, in both cases) Will they let us hack on the software that goes in? I think it's unlikely. But how do we keep that from happening? Advocacy, and getting it right the first time. If we can be the first players in the market. If we can push the envelope to show that our software is actually *safer* Because there's no hidden terrorist plots in there. Nothing to suddenly point all of the cars full-speed towards Niagara falls. That in fact trusting the community is a better option than not.

<sid> What is your favorite low power architecture(embeded?), what is your favorite high power architecture(for a desktop)? Would you chose a different one for a server? What is your favorite to hack on? Should we support Sparc since they did an awesome thing and made most of their CPU specifications *GPL?

  • Lemme start with the Sparc question first. I think Sun deserves all of our support right now. As a company they're openning up to the community in incredible ways, between Java, embracing Linux, and the history they have. I didn't know that their process specs were GPLd, but they've traditionally submitted their specs to the IEEE, anyway. If they didn't invent openfirmware, they certainly embraced it, which is also nice. I mentioned before that I don't know where they'll go. It's a bit of a mistery to me what their plans are. As a service company, they do an excellent job. As a fully integrated system, they provided from the edge to the core in some really seemless ways. So by openning their systems up under GPL, they're really given us a treasure chest. So I hope that as a company they find their way to continued success. My favourite systems, hmm.. I think I fell in love with ARM with the netwinder. If nothing else because it was *so* *cute*. But in general, when I'm looking for systems to hack on, I'm usually looking for a challenge. As a hobbiest, I can't hope to keep up with the professionals. And now that ARM has taken off (ARM, StrongARM, Xscale), there are a pile of people hacking on it professionally. Since I'm interested in low-level pieces, it means that I really can't keep up with development and contribute meaningfully to it. So if I were to start hacking on something myself, I would probably dig out a MIPS system. However, if I were to do an Ubuntu ports, I 'd probably start with ARM. Explcitely because the upstream work is largely done. For favourite high powered architecture, I like the Itaniums. I have one of the last models of ia64 that was made by HP (not at my house, please don't break in here. It's *noisy*. I keep those things at data centres) When Apple made their announcement that they were moving to an Intel chip, I had really hoped it was to the Itanium. I had hoped that it meant that Intel had finally sorted out their production and heat problems and were able to push this thing out into laptops. For ia64 to get popular, you'd need to convince some sort of platform shift like that. A captive market willing to take on something interesting, but for which you can guarantee that software would get written. I like it because they've taken risks with the design of the chip that you just don't see outside of academia. They thought large, they were willing to make it big. They were willing to say "This will not be in your toothbrush anytime soon" And in reality, ia64s aren't performing anywhere near their capabilities in Linux because as yet, we haven't figured out how to teach the compilers to do the work yet. But that will come. But again, I don't hack much on ia64 for the same reason I wouldn't really hack on Arm. Too big, too commerical for me to follow along. I have trouble tracking the development -- I don't have the energy to contribute to it. So lately I've been hacking on hppa. It's a great community of people. It's a neat architecture, and still leaves me lots of room to learn. And frankly if I take on a task, I can complete it at the speed I want. In general, the architecture is good enough that it works. So anything people want to cut their teeth on is probably something that noone else is touching. It's a neat space to be in.

<sid> Comparing Sparc and Itanium...what are the restrictions legally? As far as making an emulator say..or forking and making your own chip(hypothetically, I imagine it costs milllions of dollars) you can fork Sparc(there is a company that is doing that, since it's GPL'd. But can you do the same with Itanium? what are big legal differences between Itanium and Sparc..do you have more freedom with Sparc(as far as ""trusted computing"", or what I call treacherous computing since you can just control your chip fully with sparc.

  • As I am not a member of the Bar in Canada, I cannot give you a legal opinion. But I can tell you a bit about how I understand the law. As there's a published written specification, I believe that you can produce an implementation from that specification without restriction, subject to patent encumberances and copyright restrictions on your target code. Copyright is easy if you work directly from the published document. Patents is a whole other area of suckage, for which I will refer you to groklaw. +) Itanium is a fabulously complicated architecture. Doing a qemu port for it would be an interesting challenge. I suspect that you'd find yourself extended qemu's internals quite a bit to accomidate it.

<sid> What do you think about the movement of ""trusted computing"" and the involvement of the MPAA/RIAA and Microsoft wanting to control users, do you think they will suceed? Does this scare you? Any technology can be used for good or evil, what good/evil do you see in some of these technologies like a TPM module

  • Oy. TC is an interesting challenge. If you look at CayoteOS, they've taken the model that you can use the TC chips in Computers to make sure that your user session isn't snoopable by the admin. So a true power-to-the-people type of thing. I don't know how much traction that will get with laws like Sarbanes-Oaxley in the US. I don't know the right space for us to go with that. I'd like to see users choose artists who will provide them what they want without restrictions. But I refer you to an article in the current Scientific American where they talk about how in political science, how people feel is starting to play a more important role than raw facts. But I think this question marks us as now far enough off topic, that I'll call this officially closed. =)

    [sid] Well they're talking about weaking Sox compliance now, or even abolishing it. Since companies are starting to list with Tokyo or London markets..and not even bother listing on wallstreet. Although the democrats will probably take a few years to weaken sarbannes oxley since they have so much on their plate now.

[sid] You know about open graphics project and how they're going to make a graphics chip that the whole specification is GPL'd and it will basically be a community designed chipset..you think the same thing is feasible/possible with a cpu?

  • Sure, it's something almost every Comp.Eng student does. The problem with any open hardware platform is getting fab time to produce one after. I haven't followed the open graphics stuff too closely, as I'm not really a hardware geek. So the question in my mind is always, "So how would I get one ...and what would I do with it then" What I'm *more* interested in is looking at that fridge, and seeing an Ubuntu bootsplash on it when it comes up. We're surrounded by processing power. Why not hack all of it?

10:25   jbailey ... I'd like to take a moment to thank everyone for participating in Ubuntu Open Wekk.
10:25   jbailey I've heard really positive reports from the other people leading sessions.
10:25   jbailey If you have any further questions for me, I can be reached at jbailey@ubuntu.com
10:26   jbailey Oh!  One more questions. =) 

MeetingLogs/openweekedgy/Ports (last edited 2008-08-06 16:21:30 by localhost)