IRC channel logs

2021-08-31.log

back to list of logs

<oriansj>bootOS is certainly a very impressive program that could be of considerable bootstrapping potential. I've been thinking about the filesystem problem in bootstrapping and unfortunately a piece of paper is looking like the best option until one is able to provide a minimal kernel.
<oriansj>I've got an idea for a minimal filesystem for bootstrapping that might be either a really good idea or really bad idea and I need input on it.
<vagrantc>but definitely not a mediocre idea? :)
<oriansj>vagrantc: well it is pushing the bounds of simple minimal filesystem. So either I am pushing in the wrong direction and wasting time or I'm not.
<oriansj>here is a cleaned up version of the current idea https://paste.debian.net/1209715/
<oriansj>So it currently lacks things like file permissions, execute bits, etc but it is designed for becoming a merkle tree later if one wants to detect bit corruption.
<oriansj>I was thinking of adding a detail like all allocations should go from higest available block address down towards 2 (as 0 is MBR and 1 is the block containing the block address of the superblock.
<oriansj>also i need to figure out a name for my proposed filesystem. Chess related names preferred.
<Hagfish>hmm, a pun that combines terminology from chess and filesystems
<Hagfish>that's an interesting challenge...
<Hagfish>i'll think about it :)
<Hagfish>well, there's "filesystem check", of course
<Hagfish>oh, and of course a "file" is a column on the chessboard
<Hagfish>you could call it "openfile" as in "a chess column with no pieces on" and also "a libre filesystem"
<oriansj>ooh interesting
<vagrantc>seems a little dangerously close to "who's on first" style confusions
<oriansj>and completely impossible to find in a web search engine
<vagrantc>and that maybe almost more important
<oriansj>a minor historical note, the Knight architecture's first filesystem was named Pawn
<Hagfish>then perhaps promote it to a Queen filesystem?
<Hagfish>or just "B-file" where the B stands for bootstrap?
<oriansj>B1 or B8? for the pawn promotion to queen?
<xentrac>oriansj: ha!
<xentrac>oriansj: on modern computers you could probably get by with a filesystem in RAM until pretty far into the bootstrap
<xentrac>your previous list of stage0-posix requirements up to M2-Planet+mescc-tools is open, close, read, write, execve, lseek, and chmod, plus non-filesystem stuff
<oriansj>xentrac: true but 16bit mode has some serious memory limitations and I'd like to be able to bootstrap that POSIX kernel ontop of a real filesystem if possible.
<xentrac>you can support those system calls fully without checksums, or indirect blocks
<xentrac>16-bit mode? is this for CP/M?
<xentrac>if you only have 64KiB you'd probably have to put the firesystem on disk. data blocks at least
<xentrac>if you could get rid of lseek you could probably simplify things even more
<oriansj>xentrac: true, just thinking through the filesystem.
<oriansj>but yes it will be for something like a POSIXy CPM from a BootOS seed
<oriansj>hence the need to be able to handwrite the filesystem.
<xentrac>what's the biggest file you need for M2-Planet+mescc-tools?
<xentrac>I wonder if you could just allocate a fixed-size buffer for each file, say 64KiB-512KiB, so you didn't ever have to allocate new blocks to a file, or indirect through a block table, or have logic for a read or write that crosses block boundaries
<oriansj>that would be the tarballs as after we have TCC or a Linux install image at the end.
<xentrac>how big are they?
<oriansj>well the biggest tar archive is: 82,935,453bytes sources/gcc-4.7.4.tar.bz2 which grows a good bit when unpacked.
<xentrac>that's probably too big to make it practical to allocate the same amount of space for every file
<xentrac>I remember once when I was a kid I printed out a big 10x20 grid and mapped out the sector assignments of every file on a disk
<xentrac>it had 200 sectors, see, in 20 tracks
<xentrac>so I wrote each grid square which file was using that sector, or if it was empty
<oriansj>hence filesystem after we get past what we can track in a page of text
<xentrac>the funny thing is that I wasn't even using Forth, HDOS tracked that stuff for me
<xentrac>so this was just a form of entertainment, not a tool for productivity
<oriansj>xentrac: well it is just my fun hobby that just happens to deal with the trust trust attack.
<xentrac>I was watching Marcin Jakubowicz's recorded conference call with the WAAM grinder planing guy today and at one point Marcin got kind of impatient
<xentrac>he said, you have to think about what knd of design you're going for: industrial productivity or hobby productivity? because opensourceecology is going for industrial productivity, not hobbyist productivity, because the objective is industrial productivity in a small space, not entertainment
<xentrac>I thought that was pretty interesting and goes to the core of a lot of stuff. funny thing though, somehow our little hobby became the basis of the world economy
<xentrac>turns out people fiddling around with stuff they're entertained by is kind of the non-automatable core of industrial productivity
<oriansj>well, one has to realize my hobby work has been extended by people and become something much more than my hobby could have ever achieved by me alone.
<xentrac>yeah, that's how science works
<xentrac>ideas multiply in just the way Queen Christina's clocks don't
<xentrac>machines still don't, though. I recently found a YouTube channel of short 10' documentaries on various factories around Sialkot
<xentrac>the productivity difference between the artisans in those factories and hobbyist machinist YouTube is just astounding
<xentrac>(though to be fair sometimes the footage is sped up a bit)
<oriansj>well physical reality tends to be much harder to control than bits in an abstraction.
<xentrac>it's not that it's harder, it's that it's different in nature
<xentrac>I mean VLC on my phone stopped working. why? no clue
<oriansj>well what changed? (did you guix apply to the phone?)
<xentrac>I wish! it's running stock Android
<xentrac>no way to tell what changed
<oriansj>I'm playing with pinephone until something better comes along with an FSF certification.
<xentrac>pinephone looks great
<oriansj>it has some bugs that need work but if one has minimal expectations, it is ok. the Mute button not working during calls however is a bit of a problem.
<xentrac>I can imagine
<oriansj>but progress is much better than demanding a perfect solution.
<xentrac>why not both?
<xentrac>maybe "striving for" rather than "demanding" tho
<oriansj>striving for is certainly much more fun than demanding.
<stikonas[m]>GCC 4.7.4 does not have to be shipped that early before we have fs
<oriansj>stikonas: perhaps but I was thinking in terms of what is needed for us to bootstrap a more proper kernel to complete the bootstrap. Now if TCC is up for the job good but if not what small additions are needed to enable we don't end up needing to do a great deal of work.