2 ms·
It's better to write everything from scratch when the foundation is broken. Look at the lisp machine or Concurrent PASCAL. These systems were insanely small
by rurban 2y ago
It's better to write everything from scratch when the foundation is broken. Look at the lisp machine or Concurrent PASCAL. These systems were insanely small
- dmitrygr 2y agoI look forward to the kernel, user space, compilers, and web browser you will author from scratch
- kragen 2y agoyou're about halfway there yourself, as i recall it's an appealing project, and i think there's potential to do better than posix, but it's easier to do worse
- dmitrygr 2y ago> it's easier to do worse Bingo. Personally, i always disliked POSIX and preferred NT's way of doing things. Synchronous IO by default is silly.
- kragen 2y agoblocking i/o makes simple things simpler, but it also makes hard things harder. having only blocking i/o can make hard things much harder. maybe it would make more sense to put blocking i/o in a library instead of the system call interface?
- hnlmorg 2y agoThey’re also insanely old. Plus the entire reason for Unix was because it was smaller and simpler than Multics. I do get your sentiment though. But it’s an unrealistic ask. Particularly for a hobby project.
- kelnos 2y agoBetter is subjective. And if I were to take on a hobby kernel project, I might not have the time or energy to also write my own compiler, shell, basic utilities, windowing system, browser, etc. from scratch.
- kragen 2y agogenera is kind of big actually (fiwix is only 50kloc, and some of that is the fault of the hardware), but there were a lot of different lisp machines. which ones do you mean? do you have one running (presumably in emulation)?
- kragen 2y ago(admittedly newlib is about 350kloc)
- amszmidt 2y agoGenera is quite a bit larger than that, the rel-8-5 tree is 1.2 MLOC (though this includes other things, like Pascal, Fortran and a C compiler). But even if we take the MIT Lisp Machine system, which is smaller, it is still 450 KLOC. Just the microcode that implements the Lisp Machine on the CADR around 25 KLOC. The Lisp Machine system is also _very_ complicated under the hood when it comes to the core system, and one of the reasons why Unix succeeded. It is also a system that is a total PITA to modify in incompatible ways, since you are always modifying the running system. There is no such thing as an executable file in the same sense as on Unix that you can copy and keep around, e.g. if you modify the compiler on Unix you can easily keep a backup copy of 'cc' and keep running that when you screw up. On the Lisp Machine you can't keep two compilers around at the same time without essentially creating a fork of it with all new names (and even then it might not work).
- kragen 2y agoi greatly appreciate your very informed opinion!