Glendix: The Why and the How

13
A Plan9/Linux Distribution Anant Narayanan Vrije Universiteit, Amsterdam IWP9 2008 Glendix

description

Glendix is a Linux distribution with a Plan 9 userspace. This presentation goes over the main motivation behind the project and shares some implementation decisions.

Transcript of Glendix: The Why and the How

Page 1: Glendix: The Why and the How

A Plan9/Linux DistributionAnant Narayanan

Vrije Universiteit, Amsterdam

IWP9 2008

Glendix

Page 2: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

What?

• Providing a Plan 9 development environment on Linux

• Providing the ability to run Plan 9 applications on Linux as a side effect

Page 3: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

Why?

• Spread the message of Plan 9 style programming to Linux developers

• Experience the benefits of Plan 9 applications along with the convenience of being able to execute Linux applications

• Because we can: Linux isn’t inherently tied to any particular user-space :-)

Page 4: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

How?

• Stage 1

• Binary format loader for a.out (module)

• Implementation of the Plan 9 system calls (patch)

Page 5: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

How?

• Stage 1I

• Implement synthetic filesystems that applications depend on (v9fs or kernel patch depending on specifics)

Page 6: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

How?

• The idea is to trick applications into thinking that they are, in fact, running on a Plan 9 kernel

Page 7: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

Binary Loader

• Fairly straightforward

• Except for the padding and tos issues

• Solved by assigning different magic numbers to padded and non-padded executables and using Linux’s interpreter execution capabilities to modify executable

Page 8: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

System Calls• Fall into three categories

• Trivial: Minor modifications to existing Linux calls (open, read, write)

• Easy to Implement: Not present, but can be written relatively easily (fd2path)

• Tricky: Needs data-structure level changes and low-level kernel code (rfork, bind)

Page 9: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

Filesystems• /net and /dev/draw are the two major ones

we are focussing on

• /net is relatively easy, maps to internal networking calls

• /dev/draw is harder because of the need to support graphics cards

• Debate over whether to use kernel framebuffer or DirectFB

Page 10: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

When?

• Stage I: 60% complete

• Stage II in planning phase

• 24 of 51 system calls implemented

• Major milestone: 8c/8l

Page 11: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

9vx & Glendix• 9vx is x86-only. While Glendix is also x86-

only for now, easily extendable

• Different purposes: In Glendix, executables are not run in a “sandbox” - rather as any regular user-space application

• Glendix aims for a more low-level, comprehensive integration of Plan 9 & Linux

Page 12: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

Q & A

Page 13: Glendix: The Why and the How

3rd International Workshop on Plan 9Volos, Greece

30 October, 2008

Thank You!

http://glendix.org/[email protected]