[HN Gopher] SkiftOS: Simple, handmade operating system for the x...
       ___________________________________________________________________
        
       SkiftOS: Simple, handmade operating system for the x86 platform
        
       Author : ingve
       Score  : 28 points
       Date   : 2021-01-23 08:03 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | kowsheek wrote:
       | This is the approach Windows 10 should have taken.
        
       | spicybright wrote:
       | I honestly love how more people are rolling their own OS's. But
       | it stinks how difficult hardware support is.
       | 
       | I wish there was a nice wrapper dedicated to abstracting hardware
       | support better so developers can focus on the interesting parts
       | instead of arguing with wi-fi cards.
        
         | cjdell wrote:
         | Completely agree. Something like Project Treble, but for PC
         | hardware.
         | 
         | Thinking about it, this is what the BIOS was originally for: to
         | provide a bare minimum abstraction to the hardware. I hoped
         | that UEFI would extend this abstraction in a meaningful way,
         | making OS development easier. Instead it has made it even more
         | complex.
        
           | hapless wrote:
           | The original EFI spec very much did extend that abstraction.
           | You can do a lot in an EFI environment if the hardware plays
           | ball: network, disk, video etc
           | 
           | UEFI, sadly, added support for raw x86 option ROMs, to some
           | extent casting us back into the "old" world.
        
         | userbinator wrote:
         | In the earlier days of the x86 PC, the hardware was far more
         | documented, but now a lot of manufacturers are notoriously
         | secretive about it. Nonetheless, standards still exist
         | (HDA,ATA/ATAPI/SATA,OHCI/UHCI/EHCI/XHCI,etc.) and much of the
         | backwards compatibility is still there.
         | 
         | You bring up wi-fi cards and that is definitely one category of
         | hardware with little standardisation/documentation (I suspect
         | due to FCC regulations and such.) Wired ethernet is a bit
         | better --- Realtek and Intel NICs are both quite well-
         | documented, with the latter being more complex. The other
         | difficult one is GPU acceleration (but a VESA framebuffer is
         | usually available, which gets you at least a GUI if not a fast
         | one.)
        
         | Koshkin wrote:
         | > _a nice wrapper_
         | 
         | Are Linux device drivers not nice enough? Hell, why couldn't
         | one think, for that matter, of a minimal Linux kernel as some
         | kind of BIOS. Incidentally, we already use it as a hypervisor,
         | so you could probably even include support for the devices you
         | want in the hypervisor itself.
        
           | juancampa wrote:
           | That's the approach urbit has taken
        
         | skissane wrote:
         | > I wish there was a nice wrapper dedicated to abstracting
         | hardware support better so developers can focus on the
         | interesting parts
         | 
         | The University of Utah had a research project back in the late
         | 1990s which offered exactly that - the OSKit project [0]. A set
         | of libraries for common (at the time) x86 hardware so OS
         | developers and researchers could focus on what was original
         | about their OS instead of writing yet another hard disk or
         | Ethernet driver
         | 
         | Unfortunately, the research project ended circa 2000 and it is
         | dead now. No support for contemporary devices like Wifi and
         | USB. But, if you just want something to run in a VM (QEMU or
         | VirtualBox or whatever) it probably still works.
         | 
         | [0] https://www.cs.utah.edu/flux/oskit/
        
       ___________________________________________________________________
       (page generated 2021-01-24 23:00 UTC)