The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Rob Gingell <gingell@computer.org>
To: Paul Ruizendaal <pnr@planet.nl>, "tuhs@tuhs.org" <tuhs@tuhs.org>
Subject: [TUHS] Re: Origins of the frame buffer device
Date: Tue, 7 Mar 2023 19:07:13 -0800	[thread overview]
Message-ID: <cd68a17c-d581-34e8-ce23-b69a0f0d23f5@computer.org> (raw)
In-Reply-To: <1297BE06-BE03-477A-AC60-40A269090295@planet.nl>

On 3/6/23 12:51 AM, Paul Ruizendaal via TUHS wrote:
> I’ve now read through SunOS man pages and it would seem that the /dev/fb file was indeed similar to /dev/fbdev on Linux 15 years later. Not quite the same though, as initially it seems to have been tied to the kernel part of the SunWindows software. 

/dev/fb was a basic device-independent interface that indirected to the 
hardware that was actually installed for operations like open(), 
ioctl(), and mmap(). Through those the window systems figured out what 
they were actually working with. The (4S) man pages had entries for each 
of the frame buffers and graphics processors if you're able to find them.

Sunview did have some kernel support but /dev/fb and the support of 
mmap() were more generic and used by the non-kernel parts of the window 
systems (as well as diagnostics).

Sun had quite a collection of frame buffers through the years, including 
oscillating usage of graphics accelerators that might be viewed as 
wobbles in the wheel rather than true rotation per Sutherland's paper.

(Cultural note: the Computer History Museum published a 2-part oral 
history with Ivan Sutherland, and its home page currently features the 
interviews. The first part can be found at https://youtu.be/Bjr7qLeyvlw. 
Each part is several hours long.)

On 3/6/23 12:51 AM, Paul Ruizendaal via TUHS wrote:
> The later Linux usage is designed around mmap() and I am not sure when that arrived in SunOS (the mmap call exists in the manpages of 4.2BSD, but was not implemented at that time). Maybe at the time of the Sun-1 and Sun-2 it worked differently.

mmap() was in SunOS starting (I believe) with the BSD-derived SunOS 1.x. 
Prior to 4.0 it could be used with character devices that supported 
being mapped into an address space: frame buffers, graphics 
accelerators, and the bus address spaces of VME or Multibus being 
possible sources. There might have been others that I'm not recalling now.

The implementation had a number of restrictions from the BSD 
specification. All mappings had to be MAP_SHARED. The caller had to 
specify (page-aligned) addresses within its data segment as the process 
address space had the traditional text, data, and stack segments vs. 
being available as a vector of pages.

  parent reply	other threads:[~2023-03-08  3:07 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-05 15:01 [TUHS] " Paul Ruizendaal via TUHS
2023-03-05 17:29 ` [TUHS] " Grant Taylor via TUHS
2023-03-05 18:25 ` Kenneth Goodwin
2023-03-06  8:51   ` Paul Ruizendaal via TUHS
2023-03-06  8:57     ` Rob Pike
2023-03-06 11:09       ` Henry Bent
2023-03-06 16:02         ` Theodore Ts'o
2023-03-06 22:47       ` Paul Ruizendaal via TUHS
2023-03-06 23:10         ` Rob Pike
2023-03-08 12:53           ` Paul Ruizendaal
2023-03-08 14:23             ` Dan Cross
2023-03-08 15:06               ` Paul Ruizendaal
2023-03-08 19:35                 ` Dan Cross
2023-03-08 16:55               ` Theodore Ts'o
2023-03-08 17:46                 ` Clem Cole
2023-03-08 17:45               ` Clem Cole
2023-03-08 18:12                 ` segaloco via TUHS
2023-03-08 18:21                   ` Larry McVoy
2023-03-08 18:43                     ` Kenneth Goodwin
2023-03-08 18:45                     ` Steffen Nurpmeso
2023-03-08 22:44                     ` Clem Cole
2023-03-09 14:42                 ` Paul Winalski
2023-03-06 23:20         ` segaloco via TUHS
2023-03-07  1:24     ` Kenneth Goodwin
2023-03-08  3:07     ` Rob Gingell [this message]
2023-03-08 12:51       ` Paul Ruizendaal via TUHS
2023-03-08 13:05         ` Warner Losh
2023-03-08 13:17         ` Arno Griffioen via TUHS
2023-03-07  1:54 ` Kenneth Goodwin
2023-03-05 18:52 Noel Chiappa
2023-03-05 20:43 ` Rob Pike
2023-03-06 10:43   ` Jonathan Gray
2023-03-07  1:21 ` Kenneth Goodwin
2023-03-08  5:43 ` Lars Brinkhoff
2023-03-09 23:24   ` emanuel stiebler
2023-03-10  1:44     ` Lawrence Stewart
2023-03-06 23:16 Norman Wilson
2023-03-06 23:24 ` Larry McVoy
2023-03-07 12:08   ` arnold
2023-03-07 16:42   ` Theodore Ts'o

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=cd68a17c-d581-34e8-ce23-b69a0f0d23f5@computer.org \
    --to=gingell@computer.org \
    --cc=pnr@planet.nl \
    --cc=tuhs@tuhs.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.
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).