8011 vtfontcvt and console bitmap font import

Review Request #423 — Created March 29, 2017 and submitted

tsoome
illumos-gate
8011
9a9afdb...
general

8011 vtfontcvt and console bitmap font import

The basic intro is in issue description, so more about details now.

The basic problem with unicode font is the size - both in terms of the number of the glyphs provided and the capacity.

The size affects us in two ways, we need to have fast search for glyphs and we can not build all the supported fonts into the kernel nor into the boot loader. We actually do not build even one single whole font.

To address the search issue, the similar idea is used as with our current fonts, except the contiguous sequences are squashed and bi-search is used.

To avoid building whole fonts into the kernel and boot loader is mostly about two subtasks - first, we need to establish the minimal essential subset of glyphs, and secondly, we need to support loading the full fonts.

The reasonable "default built in" font for x86 platform is 8x16, and just because it also happens to be the default text mode font. For the selection of the chars - the loader needs basic ascii + box drawing for text mode; the kernel needs basic ascii + the upper half of the 8 bit code page to load the text mode font into the vga font memory. Moreover, since we have the memory management in loader, we can compress the built in font as we are already compressing the ficl softcore. Since the early kernel has really nothing, we can not use compression there.

The ported vtfontcvt is intended to either create binary font based on bdf source, or to create the variant of C source with built in font bitmap and the index of the glyphs.

In this update we do not address the font loading at all; except we need to install the binary fonts somewhere - I have picked the /boot/fonts directory for now, and thats because the more natural location - /usr/share/lib, is not really available on cases like install media and compressed miniroot systems.



  • 0
  • 0
  • 5
  • 0
  • 5
Description From Last Updated
tsoome
rm
  1. I ended up going through a chunk of this. From an integration into the system it seems fine (Yuri's comments about dealing with usr/src/data notwithstanding). I didn't end up going through all the BSD code too closely so I'm not sure if I should really be a reviewer here or not. Unfortunately all the data files made looking at this on RB pretty painful.

    1. btw, on Yuri's request I also did set up http://cr.illumos.org/~webrev/tsoome/8011/ however, pbchk did complain some and I havent had time yet to clean those complaints.

  2. 
      
tsoome
tsoome
tsoome
yuripv
  1. 
      
  2. usr/src/cmd/vtfontcvt/Makefile (Diff revision 5)
     
     

    These aren't needed really, you don't have subdirs here.

  3. usr/src/cmd/vtfontcvt/Makefile (Diff revision 5)
     
     

    Not needed.

  4. 
      
yuripv
  1. 
      
  2. usr/src/man/man1/vtfontcvt.1 (Diff revision 5)
     
     

    1M (uppercase)

  3. Well, you have copied the comment text, but left out the include itself.

  4. usr/src/tools/vtfontcvt/Makefile (Diff revision 5)
     
     

    Missing a letter in your name.

  5. 
      
tsoome
yuripv
  1. Ship it! Note that I did not review the vtfontcvt source nor intend to do so assuming it's OK as it's already used in FreeBSD, just looking at the integration itself.

  2. 
      
tsoome
tsoome
Review request changed

Status: Closed (submitted)

Loading...