all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Emanuel Berg <embe8573@student.uu.se>
To: help-gnu-emacs@gnu.org
Subject: Re: Where can I find some documents about the architecture of emacs?
Date: Mon, 24 Aug 2015 22:23:08 +0200	[thread overview]
Message-ID: <87y4h0jv0z.fsf@nl106-137-147.student.uu.se> (raw)
In-Reply-To: 20150824151757.GA8023@debian

Navy Cheng <navych@126.com> writes:

> I want to learn something about the desgin of emacs
> and want to find the elisp interpretor part of
> emacs. Now, I know the C part is in ./src, but
> I don't know which file/files is about
> the interpretor.
>
> I find that many of the documents in the source tree
> is about *how to use emacs* other than *the
> architecture of emacs*. Is there any docs I want?

First there is C, then there is Lisp. The C is an
ordinary compiled binary.

In Emacs, there is a kernel "process" that runs all
the time. When you don't do anything, the idle-timer
executes stuff that needs to be done, for example font
locking (or "syntax highlighting"). So Emacs is an OS
tho not a POSIX style OS (e.g., Unix, Linux).

Those OSs (the Unixes) are preemptive where processes
compete for CPU time - the kernel is basically
a scheduler - based on process metadata, e.g., an
integer to express priority, the scheduler controls
what process should gain access to computer resources,
including the very CPU for execution.

In Emacs there is no such competition as stuff gets
done when the user don't do anything - *idle*-timer,
remember? But, doesn't that mean you can stall the
whole thing by just doing stuff all the time? Yes!
But this odd form of stalling doesn't happen
in practice.

Because of the lack of competition (and preemption in
particular), the Emacs architecture is sometimes
called collaborative, which is a good word.
(Contrary to what some people think, collaborating
does not imply the people doing it being
soft-spoken aristocrats.)

There are people on this list that can tell you more,
but it is a start.

-- 
underground experts united
http://user.it.uu.se/~embe8573




  parent reply	other threads:[~2015-08-24 20:23 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-24 15:17 Where can I find some documents about the architecture of emacs? Navy Cheng
2015-08-24 16:30 ` Eli Zaretskii
     [not found] ` <mailman.8.1440433896.28410.help-gnu-emacs@gnu.org>
2015-08-24 18:44   ` Pascal J. Bourguignon
2015-08-24 20:23 ` Emanuel Berg [this message]
2015-08-25 15:15 ` Aurélien Aptel
2015-08-25 20:13   ` Emanuel Berg
     [not found]   ` <mailman.92.1440533158.28410.help-gnu-emacs@gnu.org>
2015-08-26  1:47     ` Dan Espen
2015-09-02 22:03       ` Emanuel Berg
  -- strict thread matches above, loose matches on Subject: below --
2015-08-24 12:17 Navy Cheng

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=87y4h0jv0z.fsf@nl106-137-147.student.uu.se \
    --to=embe8573@student.uu.se \
    --cc=help-gnu-emacs@gnu.org \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.