The new Container tool in macOS Tahoe is open source (Apache-2.0 license). Here's a technical overview: https://github.com/apple/container/blob/main/docs/technical-overview.md
Notices by Michael Engel (me_@sueden.social)
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Tuesday, 10-Jun-2025 15:07:57 JST Michael Engel
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Tuesday, 10-Jun-2025 05:59:23 JST Michael Engel
Ah, finally Tahoe! Wait...
In conversation from sueden.social permalink Attachments
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:10 JST Michael Engel
@mpweiher That’s probably a relic of the compiler’s heritage - they were derived from the Plan 9 C compilers, which also used that intermediate assembler format and left instruction selection for the target architecture (mostly) to the linker.
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:08 JST Michael Engel
@mpweiher Maybe that's a misunderstanding. Plan9's C compilers never generated completely machine-independent output.
I built some example intermediate assembler outputs generated from this simple and stupid C program using the Plan9 C compiler:
int main(void) {
int i,j;
for (i=1; i<42; i++)
if (i%3) j+=i;
return j;
}In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:07 JST Michael Engel
@mpweiher Using 8c (32-bit x86, uses x86 register names):
TEXT main+0(SB),0,$12
MOVL j+-8(SP),BX
MOVL $1,CX
JMP ,4(PC)
JMP ,2(PC)
JMP ,12(PC)
INCL ,CX
CMPL CX,$42
JGE ,-3(PC)
MOVL CX,AX
CDQ ,
MOVL $3,.safe+-12(SP)
IDIVL .safe+-12(SP),
CMPL DX,$0
JEQ ,2(PC)
ADDL CX,BX
JMP ,-12(PC)
MOVL BX,AX
RET ,
RET ,
END ,In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:06 JST Michael Engel
@mpweiher With 5c (32-bit ARM):
TEXT main+0(SB),0,$8
MOVW j-8(SP),R6
MOVW $1,R1
MOVW R1,R4
B ,4(PC)
B ,2(PC)
B ,12(PC)
ADD $1,R4,R4
CMP $42,R4,
BGE ,-3(PC)
MOVW R4,R2
MOVW $3,R5
MOD R5,R2
CMP $0,R2,
MOVW.NE R4,R1
ADD.NE R4,R6,R3
MOVW.NE R3,R6
B ,-12(PC)
MOVW R6,R0
RET ,
RET ,
END ,In conversation from sueden.social permalink Attachments
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:05 JST Michael Engel
@mpweiher With kc (32-bit SPARC):
TEXT main+0(SB),0,$12
MOVW j-8(SP),R13
MOVW $1,R11
JMP ,4(PC)
JMP ,2(PC)
JMP ,10(PC)
ADD $1,R11,R11
CMP R11,$42
BGE ,-3(PC)
MOVW $3,R12
MOD R12,R11,R9
CMP R9,$0
BE ,2(PC)
ADD R11,R13,R13
JMP ,-10(PC)
MOVW R13,R7
RETURN ,
RETURN ,
END ,In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:03 JST Michael Engel
@mpweiher ...qc (32-bit PPC):
TEXT main+0(SB),0,$8
MOVW j-8(SP),R9
MOVW $1,R7
BR ,4(PC)
BR ,2(PC)
BR ,9(PC)
ADD $1,R7,R7
CMP R7,$42
BGE ,-3(PC)
MOVW $3,R8
REMCC R8,R7,R5
BEQ ,2(PC)
ADD R7,R9,R9
BR ,-9(PC)
MOVW R9,R3
RETURN ,
RETURN ,
END ,In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:02 JST Michael Engel
@mpweiher and vc (32-bit MIPS) as the last one, here you see "HI" used as a MIPS-specific register:
TEXT main+0(SB),0,$8
MOVW j-8(SP),R7
MOVW $1,R5
JMP ,4(PC)
JMP ,2(PC)
JMP ,10(PC)
ADDU $1,R5,R5
SGT $42,R5,R2
BEQ R2,-3(PC)
MOVW $3,R6
DIV R6,R5,
MOVW HI,R3
BEQ R3,2(PC)
ADDU R5,R7,R7
JMP ,-10(PC)
MOVW R7,R1
RET ,
RET ,
END ,In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 20-Apr-2025 22:59:01 JST Michael Engel
@mpweiher All of these are superficially very similar, but there are already some optimizations done in the compiler stage, e.g. using "INC" on x86 instead of adding 1 on the RISC architectures. But this is not a higher-level representation e.g. on the level of LLVM IR. Some stuff is unified, "such as left-to-right assignment order for instruction operands and the synthesis of macro instructions such as MOVE" (from [1]).
In conversation from sueden.social permalink Attachments
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Thursday, 06-Mar-2025 02:31:43 JST Michael Engel
Does anyone have an electronic copy of the CMU tech report of Michael Wayne Young Ph.D. thesis
"Exporting a User Interface to Memory Management from a Communication-Oriented Operating System"?This is CMU technical report CMU-CS-89-202. The CMU tech report server has no entries for 1989...
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Wednesday, 29-Jan-2025 05:01:54 JST Michael Engel
Stupid shift...
In conversation from sueden.social permalink Attachments
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Tuesday, 21-Jan-2025 16:08:03 JST Michael Engel
@lukeshu There are a number of open source emulators available. qemu should be able to emulate the MIPS magnum (MIPS R4k-based) and I managed to run the 2nd edition NeXT port on Previous (https://sourceforge.net/projects/previous/), haven't tested 1e. A Sun 4c Sparcstation 2 is emulated by tme (https://people.csail.mit.edu/fredette/tme/index.html), but that's difficult to build. Working emulators for the Hobbit, Gnot, or Indigo are not available AFAIK. But yes, the PC port is probably the easiest way to run 1e.
In conversation from sueden.social permalink Attachments
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Wednesday, 04-Dec-2024 09:51:20 JST Michael Engel
"The History of the BSD Daemon" – a fascinating recent talk by Marshall Kirk McKusick.
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Thursday, 12-Sep-2024 14:04:03 JST Michael Engel
@mxk Und das für die fürstliche Entlohnung von E11…
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 01-Sep-2024 08:04:02 JST Michael Engel
While looking for interesting Japanese computers, I came across an ad for SONY NEWS workstations which included this picture. What's interesting is the set of books on that desk...
In conversation from sueden.social permalink Attachments
-
Embed this notice
Michael Engel (me_@sueden.social)'s status on Sunday, 04-Feb-2024 02:05:16 JST Michael Engel
@thomasfuchs Uh, 8 users on an 8 MHz 80286 running SVR2. That sounds like quite a challenge for the machine...
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Wednesday, 17-Jan-2024 00:09:15 JST Michael Engel
@th @thomasfuchs Is it a SparcStation (1/1+/2) or a Sun 3/80? Hard to tell...
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Friday, 12-Jan-2024 22:11:55 JST Michael Engel
"A system that is not understood in its entirety, or at least to significant degree of detail by a single individual, should probably not be built."
Niklaus Wirth – A Plea for Lean Software
In conversation from sueden.social permalink -
Embed this notice
Michael Engel (me_@sueden.social)'s status on Friday, 12-Jan-2024 05:32:26 JST Michael Engel
@thomasfuchs Hmm, interesting challenge. Same length only so far:
1?cH(205+rN(1)*2);:gO1In conversation from sueden.social permalink