9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Giacomo Tesio <giacomo@tesio.it>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] There is no fork
Date: Mon, 12 Feb 2018 09:33:32 +0100	[thread overview]
Message-ID: <CAHL7psE1e0wz9U=vN+1UjC_R3-_trMcpUHaNxJwLCm0tS5cncQ@mail.gmail.com> (raw)
In-Reply-To: <1518397859.379213.1267373104.4DD6AB1E@webmail.messagingengine.com>

[-- Attachment #1: Type: text/plain, Size: 2373 bytes --]

2018-02-12 2:10 GMT+01:00 Ethan Grammatikidis <eekee57@fastmail.fm>:

> linux-style package managers and bsd-style port trees facilitate and
> enable coupling.
>
>
What a package manager really facilitate is version management.

That is when you want to use/update a software at version X that depends on
libraries at version Y and Z.
The use of dynamic linking make this complex and cumbersome. Also a single
filesystem hierarchy does not help

Plan 9 does not suffer of this problems because of several reasons:
- it does not support dynamic linking
- it is developed as a whole "batteries included"
- few external packages have being ported to it, and people who use them
know their stuff very well


Plan 9 (and 9atom/9front) is developed and distributed as "a whole system":
there is conceptually only one version for all the software and libraries
included.


Technically it's the simplest and optimal solution to the versioning
problem.

Indeed 9front uses a single mercurial repository (which is a versioning
system) to manage both development and system updates.


I carefully considered this approach for Jehanne too, but decided to try an
alternative design.

Obviously no dynamic linking will ever land in Jehanne, but I want to
enable more external softwares to run on it.
This way I reduce the responsibilities of the project and size it to the
stable workforce (that is: I, me and myself).

It might seem counter intuitive to say that using gcc instead of ken-c
simplify the system.
It's true that it increase the complexity of the system during compilation,
but it reduce the scope of Jehanne itself.


So Jehanne's core system can follow the whole system development approach
of Plan 9, but it's a minimal system and an included package manager will
allow the installation of other useful software.


The problem is that the perfect package manager does not yet exists for the
Jehanne design.
Probably the nearest thing is BSD's pkgsrc, but it doesn't get advantage of
namespaces.

And which language should I use to code an alternative?
Probably C. But I wonder if a more high level language could make the job
easier without increasing too much the project scope.
So far candidates alternatives (that I still need time to evaluate deeply)
are Wirth's Oberon-07 and Obi's Myrddin.


Giacomo

[-- Attachment #2: Type: text/html, Size: 3049 bytes --]

  reply	other threads:[~2018-02-12  8:33 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-10  2:48 Benjamin Huntsman
2018-02-10  4:24 ` Lucio De Re
2018-02-10 10:43   ` Ethan Grammatikidis
2018-02-10  4:43 ` Jens Staal
2018-02-10 10:46   ` hiro
2018-02-10 10:51     ` Ethan Grammatikidis
2018-02-10 11:59       ` hiro
2018-02-10 14:54         ` Ethan Grammatikidis
2018-02-10 12:03       ` as
2018-02-11 12:26 ` Giacomo Tesio
2018-02-11 13:48   ` Rui Carmo
2018-02-11 22:40   ` Lyndon Nerenberg
2018-02-11 23:48   ` Benjamin Huntsman
2018-02-12  0:20     ` Giacomo Tesio
2018-02-12  0:58       ` Benjamin Huntsman
2018-02-12  1:10       ` Ethan Grammatikidis
2018-02-12  8:33         ` Giacomo Tesio [this message]
2018-02-12 13:05           ` Ethan Grammatikidis
2018-02-12 13:39             ` Lucio De Re
2018-02-13 13:59               ` Ethan Grammatikidis
2018-02-12 15:21             ` Giacomo Tesio
2018-02-12 15:50               ` Chris McGee
2018-02-12 16:13               ` tlaronde
2018-02-12 18:51                 ` Steve Simon
2018-02-12 20:40                 ` Giacomo Tesio
2018-02-12 23:49                   ` Benjamin Huntsman
2018-02-14 13:17               ` Ethan Grammatikidis
2018-02-14 13:57     ` Erik Quanstrom
2018-02-12 23:48 sl
2018-02-13  3:06 ` Lucio De Re
2018-02-13  9:31   ` Rui Carmo
2018-02-13 10:43     ` Lucio De Re
2018-02-13 11:05       ` hiro
2018-02-13 11:07         ` hiro
2018-02-13 11:13           ` hiro
2018-02-13 13:45           ` Lucio De Re
2018-02-13 14:35             ` hiro
2018-02-13 16:09               ` Lucio De Re
2018-02-13 15:10         ` Rui Carmo
2018-02-13 15:22           ` Lucio De Re
2018-02-13 16:25           ` Kurt H Maier
2018-02-13 17:01             ` Rui Carmo
2018-02-13 18:12               ` Kurt H Maier
2018-02-13 18:21                 ` Rui Carmo
2018-02-13 19:10                   ` Kurt H Maier
2018-02-13 23:37                     ` Rui Carmo
2018-02-14  9:09                       ` Steve Simon
2018-02-14 11:10                         ` Lucio De Re
2018-02-14 11:32                           ` hiro
2018-02-14 13:53                             ` Ethan Grammatikidis
2018-02-13 19:14                   ` hiro
2018-02-13 18:16           ` Steve Simon
2018-02-13 18:46             ` Bakul Shah
2018-02-13 14:15 sl
2018-02-14  0:31 sl
2018-02-14  7:18 ` Rui Carmo
2018-02-14 14:37 sl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHL7psE1e0wz9U=vN+1UjC_R3-_trMcpUHaNxJwLCm0tS5cncQ@mail.gmail.com' \
    --to=giacomo@tesio.it \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).