Re: [9fans] Plan 9 Applying to GSoC 2021

2021-02-01 Thread ori
Quoth Anthony Sorace :
> 1.  Project ideas.  One of the key parts of the application is the
> project ideas page.  If you’ve got ideas that seem like they’d
> be a good fit for the program, and *especially* if you’re up for
> mentoring them, please think about how to describe them in
> sufficient detail for a student to work on (objectives,
> promising starting points, likely challenges, ).

Here's a partial list of things I've been hoping to find
time for. Some are fuzzy and poorly thought out. I'd be
willing to mentor most of them, given someone that I had
confidence in.

In no particular order:

- Imlementing asan in 6l:
Right now, there's no easy way to detect access
to uninitialized memory on the stack, use after
free, or many other common C errors in plan 9.

Unix has a number of tools like the address
sanitizer and valgrind.

I think it would be possible to make the linkers
instrument programs with checks similar to the
clang address sanitizer.

https://research.google.com/pubs/archive/37752.pdf

This would involve getting a fairly deep
understanding of how the linkers work,
modifying them to add a check before every
memory read and write. It would also involve
writing a runtime library for it, which
could possibly be put into libc besite the
profiling code.

- Improving dtracy:
9front has implemented a dtrace workalike
called dtracy. It's already proved useful
for collecting statistics systemwide, but
has a few annoyances. Namely:
- It does not know how to collect
  stack traces.
- It needs manually defined tracepoints.

The first issue would involve teaching
the kernel how to collect the stack trace
of a process -- so, parsing debug info
and packing it up into something that can
be sent back to userspace.

The second can probably be done by marrying
devtrace from 9atom with dtracy:

http://man.postnix.pw/9atom/3/trace

- Implementing fuzzing framework:
Plan 9 programs often handle unexpected
input poorly. A tool that would help root
out crashes and improve reliability of
plan 9 software would be very welcome.

The goal would be to implement a tool
similar to AFL, but running on plan 9,
using the plan 9 toolchain.

https://lcamtuf.coredump.cx/afl/

This may require some changes to the
linker, to make profiling information
granular enough to provide coverage.

- Implementing syzkaller support:
The reasoning is the same as above: The
plan 9 kernel almost certainly has a number
of undiscovered bugs, panics, and issues
around mishanlding of untrusted input.

An attempt to fuzz the kernel would ceratinly
improve software quality.

This may also involve enhancing the linker to
provide more granular coverage information.

https://github.com/google/syzkaller/blob/master/docs/internals.md

- SSH server:
For providing service to unix, this could
be helpful -- at least, git/serve could
use it for push and clone.

This would probably be done by forking the
ssh client (/sys/src/cmd/ssh.c), and making
it handle the server side of communication,
then doing a cleanup pass to pull out the
common code.

- TLS certificate chain verification:
Right now, we rely on thumbprints for
certificate verification. Thumbprints
require manual additions for ever server
that we want to communicate with in a
secure and authenticated manner.

We should instead handle TLS certificate
chain verification in our x509 client.

The LibreSSL people recently put together
a test suite for certificate verification.
This should be used to validate the work.

- Devdraw improvements:
It seems like moving devdraw to userspace
is a good idea. This also allows doing some
vectorized SSE draw ops that would be painful
in the kernel, as well as allowing freer
experimentation with toys like affine transforms,
antialiasing modes, similar.

- Malloc improvemnts:
Our current allocator is slow, and takes
a global lock on every allocation. We're
leaving a lot of performance on the table,
and a faster allocator need not be all that
much more complex.

- Arm64 go support
Seems feasible. May be too small in scope,
since all the code gen is there. If so,
there are a bunch of improvements to the
runtime that could be made.

As a sporadic user of go, I'm probably
not the best choice. It seems that miller
or 0intro are the most prolific plan9 go

Re: [9fans] Plan 9 Applying to GSoC 2021

2021-02-01 Thread raingloom
On Mon, 1 Feb 2021 03:26:35 -0800
Bakul Shah  wrote:

> Chibi-Scheme supposedly works on plan9 though I haven’t played with
> it in years.

Chibi is very broken on arm64 and possibly other architectures. I have
attempted to fix it but didn't get far.

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T00b3dc89a8df295a-M494bc387c596b211122b7ce1
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] GSoC 2021 project ideas

2021-02-01 Thread sirjofri

Hello,

many many really cool ideas. Most of them get a big heart icon, but I 
don't want to repeat your ideas. So consider this one large heart for all 
of them ♥️.


My annotations are inline.

01.02.2021 08:16:58 cigar562hfsp952f...@icebubble.org:

(2) A Zoom/video conferencing application for Plan 9.  Enough said.  :)


Afaik someone on grid wanted to try some voice chat stuff using mq, 
maybe. Could be helpful.



(a) An Android "app" that presents an Android phone's telephone and SMS
    messaging facilities as a 9P filesystem.  This would enable Plan 9
    and Inferno applications to place/receive voice calls and
    send/receive text messages across a network.  This could be done by
    extending bhgv's existing Android port of Inferno, or as a
    separtate, stand-alone server app.


Also hellaphone might be interesting (maybe just for comparison). Afaik 
they removed the whole java stuff from android and replaced it with dis. 
They were able to do phone calls and I think they got rudimentary text 
messages working, too, but both directly on the phone using inferno.



A native 9p interface for Android might also be a nice project. Android 
supports adding new protocols like ftp or smb to its native filesystem 
pool. I don't know the details.


I also have some other project ideas like many, like a native Android 
gridchat client, but that's too specific, I think. I'll play around with 
these when I'm done studying.


sirjofri

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T39aec8f3f9d8503d-Ma85d1112f2b15b2f327eb4d8
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] GSoC 2021 project ideas (WAS: Re: Plan 9 Applying to GSoC 2021)

2021-02-01 Thread Steve Simon


someone at the land (peter bosch?) dis a haupage video capture card.

i am pretty sure i have a copy of the driver and user level app somewhere.

this worked on an old pci card i had at one time.

-Steve


On 1 Feb 2021, at 8:32 pm, cigar562hfsp952f...@icebubble.org wrote:

Anthony Sorace  writes:

> Hello! After a few years away, we’ll be applying to Google’s Summer of Code 
> program again this year.

...

> 1. Project ideas. One of the key parts of the application is the
> project ideas page. If you’ve got ideas that seem like they’d be a

Plan 9-related:

(1) Porting the Plan 9 kernel to a microkernel architecture, such as
   Mach.  This would give Plan 9 instant access to the whole range of
   hardware supported by the underlying microkernel.

(2) A Zoom/video conferencing application for Plan 9.  Enough said.  :)

(3) Happauge/Brooktree BTTV/video capture drivers.  AFAIK, Plan 9 can
   only use USB Web cams.

(4) Port SANE (Scanner Access Now Easy) tools as a Plan 9 file system.
   That would give Plan 9 instant access to a huge range of flatbed &
   sheet-fed document scanners.

(5) An NFS sever for Plan 9.  Unix machines have a lot of trouble
   handling edge cases encountered on 9P filesystems (such as the
   number of hard links to directories).  An NFS server would make it
   much easier for Unix/Linux and Plan 9 to get along happily.

(6) Incorporating Inferno's Dis virtual machine into the Plan 9 kernel,
   so Plan 9 can run Dis binaries natively, without having to run the
   Inferno emulator (emu) as a user process.

Inferno-related:

(A) A 64-bit version of Dis, which was designed as a 32-bit (31-bit?)
   architecture.

(B) Porting Inferno to modern video game consoles, such as the Nintendo
   Switch family.  Coolness.

(C) Creating a secure version of Dis.  The way that Dis handles
   allocated/freed memory isn't particularly safe, and can leak
   sensitive data (such as encryption keys).  It doesn't have a way to
   whiten memory, or to mark ranges of memory as non-swappable.  This
   could be done by adding new VM instructions, or on a per-module
   basis by adding new module flags.

(D) Porting Nemo/LSUB's "OSHAD" to Plan 9.  OSHAD is an authentication
   system (implemented in Inferno) which allows you to provide
   passwords or acknowledge actions from a separate, wireless hand-held
   device.

(E) A postscript/PDF viewer for Inferno.  Enough said.  :)

Android-related:

(a) An Android "app" that presents an Android phone's telephone and SMS
   messaging facilities as a 9P filesystem.  This would enable Plan 9
   and Inferno applications to place/receive voice calls and
   send/receive text messages across a network.  This could be done by
   extending bhgv's existing Android port of Inferno, or as a
   separtate, stand-alone server app.

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T1c300cdbd9941edb-M627e2da16ac2f567361984f0
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


[9fans] GSoC 2021 project ideas (WAS: Re: Plan 9 Applying to GSoC 2021)

2021-02-01 Thread cigar562hfsp952fans
Anthony Sorace  writes:

> Hello! After a few years away, we’ll be applying to Google’s Summer of Code 
> program again this year.

...

> 1. Project ideas. One of the key parts of the application is the
> project ideas page. If you’ve got ideas that seem like they’d be a

Plan 9-related:

(1) Porting the Plan 9 kernel to a microkernel architecture, such as
Mach.  This would give Plan 9 instant access to the whole range of
hardware supported by the underlying microkernel.

(2) A Zoom/video conferencing application for Plan 9.  Enough said.  :)

(3) Happauge/Brooktree BTTV/video capture drivers.  AFAIK, Plan 9 can
only use USB Web cams.

(4) Port SANE (Scanner Access Now Easy) tools as a Plan 9 file system.
That would give Plan 9 instant access to a huge range of flatbed &
sheet-fed document scanners.

(5) An NFS sever for Plan 9.  Unix machines have a lot of trouble
handling edge cases encountered on 9P filesystems (such as the
number of hard links to directories).  An NFS server would make it
much easier for Unix/Linux and Plan 9 to get along happily.

(6) Incorporating Inferno's Dis virtual machine into the Plan 9 kernel,
so Plan 9 can run Dis binaries natively, without having to run the
Inferno emulator (emu) as a user process.

Inferno-related:

(A) A 64-bit version of Dis, which was designed as a 32-bit (31-bit?)
architecture.

(B) Porting Inferno to modern video game consoles, such as the Nintendo
Switch family.  Coolness.

(C) Creating a secure version of Dis.  The way that Dis handles
allocated/freed memory isn't particularly safe, and can leak
sensitive data (such as encryption keys).  It doesn't have a way to
whiten memory, or to mark ranges of memory as non-swappable.  This
could be done by adding new VM instructions, or on a per-module
basis by adding new module flags.

(D) Porting Nemo/LSUB's "OSHAD" to Plan 9.  OSHAD is an authentication
system (implemented in Inferno) which allows you to provide
passwords or acknowledge actions from a separate, wireless hand-held
device.

(E) A postscript/PDF viewer for Inferno.  Enough said.  :)

Android-related:

(a) An Android "app" that presents an Android phone's telephone and SMS
messaging facilities as a 9P filesystem.  This would enable Plan 9
and Inferno applications to place/receive voice calls and
send/receive text messages across a network.  This could be done by
extending bhgv's existing Android port of Inferno, or as a
separtate, stand-alone server app.

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T1c300cdbd9941edb-M8dc3d53ad2fd15c95abf0584
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Plan 9 Applying to GSoC 2021

2021-02-01 Thread Bakul Shah
 On Jan 31, 2021, at 4:36 PM, ~vidak  wrote:
> 
> There are various languages we were thinking of doing the implementation
> in, ultimately some flavour of scheme. Perhaps one that could compile to
> C.

There is Nils Holm’s s9fes Scheme. It is strictly an interpreter but easy to 
extend
with C code. See https://github.com/bakul/s9fes. I had added some support for
plan9 specific syscalls — more may be needed depending on what you want to do.

Chibi-Scheme supposedly works on plan9 though I haven’t played with it in years.

I imagine by socialFS you want to see your connections, posts, feeds, likes etc.
as files or directories? Everything but the actual content display? Sounds like 
a
fun project!
--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T00b3dc89a8df295a-Maa171945b0f52c8946a6d2ff
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Plan 9 Applying to GSoC 2021

2021-02-01 Thread svaderaa
This has been my dream for the past year, I am a  student(36yrs) , coming to 
programming after a 20year break , I was a musician for the last 6 years. I 
have a diploma in C from when I was 13 , other than that I'm drop out, so no 
Uni Degree(just a diploma in Biotech). Though I had a dream of creating an open 
source formally verified Linear algebra library for plan 9 , I joined the LAFF 
courses on edx , and though I'm early into them , I'm doing well . I don't know 
if I will be able to join / be accepted as a student  Google’s Summer of Code 
program. But this would really be a dream come true!

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T00b3dc89a8df295a-M23a9c5017dc3bbb89ea74261
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Plan 9 Applying to GSoC 2021

2021-02-01 Thread sirjofri
Hello ~vidak,

Quoth ~vidak :
> I am currently a computer science undergrad, and I have a project
> idea. Me and a few friends from the fediverse were thinking of
> implementing the ActivityPub protocol (mastodon/pleroma) into plan9 as a
> kind of 'social file system', or 'socialfs'.

Iirc there's someone writing an ActivityPub/mastodon client for 9.  I
think it was julienxx²?  Maybe check it out?

> The idea, as I take it, would be to introduce a limited form of
> hypertext into the plan9 distributed filesystem. It would also allow
> access into a somewhat mature free software social network.

I've written my bachelor thesis¹ about a potential hypermedia system
for Plan 9.  I can send it to you as a private message if you are
interested in it.  It's not specific to social networks, but there
might be interesting ideas.  I also mentioned other interesting
filesystem stuff like LisFS (which provides some nice search
functionality based on filesystems and regular expressions).

> There are various languages we were thinking of doing the implementation
> in, ultimately some flavour of scheme. Perhaps one that could compile to
> C.

I ♥ C, but I don't have to decide anything here.

sirjofri

—
¹ I plan to publish the thesis when I'm done studying, which will be
  in march.  Until then I can't really publish it.
² julienxx is on mastodon: @julie...@fedi.9til.de

.

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T00b3dc89a8df295a-M81ba032c01832102a8494164
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription