From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 7023 invoked from network); 8 Mar 2023 12:51:39 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 8 Mar 2023 12:51:39 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 3677241266; Wed, 8 Mar 2023 22:51:33 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuhs.org; s=dkim; t=1678279893; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post; bh=lQjqGc1XWQpuGSd6F+hBPY2gpSkEeT0ho3ofu3KofGk=; b=PT3eVH6CRCD1Rj9xeqdeJbthd0vDimYNVOWNgRthq/O3naQLE4ToooHWCREpFb0qGEbSun PTpOzD7vGyJruKSY37Bg1DTDR/m9Bwo+VC6q0ghEokskb6N9THv+5LncMyONxz6kWOu8jh Hs+EFIUJTZc7havPSw/of8zlZKuYrJo= Received: from ewsoutbound.kpnmail.nl (ewsoutbound.kpnmail.nl [195.121.94.167]) by minnie.tuhs.org (Postfix) with ESMTPS id 48EA741263 for ; Wed, 8 Mar 2023 22:51:16 +1000 (AEST) X-KPN-MessageId: e58dc8fd-bdaf-11ed-b20d-005056abbe64 Received: from smtp.kpnmail.nl (unknown [10.31.155.37]) by ewsoutbound.so.kpn.org (Halon) with ESMTPS id e58dc8fd-bdaf-11ed-b20d-005056abbe64; Wed, 08 Mar 2023 13:51:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=planet.nl; s=planet01; h=to:message-id:date:from:subject:mime-version:content-type; bh=lQjqGc1XWQpuGSd6F+hBPY2gpSkEeT0ho3ofu3KofGk=; b=YZ+e0UD3xPro9rFPrwynhOb1fCGmBy5CVkRiUWV9xP0J9Mze/+T5HrBPiML3uGGVHPk8D0m1O3xMf UwMosp5JBIOoW0chrN7RPo97whJ9dgtAksjUhWxs7M5s7yuBHItD91bPt/A/fGyWtz32PwqR7PULwf 4j2FhV0EAIS73NY4= X-KPN-MID: 33|JWEhnkVqa1PQMKBLbzh6WMr7nRG0stKRy5kqCrySVFUB32DbNlr37X6sbtFWn7R sYSlS43wM8UTs5aFPhb4Lkp4k9qZxcF+4luR2JPJV2tg= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|3QolE7zyu/58c8lzQLCZtOMGSCjfC4xQsHHELwfxWmXbGD2l6GLFKPozExBQG+j rTQ++X4e+C4GeVWvrUV/O1Q== X-Originating-IP: 77.172.38.96 Received: from smtpclient.apple (77-172-38-96.fixed.kpn.net [77.172.38.96]) by smtp.kpnmail.nl (Halon) with ESMTPSA id e69a4278-bdaf-11ed-ae07-005056ab1411; Wed, 08 Mar 2023 13:51:11 +0100 (CET) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) In-Reply-To: Date: Wed, 8 Mar 2023 13:51:10 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <28C479A6-053A-4D95-B6CE-13254FBD8068@planet.nl> References: <1297BE06-BE03-477A-AC60-40A269090295@planet.nl> To: "tuhs@tuhs.org" X-Mailer: Apple Mail (2.3654.120.0.1.13) Message-ID-Hash: 3EJOCXSCA3OPQ6VF7GXITU2BYW7AXDV5 X-Message-ID-Hash: 3EJOCXSCA3OPQ6VF7GXITU2BYW7AXDV5 X-MailFrom: pnr@planet.nl X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: Origins of the frame buffer device List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Paul Ruizendaal via TUHS Reply-To: Paul Ruizendaal > On 8 Mar 2023, at 04:07, Rob Gingell wrote: >=20 > On 3/6/23 12:51 AM, Paul Ruizendaal via TUHS wrote: >> I=E2=80=99ve 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.=20 >=20 > /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. >=20 > 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). >=20 > 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. >=20 > (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.) >=20 > 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. >=20 > 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. >=20 > 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. Thank you for those clarifications. The man pages for SunOS 1.1 (March =E2=80=9984) are available on = Bitsavers and your comments helped me along. Your memory is correct: the = man pages for SunOS 1.1 describe it that way, and this description = matches with the mmap kernel code in 4.2BSD (it is ifdef'ed out there; I = had always assumed it was non-functional, but now it seems to have been = a Sun special -- unfortunately there is no matching driver in the 4.2BSD = tree). As far as I can tell, in SunOS 1.1 mmap only worked on the frame buffer = device. Its mmap implementation mapped out the normal memory pages for a = data area and then mapped in the frame buffer location into that area; I = suppose this means that the data area of graphics programs contained a = large array as a placeholder for this space. With that knowledge it is I think safe to say that SunOS had an = mmap=E2=80=99ed frame buffer device file as its access abstraction from = its earliest days and that this design did not really change throughout = the lifetime of SunOS (it is still there in version 4.1.3). It is then surprising that Linux did not come up with /dev/fbdev until = 1999, especially in view of the importance of X to the early Linux = developers. Maybe the reason was that the headache of video drivers was = delegated to the XFree community. =20