adding a link to the thesis and cleaning it up a little
This commit is contained in:
parent
81ec45fa65
commit
db620f05cb
@ -116,10 +116,13 @@
|
||||
or write a
|
||||
= succeed "." do
|
||||
=ext_link "mail to the group" , "https://groups.google.com/forum/#!forum/ruby-x"
|
||||
|
||||
%h2.center News
|
||||
%p
|
||||
Last but not least, I try to get recent developments down on paper when they are
|
||||
still fresh.
|
||||
still fresh. Though not much has happened lately, as we bought
|
||||
=ext_link "this" , "https://www.hubfeenix.fi/"
|
||||
|
||||
%p=post_link(Post.posts.values[0])
|
||||
%p=post_link(Post.posts.values[1])
|
||||
%p=post_link(Post.posts.values[2])
|
||||
|
@ -3,3 +3,4 @@
|
||||
%li= link_to "Threads (rumble)" , "threads.html"
|
||||
%li= link_to "Optimisation (ideas)" , "optimisations.html"
|
||||
%li= link_to "SOML (old)", "soml.html"
|
||||
%li= link_to "SynthesisOS" , "/synthesis/index"
|
||||
|
@ -30,3 +30,20 @@ effort to bring them down to earth.
|
||||
%p
|
||||
I was also thinking this section could serve as an intermediate discussion reference.
|
||||
Formulating ideas on the list and writing intermediate designs down here.
|
||||
|
||||
%h2 Synthesis
|
||||
%p
|
||||
At some point i downloaded and saved a copy of
|
||||
= ext_link "Alexia Massalin" , "https://en.wikipedia.org/wiki/Alexia_Massalin"
|
||||
phd thesis about Synthesis. If memory serves it was from
|
||||
= ext_link "Valerie Aurora" , "valerieaurora.org"
|
||||
|
||||
%p
|
||||
By chance i noticed that my links don't work and so i googled it and could
|
||||
not find another copy of the whole thesis online. So i am making my copy of
|
||||
= link_to "SynthesisOS" , "/synthesis/index"
|
||||
available. But i must apologise that the formatting is whacked, and in the
|
||||
conversion to haml some layout got inacurate. My only excuse is that this
|
||||
was never intended for anyone but me. But it is a very important milestone
|
||||
in our understanding of how to implement new and good ideas, so i will continue
|
||||
to host it and put a link up on wikipedia too.
|
||||
|
@ -64,7 +64,7 @@
|
||||
%p
|
||||
Alexia has raised questions about the nature of code and ways of programming which are still unresolved.
|
||||
I regularly reread the thesis and especially the chapter on
|
||||
%a{:href => "http://valerieaurora.org/synthesis/SynthesisOS/ch4.html"} Quajects
|
||||
%a{:href => "https://en.wikipedia.org/wiki/Quaject"} Quajects
|
||||
in the endeavour to understand what
|
||||
they are in any higher language terms.
|
||||
.row
|
||||
|
@ -104,7 +104,6 @@
|
||||
%h3 4.1.1 Quaject Interfaces
|
||||
%p
|
||||
The interface to a quaject consists of callentries, callbacks, and callouts. A client uses the services of a quaject by calling a callentry. Normally a callentry invocation simply returns. Exceptional situations return along callbacks. Callouts are places in the quaject where external calls to other quaject's callentries happen. Tables 4.2, 4.3, and 4.4 list the interfaces to the Synthesis basic kernel quajects.
|
||||
/ - - FINISH - THIS SHOULD BE A FIGURE - -
|
||||
.code
|
||||
%pre
|
||||
:preserve
|
||||
|
@ -70,7 +70,6 @@
|
||||
.code
|
||||
%pre
|
||||
:preserve
|
||||
|
||||
int data_val;
|
||||
|
||||
AtomicUpdate(update_function)
|
||||
@ -86,7 +85,6 @@
|
||||
.code
|
||||
%pre
|
||||
:preserve
|
||||
|
||||
CAS(mem_addr, compare_value, update_value)
|
||||
{
|
||||
if(*mem_addr == compare_value) {
|
||||
|
@ -121,7 +121,6 @@
|
||||
.code
|
||||
%pre
|
||||
:preserve
|
||||
|
||||
int residue=0, freq=0;
|
||||
/* Master (reference frame) */ /* Slave (derived interrupt) */
|
||||
i1() i2()
|
||||
@ -139,7 +138,6 @@
|
||||
.code
|
||||
%pre
|
||||
:preserve
|
||||
|
||||
LoPass(x)
|
||||
{
|
||||
static int lopass;
|
||||
@ -244,7 +242,6 @@
|
||||
.code
|
||||
%pre
|
||||
:preserve
|
||||
|
||||
main()
|
||||
{
|
||||
char buf[100];
|
||||
|
@ -381,7 +381,7 @@
|
||||
%p
|
||||
Perhaps the first question people ask is, "Why is Synthesis written in assembler?" This is soon followed by "How much of Synthesis could be re-written in a high-level language?" and "At what performance loss?".
|
||||
%p
|
||||
There are several reasons why assembler language was chosen, some of them researchrelated, and some of them historical. One reason is I felt that it would be an interesting experiment to write a medium-size system in assembler, which allows unrestricted access to the machine's architecture, and perhaps discover new coding idioms that have not yet been captured in a higher-level language. Later paragraphs talk about these. Another reason is that much of the early work involved discovering the most efficient way of working with the machine and its devices. It was a fast prototyping language, one in which I could write and test simple I/O drivers without the trouble of supporting a complex language runtime environment.
|
||||
There are several reasons why assembler language was chosen, some of them research related, and some of them historical. One reason is I felt that it would be an interesting experiment to write a medium-size system in assembler, which allows unrestricted access to the machine's architecture, and perhaps discover new coding idioms that have not yet been captured in a higher-level language. Later paragraphs talk about these. Another reason is that much of the early work involved discovering the most efficient way of working with the machine and its devices. It was a fast prototyping language, one in which I could write and test simple I/O drivers without the trouble of supporting a complex language runtime environment.
|
||||
%p
|
||||
But perhaps the biggest reason is that in 1984, at the time the seed ideas were being developed, I could not find a good, reliable (bug-free) C compiler for the 68000 processor. I had tried the compilers on several 68000-based
|
||||
%span.smallcaps Unix
|
||||
@ -418,7 +418,7 @@
|
||||
%h3 7.4.2 Porting Synthesis to the Sony NEWS Workstation
|
||||
%p
|
||||
Synthesis was first developed for the Quamachine, and like many substantial software systems, has gone through several revisions. The early kernel had several shortcomings. While the kernel showed impressive speed gains over conventional operating systems such as
|
||||
= succeed "," do
|
||||
= succeed "." do
|
||||
%span.smallcaps Unix
|
||||
%p
|
||||
The goal of the Synthesis port to the Sony workstation was to alleviate the shortcomings, for example, by cleaning up the kernel structure and adding virtual memory and networking support. In particular, we wanted to show that the additional functionality would not significantly slow down the Synthesis kernel. This section reports on the experience and discusses the problems encountered while porting.
|
||||
|
Loading…
Reference in New Issue
Block a user