From e04ca288122f7d25a695fcf697a9bef3a3f33b20 Mon Sep 17 00:00:00 2001 From: Nexoniarz Date: Sun, 9 Aug 2026 14:09:59 +0200 Subject: [PATCH] Rename Schunix to SchOS; the kernel becomes SchIFT Removes the "-unix" element and with it any trademark exposure to The Open Group. The split follows the ecosystem layout: SchOS is the system, and the kernel has its own name. Kernel-identity strings are the only places that take SchIFT -- uname(2) sysname, /proc/version, and the two licence sentences that say "kernel" outright. That is what every Unix does here: `uname -s` on Linux reports the kernel, not the distribution. Everything a user reads as the product -- panic screen, boot menu, error prefixes, docs, LICENSE, NOTICE -- is SchOS. schunix.img is schos.img, the logo assets and the musl TLS patch are renamed, and __SCHUNIX__ is __SCHOS__ (the define and the patch that consumes it moved together). Two things the rename broke, both found by the bootcheck suite: - shmtest wrote "SCHUNIX-MMAP-OK" with a hardcoded length of 15 and compared it back by hand-counted offsets (m[3]=='U', m[14]=='K'). The shorter marker left the write running two bytes past the literal and the compare reading past the data, failing a file-backed mmap that was working correctly. Now written and compared through one constant with sizeof. - bootcheck asserted a 31-byte file after appending to "hello-from-schunix"; the shorter string makes it 29. Both are the same mistake: a string literal whose length is written out somewhere else. Full suite green -- base, Tty, Ps, Sock, Fb, Usb, Evdev. --- .gitignore | 4 +- Assets/SchOS Full Logo.png | Bin 0 -> 87598 bytes Assets/SchOS Full Logo.svg | 138 +++++++++++++++ Assets/SchOS Text Logo.png | Bin 0 -> 43141 bytes Assets/SchOS Text Logo.svg | 130 ++++++++++++++ Assets/Schunix Full Logo.png | Bin 62691 -> 0 bytes Assets/Schunix Full Logo.svg | 159 ------------------ Assets/Schunix Small Logo.png | Bin 83048 -> 0 bytes Assets/Schunix Small Logo.svg | 120 ------------- Assets/Schunix Text Logo.png | Bin 27296 -> 0 bytes Assets/Schunix Text Logo.svg | 85 ---------- LICENSE | 2 +- LICENSE.MIT | 4 +- Makefile | 42 ++--- NOTICE | 22 +-- boot/stage2.S | 2 +- boot/stage2main.c | 12 +- cmd/init/main.c | 6 +- cmd/shmtest/main.c | 18 +- docs/architecture/kernel-history.md | 12 +- docs/architecture/schapi.md | 24 +-- docs/architecture/schfs.md | 8 +- docs/drivers.md | 4 +- docs/layout.md | 4 +- docs/licensing.md | 16 +- docs/roadmap.md | 14 +- include/errno.h | 6 +- include/fb.h | 4 +- include/fcntl.h | 4 +- include/font.h | 2 +- include/input.h | 2 +- include/logo.h | 2 +- include/pci.h | 2 +- include/posix.h | 2 +- include/theme.h | 2 +- include/uaccess.h | 8 +- kernel/arch/x86_64/e820.c | 4 +- kernel/arch/x86_64/vm.c | 2 +- kernel/core/main.c | 2 +- kernel/core/panic.c | 6 +- kernel/core/time.c | 2 +- kernel/dev/device.c | 2 +- kernel/dev/fb.c | 2 +- kernel/dev/procfs.c | 5 +- kernel/dev/ttf.c | 2 +- kernel/dev/uart.c | 2 +- kernel/fs/exec.c | 4 +- kernel/fs/file.c | 4 +- kernel/fs/procfs.c | 2 +- kernel/fs/schfs/kmount.c | 2 +- kernel/sys/linux_abi.c | 4 +- kernel/sys/sys_compat.c | 4 +- kernel/sys/sys_fs.c | 4 +- kernel/sys/table.inc | 4 +- lib/glue.c | 2 +- lib/start.S | 2 +- ports/Makefile | 4 +- ports/mk/port.mk | 2 +- ports/mksh/Makefile | 4 +- ports/musl/Makefile | 6 +- ...schunix-tls.patch => 0001-schos-tls.patch} | 56 +++--- ports/toybox/Makefile | 4 +- projects/README.md | 12 +- projects/schcom/README.md | 2 +- projects/schde/README.md | 2 +- projects/schinst/README.md | 6 +- projects/schwm/README.md | 2 +- run.ps1 | 6 +- tools/bootcheck.ps1 | 26 +-- tools/crashshot.ps1 | 6 +- tools/dispshot.ps1 | 4 +- tools/fbshot.ps1 | 2 +- tools/loc.ps1 | 8 +- tools/makeiso.ps1 | 10 +- tools/mkiso.sh | 18 +- tools/mklogo.py | 2 +- tools/mkschfs.c | 2 +- tools/mutate.sh | 2 +- tools/qrcheck.py | 4 +- tools/qrtest.c | 2 +- tools/splashshot.ps1 | 2 +- tools/textshot.ps1 | 4 +- tools/ttyshot.ps1 | 2 +- 83 files changed, 520 insertions(+), 601 deletions(-) create mode 100644 Assets/SchOS Full Logo.png create mode 100644 Assets/SchOS Full Logo.svg create mode 100644 Assets/SchOS Text Logo.png create mode 100644 Assets/SchOS Text Logo.svg delete mode 100644 Assets/Schunix Full Logo.png delete mode 100644 Assets/Schunix Full Logo.svg delete mode 100644 Assets/Schunix Small Logo.png delete mode 100644 Assets/Schunix Small Logo.svg delete mode 100644 Assets/Schunix Text Logo.png delete mode 100644 Assets/Schunix Text Logo.svg rename ports/musl/patches/{0001-schunix-tls.patch => 0001-schos-tls.patch} (69%) diff --git a/.gitignore b/.gitignore index dd79aea..7824aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # Build output. Everything here is reproducible from `make`. build/ -schunix.img -schunix.iso +schos.img +schos.iso *.o *.d *.asm diff --git a/Assets/SchOS Full Logo.png b/Assets/SchOS Full Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..38f6f749d03685b9cc678d9f80066666b059d721 GIT binary patch literal 87598 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

_u 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 Q3YWsy2d?|cXU8}H1D$p@asU7T literal 0 HcmV?d00001 diff --git a/Assets/SchOS Full Logo.svg b/Assets/SchOS Full Logo.svg new file mode 100644 index 0000000..b7bc5c7 --- /dev/null +++ b/Assets/SchOS Full Logo.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/SchOS Text Logo.png b/Assets/SchOS Text Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..de90d66aade15a16432371aaff227e1b2b749e05 GIT binary patch literal 43141 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

|SV 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Schunix Full Logo.png b/Assets/Schunix Full Logo.png deleted file mode 100644 index 9f8e4bdca3fdae8e1fc41b3d65bc734ad5bf8561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62691 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Assets/Schunix Small Logo.png b/Assets/Schunix Small Logo.png deleted file mode 100644 index 35bf538996cbf66a8018e0d776765b724356e4df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83048 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 z 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 DFNjK5 diff --git a/Assets/Schunix Small Logo.svg b/Assets/Schunix Small Logo.svg deleted file mode 100644 index e880a33..0000000 --- a/Assets/Schunix Small Logo.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Assets/Schunix Text Logo.png b/Assets/Schunix Text Logo.png deleted file mode 100644 index 12d839e19c842996cccb6fbcc6848b3dde7d37f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27296 zcmeIbc{r5&A3uDXgi0|KO30|BghF;IQ)+BQn_a1hvhUlNqckE;rO1BLkg}u_*=8zB zB})`#Z^R^_$u=0{dEcYX_dM5gUC+PI^}C+#>wLfG>%Kqt=l(43{q_3HH~Ns7(aPoP zmLmwV^56ly1%mKLAPBFf03Y1>+WOoO{bUC?-@C@{CSc^zwyO`MW(`Pb{CxEVpfY(zZZ&%C@Xcwt6Ke~cIdi@r9hj@W8==W zv{Co67^@Yg7jjM65xX}Y*nr(qcIrxkqs^Pq^Ngd^m#s7sMQHBUQMYs;^{qw*6tic~S_@fJ4bMVI={IQ8# zLHJ`6|JcMoHt~;5{1YAiv4npt;U7!*|A{4}|Mirg`{4+$_Tfn-*W|$#>){yw$mip7 zr?%qmB>arbJ|`_B$k%(q)|Q=dtByBfOL5y%=fziw9y!&;9dEZLR<>zNVX3RJ$~v8l zTNddv^>wcK4(F2xpIZ-y6$Ul9NhfDy$i$wqM*^b|LGHWEiCZ4{ifytK`#7+CcX&*`gKkn2PX28mH2RFTs!;|hV zL93AK*a#l9wB(Mc_396*>XyKlsIr(PPdu8^^^PZ4j9w)h zuV!B4nlFg1iC_#47Pu!5rjrBhJ0GhA z5flo0OTGGYpu}lmFCN;`#_Bp=C-K@io4WeE;aIJ^B;O+t)JdVe^`=@nQOs3l3oI zT$+YEr5z90>+0yteM5KKriIrrg$g4;;H9Ge7II)vr;ng|mX&*8=J=cmo zIWCSiaeT2|S=qTWsWNYb2l;xdk-yKfPG4r_uMR{D6THuLstQ^?Wh|j-5BnnNDJkV; z3G|PPHWP=t(^ghIvNr0we5W)L;XZU8@&B%hc8fTB9`0Q7`@Pf1)0q|MUE1yU){iUQ z6_F(macL`PyNFy1qM2gxCKGy5>>THDO!M2yU22Or?;iesY5w5|Pt^Bln0=;=wrGUZ z9M|m9f&wexes03`Z!^e4jyCpx4`$<^@=Ih}55K(7gzPSf4f}Uk+kT8)5K=ka>jI_C zvNL&09y(=khj1c#g;HtXwhK)vrx)6$5X86sBcEfPKG$46w3wS3nKQ$OJ|5AEI^*j4 z&1bRKGcc?Ai?ef!J||+Mv`a{YY!E9>XO!jNX^1p$cM^}7o9FoEe;8E0arR{A(+k9A z*iE?p-jhG+2+L}iKe@Y86=~LU0*@gz7piuiv(rlK>4i@J`S0JqdxJTEYd2rK{_Iz0 zIr_Dyj1vzm-c*6Z$_%O9j5IYg*hyjI!p^pQx3ablPGNDE_@&Rn{ItOuEU|rRz1zeL zSVU#61pDmiT!Lo@j<**znIvDj(D}5|&EMa@d1?dtjlUay{`^^&ot@nyDHYcJEWz6e z9hPan2hzztv-cAlj4l%4=liw!pRxVbb)D%>H>-R4K_aow+mS-RBIhl33(Gk>ZlfOPL_nO+p- zw&0Crl`}SO`6c*jV*Zyq7H8hI2*iNDKnm>x4^7CZQ?H7v(80qjksz4cMmL&Y_ z5eokiN&K+5-bgCd@bap#lJ?=s+_qpMzT(kHQ2GE~;Y{6&7cU|&2w`@wlCv844th#S zcqz+WD5Uv%O-+r*O1?;kXtHvNUcG`jz8ZCSFVW`G!_tdi^Igy*)^Haff_Ig)E~}T4 zps~N&*+zQ6#23#qN9)9KR=a~P}rnVH#xXAiu6`!)x>4Ia<_ zCg47oX7Q#A9OZOepFLu7&+ik`Q|#7$wD{OBeNt&cILK3X=s5?dsPG;iejg2eHzqlc6s#Z+7WIS6mz`s6b(k=dNDh2>E_rUOV!Y94zp56(rv9_kk;%1<5sGo^wSJyXz4E*%^n2P^C}Xfr zI^_E%aPuE`N(es1SGPE-us#nqq)-FqMoJ9YIvyfF6b-p@tBqTAc~KvCTa5H~Tun5X_(v#u(c~k$*KJ!)(+L<|{i|c7_I(h4-*n|z*l`V0A9M1rW{A^J z1?ER%nof?fLV!{ArD5HsV3FTrdEdA;B4D&jt6S~rFZ&1|@ABdMwJr#fsnfVFVo}UM zA>E(#naF^!D!V|;@+1BC7t*|HSN07I44D2BV6duhe5&|8jeZZ6hJPdWZ!eCg&Mg1E zd5FrpN4$O31nlntMc~dJx~W4ULG< z>xPmc5+{ttb?DW?3!$7bK>@cIT_Y+*JD2teU?moxCOLk>cwQ7(4C_I7V|g@j^y}H@ zMu(>740?YlFM?!w*CL^)&&3WCE_w)Wj?<`LE{bwm^Unl=(vMNe# z>;E$VFO`J<4B*KH7aq;Mzq@g1J+$P1tJHk!AO8QXVCKqUk^gja*rwz^-Nd$(@%52& zb=`2wj~u6 zq31V=U+Ad_qD+5Q8y_FWh_1RW5%JBGdoN?xlbs)%PydMlAfEJ8w2hw0bHS(dvDde zL1%j8yRxyWIeTw5i^>a1?`*Tt83J2*t?6M` zjV))EV zzuHRn)+wVWNdF0wi^ZQ$CDfjMZZB}_@3b99ZB&oySl;aLTBD=v@1Om2vt+!gRb5o= z^;zAyzw~2;%O;-bFDxvC>K_e1>6hUX?)sjQs^1$P&LHt~g7N(-e8&py!(LZcS5qhq z3CghtH#5R#hZc0=e=ZHYcdyffI)7)NK5+rBoTwMhW;qy4eRL{Z6}(v@%C6ksP6Vr` z*E8S8Z@_whW@&pGcD6uzxkFvOScjqOSJ3pp6On#>=Dzmv&-LtaDINbVQTvUV^r?}~ zlFgKf(|E-pwpBw_`<34Pq6ssw4RqIrSJ^zN44JkM{Cr7VUj{p7P}e^7WP!LNL-l_Bk#o1o znhdI~;s#PZU_vvsol1gs)|J7NSB^cH93h{;zU%b)(VF{uQg^40j*bFGwNZbnD1N^3 z(p*G_PIq0?lwRqNBC3gk-S{iH_)wyz=nKd19mQ@nAU-Ma0Xf?3{iY8-%(fR&IkWfm zLZ;5S9UuP91z?YC7+m{$`PUojr=`@+oG%42oHD9*OuzYDI8}*bvEuj>>wFL5kg>z; z9EG2>`P(MWt^-%d{24)mw;L$@Ct2Vb%6;3F=UbGeK7t2+MLZT+6Fhj^xkro`;yIl$ z|0yF(0mO8Rd|hwLW0hUEC<#?%e#33U#zK25)7BB|n!DZF@@6d79XS(~taY4iclV|i zBXP89ZZzFY_~jPvESUXubHNq$S_?178+FEJPytXQ-@a0DZv&>4ADi?>gy=TLU8p7e zt13z+HZ*U%yh^G}o1#|0ERmxm;QOK^53xstNx6B>=|O|XeH!&@dRy0ri;%=WGwWo; ziC`zPm2+aKP91ypIo4Xpa|ToAqN!3im75=;sS1=e^Y+IZXAFxMFK1omZNa^sm2Zds!+=OttNA-}yM3Ytw&6&ySk9T0f zgDcd8jhNOOs%dPge$!Vt6{j;aW{Dy6#$QEHo)fY}(JOug6SWjwKCUDQi!>0@`uw3RAXSe>#M%NFj? zC<#&Ph&tYl0S1%rEuCaY=2xf-cPA7*mt&J2ix9<4d9$zWhjAX;e^I~$n?;6x@qKS9 zA{P6-CQ7V}5)iZ#CYE2fAPDKteSe%n5ZXJvAC?F2NRaSl+kKhSkMrXVXEW=RLr03+ zs~zr}@D4r^lO(D)X~2lzkkJvpeFZl8sv^gKVjXGQB%LH+B7=9_zn?9ogHuubi`97} z!6*CxZ$YBCec;J2=nkAsi1PYb64PE`iH8D%-K^TA>*F!BN3%Sk#bh;Xp%$Y&d?t}NBXcu7axgh5iDePnr$-e3 zJSv|N`je`lSH0zJLqqpky7J`Xyl(d<_wKUEvX;n0W?(!jg^6>1(+~-K&QR9lop1@k zCqReW5&UuD4S>zjJLL?n7VQM>EYNR+0JZMd7z^3n`*-2P0u!&B@0 zH*fcje@WdoKIUf2$v-~iwyOJpLRz9vc;mr7=D?S4j!!x-I2gI+o|@)4E@cqTzITHr z*aCI6E2-ng3Y2=|rk0|QW94rkD9|v+#L#@VGtNt?EqM$nhdTD;h^o|acz-x^ZAhEG z&?UcSWVe(R|H|D*Pw+R;j+`FxY1%4&_mX{% z$bH8%go9v0{NkxtbpaX{r&1|O8oJD?*CNwmH!%Y?Lco<72mf_{FK@Q9DH&QV``zji zs~#6ki@kYin!Sc-B)1O@3*TQA5Zrx~O!K|q>gu}h!H4@{?5p<ZI!*b4*EiaIrO7= zGF9*@XhAgf=4Nz^8!<}`t=VRie@j4jFj<-?w@&!i;>T++6J0ThhFZXCX%n zqkD|pB?o?e#z-#*pMxNFC&aLiGg#H~1)vN|n65)S5#Ajm{@r6sj%6pro$q)u^r$6L zCDhW=@_2TFecWtaugvzr8|&6UTsj3B(tXe|_?l18_l=(8Tm>NvEh>o9K;?-4oQ@gB z@+j)ng2Cf7)%02uv>2DuAiQ-QtVkXAF~hX?E)}=^@tVvMr!bH=fs-GOL+WY2RnN%4 zf^fW{sY%99r1X=R8Am#rj4DJfB2%v>csB~^p?(339n!oM zTgoFQNea=t$^U-$2b`zOwE8yr&6~mJyAar>3Vu=`LJ<1*kZD?sIpd~1+b?{CAS_ZA z)86sF{k7PB{7WjjyIBS{!NRqzH_Y{Cs#3>eu(F(8<^%;jR+mpxH#~uiNwHq5$-S$T z31+dm9L>}}j5ir9M3Gs&geFXE&p|B9WyoswiT9~f{~E^1l;q^Hos4EfUYWa^BD+*VREfaJ)CyQ~AxnzzJa_nXw1*ri;IH?9f zF%B1puO7H$G-PbR)Hr1V_Q9`tqDK4cx<^yDlOL{1zV{$EeH;4 zNW=Ll)4Y7iIm?GL`JcG=KznO4)v0`H=CqS2s+F@iOgoun+yGV%{LrmME7!-TX~`>1 z%hk=~BN+AZpnIu~<5Yb(fhNF7sAJr~v9QFc7;fUksiS5_4tCH?oW$?DRp=h+IyR6t zt&a0tNv3*e+#-E>oH74>0!;a%gqAu&lZ7>@x2${v?pFNletwsifPxTp_4MYW$v79t28wiLyB9UhXM_1xDu^A%OzZPb|*>WmCQ$j}EZ=#9C(3gK`@ zR0@2Hnl5=aj>XRE2bd{P_%lLApUp^mR50U>g_i6dkcuH6Z<=^+DWg-TKKTCYu;;<| z)8d~JDG6saKoDkQ9N6?2%H@AF;`OFJJ}Bu8pIcd2Io08lf6VR7P>`9ISL|mV1qli& z-|B8{U7qjuiHFJI^bZB6>*u8=C22l7*P87n9nSg;?pM%5U0vPpOa+!$H>*c9KiV!{ zH2V~l6#!c%*7u)nFR(Mnu$VoDXCDC}dl)o5+FhTMlQXsqTe@=!RwMg^>-@R*I-JIw zgi&^W?`(cyg7n?EbjYisxmn6Ws!vtrgko5rM|n4=k+g)L^Llo2cp+@)cg;nchtlI( z3{@nk<2uyG`Z($6+5H9M7KEk?pdz;*B8lmRmX$&DXnBqjE}Sy4KBsKpmJP>=Ff?{E zeMz!A2rQ9VBTm#~gqjWo&3Ya!@752V?hbI^CNk6sm5P&}zl>eG7sS3wCV>x{)t|}A z_8;wpjF!* zRbf-BIonGtNh~_U^^ID+tFb;5=b=dO`6_4i7iOAd$mH_=s~0Sb6MUYoT9-L^*4dc> z1yz}@zb&@@Os7R&w|KOwY;W?TDJ|S82uol<0z63=yd&R1_P}YJO2r-cz-y*phXo&L=SF~85o&tlY}}s>c$RmIK}=zdCGp(D zV3YO;6UB{?Yzb^qIGLJiDvI-L)WU%++-7=(3JFuLEt=3k2m)~k+8i3i$Rm~s0w&7U z4q{o$uz@6jw|B_YtPghu*jGJ54SD$@cDzdvNcDk_xSH^0i_<*#|k zz$Rsj66?7EQAc?|Avk5P$B!TTKq*s45=%-{vfGLgie`06@+7^1P(qTK82)|-Cdap< zTo{{FB20X+2i(}Vdtf=!Lq=ituC8a#W@E9MIDDTh*zg9ecs0&`0UDV9w?hyt?Cpl7 zm@$zNAw>%?OI*1|Cs~AKNx-S>z6wE1BO3Vmmv@s{<)>d?zsB9773Lu{L+x!z>FqzEx51+pC2*jq2P7$30A zU})GJO`C@J0g7k~fo*-ml zgvJa{J4X@?*&{KC$(a#A+{(ec&mSJY0dCFI3=`l1S_1k2{$o}p!-w{Z97IrH}J<;qV&bjfj?i%_sVnH z;?Y>{9W)WTn*dU9B^e4QA$2-EvY7Z~%zz)fj;?!nrG@Cqn~tbsa^6pNSFeF3>%@7E zb8Ww|!h8^!S`6XlV$8YJ^a>5YQBhJ;rUFv~w^fuV2R)qrzX`)Ni;jn2jW6%z4Ua*^ z0rD?=W&c=o>bN$uBpkNR9L$j%qpQBAz@?TgMXdUCGy z423`UI+&Mj3dluAin+Z)VmuFJPjR3da z34u)TV`0)5`AQn^=<_RNRvd&0(_e0wS1E%`;488w6z2~pj4TRo0hi$Kr|1o)Z;RfwEB_U3G89NHKeNZ(U&*_1c;g-Mp{UfI1^qd=hwlZN}F<cWXEQ< zanftPeRvSh&BNYSh0UR&C5pZyCB>6u-TBOiu?<_a6<2jU_*VGcgk9{we0PTHGoRm%#M3cQT>ITbFee7+5qp)S_APqwA{wobp zpwqqBNeBM<9#MHSw#AUF=HsaRupZ0cxU$lj!4&FRtOmZp9FvovZyPLtIQjy!XNr-k zfv+^jWF%UY>?r;@o;{lB_T>n*45mU+VZnkH7w^ zb}%#gZ!;{hUNqv|MruPGXLl3>p#v_f`UfwhL4#H_^=oM0UuukYkE?OrM(t|zh zd_JC}S`ff|+^|QDgPAdJ_Hnv$3<|(-^WLRt+{|?a_(Ve_`yB+>8#vy_a4Oxd5GV*R z19;Jj`9_8!v@ga%p1c%f!H1DS441?GfEuZrC@DpRXh|rBG6Y7&X*X{+KlF~nJU)TO z4DAI_U%>xo67M=5orz)D?0}|F&RjuPw!@ON#KAiQwzFF*nuZ)93Fxk~d3xSz$BrGc zoMW-b+mE0rn;5qAvo#LEIE>Hc-&)rq&aD@~rc03l<%+n2@B93%x|e+7Fer)IcGP{x zqNTIr-i;4%^bm^k=kFGTtg6?d*djAFB;jZJ_vlja;fg znE=O$AY#MM`DJv4v66CkUU>v9*)DMz zz~vr;S~*a`f?jLQet3^ML)GlO$iaokdZ%^_6;3 z+%&lXQGF`bwue|cv3~V*2wgey*mJ*T12cvBxfa7iGVpHa3+=B9xfAOVr27P!CIsF=;*X+EoIP(5FG$h@TXfaDPZrW|dS*fD9#+pA&5$9eBtSye|XRUie zZW(TwA6$dj806b49|`1&4Vl(%G;fY^DE1v{xt1U4{-%RL)+`O3`N{1~0*T7T3}-@i zx}BRpUENz^K7WGCj#0DcT4>bd2!%;a>}BWAcQ7Pwpfg`WJLCs}TF`s6-f6?d%T;#a z`)aVn;e!ZYgzPq9QjJ5|CNAs1$%t29hgnj^3kI8Xqiv6Y`j?bhug0KaR{g1g)Eq7Z z>}Z>|niPL4og$;fxCt}n=1ui{USa5lqscYu%;Br#E^gp&>-}2FP6xQoQ3&l8oDnuj@jOjKDf{_IwQONb--rAk0 zB=0KoDk=lq)6^fe-Zb1Ap$qClu36yzSca3@Rageckw zZ;ma6aDt)RhFT!L2ppdTI&Bv^(-55!C^fvblrFghT{&rLJcV1hRIPTNG;rJ?D+T)_Eq5sp3HkT9+iIjxbU2b z^=iE@UOO-os|Hf#C`WXLnq%ad?a`8PBMr6k5D!)mb}u|m$G@4vj8 z@Jn%Gw?Kr;8_g~3b^iFCgF$bxNd8RC1;F9yN(C0m6Zl9Sd*g%)+Ug>3M2OGJYe&nKnt|z~8X&;7JVuZdtzetu?BZm=+Wp&D< z!?dqyQlh%e!l$X?mhWemwdK{>4u~sjDEGx&&k&Ig-I;gB(&# z6IhSM{rCj8H>0-~Nn3|3QFj4(#Tru62B?XyBB34IEq2@xP0LC2(Pza4R2Z_QFz6_f z7e^5#OzI`DrIgTHrz{AI&0hju1oTaFbR5Eq<9Jr92f#@dXg+e}B6l3kq5bPfHNEdp z3h&n4iz_PAFNWSi7kT+2E2Xvxcs*U$HyPK;!uxXQfLAXrRczr7GL7!RgRYV+_q)i- zIJhB;-dNkZcn9kdOYnJoM9P}BSwugdRXRTK$-tu z;Gh5og>qTqICMf2Skz})E`-I8P%N(#TZH!Y2nfq zAh1we54;E_FGBXU)>vtOoX+CAJ@2`gBgJ_wJoiPPe`Xmke*FeoRe1v;T7|AViflf4 z^ubl?c6xeM-h`qlx^RMZ(Jfp)${{J#Z(p;}7QrSarc)k1h?6l0e}Ay=^DjCzjH=de zWc>CCemz@Q2<{~q%?b&|{rG{-4ZT!&0Tic?S=~)IW@chSrg3EneL#yaH8U$nN=gzY zHktBDtH30=7vDWdnojK-vU1(aE4|_0yLk4+21cjtb5* zfTfMKCX(RHyp9my>$5d_w&B>yWG11&ph}Lto2QXxKK8Mgjqj> zB7$6NYir_7>AUxTk4ZD;_3PJbuwH0vt4nb3ZsdoObGQ;(Z#T{;c%ucycGkqdjU&M` zH)_d*LU>rriRXNcx4%l3yu-l;4uIRqkJMlJd#TKvyuG~v$k@RQK&$9vGRkcbCP^Cq zp0=f$Ix2n*#dkAS5P#mtsF1};UnNIB4uj;}m#EwBS{xn*HNl1Z8EYfXzR}7Us#>yc zfJRy}_F9W7j2+XPbc$h1v-(jdGD_p;@*H<4)YwKM$l~t;JoW0Y1w^m&@c1-Trj)6} zc4M=wTmX}QI~aVm29CZYOX@=AF(s=<34K|!YX35+sscQ+?SDk|r8fV^_3&n1W ze+L_**8Szn7eMc>C0OM5do<4UZA!HDu4Q!=d5VBtpE=l<&~g+KVl&LNM1;X)u6dXW zgH6R(|J3(bxRcPL0SRAi18@U-yIqUpvJ*JvJht5)F*Mq}FR8}y=*AniP5@%wV#S|k zao>-3)o`ZVoy&+Wjn(OOm@u>t0$8sdeJG;6MD8;$svV~4z$8Eyp`hDc1BX!t<;s)u zJkApcoZZMcs+4#P4T+7csqMAL7y}ZB3TcG2+9u9^yg6zI+@tpK_nC+PyrBW{p|jHu zW=TIip(O^SimG{cnBTQJ_+YXNaNNhz0g-JxWyYDB)%)9Gb_A^;2nCmM^)vRLa$sgK zaP$GFg*IprpJlK*(E^m0@9wOdkGwxUI%AZblcT&%@72BSTM^|{cG^|)8N+l2-M@T9 zkHj;)>0D~#YjByDuw7j_C~yQr^hrrgwSDJWY=7k!CWO{Y>*lUfrBF|y#Tb@^^}bKm z)OMFAHLZ;Rjwa{%u?On0uy&`U)R3z??*fZ{+i)i7WDx~~DIz-w`om(Ks8cg0d65N$ zkNHq9*H1t8U|^#PQhXeT3NKCNV+*L`Zc(UM%3<1D*DmpV4hxSWm}zNGrh>R=JRe`f zGDjHVH#7D~pnyP}ib*=vd>7 zjM2p`6TvPhZuhjh7FS6v?e{Pu43#W=G3R{AfSB2ZPd?(oKi%#j(kqZ=;rwIuJ~|Tr zT$R+YUyD^XYCxr}9wjBn@9WFTDy@{Yeg>}LmjO7PWF{E_mgtcp?$*`7TdL1A8KEB! zI`WMGTgB#vMetpS+ymMn=bHio0y6SHIro5)9wbrBxE57JJ}*8;opbs-|GyfGeI zStx2BTEU!tO+H}}EVlJzq`=$EBYnp>u(%cGLm3 zlp?lt_S*<%yFA;E(RSBwP*mw-RR0H zW~oTQ-PKs3s)-h392)i%TR_EDkj&Dt#d-RD*nv_CeGjrJ@Gxdq9&6h}q?wX{7ONo` zQ*tfo#HrAgU*a&LbJJtQ0K&PA%;Szcj>xZMsx97Xt0h9$ZcW`^wi&DhesY!p%pJRePseHFzo9k`oU zS~V+|BB{CUD^;-aT zT7pIQLV=`oAaF|{cv-=}YJH$NVaVq2I16e>!<;bwBh^VBTkefJ=ntgI=z5T`u z_g6Ai{{x_;W&R@_I#9sclwxKZ^UPcV207? zMXkFY9OSaVv-d*Hdx8!Dr2Q5>-e$pmw)B7&BOkltcyOHlB8_ATg1?&pC$MA^)3byC z6l^}|So;C>FwxP`Xu6J;@P9n2SDFj7?Dwcc!_jC_`GWY_4BjeNC?&W^nPD=#mQFDA zr=K;cZ@}2_cYCg2mH^Jg@M#P%GdCwvCN^X}g3}JiEeH#0-(*OTLqBYB%ixzdVGj`B ziTQW&;S-a4>||-Bv(10C`}IoiRujjG9Xg^i8VwXzVC)Iv(49zJwRC= zYBV_2F%A?i!>g!00d9~u(T%_>od(tzup3tqVhWUduG|-fG=jZU;<_84l?NJUvR(G` z_8dVW?(2BRdqT{TwfMewn$Ad^%Msr2!@LCs%o3}{)qv8@dI6!1PngKlm>(7Y&XD;W zjvRObJcZW?kjyvmSxBgEL+Qxc7l{j$!x*6iF}lZND}K|1bY&V{>-jVk!?>Dz zNDuBq76#5%`e6ar)~uzE1p?I#GPkdBqM;u0=u#L#A_-(eyrV0WZ-r2^02OjKJTDwZ zD>UI9)kcj&>@iEa2VqE#KK2ZFI2JeiJrYR+HJglYL0+~Ls$fXNFW4+Me{)T52K#l! zYGM;03l-_W9P!~Mf&~xZ2^#vC-;%zo1Se~z2za1!eL#g&3VSn_inT-ciFEA|X7(-K zQB!AH26-PXAUJ?-5Y#qHSvqI&eb2vvv8q^03RvlK%R;G9i>e9Gb_|98bAI^3G;!f6 znZ+$HlgWN`k7@2l8fQ9wp;Vtqp#LiPK7y6z%v}CG7xu`D6+S*bs8QNt#S`W)!|vl3 zGOGSYzBeA`bA^04PFgP*cwsJL=tvq+fze|4VZAD#p5_9&4GhbXG+=wyoPgR1T5So` zqCA1bC`^PHq5{hp07-Rkk`Lz?XwH+L)zPAhv4{F@2b9U~lQGxjdciAvlUJ==XhhG?d1# z2e!+K_!ebmi4clPjlfW;$EI&U@%Oa)UYBZmhXtwQn+4&4awjeJu>ho}3nE%g20iZ~n+<>xG z&Z=;W#b<@TL52S(CYQD1kmxU|Rnes@=Kz)i$~o=m$fdRz0HaI}(;8m}L@d>U1FMN7 zdYI2ZWE2woNqtpwB3 z2(;9RYV?CRjNus2(s0KBaF?NvxkS^t*IJ{lOiPDbR|XuLKK5e8UAppas33472E*xU zhgn&Sau1OGt0l3Tl#Q5iF(`g+!1!nbQ*K4ILqrr{wOk)uBT8J$iw*ROLb?3FnUced zZ)PU$0dUs})!~Eer7oJ>H~?__43u~4iT1P+lhOGK(*>tl^)-N95#AWYxaaO8pp9k4 z0l7MZAY}Ol^02vQEQ7aN3to5=L6=k!GkmoNDg)_IDE9aW%C-$XfVqp}tA^{b3r@GE zB<#|iXf~{qqdN{+HD))>Mf?MCDX?aU*L^sb0CE_*gdRxltqAf-Bf9W9Vvprp`>|@o z9c?%%bT=BMO=qM)5)nf#4P9N5 z=rdYT*|8g->YbppB>(|P!lB=)bc@;Dz_obzsM}oztsa~OA52uew@qqj*;^oohn@vG zof3n6Ijf?Zr(6?P)#Dy8J>NZ&W~v-umQ`j_LY%hu$hkA<(Sak+U987F9dVn~^C~p0;9SrvQ z#u+x$E4S>c?s=?dbnnf0a_iDpmJ8qCFZ8-rhIzF;Q&Pxo z(d3yagl)&&N=(l&64hcTr^7LczY9wQzm+w5>n+Sob$Tq&L;;;33VwJgf;dT0; z+=~vzayVDnxlN1FQ5bnv7m7wIRqGxBLK)%mR{Lwm8?A-YgrTn^CA}OWLemRLX2}QF ztDz&~!mFa!hc<=u$Z?LnM}vxZBD)_tXw)i<1;-sJ9fWEI%4gh+cl>sMy>$0tcvlKh z_BvpNkVzh;Sfbl*-tcl9*H#>>?oGy$az&Zq5h%+9!ri_{@DBlKF{E@vj0lb`{J|+8 zKsE?eJoqB$xk}!G02tWpCv@zPa4$NGK1KT^IA06OlIir}{?W^wDE|24BZ3_A0oF!S zPD0zhYG%vhSfFLaLZQIn6Xb_+dx19QC?8SNyADO!b>JME`&%uU?Rv%r-i_OQ8oB0w zcvAZc9~^r^MX2_m<5pLFoW8c6o*ox&Mh$(6PdE`sz)L9!_O@ldLk)0dWeSdPSJZ%s znr=Auz|RRd!cda*0eV94W=4f}Dz6e$lJemUpBqrP4&ZI=gKz0aQ`MjPFdEwd+Vl@Y zJptaf7@&%*%5+{OunT#S+1CMJ1$&%}bIah-Ol;KtipKD+P1;{!wcc&1oC=Dl?&Sjr z`*z6uWP4q(lRtSP8E0~?6 zp7f6dGoS)hvf_3J;ykyO^W>Ej-m?c_p`v~*y~KV3`-~#ab2};tZ^2?#ToQO20ecgR@&KCG z<5Ym*Sf7$CO>*NhANlsO2c7`$3nFO8yT3EOdjJGyzs8mxTO_T5XWxWrl?QFbaa$z8 zfh~P-Z!aAI9zJX-=Q+X^J9Eg9;rxjajD26eb@4Y(2ps`9`2n1fXqt*9U77K|TEMoR z>+{zz6AQR$^3qI^-(TGT@8_SxmOkYMABU?^WcKj^=)HNTa z<-WCwrcUhR9b6A9uoW#=p-E*hj??lOEjYq~5>JE(E+W3L%E74`8`_%q*es4Yu;zogFF6h1uq;Fy$| zLVlb;yxseEz`BVi2<=#|KzY+un3K>|sA_U^rbIfu(9#eHSntQNMM}6hsC|#J*Q-jb znbW>P73^AM=bAmb$FRJ*oQB1QKoBvo@yEwxh)GXFYVa7SB)0(z_}LBFE5}nL(6$nV zLBUYP0^*(9VyN~U(#kCOeU4`> zJ|LaKZ~|#KYn?nvW~Q=tu2NoXJo@Si8n$gueC`bS;neMaxIPT(B5)@|JW<)feZQ7uA*=q?>NuJmm{mUX=s}KbfTESwsaJH7?JtQIHGwFY8|<@?~RYbatF0%Uumb&&1YK}H_M4~AOq zhclt+`Jq%aS5u~(M-5c!_#&fF;tB&60~K_SfSw=*DWL@fW0{2z$DEmnBGMl5ec2qq zb->L9!09IGXbm$=NUY7p8*S;WIXVoI zd!f9hk(010wr?=qp(=F7l&)<0M403eL++Zo&xKe_10Ox)eoxw2l{`${0>}7c}s%F+{%tiYy9oj)}Ti!FDdnZQNHN~KLD}7 zhSQrRIC@Uwgw~pwsOV!=6{QCi8GbHqY-gIgBfKNATbK{;pOOxWjk zIeKzq#^kKWyswP8g5J;DO`&IZPD^-85;3JOwZHDi5_4C>!3ZPvg-qFkNHJn=0uaW% z9PolpQcqZ&yU`zQxR!7oe3gn4RZVZXGt2r4)pm&xX+`eQ{Vy+q({OaBvDm3)*xg{X(V-iqJISmerqtsG4-J^34ePV@D zb=KigEwzDYgiO7u@(R6wCNh>5c?CM0kf!A%CntAYvzYyQuP5fdP5!az3sqak9;jE> zn*eXs>FMyczpy|W=vBU(uxelR(li6f57VZ~(^B2{Kh4*kQXcm}{lFaj-a*~W<*cHg zaBvcSVS(CRe+EwEIxtc_s^+IU=O6LkoCYqsJDfI~o(g0x7eRZDPNzq$?jSffKRgz09}(-8I;SK3^G!>JY@B9KJik-KO=w08AwL?Du24 zQQQtLwVQx;bFXG$%r6Xgx8ZN}7FmfR@!U)8;-7|#EAjvP9 zHQC>iwV4Za!V}uXUuZLuBuraeHbfNj3*vX&`&+0?1RNJ1Ml9p`C59@0I{QC-&HmBc z*^D5|m!bb30f6WJ+1WqZ080Kx>A_z9v2Fi{+qOUU4E5K4y!#(}hRVSodj>z0_9wnY c{@=rRj3#@p2^>1iLq+D`J~Mp5UdO-wFO5J9w*UYD diff --git a/Assets/Schunix Text Logo.svg b/Assets/Schunix Text Logo.svg deleted file mode 100644 index d27a639..0000000 --- a/Assets/Schunix Text Logo.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/LICENSE b/LICENSE index c53f721..0877d39 100644 --- a/LICENSE +++ b/LICENSE @@ -181,7 +181,7 @@ removed. Third-party software redistributed in a built image -- musl, toybox and mksh, all under ports/ -- keeps its own license; see NOTICE. - Which outside code may be copied into Schunix and which may not -- the + Which outside code may be copied into SchOS and which may not -- the BSD/GPL rules, the NetBSD advertising clause, and what is deliberately never shipped -- is written up in docs/licensing.md. Read it before copying anyone else's code in. diff --git a/LICENSE.MIT b/LICENSE.MIT index d9726b6..900e8b6 100644 --- a/LICENSE.MIT +++ b/LICENSE.MIT @@ -1,7 +1,7 @@ -The Schunix kernel is a derivative work of xv6, which carries the licence +The SchIFT kernel is a derivative work of xv6, which carries the licence below. The MIT licence requires this notice be preserved in all copies and substantial portions of the software, so this file must survive any future -change to the Schunix licence. See NOTICE and docs/licensing.md. +change to the SchOS licence. See NOTICE and docs/licensing.md. -------------------------------------------------------------------------------- diff --git a/Makefile b/Makefile index 5282139..47b1860 100644 --- a/Makefile +++ b/Makefile @@ -277,16 +277,16 @@ endif # ----------------------------------------------------------------------- # Top-level targets # ----------------------------------------------------------------------- -all: schunix.img +all: schos.img -schunix.img: $(BUILD)/boot/bootblock $(BUILD)/boot/stage2 $(BUILD)/kernel/kernel $(BUILD)/schfs.img - dd if=/dev/zero of=schunix.img count=10000 - dd if=$(BUILD)/boot/bootblock of=schunix.img conv=notrunc - dd if=$(BUILD)/boot/stage2 of=schunix.img seek=1 conv=notrunc +schos.img: $(BUILD)/boot/bootblock $(BUILD)/boot/stage2 $(BUILD)/kernel/kernel $(BUILD)/schfs.img + dd if=/dev/zero of=schos.img count=10000 + dd if=$(BUILD)/boot/bootblock of=schos.img conv=notrunc + dd if=$(BUILD)/boot/stage2 of=schos.img seek=1 conv=notrunc # seek is 1 + STAGE2_SECTORS, not a literal. It was 25 against a 24-sector # stage2; raising STAGE2_SECTORS for the boot logo without touching it wrote # the kernel straight over stage2's own tail. - dd if=$(BUILD)/kernel/kernel of=schunix.img seek=$$(( 1 + $(STAGE2_SECTORS) )) conv=notrunc + dd if=$(BUILD)/kernel/kernel of=schos.img seek=$$(( 1 + $(STAGE2_SECTORS) )) conv=notrunc kernel: $(BUILD)/kernel/kernel @@ -315,17 +315,17 @@ ports: # ----------------------------------------------------------------------- iso: rm -rf $(BUILD)/kernel $(BUILD)/lib $(BUILD)/cmd - $(MAKE) RAMROOT=1 schunix.iso + $(MAKE) RAMROOT=1 schos.iso -schunix.iso: $(BUILD)/boot/cdboot $(BUILD)/boot/stage2 $(BUILD)/kernel/kernel +schos.iso: $(BUILD)/boot/cdboot $(BUILD)/boot/stage2 $(BUILD)/kernel/kernel STAGE2_SECTORS=$(STAGE2_SECTORS) sh tools/mkiso.sh $@ # Boot the ISO the way a machine booting off a disc would: no hard disk at # all, so a kernel that still secretly depends on one fails here rather than # in someone's optical drive. -qemu-iso: schunix.iso +qemu-iso: schos.iso $(QEMU) -serial mon:stdio $(QEMU_DISPLAY) -cpu qemu64,+rdtscp \ - -cdrom schunix.iso -boot d \ + -cdrom schos.iso -boot d \ -m 1G -smp 2 -machine pc-i440fx-9.2 # ----------------------------------------------------------------------- @@ -665,10 +665,10 @@ $(BUILD)/sysroot.stamp: sysroot-install $(BUILD)/fs.img: $(MKFS) $(BUILD)/sysroot.stamp @mkdir -p $(BUILD) - @echo "Creating Schunix File System Image..." + @echo "Creating SchOS File System Image..." @# A running QEMU holds this file open, and on Windows that makes rm fail @# with "Device or resource busy" -- which stops the build *after* the - @# kernel has already relinked, leaving schunix.img stale. The next test run + @# kernel has already relinked, leaving schos.img stale. The next test run @# then boots the previous kernel and the change appears to have done @# nothing, which has cost several debugging cycles. Say so plainly. @rm -f $@ || { \ @@ -684,9 +684,9 @@ $(BUILD)/fs.img: $(MKFS) $(BUILD)/sysroot.stamp # ----------------------------------------------------------------------- # QEMU # ----------------------------------------------------------------------- -qemu: schunix.img $(BUILD)/schfs.img +qemu: schos.img $(BUILD)/schfs.img $(QEMU) -serial mon:stdio $(QEMU_DISPLAY) -cpu qemu64,+rdtscp \ - -hda schunix.img -hdb $(BUILD)/schfs.img \ + -hda schos.img -hdb $(BUILD)/schfs.img \ -m 1G -smp 2 -machine pc-i440fx-9.2 # The root filesystem. Built from the staged sysroot; the kernel mounts it as @@ -694,7 +694,7 @@ qemu: schunix.img $(BUILD)/schfs.img $(BUILD)/schfs.img: $(MKSCHFS) $(BUILD)/sysroot.stamp @mkdir -p $(BUILD) @rm -f $@ - ./$(MKSCHFS) $@ --size 8000 --label schunix --sysroot $(SYSROOT) + ./$(MKSCHFS) $@ --size 8000 --label schos --sysroot $(SYSROOT) # Boot with a SchFS volume attached as the second disk. # @@ -705,15 +705,15 @@ $(BUILD)/schfs.img: $(MKSCHFS) $(BUILD)/sysroot.stamp # the live v1 root and the SchFS probe correctly finds nothing there. # # Once up: cat /proc/schfs -qemu-schfs: schunix.img $(BUILD)/schfs.img +qemu-schfs: schos.img $(BUILD)/schfs.img $(QEMU) -serial mon:stdio $(QEMU_DISPLAY) -cpu qemu64,+rdtscp \ - -hda schunix.img -hdb $(BUILD)/schfs.img \ + -hda schos.img -hdb $(BUILD)/schfs.img \ -m 1G -smp 2 -machine pc-i440fx-9.2 # ----------------------------------------------------------------------- # Misc # ----------------------------------------------------------------------- -# schunix.img is deliberately NOT here. It is a real file with real +# schos.img is deliberately NOT here. It is a real file with real # prerequisites; listing it as phony made make skip the timestamp check and # re-run the four dd commands -- including zeroing five megabytes -- on every # single invocation, including ones where nothing had changed. @@ -721,7 +721,7 @@ qemu-schfs: schunix.img $(BUILD)/schfs.img # derives from art that changes about never, and making it a build dependency # would put Python on the critical path of every clean build for no benefit. # Run this by hand after changing the art. -LOGO_SRC = Assets/Schunix Small Logo.png +LOGO_SRC = Assets/SchOS Small Logo.png LOGO_PX = 128 logo: @@ -729,7 +729,7 @@ logo: # The USB vendor/product name database, from linux-usb.org. # -# Dual-licensed GPL-2.0-or-later **or** 3-clause BSD; Schunix takes the BSD +# Dual-licensed GPL-2.0-or-later **or** 3-clause BSD; SchOS takes the BSD # option, which is what makes it usable at all. See NOTICE. # # Cached in dist/ and refreshed only when you ask, NOT on every build. That was @@ -789,7 +789,7 @@ qrcheck: $(QRTEST) # 'clean' removes generated output only. dist/ (upstream tarballs) survives, # so a rebuild never needs the network. clean: - rm -rf $(BUILD) schunix.img schunix.iso kernel/arch/x86_64/vectors.S + rm -rf $(BUILD) schos.img schos.iso kernel/arch/x86_64/vectors.S distclean: clean rm -rf dist diff --git a/NOTICE b/NOTICE index e57492b..7fa79ab 100644 --- a/NOTICE +++ b/NOTICE @@ -1,16 +1,16 @@ -Schunix +SchOS Copyright 2026 Nexoniarz -This product includes software developed as part of the Schunix project, +This product includes software developed as part of the SchOS project, licensed under the Apache License, Version 2.0. See LICENSE. ================================================================================ Third-party software ================================================================================ -Schunix incorporates and redistributes software written by others. Their -licences apply to their code and are NOT superseded by the Schunix licence. -A built Schunix image contains binaries derived from all of the following. +SchOS incorporates and redistributes software written by others. Their +licences apply to their code and are NOT superseded by the SchOS licence. +A built SchOS image contains binaries derived from all of the following. -------------------------------------------------------------------------------- xv6-x86_64 / xv6 MIT License @@ -18,7 +18,7 @@ xv6-x86_64 / xv6 MIT License Copyright (c) 2006-2019 Frans Kaashoek, Robert Morris, Russ Cox, Massachusetts Institute of Technology CSAIL -The Schunix kernel is a derivative work of xv6. Substantial portions of +The SchIFT kernel is a derivative work of xv6. Substantial portions of kernel/ -- notably the process, trap, virtual memory, buffer cache and v1 filesystem code -- descend from it, however heavily rewritten. The MIT licence requires that this notice be preserved in all copies; see LICENSE.MIT. @@ -76,7 +76,7 @@ Maintained by Stephen J. Gowdy http://www.linux-usb.org/usb.ids Distributed by its maintainer under the terms of *either* the GNU General -Public License version 2 or later, *or* the 3-clause BSD Licence. Schunix takes +Public License version 2 or later, *or* the 3-clause BSD Licence. SchOS takes the BSD option; the GPL option is not exercised and could not be, since Apache-2.0 and GPL-2.0-only cannot be combined (see docs/licensing.md section 2). @@ -91,7 +91,7 @@ Roboto Apache-2.0 Copyright the Roboto Project Authors (https://github.com/googlefonts/roboto) Shipped as /usr/share/fonts/Roboto-Regular.ttf, from ports/Roboto. Licensed -under Apache-2.0 -- the same licence as Schunix itself, so it carries no +under Apache-2.0 -- the same licence as SchOS itself, so it carries no obligation beyond this notice. Intended for the desktop, window manager and compositor. @@ -106,7 +106,7 @@ Shipped as /usr/share/fonts/JetBrainsMono-Regular.ttf, from ports/JetBrains_Mono and TTY. Under the SIL Open Font License 1.1 the font remains under OFL even inside this -Apache-2.0 system -- that does not reach any other part of Schunix -- and it may +Apache-2.0 system -- that does not reach any other part of SchOS -- and it may not be sold on its own. Bundling it with an operating system is expressly permitted. JetBrains Mono declares no Reserved Font Name, so a modified version (a pre-rasterised bitmap, for instance) may keep the name. @@ -117,7 +117,7 @@ permitted. JetBrains Mono declares no Reserved Font Name, so a modified version Copyright (c) Qi Ma, Leyi Pan, Ao Sun, Peiran Xu kernel/fs/fs.c and parts of tools/mkfs.c derive from this project, which extends -xv6's file system with features Schunix still uses today: +xv6's file system with features SchOS still uses today: - the HTree hashed directory index (BKDRHash, HASHRANGE, the primary/overflow bucket layout), after Daniel Phillips, "A Directory Index for EXT2", @@ -137,7 +137,7 @@ Distinct from xv6 itself (LICENSE.MIT), which this project in turn derives from. ================================================================================ The build downloads upstream tarballs into dist/ and applies the patches in -ports//patches/. Nothing in ports/ is Schunix code; do not add first-party +ports//patches/. Nothing in ports/ is SchOS code; do not add first-party work there. See docs/layout.md. Licence questions -- what may be copied in, what may never be, and how to check diff --git a/boot/stage2.S b/boot/stage2.S index 340d0f4..61df44b 100644 --- a/boot/stage2.S +++ b/boot/stage2.S @@ -100,7 +100,7 @@ print16: ret bootmsg: - .asciz "Schunix booting...\r\n" + .asciz "SchOS booting...\r\n" .code32 start32: diff --git a/boot/stage2main.c b/boot/stage2main.c index 78966e5..be0f687 100644 --- a/boot/stage2main.c +++ b/boot/stage2main.c @@ -469,8 +469,8 @@ static int boot_menu(void) { const char *items[] = { - "Boot Schunix", - "Boot Schunix (verbose)", + "Boot SchOS", + "Boot SchOS (verbose)", "Reboot to firmware setup", }; int nitems = 3; @@ -481,7 +481,7 @@ boot_menu(void) for (;;) { fill_rect(0, 0, g_width, g_height, SCH_BG); - draw_centered(60, "Schunix Boot Manager", SCH_ACCENT); + draw_centered(60, "SchOS Boot Manager", SCH_ACCENT); draw_memory_line(84, SCH_DIM); for (int i = 0; i < nitems; i++) { @@ -547,7 +547,7 @@ splash(void) // The product, not the loader. // - // This used to read "Schunix Boot Manager / version 1.0 / Memory: 1023 MB / + // This used to read "SchOS Boot Manager / version 1.0 / Memory: 1023 MB / // Press F8 for boot menu...", centred, in gold on purple. Every part of that // is something a system shows its developer rather than its user: the name // of the component doing the work, its version, and a memory figure nobody @@ -605,7 +605,7 @@ stage2main(void) if (g_have_fb) { fill_rect(0, 0, g_width, g_height, SCH_BG); - draw_string((g_width - 7 * 8) / 2, g_height / 2 - 50, "SCHUNIX", SCH_ACCENT, SCH_BG); + draw_string((g_width - 7 * 8) / 2, g_height / 2 - 50, "SCHOS", SCH_ACCENT, SCH_BG); } // Booted from a disc we then could not read. Falling through would send @@ -646,7 +646,7 @@ stage2main(void) stosb((void*) hdr->load_end_addr, 0, hdr->bss_end_addr - hdr->load_end_addr); if (g_have_fb) - progress_label("Starting Schunix..."); + progress_label("Starting SchOS..."); // Jump to kernel entry. NOT a normal C call: kernel/arch/x86_64/ // entry.S's mboot_entry reads its "argument" (the framebuffer diff --git a/cmd/init/main.c b/cmd/init/main.c index 6d044bb..6f5586b 100644 --- a/cmd/init/main.c +++ b/cmd/init/main.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -// Schunix — minimal init (PID 1) +// SchOS — minimal init (PID 1) #include "types.h" #include "user.h" @@ -89,7 +89,7 @@ main(void) mkdir("/sys"); - xputs(1, "\nSchunix\n"); + xputs(1, "\nSchOS\n"); xputs(1, "init: ready (pid 1)\n"); for (;;) { @@ -102,7 +102,7 @@ main(void) if (pid == 0) { // exec.c auto-enables Linux ABI for musl binaries (entry >= 0x100000). - // Do NOT call enable_linux_abi() here — it corrupts Schunix syscall + // Do NOT call enable_linux_abi() here — it corrupts SchOS syscall // numbers for the exec/exit calls that follow in this child. // Standardized naming: the shell is always /bin/sh, regardless of // which implementation backs it (dash, mksh, etc.) — no ksh/mksh/ diff --git a/cmd/shmtest/main.c b/cmd/shmtest/main.c index ab0ad99..a77020f 100644 --- a/cmd/shmtest/main.c +++ b/cmd/shmtest/main.c @@ -77,19 +77,29 @@ main(void) check(p[100] == 'X', "and so is one further into the segment"); // --- file-backed mmap -------------------------------------------------- + // Written and compared through one constant, and never by hand-counted + // offsets. Those offsets used to spell out SCHUNIX-MMAP-OK a character at a + // time -- m[3]=='U' and m[14]=='K' -- with the length 15 written out + // separately. Renaming the marker to SCHOS shortened it to 13 and left both + // behind: the write ran two bytes off the end of the literal and the + // compare read past the data, which failed a file-backed mmap that was + // working correctly. + static const char MARK[] = "SCHOS-MMAP-OK"; + const int MARKLEN = (int)(sizeof(MARK) - 1); + int fd = open("/tmp/shmtest.dat", O_CREATE | O_RDWR); check(fd >= 0, "created a file to map"); if (fd >= 0) { - write(fd, "SCHUNIX-MMAP-OK", 15); + write(fd, MARK, MARKLEN); close(fd); } fd = open("/tmp/shmtest.dat", O_RDONLY); if (fd >= 0) { char *m = mmap(0, 4096, PROT_READ, MAP_PRIVATE, fd, 0); - int ok = ((long)m > 0) && - m[0]=='S' && m[1]=='C' && m[2]=='H' && m[3]=='U' && - m[8]=='M' && m[13]=='O' && m[14]=='K'; + int ok = ((long)m > 0); + for (int i = 0; ok && i < MARKLEN; i++) + ok = (m[i] == MARK[i]); check(ok, "mmap of a file returns the file, not zeros"); close(fd); } else { diff --git a/docs/architecture/kernel-history.md b/docs/architecture/kernel-history.md index cb3d4b4..7d71ba2 100644 --- a/docs/architecture/kernel-history.md +++ b/docs/architecture/kernel-history.md @@ -77,7 +77,7 @@ Bringing in toybox (see "Coreutils" below) surfaced four more, all fixed: all (`kernel/sys/linux_abi.c`) — every external command spawn from a program that prefers `vfork()` over `fork()` failed outright. Mapped to the existing `fork()` (a fully correct, if slightly slower, substitute). -- `sys_stat`/`fstat`/`fstatat` (`kernel/sys/sys_fs.c`) filled in Schunix's +- `sys_stat`/`fstat`/`fstatat` (`kernel/sys/sys_fs.c`) filled in SchOS's own native `struct stat` layout regardless of the caller — musl/toybox parse a fixed Linux ABI byte layout instead, so `st_mode` was garbage and tools like `ls` couldn't tell files from directories, or executables from @@ -110,7 +110,7 @@ programs, pipes, and `ls`/`mkdir`/`grep` without issue. ## 2. Naming standardization -Schunix standardizes on exactly one name per role, regardless of the +SchOS standardizes on exactly one name per role, regardless of the underlying implementation: the shell is always installed and exec'd as `/bin/sh` (currently mksh, built from `ports/mksh/`), and PID 1 is always `/bin/init`. `cmd/init/main.c`'s exec loop only ever tries `/bin/sh` — no @@ -161,7 +161,7 @@ Split into two stages, the standard way real bootloaders solve this: compiled size, and errors out (like `tools/sign.pl` does for stage 1) if it ever grows past that budget instead of silently corrupting the layout. -The kernel now starts at disk sector 17 instead of 1 (`schunix.img`'s `dd +The kernel now starts at disk sector 17 instead of 1 (`schos.img`'s `dd ... seek=17` in the root `Makefile`, and the equivalent `+(1+STAGE2_SECTORS)` in `stage2main.c`'s `readseg()` — all three places that encode `STAGE2_SECTORS` have to agree, or the kernel won't be found on disk at @@ -184,7 +184,7 @@ renderer in `stage2main.c` (not the kernel's `vga.c` — paging isn't set up yet, so the LFB physical address from the VBE block is used as a plain pointer) reusing the kernel's own font data (`include/font.h`) directly. It fills the framebuffer with PSOGM's purple (matching -`kernel/core/console.c`'s panic screen) and draws "SCHUNIX" centered, then: +`kernel/core/console.c`'s panic screen) and draws "SCHOS" centered, then: - **Real-time loading bar**: `readsect()` (in `stage2main.c`, not the kernel) calls `progress_tick()` after every 512-byte disk read, updating @@ -210,7 +210,7 @@ It fills the framebuffer with PSOGM's purple (matching `sys_reboot()`); a real bootloader can't jump into BIOS/UEFI setup directly, so this is the closest honest equivalent — it gives the user a fresh POST during which their firmware's own setup-menu key works. -- **Verbose boot**: picking "Boot Schunix (verbose)" writes a flag byte to +- **Verbose boot**: picking "Boot SchOS (verbose)" writes a flag byte to `BOOT_VERBOSE_FLAG_ADDR` (`VBE_INFO_ADDR + 0x100`, i.e. just past the VBE block) before jumping to the kernel. `kernel/core/main.c`'s `kmain()` reads it into a global `boot_verbose` as its very first action and, if @@ -496,7 +496,7 @@ became an amber terminal. `include/theme.h` is now the one palette, and the rule is: **normal states are calm and dark; only failure is loud.** PSOGM keeps the purple entirely to itself, which is what makes it mean something. -The splash copy went from "Schunix Boot Manager / version 1.0 / Memory: 1023 MB +The splash copy went from "SchOS Boot Manager / version 1.0 / Memory: 1023 MB / Press F8 for boot menu..." to the product name, a rule in the accent colour, and the one hint that is actionable — moved to the bottom, where a hint belongs. No shipping OS names its bootloader on the splash. diff --git a/docs/architecture/schapi.md b/docs/architecture/schapi.md index 28c2541..6fc13c4 100644 --- a/docs/architecture/schapi.md +++ b/docs/architecture/schapi.md @@ -1,4 +1,4 @@ -# SchAPI, and Schunix as a system +# SchAPI, and SchOS as a system Status: **direction agreed, not yet implemented.** Nothing in this document changes what is being built this week; it changes what everything is being @@ -8,7 +8,7 @@ built *towards*. See §7 for what actually happens now. ## 1. The decision -Schunix stops being "a Unix-like kernel with a userland bolted on" and becomes +SchOS stops being "a Unix-like kernel with a userland bolted on" and becomes a **system**: a kernel, a native API, and the services and applications that sit on it, designed together. @@ -50,7 +50,7 @@ Linux made the opposite choice — the syscall ABI *is* the contract, "we do not break userspace" — and consequently every syscall mistake ever made is still there, with a `2` or a `64` suffixed to the name of its replacement. -So, for Schunix: +So, for SchOS: ``` ┌──────────────────────────────────────────────┐ @@ -58,7 +58,7 @@ So, for Schunix: ├──────────────────────────────────────────────┤ │ SchAPI │ POSIX / Linux personality│ ← THE STABLE BOUNDARY ├──────────────────┴───────────────────────────┤ - │ libschunix — the only thing that may syscall│ + │ libschos — the only thing that may syscall│ ├──────────────────────────────────────────────┤ │ syscall table — PRIVATE, unstable, renumberable ├──────────────────────────────────────────────┤ @@ -69,11 +69,11 @@ So, for Schunix: Rules that follow, and they are not negotiable if the promise is to hold: 1. **A program that issues `syscall` directly is unsupported.** It may break at - any release. Only `libschunix` may. -2. `libschunix` exports versioned symbols. An entry point's behaviour never + any release. Only `libschos` may. +2. `libschos` exports versioned symbols. An entry point's behaviour never changes; a changed behaviour is a new version of the symbol. 3. The kernel may renumber, merge, split or delete syscalls at will, provided - `libschunix` still presents the same surface. + `libschos` still presents the same surface. This *reconciles* with the existing decision to adopt Linux syscall numbering (`docs/roadmap.md`, and the reason musl/toybox/mksh work at all). Linux @@ -98,7 +98,7 @@ Every public interface carries exactly one tier: | `provisional` | Until the next release | Freely | | `internal` | None | Freely, without notice | -**Everything in Schunix today is `provisional`.** The freeze starts at 1.0 and +**Everything in SchOS today is `provisional`.** The freeze starts at 1.0 and covers only what is marked `stable` at that moment. This is not a way of dodging the commitment — it is the only way to make it, because a promise made now would permanently enshrine, among other things, a `fcntl(F_SETFL)` that @@ -164,7 +164,7 @@ reasons that a single tree cannot give: That table is the same lesson §1 of the roadmap already learned the hard way with FreeBSD's `sys/dev/usb`: 100k lines welded to newbus, where porting the USB stack means porting the device framework first. Networking is the same -shape. Read FreeBSD, lift NetBSD, write Schunix. +shape. Read FreeBSD, lift NetBSD, write SchOS. ### Licensing — read this before copying anything @@ -181,7 +181,7 @@ Ranked by value, not by size: 1. **`sys/net`, `sys/netinet` — the TCP/IP stack.** The largest single win available. Phase 2 of the roadmap wants ARP/IPv4/ICMP/UDP/TCP, and this is a mature, clean, readable, 2-clause-heavy implementation of exactly that. -2. **`sys/kern/subr_pool.c` — the pool/slab allocator.** Schunix has `kalloc` +2. **`sys/kern/subr_pool.c` — the pool/slab allocator.** SchOS has `kalloc` and a page at a time. Every subsystem written since has invented its own fixed-size table to work around that. 3. **`autoconf` — the driver framework** (`config(1)`, `cfdriver`/`cfattach`, @@ -203,7 +203,7 @@ relicensed-in-notice, and maintained forever under the §3 promise. Not yet designed. What is decided about it: - It is the native interface; POSIX is available beneath it but not the idiom. -- It is reached through `libschunix`, never by direct syscall. +- It is reached through `libschos`, never by direct syscall. - It is designed *with* Schcom in mind, because a compositor and its clients are the first real users and their needs (IPC, shared buffers, event streams, object lifetimes) are what will shape it. @@ -234,6 +234,6 @@ What this document changes *today* is only this: something to work with at 1.0. 3. When the network stack is written, NetBSD's is the starting point rather than a blank file — with the licence check in §5 applied per file. -4. `libschunix` is created when there is a second personality to justify it. +4. `libschos` is created when there is a second personality to justify it. Until then, the *rule* stands even though the library does not exist yet: no new first-party program issues raw syscalls. diff --git a/docs/architecture/schfs.md b/docs/architecture/schfs.md index e0dc7e0..c0bd69d 100644 --- a/docs/architecture/schfs.md +++ b/docs/architecture/schfs.md @@ -42,7 +42,7 @@ end to end. ## 2. What is deliberately not taken - **No ZFS storage pools / RAID-Z / vdevs.** Multi-disk redundancy is a large - subsystem that solves a problem Schunix does not have yet. + subsystem that solves a problem SchOS does not have yet. - **No btrfs-style rebalancing or online format conversion.** Enormous complexity, and it is the historical source of btrfs's worst bugs. - **No actual SQL.** No parser, no query planner, no relational engine. See §6 — @@ -242,7 +242,7 @@ Phases 1-3 are roughly 3,000-4,000 lines and are the bulk of the work. Phase 1 alone (B-tree + torture harness) is worth doing carefully and unhurriedly; every later phase compounds on it. -This is the largest single piece of work in Schunix. It is also entirely +This is the largest single piece of work in SchOS. It is also entirely ordinary filesystem engineering with excellent published references (Giampaolo for BeFS; the btrfs design papers; the ZFS uberblock/checksum-in- parent scheme) — there is no research risk here, only volume. @@ -254,7 +254,7 @@ populate this format. Building it against v1 means building it twice. Three different things get called "the limit", and they are worth keeping apart: what the **on-disk format** can express, what **this implementation** can -currently mount, and what the **rest of Schunix** can carry. The smallest one is +currently mount, and what the **rest of SchOS** can carry. The smallest one is what you actually hit. ### The format @@ -292,7 +292,7 @@ raising `SCHFS_SPACE_PAGES` to 4096 makes it 512 GiB at 64 KiB of pointers per mount. It is set where it is because the page-pointer vector lives inside `struct schfs_vol`, which the kernel holds as static storage. -### The rest of Schunix +### The rest of SchOS These are VFS and driver limits rather than SchFS ones: diff --git a/docs/drivers.md b/docs/drivers.md index a120c61..78e1095 100644 --- a/docs/drivers.md +++ b/docs/drivers.md @@ -75,9 +75,9 @@ need. ## 3. Linux drivers -**Decided 2026-08-08.** Linux drivers are not shipped with Schunix and never +**Decided 2026-08-08.** Linux drivers are not shipped with SchOS and never will be. The user may install one on their own machine, through a device -manager or equivalent, and Schunix will load it. +manager or equivalent, and SchOS will load it. The licensing reasoning matters and is worth stating exactly, because it is easy to get wrong in both directions: diff --git a/docs/layout.md b/docs/layout.md index 6b39196..3f9b67e 100644 --- a/docs/layout.md +++ b/docs/layout.md @@ -9,7 +9,7 @@ that can't be rebuilt (except upstream tarballs, which live in `dist/` and are deliberately kept out of `clean`). ``` -schunix/ +schos/ ├─ boot/ Stage 1 MBR + stage 2 loader (splash, F8 menu, kernel load) ├─ kernel/ The kernel, by subsystem: arch/ core/ dev/ fs/ proc/ sys/ ├─ include/ Headers shared by kernel, userland, and tools/mkfs @@ -19,7 +19,7 @@ schunix/ │ cmd//main.c → sysroot/bin/ ├─ ports/ Third-party software — one directory per port. │ Contains ONLY a Makefile and optional patches/. -├─ projects/ Things that run ON Schunix rather than things that ARE it: +├─ projects/ Things that run ON SchOS rather than things that ARE it: │ the compositor, window manager, desktop, and installer. │ Not part of the kernel build. See projects/README.md. ├─ tools/ Host-side helpers, SOURCE ONLY: mkfs.c, the SchFS test diff --git a/docs/licensing.md b/docs/licensing.md index b3a4df4..ae1a107 100644 --- a/docs/licensing.md +++ b/docs/licensing.md @@ -1,13 +1,13 @@ # Licensing -The one page to check before copying anyone else's code into Schunix. +The one page to check before copying anyone else's code into SchOS. Referenced from `LICENSE`, `LICENSE.MIT` and `NOTICE`, all three of which pointed here long before this file existed. --- -## 1. Schunix is Apache-2.0 +## 1. SchOS is Apache-2.0 Copyright Nexoniarz. See `LICENSE`. @@ -19,7 +19,7 @@ outside contributions, that silence is the expensive kind. What that grant means in practice: Apache-2.0 §2 gives everyone a perpetual, worldwide, irrevocable licence to reproduce, modify, sublicense and distribute -Schunix. Any additional restriction stated elsewhere — in a README, a website, +SchOS. Any additional restriction stated elsewhere — in a README, a website, or a policy — does not narrow it. The licence text is what holds up. If restricted distribution is ever genuinely wanted, that is a licence change @@ -57,7 +57,7 @@ licences at once. GPL-3.0 fixed this in the other direction (Apache-2.0 is compatible *into* GPLv3), but that does not help: the result would have to ship under GPLv3, and -Schunix does not. +SchOS does not. **Practical consequence:** BSD drivers can be adopted. Linux drivers cannot, ever, no matter how convenient. This is why the USB stack was written from the @@ -113,7 +113,7 @@ sys/netinet6 51 files, 5 " " " ``` Encouraging at first glance — the 25 in `sys/netinet` are almost all SCTP, -DCCP and multicast routing, none of which Schunix needs. `ip_input.c`, +DCCP and multicast routing, none of which SchOS needs. `ip_input.c`, `ip_output.c`, `udp_usrreq.c`, `if_arp.c`, `ip_icmp.c`, `if.c` and `route.c` are all UC 3-clause, i.e. fine. @@ -161,7 +161,7 @@ tables and FreeBSD's locking. Taking it means porting FreeBSD's kernel infrastructure first and finding the TCP somewhere underneath, which is the same conclusion `docs/roadmap.md` §1 already reached about `sys/dev/usb`. -lwIP was written for the case Schunix is in: a small operating system with a raw +lwIP was written for the case SchOS is in: a small operating system with a raw Ethernet driver and no infrastructure to speak of. Its port layer is a handful of files, it has no dependency on the host kernel's allocator or locking, and it brings ARP, IPv4, ICMP, UDP, TCP, DHCP and DNS. @@ -175,7 +175,7 @@ Chosen 2026-08-09, both licences checked at source rather than assumed: | Roboto | desktop, window manager, compositor | **Apache-2.0** | | JetBrains Mono | terminal, TTY | **SIL OFL 1.1** | -Roboto is the same licence as Schunix, so it is the easy case: a NOTICE entry +Roboto is the same licence as SchOS, so it is the easy case: a NOTICE entry and nothing else. OFL is permissive and bundling is precisely what it is for, with two conditions @@ -195,7 +195,7 @@ worth knowing before anyone subsets or converts a font: ## 4. Things that are deliberately not shipped Some code is fine to *build and run locally* and impossible to *distribute* -with Schunix. Keeping the distinction sharp is what stops it eroding: +with SchOS. Keeping the distinction sharp is what stops it eroding: - **`Refrence/`** — a FreeBSD checkout (`Refrence/freebsd-src`), kept as reference material and a parts bin. Never built, never in an image. The diff --git a/docs/roadmap.md b/docs/roadmap.md index c29fa10..b7f92ce 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -7,7 +7,7 @@ plus an installer and a `.sip` package format. This file records two things that are easy to lose: the *order* the work has to happen in, and the decisions that constrain it. -**Superseded in direction, not in order.** Schunix is now aimed at being a +**Superseded in direction, not in order.** SchOS is now aimed at being a *system* rather than a Unix-like kernel with a userland attached: a NeXTSTEP/ macOS-shaped layering, with POSIX kept complete but demoted from identity to personality, and a native API (**SchAPI**) above it. See @@ -189,7 +189,7 @@ width text is not a font change, it is a text-rendering layer. as-is if wanted; writing one is also reasonable and more interesting - [ ] **The typefaces, decided 2026-08-09.** Both verified, not assumed: **Roboto** for the desktop, window manager and compositor -- - **Apache-2.0**, the same licence as Schunix, so it needs nothing beyond a + **Apache-2.0**, the same licence as SchOS, so it needs nothing beyond a NOTICE entry. **JetBrains Mono** for the terminal and TTY -- **SIL OFL 1.1**, and notably with *no* Reserved Font Name declared, so it may be modified and @@ -205,7 +205,7 @@ width text is not a font change, it is a text-rendering layer. **Font licensing: public domain or very permissive only.** No SIL OFL if it can be avoided, no "free for personal use", no CC-BY-SA. The constraint is the same one that governs drivers (§1): a font file is redistributed inside -every Schunix image, so its licence attaches to the image. +every SchOS image, so its licence attaches to the image. Safe choices, in rough order of usefulness: @@ -237,7 +237,7 @@ key-down/key-up with modifiers and no line discipline at all — an evdev-style ### Phase 6 — Installer and `.sip` -`.sip` (Schunix Installation Package), the stated model being WIM in Windows +`.sip` (SchOS Installation Package), the stated model being WIM in Windows PE: a *file-based* image rather than a block image, so one file can hold a whole filesystem, be applied to a partition of any size, and hold several images that share their common files. @@ -301,7 +301,7 @@ sysvinit is not the config format, it is *demand launching*: launchd holds the listening socket or watches the path, and starts the job when something actually arrives. That inverts the dependency graph — jobs stop needing to declare what must start before them, because the thing they depend on answers on first use. -Schunix already has the two pieces that makes possible: `AF_UNIX` sockets +SchOS already has the two pieces that makes possible: `AF_UNIX` sockets (`kernel/net/unix.c`) and a real `/proc`. What is missing is a supervisor that can hold a socket on a job's behalf and hand it over on exec, plus a job description format. Prerequisite for this being worth anything: `ps` and `top` @@ -360,7 +360,7 @@ palette and a layout, none of which care how the pixels were found. What does not survive is every assumption in `stage2main.c` about where things live in low memory (see `docs/layout.md`). -### SchFS beyond Schunix +### SchFS beyond SchOS Three ideas parked 2026-08-08, in the order they should happen. @@ -447,7 +447,7 @@ Three details worth keeping: - The ceiling is **3 GB**, because `kvmalloc()` maps 0–4 GB as four 1 GB pages and marks the top one uncached for PCI BARs. - Below `PHYSTOP_MIN` it prints why and stops, rather than triple faulting in - silence. At 24 MB: `e820: only 23 MB usable; Schunix needs at least 24 MB`. + silence. At 24 MB: `e820: only 23 MB usable; SchOS needs at least 24 MB`. The original text is kept below because the reasoning still applies to the SMP half of §3b, which is the same shape of bug: a constant nobody revisited. diff --git a/include/errno.h b/include/errno.h index ea518e6..498ad6e 100644 --- a/include/errno.h +++ b/include/errno.h @@ -1,8 +1,8 @@ // Error numbers, matching the Linux x86_64 ABI values so that musl-linked // programs interpret syscall failures correctly. Kernel code returns these // negated (e.g. `return -ENOSYS;`), exactly like Linux does internally. -#ifndef SCHUNIX_ERRNO_H -#define SCHUNIX_ERRNO_H +#ifndef SCHOS_ERRNO_H +#define SCHOS_ERRNO_H #define EPERM 1 // Operation not permitted #define ENOENT 2 // No such file or directory @@ -57,4 +57,4 @@ #define ENOTCONN 107 // Transport endpoint is not connected #define ECONNREFUSED 111 // Connection refused -#endif // SCHUNIX_ERRNO_H +#endif // SCHOS_ERRNO_H diff --git a/include/fb.h b/include/fb.h index 2a0300d..6093794 100644 --- a/include/fb.h +++ b/include/fb.h @@ -3,7 +3,7 @@ // Framebuffer device ABI -- /dev/fb0. // // These are Linux's fbdev request numbers and structure layouts, not ours. -// Schunix invented this device, so nothing forced the choice; matching Linux +// SchOS invented this device, so nothing forced the choice; matching Linux // was still the right one. A framebuffer is the first thing a graphics // program looks for, and every such program already knows how to ask // FBIOGET_VSCREENINFO. Inventing a private struct would have meant patching @@ -76,7 +76,7 @@ struct fb_var_screeninfo { }; struct fb_fix_screeninfo { - char id[16]; // "schunixfb" + char id[16]; // "schosfb" unsigned long smem_start; // physical address of the framebuffer unsigned int smem_len; // its length in bytes unsigned int type; diff --git a/include/fcntl.h b/include/fcntl.h index 45b98b1..19b4a0a 100644 --- a/include/fcntl.h +++ b/include/fcntl.h @@ -6,7 +6,7 @@ // the userland is built against a libc that sends Linux flag values, and the // kernel reads them with these constants. They disagreed for a long time, with // results that looked like filesystem corruption rather than like a mistake -- -// Linux O_APPEND (0x400) landed on Schunix's O_TRUNC, so `cmd >> file` +// Linux O_APPEND (0x400) landed on SchOS's O_TRUNC, so `cmd >> file` // truncated the file it was meant to extend, and Linux O_TRUNC (0x200) landed // on O_CREATE, so `cmd > file` left whatever was past the new end in place. // Neither failure pointed anywhere near a header. @@ -29,7 +29,7 @@ #define O_NOFOLLOW 0x020000 /* Linux O_NOFOLLOW (0400000) */ #define O_CLOEXEC 0x080000 /* Linux O_CLOEXEC (02000000) */ -// Schunix-only, placed above every flag Linux defines so it can never be +// SchOS-only, placed above every flag Linux defines so it can never be // mistaken for one. 0x40000 was used before and collides with Linux O_NOATIME. #define O_EXTENT 0x8000000 /* sparse-extent hint */ diff --git a/include/font.h b/include/font.h index 2a2b021..1c2e581 100644 --- a/include/font.h +++ b/include/font.h @@ -1,4 +1,4 @@ -/* Schunix OS System Font - 8x16, 256 glyphs. +/* SchOS OS System Font - 8x16, 256 glyphs. * * The upper half is CP437, the IBM PC character set: 0x82 is 'e' with an * acute, 0xE9 is a capital theta, 0xB0-0xDF are shading and box-drawing. diff --git a/include/input.h b/include/input.h index 2842de6..53a63b5 100644 --- a/include/input.h +++ b/include/input.h @@ -81,7 +81,7 @@ struct input_event { // EVIOCGRAB -- take/release exclusive access to a device. // // Linux's _IOW('E', 0x90, int). Spelled as the resulting constant rather than -// built from an _IOW macro because Schunix has no ioctl-encoding macros and +// built from an _IOW macro because SchOS has no ioctl-encoding macros and // inventing a set just for this would be a bigger change than the feature. // A non-zero argument grabs, zero releases; the argument is passed by value. #define EVIOCGRAB 0x40044590 diff --git a/include/logo.h b/include/logo.h index 390199e..b9c059e 100644 --- a/include/logo.h +++ b/include/logo.h @@ -1,7 +1,7 @@ #pragma once // GENERATED by tools/mklogo.py -- do not edit. Run `make logo`. -// source: Assets/Schunix Small Logo.png +// source: Assets/SchOS Small Logo.png // // An ink-coverage mask, not colour: 0 is background and full scale is // solid logo. Whoever draws it picks the colour, so the palette stays in diff --git a/include/pci.h b/include/pci.h index 7c5eb15..be4a6e5 100644 --- a/include/pci.h +++ b/include/pci.h @@ -2,7 +2,7 @@ // PCI bus enumeration and driver binding. // -// Until this existed, every driver in Schunix found its hardware by knowing +// Until this existed, every driver in SchOS found its hardware by knowing // where it was: IDE at 0x1F0 because IDE has always been at 0x1F0, the // framebuffer wherever the BIOS's VBE call said. That works for exactly the // devices that predate PCI and for nothing else. A NIC, an AHCI controller, diff --git a/include/posix.h b/include/posix.h index 87757c4..b4d2908 100644 --- a/include/posix.h +++ b/include/posix.h @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -// Schunix — POSIX-compatibility types used by kernel syscall handlers. +// SchOS — POSIX-compatibility types used by kernel syscall handlers. #pragma once #include "types.h" #include "date.h" diff --git a/include/theme.h b/include/theme.h index 5ea0c3f..eb94517 100644 --- a/include/theme.h +++ b/include/theme.h @@ -1,6 +1,6 @@ #pragma once -// Schunix visual identity — one palette, shared by everything that draws. +// SchOS visual identity — one palette, shared by everything that draws. // // This header exists because there were three unrelated designs and the seams // showed. The bootloader splash was deep purple with gold text, deliberately diff --git a/include/uaccess.h b/include/uaccess.h index eb172e2..f4b89b7 100644 --- a/include/uaccess.h +++ b/include/uaccess.h @@ -11,13 +11,13 @@ // unrelated physical page at the next 4K boundary. Any multi-byte // access through it must stay within a single page. // -// These helpers encapsulate both rules. Because Schunix (like old x86 +// These helpers encapsulate both rules. Because SchOS (like old x86 // without SMAP) keeps the user page table active in kernel mode, a raw // user virtual address is directly dereferenceable once the whole range // has been validated — that is what user_ptr() hands back, and why the // result is safe across page boundaries where a uva2ka() pointer is not. -#ifndef SCHUNIX_UACCESS_H -#define SCHUNIX_UACCESS_H +#ifndef SCHOS_UACCESS_H +#define SCHOS_UACCESS_H #include "types.h" @@ -46,4 +46,4 @@ int copy_to_user(addr_t uaddr, const void *src, uint64 n); // or exceeds USER_STR_MAX. long strlen_user(addr_t uaddr); -#endif // SCHUNIX_UACCESS_H +#endif // SCHOS_UACCESS_H diff --git a/kernel/arch/x86_64/e820.c b/kernel/arch/x86_64/e820.c index bc977b1..fc5e006 100644 --- a/kernel/arch/x86_64/e820.c +++ b/kernel/arch/x86_64/e820.c @@ -5,7 +5,7 @@ // it is an assertion that exactly that much exists. Boot a machine with less // and kinit1() walks off the end of RAM into nothing; boot one with more and // every byte above 224 MB is invisible. Measured before this file existed: -// Schunix booted at 224 MB and triple faulted at 192 MB, for no reason at all. +// SchOS booted at 224 MB and triple faulted at 192 MB, for no reason at all. // // The firmware has known the answer the whole time. boot/stage2.S asks it with // INT 0x15 / E820 in real mode -- the same interface Linux's boot stub and GRUB @@ -92,7 +92,7 @@ e820_init(void) // Below this the kernel image, its page tables and the DMA arena do not fit, // and continuing produces a failure much harder to read than this line. if (top < PHYSTOP_MIN) { - cprintf("e820: only %d MB usable; Schunix needs at least %d MB\n", + cprintf("e820: only %d MB usable; SchOS needs at least %d MB\n", (int)(top / (1024 * 1024)), (int)(PHYSTOP_MIN / (1024 * 1024))); // Left at the fallback deliberately rather than lowered: a machine this // small is going to fail, and it should fail having said why. diff --git a/kernel/arch/x86_64/vm.c b/kernel/arch/x86_64/vm.c index fa23d52..de1171a 100644 --- a/kernel/arch/x86_64/vm.c +++ b/kernel/arch/x86_64/vm.c @@ -142,7 +142,7 @@ seginit(void) // and SS from +8, so the *slot* must exist to keep the // [UCODE32, UDATA, UCODE] triple consecutive. See syscallinit. // SEG_KCPU is a leftover slot number from 32-bit xv6, where %gs held the - // per-CPU pointer. Schunix uses FS_BASE/TLS instead, but the + // per-CPU pointer. SchOS uses FS_BASE/TLS instead, but the // index has to stay occupied or SEG_TSS stops landing at 7. // // Deleting either moves every descriptor after it and breaks sysret. diff --git a/kernel/core/main.c b/kernel/core/main.c index f95f9d0..af7616b 100644 --- a/kernel/core/main.c +++ b/kernel/core/main.c @@ -13,7 +13,7 @@ static void mpmain(void) __attribute__((noreturn)); extern char end[]; // first address after kernel loaded from ELF file // Set by stage2main.c (boot/stage2main.c, BOOT_VERBOSE_FLAG_ADDR) when the -// user picks "Boot Schunix (verbose)" from the F8 boot menu; read once here, +// user picks "Boot SchOS (verbose)" from the F8 boot menu; read once here, // before anything else, so subsystem init can log its own steps. int boot_verbose; diff --git a/kernel/core/panic.c b/kernel/core/panic.c index 903d962..4a60f6b 100644 --- a/kernel/core/panic.c +++ b/kernel/core/panic.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // -// PSOGM — the Schunix crash screen. +// PSOGM — the SchOS crash screen. // // The name is a nod to the Amiga's "Guru Meditation", but nothing else about // this is a nod to 1985. Three things it is built around: @@ -439,7 +439,7 @@ paint(char *reason, addr_t *pcs, int npcs) // Left-aligned, not centred. Centred text reads as a poster; this is a // report, and a report is read down the left edge. - vga_text_at(left, y, "Schunix ran into a problem and needs to restart.", + vga_text_at(left, y, "SchOS ran into a problem and needs to restart.", PSOGM_FG); y += ch + ch / 2; vga_text_at(left, y, "Nothing on your disks was touched by this.", @@ -492,7 +492,7 @@ report_serial(char *reason, addr_t *pcs, int npcs) { cprintf("\n"); cprintf(" :(\n\n"); - cprintf(" Schunix ran into a problem and needs to restart.\n"); + cprintf(" SchOS ran into a problem and needs to restart.\n"); cprintf(" PSOGM -- Purple Screen of Guru Meditation\n\n"); for (int i = 0; i < nfields; i++) { diff --git a/kernel/core/time.c b/kernel/core/time.c index d61f6a6..1839d89 100644 --- a/kernel/core/time.c +++ b/kernel/core/time.c @@ -3,7 +3,7 @@ // The kernel has always known how long it had been running -- `ticks`, bumped // 100 times a second by the timer interrupt -- and has never known what time it // was. sys_gettimeofday() returned `ticks / 100` as though it were seconds -// since the epoch, so every Schunix machine believed it was the 1st of January +// since the epoch, so every SchOS machine believed it was the 1st of January // 1970 and that the date advanced at the rate of its own uptime. `date` printed // a number that barely moved, which is what it looks like when a clock is // counting from the wrong place rather than not counting at all. diff --git a/kernel/dev/device.c b/kernel/dev/device.c index db0906a..bb5469e 100644 --- a/kernel/dev/device.c +++ b/kernel/dev/device.c @@ -281,7 +281,7 @@ text_selftest(void) int line = f->ops->height(f) + 6; int y = 80; - text_draw(&s, f, 60, y + base, "Schunix text rendering", SCH_FG); + text_draw(&s, f, 60, y + base, "SchOS text rendering", SCH_FG); y += line * 2; // Deliberately not on a multiple of eight. On the old console this string diff --git a/kernel/dev/fb.c b/kernel/dev/fb.c index 8c652cf..ad8c344 100644 --- a/kernel/dev/fb.c +++ b/kernel/dev/fb.c @@ -179,7 +179,7 @@ fb_ioctl(int request, addr_t arg) if (!f) return -EFAULT; memset(f, 0, sizeof(*f)); - safestrcpy(f->id, "schunixfb", sizeof(f->id)); + safestrcpy(f->id, "schosfb", sizeof(f->id)); f->smem_start = (unsigned long)vga_fb_phys(); f->smem_len = (unsigned int)vga_fb_size(); f->type = FB_TYPE_PACKED_PIXELS; diff --git a/kernel/dev/procfs.c b/kernel/dev/procfs.c index 95aea5a..72cb391 100644 --- a/kernel/dev/procfs.c +++ b/kernel/dev/procfs.c @@ -143,7 +143,7 @@ gen_cpuinfo(struct sbuf *sb) // otherwise be told a VM with four processors has four to schedule on, when // three of them are enumerated and idle. "cpu cores" stays the present count, // which is what that field means. - // Real values, from CPUID. These used to read "Schunix" and "Schunix virtual + // Real values, from CPUID. These used to read "SchOS" and "SchOS virtual // CPU" -- a thing to print when you have not asked the processor, and // actively unhelpful, because identifying the machine is the one question // /proc/cpuinfo exists to answer. @@ -204,7 +204,8 @@ gen_cpuinfo(struct sbuf *sb) static void gen_version(struct sbuf *sb) { - sb_puts(sb, "Schunix version 0.1.0 (schunix) #1 SMP x86_64\n"); + // The kernel's name, not the system's -- same as "Linux version 6.x" here. + sb_puts(sb, "SchIFT version 0.1.0 (schift) #1 SMP x86_64\n"); } static void diff --git a/kernel/dev/ttf.c b/kernel/dev/ttf.c index 1a82cdb..f0df6ef 100644 --- a/kernel/dev/ttf.c +++ b/kernel/dev/ttf.c @@ -200,7 +200,7 @@ load_outline(struct ttf *f, int gid, struct outline *o) // A negative contour count means a composite: the glyph is other glyphs // placed at offsets. This is not an exotic case to skip -- `i` is built from // a dotless i plus the dot, so skipping composites loses a letter from - // "Schunix", which is exactly how the gap was found. + // "SchOS", which is exactly how the gap was found. // // Only the translated case is handled: components with a scale or a 2x2 // matrix are rare outside of synthesised obliques, and applying a transform diff --git a/kernel/dev/uart.c b/kernel/dev/uart.c index 19a4b37..8dc223b 100644 --- a/kernel/dev/uart.c +++ b/kernel/dev/uart.c @@ -41,7 +41,7 @@ uartearlyinit(void) // Announce that we're here. - for(p="Schunix UART...\n"; *p; p++) + for(p="SchOS UART...\n"; *p; p++) uartputc(*p); } diff --git a/kernel/fs/exec.c b/kernel/fs/exec.c index 836dec1..e383498 100644 --- a/kernel/fs/exec.c +++ b/kernel/fs/exec.c @@ -11,7 +11,7 @@ #include "errno.h" // Binaries with entry points at 0x100000+ are musl/Linux-ABI. -// Schunix-native binaries (init) are linked at 0x4000. +// SchOS-native binaries (init) are linked at 0x4000. #define LINUX_ABI_ENTRY_THRESHOLD 0x100000UL extern int linux_syscall_map[]; extern int linux_syscall_map_size; @@ -158,7 +158,7 @@ exec(char *path, char **argv) } // Auto-select syscall ABI: musl binaries have entry >= 0x100000; - // Schunix-native binaries (init) are linked at 0x4000. + // SchOS-native binaries (init) are linked at 0x4000. if (elf.entry >= LINUX_ABI_ENTRY_THRESHOLD) { myproc()->syscall_map = linux_syscall_map; myproc()->map_size = linux_syscall_map_size; diff --git a/kernel/fs/file.c b/kernel/fs/file.c index 3d7241d..4297e58 100644 --- a/kernel/fs/file.c +++ b/kernel/fs/file.c @@ -152,7 +152,7 @@ fileread(struct file *f, char *addr, int n) } if((f->ip->rwmode & 2) == 0){ - cprintf("Schunix: permission denied (read)\n"); + cprintf("SchOS: permission denied (read)\n"); iunlock(f->ip); return -1; } @@ -208,7 +208,7 @@ filewrite(struct file *f, char *addr, int n) } if((f->ip->rwmode & 1) == 0){ - cprintf("Schunix: permission denied (write)\n"); + cprintf("SchOS: permission denied (write)\n"); iunlock(f->ip); return -1; } diff --git a/kernel/fs/procfs.c b/kernel/fs/procfs.c index b9f5690..832345e 100644 --- a/kernel/fs/procfs.c +++ b/kernel/fs/procfs.c @@ -133,7 +133,7 @@ static void sbputi(struct sb *s, int64 v) // Linux's /proc//stat, as far as anything here reads it. // // The field order is not negotiable: ps counts fields by position, so a -// missing one silently shifts everything after it. Fields Schunix does not +// missing one silently shifts everything after it. Fields SchOS does not // track are zero, which is what Linux itself reports for things a given // process has never done. static char diff --git a/kernel/fs/schfs/kmount.c b/kernel/fs/schfs/kmount.c index 70e80ab..faa4bb0 100644 --- a/kernel/fs/schfs/kmount.c +++ b/kernel/fs/schfs/kmount.c @@ -532,7 +532,7 @@ schfs_kroot(void) /* Phase 2 has no VFS integration -- SchFS files are not reachable */ /* through open(2) yet -- so this is how the mount is observable from */ /* userland at all. It reports the volume and lists the root directory, */ -/* which is enough to confirm from inside a running Schunix that the */ +/* which is enough to confirm from inside a running SchOS that the */ /* kernel really did parse an image mkschfs wrote. */ /* ------------------------------------------------------------------ */ diff --git a/kernel/sys/linux_abi.c b/kernel/sys/linux_abi.c index fc7b1fe..4d67567 100644 --- a/kernel/sys/linux_abi.c +++ b/kernel/sys/linux_abi.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -// Linux x86_64 syscall number -> Schunix syscall number translation. +// Linux x86_64 syscall number -> SchOS syscall number translation. // Enabled per process by sys_enable_linux_abi (see kernel/sys/sys_compat.c). // // This file used to be the second half of a two-place registration scheme: a @@ -16,7 +16,7 @@ #define LINUX_NSYSCALL NSYSCALLS -// Index: Linux x86_64 syscall number. Value: Schunix SYS_* number, or 0 for +// Index: Linux x86_64 syscall number. Value: SchOS SYS_* number, or 0 for // "not implemented" (syscall() then returns -ENOSYS). // // Syscalls declared NO_LINUX in table.inc all land on the single scratch index diff --git a/kernel/sys/sys_compat.c b/kernel/sys/sys_compat.c index c883f94..262f88b 100644 --- a/kernel/sys/sys_compat.c +++ b/kernel/sys/sys_compat.c @@ -114,8 +114,8 @@ sys_uname(void) struct utsname *u = (struct utsname*)user_ptr(ubuf, sizeof(*u)); if (!u) return -EFAULT; memset(u, 0, sizeof(*u)); - memmove(u->sysname, "Schunix", 8); - memmove(u->nodename, "schunix", 8); + memmove(u->sysname, "SchIFT", 7); + memmove(u->nodename, "schos", 6); memmove(u->release, "0.1.0", 6); memmove(u->version, "#1", 3); memmove(u->machine, "x86_64", 7); diff --git a/kernel/sys/sys_fs.c b/kernel/sys/sys_fs.c index 2f1f24f..840197c 100644 --- a/kernel/sys/sys_fs.c +++ b/kernel/sys/sys_fs.c @@ -18,7 +18,7 @@ // ----------------------------------------------------------------------- // Linux-ABI-compatible struct stat (x86_64 "struct stat" from // musl 1.2.5 bits/stat.h) — musl/toybox/dash parse st_mode directly -// out of this exact byte layout, which bears no resemblance to Schunix's +// out of this exact byte layout, which bears no resemblance to SchOS's // own native `struct stat` (stat.h). Without this, every Linux-ABI process // reading stat() results (e.g. ls checking S_ISDIR to decide whether to // list a directory or just print its name) gets garbage. @@ -825,7 +825,7 @@ sys_getdents64(void) } // ----------------------------------------------------------------------- -// Custom SchunixFS ops +// Custom SchOSFS ops // ----------------------------------------------------------------------- addr_t sys_delete(void) diff --git a/kernel/sys/table.inc b/kernel/sys/table.inc index 04f5c08..33383f7 100644 --- a/kernel/sys/table.inc +++ b/kernel/sys/table.inc @@ -1,7 +1,7 @@ // Segregated Kernel -- central syscall table. ONE line per syscall. // // Format: SYSCALL(nr, linux_nr, name) -// nr Schunix native syscall number +// nr SchOS native syscall number // linux_nr Linux x86_64 syscall number, or NO_LINUX if none // name implemented as sys_() in kernel/sys/sys_*.c // @@ -120,7 +120,7 @@ SYSCALL( 60, 16, ioctl) // translation answered "bad syscall" before the stub could answer ENOSYS. // Now that they do something they need the numbers programs actually use. // -// `shutdown` is deliberately not the name here: Schunix already has a native +// `shutdown` is deliberately not the name here: SchOS already has a native // shutdown() that powers the machine off (syscall 32), and two syscalls // cannot share a sys_ function name. Linux 48 maps to sockshutdown instead. SYSCALL( 40, 41, socket) diff --git a/lib/glue.c b/lib/glue.c index c798b9c..3906114 100644 --- a/lib/glue.c +++ b/lib/glue.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -// Schunix — first-party userland runtime: _start entry and exit. +// SchOS — first-party userland runtime: _start entry and exit. #include "types.h" #include "user.h" diff --git a/lib/start.S b/lib/start.S index 88b9003..6bf33c4 100644 --- a/lib/start.S +++ b/lib/start.S @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: Apache-2.0 - * Schunix — process entry point. + * SchOS — process entry point. * * This has to be assembly, and the reason is worth recording. * diff --git a/ports/Makefile b/ports/Makefile index 0a4ac00..9bf7d04 100644 --- a/ports/Makefile +++ b/ports/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# Schunix ports — third-party software, one directory per port. +# SchOS ports — third-party software, one directory per port. # All ports are permissive-licensed (MIT, BSD, 0BSD, Apache 2.0). # # ports/musl/ libc — installs headers/libs to build/ports/musl/prefix @@ -15,7 +15,7 @@ # Ports that live in this directory but are deliberately not built by `make`. # Empty for now; the filter stays because the reason it existed will recur -- # a port whose licence cannot be combined with Apache-2.0 can be kept here for -# local testing but must never be built into a Schunix image. +# local testing but must never be built into a SchOS image. NOTPORTS := PORTS := $(filter-out $(NOTPORTS), \ $(patsubst %/,%,$(sort $(dir $(wildcard */Makefile))))) diff --git a/ports/mk/port.mk b/ports/mk/port.mk index 86c1338..602d67e 100644 --- a/ports/mk/port.mk +++ b/ports/mk/port.mk @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# Shared definitions for all Schunix ports. +# Shared definitions for all SchOS ports. # Include this at the top of each port's Makefile: include ../mk/port.mk # # Layout contract — a port directory contains ONLY hand-written files: diff --git a/ports/mksh/Makefile b/ports/mksh/Makefile index 407da78..3b8e17f 100644 --- a/ports/mksh/Makefile +++ b/ports/mksh/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # mksh (MirBSD Korn Shell) — permissive: https://www.mirbsd.org/mksh.htm -# Installed as /bin/sh — Schunix standardizes on "sh" as the one shell name; +# Installed as /bin/sh — SchOS standardizes on "sh" as the one shell name; # no ksh/dash/other aliases are installed or looked up by init. include ../mk/port.mk @@ -10,7 +10,7 @@ MKSH_URL := http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-$(MKSH_VERSION).t TARBALL := $(DISTDIR)/mksh-$(MKSH_VERSION).tgz -CFLAGS := -static -D__SCHUNIX__ -I$(MUSL)/include -fno-stack-protector +CFLAGS := -static -D__SCHOS__ -I$(MUSL)/include -fno-stack-protector LDFLAGS := -static -L$(MUSL)/lib -lc $(TARBALL): | $(DISTDIR) diff --git a/ports/musl/Makefile b/ports/musl/Makefile index 68a3be5..cc3776d 100644 --- a/ports/musl/Makefile +++ b/ports/musl/Makefile @@ -27,8 +27,8 @@ $(SRCDIR): $(TARBALL) # so creating it bumps that directory's mtime — making the directory forever # newer than the stamp it contains, and re-running this rule on every single # build. The second run then fails, because the patch does not apply twice. -$(SRCDIR)/.patched: patches/0001-schunix-tls.patch | $(SRCDIR) - cd $(SRCDIR) && patch -p1 < $(CURDIR)/patches/0001-schunix-tls.patch +$(SRCDIR)/.patched: patches/0001-schos-tls.patch | $(SRCDIR) + cd $(SRCDIR) && patch -p1 < $(CURDIR)/patches/0001-schos-tls.patch touch $@ $(BUILDDIR)/config.mak: $(SRCDIR)/.patched @@ -37,7 +37,7 @@ $(BUILDDIR)/config.mak: $(SRCDIR)/.patched --prefix=$(PREFIX) \ --disable-shared \ CC=$(CC) \ - CFLAGS="-D__SCHUNIX__ -fno-stack-protector" + CFLAGS="-D__SCHOS__ -fno-stack-protector" $(BUILDDIR)/lib/libc.a: $(BUILDDIR)/config.mak $(MAKE) -C $(BUILDDIR) diff --git a/ports/musl/patches/0001-schunix-tls.patch b/ports/musl/patches/0001-schos-tls.patch similarity index 69% rename from ports/musl/patches/0001-schunix-tls.patch rename to ports/musl/patches/0001-schos-tls.patch index 676e22f..f5bf15a 100644 --- a/ports/musl/patches/0001-schunix-tls.patch +++ b/ports/musl/patches/0001-schos-tls.patch @@ -1,13 +1,13 @@ -From: Schunix Project -Subject: [PATCH] schunix: TLS via global, mallocng decls, optional malloc tracing +From: SchOS Project +Subject: [PATCH] schos: TLS via global, mallocng decls, optional malloc tracing Three local changes to musl 1.2.5, kept in one patch because they are all -"make musl work on Schunix" and share a lifetime. +"make musl work on SchOS" and share a lifetime. 1. arch/x86_64/pthread_arch.h, src/env/__init_tls.c - TLS. - Schunix's kernel saves/restores FS_BASE at the syscall boundary, so + SchOS's kernel saves/restores FS_BASE at the syscall boundary, so arch_prctl(ARCH_SET_FS) is safe from userspace. __get_tp() is redirected - through a global uintptr_t (__schunix_tp) set at the START of __init_tp(), + through a global uintptr_t (__schos_tp) set at the START of __init_tp(), before __set_thread_area() is called. The rest of __init_tp() runs normally so td->locale and the other pthread fields still initialise. @@ -20,17 +20,17 @@ Three local changes to musl 1.2.5, kept in one patch because they are all 3. src/malloc/mallocng/meta.h, malloc.c - diagnostics, inert by default. get_meta()/alloc_group() tracing that dumps group/meta pointers to fd 2, - entirely inside #ifdef SCHUNIX_MALLOC_DEBUG, which nothing defines. Kept + entirely inside #ifdef SCHOS_MALLOC_DEBUG, which nothing defines. Kept because this is the instrumentation that resolved the boot-crash investigation in docs/architecture/kernel-history.md section 1; build - with -DSCHUNIX_MALLOC_DEBUG to re-enable. + with -DSCHOS_MALLOC_DEBUG to re-enable. --- a/arch/x86_64/pthread_arch.h 2024-03-01 03:07:33.000000000 +0100 +++ b/arch/x86_64/pthread_arch.h 2026-08-01 19:11:51.533102649 +0200 @@ -1,8 +1,13 @@ -+#ifdef __SCHUNIX__ -+extern uintptr_t __schunix_tp; -+static inline uintptr_t __get_tp() { return __schunix_tp; } ++#ifdef __SCHOS__ ++extern uintptr_t __schos_tp; ++static inline uintptr_t __get_tp() { return __schos_tp; } +#else static inline uintptr_t __get_tp() { @@ -47,18 +47,18 @@ Three local changes to musl 1.2.5, kept in one patch because they are all volatile int __thread_list_lock; -+#ifdef __SCHUNIX__ -+uintptr_t __schunix_tp; ++#ifdef __SCHOS__ ++uintptr_t __schos_tp; +#endif + int __init_tp(void *p) { pthread_t td = p; td->self = td; -+ // Set __schunix_tp for __get_tp() before calling __set_thread_area. ++ // Set __schos_tp for __get_tp() before calling __set_thread_area. + // The kernel now correctly saves/restores FS_BASE at the syscall boundary. -+#ifdef __SCHUNIX__ -+ __schunix_tp = (uintptr_t)TP_ADJ(p); ++#ifdef __SCHOS__ ++ __schos_tp = (uintptr_t)TP_ADJ(p); +#endif int r = __set_thread_area(TP_ADJ(p)); if (r < 0) return -1; @@ -82,20 +82,20 @@ Three local changes to musl 1.2.5, kept in one patch because they are all #include #include "glue.h" -+#ifdef SCHUNIX_MALLOC_DEBUG -+static void schunix_hex(char *out, uint64_t v) { ++#ifdef SCHOS_MALLOC_DEBUG ++static void schos_hex(char *out, uint64_t v) { + static const char digits[] = "0123456789abcdef"; + for (int i = 15; i >= 0; i--) { out[i] = digits[v & 0xf]; v >>= 4; } +} -+static void schunix_dbg(const char *tag, uint64_t a, uint64_t b, uint64_t c) { ++static void schos_dbg(const char *tag, uint64_t a, uint64_t b, uint64_t c) { + char buf[128]; + int n = 0; + buf[n++]='['; buf[n++]='D'; buf[n++]='B'; buf[n++]='G'; buf[n++]=']'; buf[n++]=' '; + for (const char *p = tag; *p; p++) buf[n++] = *p; + buf[n++]=' '; -+ schunix_hex(buf+n, a); n += 16; buf[n++]=' '; -+ schunix_hex(buf+n, b); n += 16; buf[n++]=' '; -+ schunix_hex(buf+n, c); n += 16; buf[n++]='\n'; ++ schos_hex(buf+n, a); n += 16; buf[n++]=' '; ++ schos_hex(buf+n, b); n += 16; buf[n++]=' '; ++ schos_hex(buf+n, c); n += 16; buf[n++]='\n'; + __syscall(SYS_write, 2, buf, n); +} +#endif @@ -107,13 +107,13 @@ Three local changes to musl 1.2.5, kept in one patch because they are all } const struct group *base = (const void *)(p - UNIT*offset - UNIT); const struct meta *meta = base->meta; -+#ifdef SCHUNIX_MALLOC_DEBUG -+ schunix_dbg("get_meta p", (uint64_t)p, (uint64_t)offset, (uint64_t)index); ++#ifdef SCHOS_MALLOC_DEBUG ++ schos_dbg("get_meta p", (uint64_t)p, (uint64_t)offset, (uint64_t)index); + { + volatile uint64_t *rawbase = (volatile uint64_t *)base; -+ schunix_dbg("get_meta RAW reread base[0..2]", rawbase[0], rawbase[1], rawbase[2]); ++ schos_dbg("get_meta RAW reread base[0..2]", rawbase[0], rawbase[1], rawbase[2]); + } -+ schunix_dbg("get_meta base/meta/meta->mem", (uint64_t)base, (uint64_t)meta, (uint64_t)meta->mem); ++ schos_dbg("get_meta base/meta/meta->mem", (uint64_t)base, (uint64_t)meta, (uint64_t)meta->mem); +#endif assert(meta->mem == base); assert(index <= meta->last_idx); @@ -124,9 +124,9 @@ Three local changes to musl 1.2.5, kept in one patch because they are all m->last_idx = cnt-1; m->freeable = 1; m->sizeclass = sc; -+#ifdef SCHUNIX_MALLOC_DEBUG -+ schunix_dbg("alloc_group p/m/cnt", (uint64_t)p, (uint64_t)m, (uint64_t)cnt); -+ schunix_dbg("alloc_group readback mem->meta", (uint64_t)m->mem, (uint64_t)m->mem->meta, (uint64_t)sc); ++#ifdef SCHOS_MALLOC_DEBUG ++ schos_dbg("alloc_group p/m/cnt", (uint64_t)p, (uint64_t)m, (uint64_t)cnt); ++ schos_dbg("alloc_group readback mem->meta", (uint64_t)m->mem, (uint64_t)m->mem->meta, (uint64_t)sc); +#endif return m; } diff --git a/ports/toybox/Makefile b/ports/toybox/Makefile index 7e6985f..f2adb87 100644 --- a/ports/toybox/Makefile +++ b/ports/toybox/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # toybox — 0BSD-licensed: https://landley.net/toybox/ -# Provides Schunix's core utilities (ls, cat, cp, mv, rm, mkdir, ...) as a +# Provides SchOS's core utilities (ls, cat, cp, mv, rm, mkdir, ...) as a # single multicall binary, installed under sysroot/bin/ once per applet name. # # mkfs (tools/mkfs.c) doesn't understand symlinks or hardlink dedup — each @@ -16,7 +16,7 @@ TOYBOX_SHA256 := ad88a921133ae2231d9f2df875ec0bd42af4429145caea7d7db9e02208a6fd TARBALL := $(DISTDIR)/toybox-$(TOYBOX_VERSION).tar.gz -CFLAGS := -static -D__SCHUNIX__ -I$(MUSL)/include -fno-stack-protector +CFLAGS := -static -D__SCHOS__ -I$(MUSL)/include -fno-stack-protector LDFLAGS := -static -L$(MUSL)/lib -lc # The applet list is not hard-coded any more: `toybox` with no arguments prints diff --git a/projects/README.md b/projects/README.md index 24194b9..d37f614 100644 --- a/projects/README.md +++ b/projects/README.md @@ -1,6 +1,6 @@ # projects/ -Things that run **on** Schunix rather than things that **are** Schunix. +Things that run **on** SchOS rather than things that **are** SchOS. Everything above this directory — `kernel/`, `boot/`, `lib/`, `cmd/`, `include/` — is the operating system: it boots, it owns the hardware, and it @@ -11,7 +11,7 @@ The split exists because the alternative gets bad quickly. A compositor, a window manager and a desktop are each larger than the kernel will be for a long time. Grown inside the OS tree they would blur into it: a compositor would start reaching into kernel headers because they are right there, the -build would grow a dependency from the kernel to a GUI, and "does Schunix +build would grow a dependency from the kernel to a GUI, and "does SchOS boot" would stop having a clear answer. Keeping them separate forces the boundary to be a real interface — syscalls and protocols — rather than a shared header nobody meant to share. @@ -27,13 +27,13 @@ Concretely, code in here: | Directory | What it is | |------------|-----------------------------------------------------------------| -| `schcom/` | Schunix Compositor. Owns the display, composites clients, routes input. | -| `schwm/` | Schunix Window Manager. Window placement, decoration, focus, on top of Schcom. | -| `schde/` | Schunix Desktop Environment. Panel, launcher, settings, file manager. | +| `schcom/` | SchOS Compositor. Owns the display, composites clients, routes input. | +| `schwm/` | SchOS Window Manager. Window placement, decoration, focus, on top of Schcom. | +| `schde/` | SchOS Desktop Environment. Panel, launcher, settings, file manager. | | `schinst/` | The installer, the installation environment, and `.sip` tooling. | | `schfs-linux/` | SchFS as a filesystem for Linux. FUSE first, a kernel module later. | -**`schfs-linux/` is written to stand on its own.** It does not mention Schunix +**`schfs-linux/` is written to stand on its own.** It does not mention SchOS anywhere, and that is deliberate rather than an oversight: it is intended to be the first piece released, and it has to make sense to somebody who has never heard of the OS it came from — a filesystem is judged as a filesystem. The diff --git a/projects/schcom/README.md b/projects/schcom/README.md index 4435898..76087d5 100644 --- a/projects/schcom/README.md +++ b/projects/schcom/README.md @@ -1,4 +1,4 @@ -# Schcom — the Schunix Compositor +# Schcom — the SchOS Compositor Owns the display. Every pixel that reaches the screen goes through it. diff --git a/projects/schde/README.md b/projects/schde/README.md index 43c6831..2f27bf2 100644 --- a/projects/schde/README.md +++ b/projects/schde/README.md @@ -1,4 +1,4 @@ -# SchDE — the Schunix Desktop Environment +# SchDE — the SchOS Desktop Environment The parts you actually look at: a panel, a launcher, settings, a file manager, a terminal. diff --git a/projects/schinst/README.md b/projects/schinst/README.md index 06a0d02..924fcbd 100644 --- a/projects/schinst/README.md +++ b/projects/schinst/README.md @@ -1,10 +1,10 @@ # schinst — the installer, the installation environment, and `.sip` -Getting Schunix from an ISO onto a disk. +Getting SchOS from an ISO onto a disk. Three separate things live here: -1. **The installation environment.** A Schunix that boots from the ISO into a +1. **The installation environment.** A SchOS that boots from the ISO into a known state with the installer running instead of a login shell. The ISO already boots to userspace without a hard disk (`make iso`), so this is a different init and a different root, not a different kernel. @@ -17,7 +17,7 @@ Three separate things live here: Not started. `.sip` needs its format written down before any code exists. -## `.sip` — Schunix Installation Package +## `.sip` — SchOS Installation Package The stated model is WIM, the image format Windows PE installs from, and the thing worth copying from WIM is that it is **file-based, not block-based**. diff --git a/projects/schwm/README.md b/projects/schwm/README.md index e0f0d67..6973df4 100644 --- a/projects/schwm/README.md +++ b/projects/schwm/README.md @@ -1,4 +1,4 @@ -# SchWM — the Schunix Window Manager +# SchWM — the SchOS Window Manager Policy. Where windows go, which one has focus, what happens when you drag a title bar, how alt-tab behaves, what a window looks like at its edges. diff --git a/run.ps1 b/run.ps1 index e0f4456..38ac724 100644 --- a/run.ps1 +++ b/run.ps1 @@ -1,4 +1,4 @@ -# Schunix launcher (Windows side). +# SchOS launcher (Windows side). # # Why this exists: without it you have to hand-type a QEMU command line, and a # hand-typed one drifts -- notably onto a stale fs.img, which boots to @@ -35,7 +35,7 @@ $root = $PSScriptRoot # The two images QEMU needs. These paths are the single source of truth -- # keep them in sync with the 'qemu' and 'qemu-schfs' targets in the Makefile. -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = if ($SchFS) { Join-Path $root 'build\schfs.img' } else { Join-Path $root 'build\fs.img' } @@ -58,7 +58,7 @@ if (-not $NoBuild) { # of memory, which leaves device 1 free for the SchFS volume. Booting the # normal kernel with a SchFS disk as hdb would leave it with no root. $target = if ($SchFS) { 'make ramroot && make build/schfs.img' } else { 'make' } - & $bash -lc "cd /d/DEV/Schunix && $target" + & $bash -lc "cd /d/DEV/SchOS && $target" if ($LASTEXITCODE -ne 0) { throw "build failed (exit $LASTEXITCODE)" } } diff --git a/tools/bootcheck.ps1 b/tools/bootcheck.ps1 index a179ac8..aca71e0 100644 --- a/tools/bootcheck.ps1 +++ b/tools/bootcheck.ps1 @@ -1,4 +1,4 @@ -# Headless boot check: run Schunix under QEMU, type commands at the shell, and +# Headless boot check: run SchOS under QEMU, type commands at the shell, and # assert on what actually comes back. # # Booting to a prompt proves nothing on its own -- a filesystem can mount and @@ -22,7 +22,7 @@ param( [switch]$Fb, - # Boot schunix.iso from an emulated optical drive with NO hard disk + # Boot schos.iso from an emulated optical drive with NO hard disk # attached, which is the only way to prove the ISO is self-contained. # Needs `make iso` first. [switch]$Iso, @@ -54,7 +54,7 @@ param( $ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' # The root filesystem. SchFS is the only root there is, so this is not a # choice -- a kernel handed anything else on device 1 panics in forkret(). $hdb = Join-Path $root 'build\schfs.img' @@ -67,7 +67,7 @@ Remove-Item -Force $log -ErrorAction SilentlyContinue # on its own, and every one of these has broken at some point while the boot # still looked perfectly healthy. $commands = @( - 'echo hello-from-schunix > /tmp/bc.txt' + 'echo hello-from-schos > /tmp/bc.txt' 'cat /tmp/bc.txt' 'echo second-line >> /tmp/bc.txt' 'wc -c /tmp/bc.txt' @@ -161,7 +161,7 @@ $commands += 'echo MARKER-DONE' # The ISO run attaches no hard disk at all. That is the whole point: a kernel # that still quietly needs one would boot happily here otherwise, and only # fail on someone else's machine. -$isoPath = Join-Path $root 'schunix.iso' +$isoPath = Join-Path $root 'schos.iso' if ($Iso -and -not (Test-Path $isoPath)) { throw "no $isoPath -- run 'make iso' first" } $drives = if ($Iso) { @@ -222,7 +222,7 @@ $psi.Arguments = ($drives + $usbDevices + $monitor + @( $psi.RedirectStandardInput = $true $psi.UseShellExecute = $false -$what = if ($Iso) { 'schunix.iso, no hard disk' } else { "hdb = $(Split-Path $hdb -Leaf)" } +$what = if ($Iso) { 'schos.iso, no hard disk' } else { "hdb = $(Split-Path $hdb -Leaf)" } Write-Host "==> booting ($what)" -ForegroundColor Cyan $p = [System.Diagnostics.Process]::Start($psi) @@ -372,12 +372,16 @@ function Expect($pattern, $what) { } Expect 'MARKER-DONE' 'shell stayed alive through every command' -Expect 'hello-from-schunix' 'a file written on the root filesystem reads back' +Expect 'hello-from-schos' 'a file written on the root filesystem reads back' Expect 'second-line' 'appending to that file works' -# 19 bytes of "hello-from-schunix\n" plus 12 of "second-line\n". The exact +# 17 bytes of "hello-from-schos\n" plus 12 of "second-line\n". The exact # number is the point: an append that silently truncated still produced a file, # and only the byte count said which one. -Expect '(?m)^\s*31\s' 'append extended the file rather than replacing it' +# +# It follows the string above, so changing that changes this -- the SchOS +# rename shortened "hello-from-schunix" by two characters and this check went +# red on a filesystem that was working perfectly. +Expect '(?m)^\s*29\s' 'append extended the file rather than replacing it' Expect '(?m)^copy\.txt' 'a copied file appears in a new directory' Expect '(?ms)copy\.txt.*rmdir' 'rmdir removed the directory without an error' @@ -393,7 +397,7 @@ Expect 'vga: display controller' 'the display driver found its aperture' Expect 'schfs: mounted' 'the kernel mounted SchFS as the root filesystem' Expect 'init: ready' 'init came up on a SchFS root' -Expect 'label:\s*schunix' '/proc/schfs reports the volume label' +Expect 'label:\s*schos' '/proc/schfs reports the volume label' Expect 'root_objectid:\s*16' '/proc/schfs reports the root object id' Expect 'dir\s+bin' 'the root directory really contains bin/' # / is the mounted volume, so mounting that same device again must be @@ -415,7 +419,7 @@ if ($gens.Count -ge 2 -and } if ($Fb) { - Expect 'id\s+schunixfb' 'FBIOGET_FSCREENINFO identifies the device' + Expect 'id\s+schosfb' 'FBIOGET_FSCREENINFO identifies the device' # 800x600 is what boot/stage2.S asks VBE for. Asserting the numbers rather # than just "the ioctl returned" is the point: the old code path returned # success with an untouched buffer, i.e. a 0x0 screen. diff --git a/tools/crashshot.ps1 b/tools/crashshot.ps1 index 326e1b8..8978256 100644 --- a/tools/crashshot.ps1 +++ b/tools/crashshot.ps1 @@ -1,4 +1,4 @@ -# Boot Schunix, crash it on purpose, and capture the crash screen as an image. +# Boot SchOS, crash it on purpose, and capture the crash screen as an image. # # The crash screen is the one part of the system you cannot look at by using # the system, so it is the one part that quietly rots. This drives it through @@ -21,7 +21,7 @@ param( $ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = if ($SchFS) { Join-Path $root 'build\schfs.img' } else { Join-Path $root 'build\fs.img' } $log = Join-Path $root 'build\crashshot.log' $ppm = Join-Path $root $Out @@ -96,7 +96,7 @@ if (Test-Path $log) { $text = Get-Content $log -Raw Write-Host "==> serial transcript" -ForegroundColor Cyan # Only the crash report, not the whole boot. - $idx = $text.IndexOf('Schunix stopped') + $idx = $text.IndexOf('SchOS stopped') if ($idx -ge 0) { Write-Host $text.Substring($idx) } else { Write-Host $text } } diff --git a/tools/dispshot.ps1 b/tools/dispshot.ps1 index 787a7ac..bc882ab 100644 --- a/tools/dispshot.ps1 +++ b/tools/dispshot.ps1 @@ -1,4 +1,4 @@ -# Boot Schunix, run the display self-test, and capture the result as an image. +# Boot SchOS, run the display self-test, and capture the result as an image. # # The display class cannot be checked without a display: the assertion is "did # the right pixels reach the screen", and the only instrument for that is a @@ -26,7 +26,7 @@ param( $ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = if ($SchFS) { Join-Path $root 'build\schfs.img' } else { Join-Path $root 'build\fs.img' } $log = Join-Path $root 'build\crashshot.log' $ppm = Join-Path $root $Out diff --git a/tools/fbshot.ps1 b/tools/fbshot.ps1 index c47e0c2..599cdae 100644 --- a/tools/fbshot.ps1 +++ b/tools/fbshot.ps1 @@ -18,7 +18,7 @@ param( $ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = Join-Path $root 'build\fs.img' $log = Join-Path $root 'build\fbshot.log' $ppm = Join-Path $root "build\fb-$Mode.ppm" diff --git a/tools/loc.ps1 b/tools/loc.ps1 index 64f963e..6e0677a 100644 --- a/tools/loc.ps1 +++ b/tools/loc.ps1 @@ -1,4 +1,4 @@ -# How much of Schunix is actually Schunix. +# How much of SchOS is actually SchOS. # # `wc -l` over the whole tree answers a question nobody asked: it counts musl, # toybox, mksh and a NetBSD checkout, which between them are @@ -136,13 +136,13 @@ $fmt = @( ) Write-Host '' -Write-Host ' Schunix — first-party source' -ForegroundColor Cyan +Write-Host ' SchOS — first-party source' -ForegroundColor Cyan Write-Host '' Write-Host (($results | Where-Object { $_.Files -gt 0 } | Sort-Object Lines -Descending | Format-Table $fmt -AutoSize | Out-String)) # Two totals, because they answer different questions and conflating them # flatters the number. "The OS" is what boots and runs on the machine; docs, -# host-side tools and the projects/ stubs are first-party but are not Schunix +# host-side tools and the projects/ stubs are first-party but are not SchOS # running on hardware. Linux 0.01's 10,239 lines were kernel, headers and boot # -- no documentation and no build tooling -- so only the first total is a fair # comparison. @@ -182,7 +182,7 @@ Write-Host '' # measure -- every line of every file in the tarball, comments included. $lin = 10239 Write-Host (' For scale: Linux 0.01 was {0:N0} lines (kernel, headers, boot -- the' -f $lin) -ForegroundColor DarkGray -Write-Host (' same things counted above as THE OS ITSELF). Schunix is {0:N1}x that.' -f ($osT / $lin)) -ForegroundColor DarkGray +Write-Host (' same things counted above as THE OS ITSELF). SchOS is {0:N1}x that.' -f ($osT / $lin)) -ForegroundColor DarkGray Write-Host '' if ($PerFile) { diff --git a/tools/makeiso.ps1 b/tools/makeiso.ps1 index 2dd72d8..84276dd 100644 --- a/tools/makeiso.ps1 +++ b/tools/makeiso.ps1 @@ -1,4 +1,4 @@ -# Build a bootable Schunix ISO, ready for VMware or a real machine. +# Build a bootable SchOS ISO, ready for VMware or a real machine. # # Wraps `make iso`, which builds the ramdisk-root variant and wraps it in an # El Torito image. The ramdisk root is the point: the ISO carries a complete @@ -8,7 +8,7 @@ # tools\makeiso.ps1 -Run build it, then boot it under QEMU to check # tools\makeiso.ps1 -Clean force a full rebuild first # -# Afterwards the ISO is schunix.iso in the repository root; point a VM's optical +# Afterwards the ISO is schos.iso in the repository root; point a VM's optical # drive at it and boot from CD. param( @@ -88,8 +88,8 @@ if ($code -ne 0) { Fail "make iso returned $code" } -$iso = Join-Path $root 'schunix.iso' -if (-not (Test-Path $iso)) { Fail "schunix.iso was not produced" } +$iso = Join-Path $root 'schos.iso' +if (-not (Test-Path $iso)) { Fail "schos.iso was not produced" } # `make iso` leaves the tree holding objects compiled with -DRAMDISK_ROOT. A # following plain `make` would then fail to link, on a missing ramdisk symbol, @@ -106,7 +106,7 @@ Write-Host " New VM -> I will install the OS later -> Other / Other 64-bit" Write-Host " CD/DVD -> Use ISO image file -> $iso, and tick Connect at power on" Write-Host " Boot order: CD-ROM first (F2 at power on for the firmware setup)" Write-Host "" -Write-Host " Set the VM to BIOS, not UEFI. Schunix's loader is 16-bit real" +Write-Host " Set the VM to BIOS, not UEFI. SchOS's loader is 16-bit real" Write-Host " mode and there is no EFI stub yet, so a UEFI-only VM will not boot." Write-Host "" Write-Host " Processors: as many as you like. SMP works as of 2026-08-08;" diff --git a/tools/mkiso.sh b/tools/mkiso.sh index 0ab3a53..8562d17 100644 --- a/tools/mkiso.sh +++ b/tools/mkiso.sh @@ -1,15 +1,15 @@ #!/bin/sh -# Build a bootable Schunix ISO. +# Build a bootable SchOS ISO. # # tools/mkiso.sh [output.iso] # # The disc boots through El Torito's "no emulation" mode, which is the only -# one of the three that fits how Schunix actually loads itself. +# one of the three that fits how SchOS actually loads itself. # # floppy emulation caps the image at 2.88 MB; the ramdisk-root kernel # alone is bigger than that. # hard disk emulation presents the image through the BIOS's INT 13h, and -# Schunix's loader does not use INT 13h -- it drives +# SchOS's loader does not use INT 13h -- it drives # the IDE controller's registers directly, which # cannot reach a BIOS-emulated drive. # no emulation the BIOS loads a chosen run of sectors at 0x7C00 @@ -23,7 +23,7 @@ # # STAGE2_SECTORS comes from the environment, set by the Makefile, because this # same number also lives in boot/bootasm.S, boot/stage2main.c and the dd offsets -# in schunix.img's recipe. It was previously written out by hand in three +# in schos.img's recipe. It was previously written out by hand in three # separate spots in this file alone, and raising it for the boot logo is what # turned that from a latent hazard into a broken image. # @@ -34,7 +34,7 @@ set -e BUILD=${BUILD:-build} -OUT=${1:-schunix.iso} +OUT=${1:-schos.iso} STAGE2_SECTORS=${STAGE2_SECTORS:-48} STAGE2_BYTES=$((STAGE2_SECTORS * 512)) LOAD_SIZE=$((1 + STAGE2_SECTORS)) @@ -59,7 +59,7 @@ stage2_sz=$(wc -c < "$STAGE2") rm -rf "$STAGING" mkdir -p "$STAGING/boot" -cat "$CDBOOT" "$STAGE2" "$KERNEL" > "$STAGING/boot/schunix.bin" +cat "$CDBOOT" "$STAGE2" "$KERNEL" > "$STAGING/boot/schos.bin" # xorriso if it is here, mkisofs otherwise. Both accept the El Torito flags # below unchanged -- xorriso's -as mkisofs mode exists precisely to be @@ -79,9 +79,9 @@ fi $MKISOFS \ -quiet \ - -V SCHUNIX \ - -A "Schunix" \ - -b boot/schunix.bin \ + -V SCHOS \ + -A "SchOS" \ + -b boot/schos.bin \ -no-emul-boot \ -boot-load-size "$LOAD_SIZE" \ -o "$OUT" \ diff --git a/tools/mklogo.py b/tools/mklogo.py index 615b098..587d2a6 100644 --- a/tools/mklogo.py +++ b/tools/mklogo.py @@ -13,7 +13,7 @@ is ink -- which lets the kernel composite it in whatever the theme's accent happens to be, anti-aliased, at one byte per pixel. Storing RGB would be four times the size and would hardcode a colour into the kernel image. - python3 tools/mklogo.py "Assets/Schunix Small Logo.png" include/logo.h 128 + python3 tools/mklogo.py "Assets/SchOS Small Logo.png" include/logo.h 128 """ import sys, zlib, struct diff --git a/tools/mkschfs.c b/tools/mkschfs.c index 69a8a36..55166e9 100644 --- a/tools/mkschfs.c +++ b/tools/mkschfs.c @@ -547,7 +547,7 @@ add_tree(uint64_t dirino, const char *hostdir) int main(int argc, char **argv) { - const char *out = NULL, *sysroot = NULL, *label = "schunix"; + const char *out = NULL, *sysroot = NULL, *label = "schos"; uint64_t nblocks = 6000; for (int i = 1; i < argc; i++) { diff --git a/tools/mutate.sh b/tools/mutate.sh index 89a0a56..7f890d8 100644 --- a/tools/mutate.sh +++ b/tools/mutate.sh @@ -8,7 +8,7 @@ # say -- would otherwise look exactly like a passing mutation test, which is # the same failure this script exists to catch. set -e -cd /mnt/d/DEV/Schunix +cd /mnt/d/DEV/SchOS OBJ=kernel/fs/schfs/obj.c OBJW=kernel/fs/schfs/objw.c diff --git a/tools/qrcheck.py b/tools/qrcheck.py index 6baae11..e034439 100644 --- a/tools/qrcheck.py +++ b/tools/qrcheck.py @@ -126,10 +126,10 @@ alpha = lambda n: "".join(chr(65 + i % 26) for i in range(n)) CASES = [ "HELLO", - "SCHUNIX", + "SCHOS", "a", "0123456789", - "SCHUNIX PANIC\ntrap 14 err 4 cpu 0\nrip ffffffff80104e2a", + "SCHOS PANIC\ntrap 14 err 4 cpu 0\nrip ffffffff80104e2a", bytes(range(1, 40)).decode("latin-1"), # non-printable payload ] # One payload that exactly fills each version, and one just under, so both the diff --git a/tools/qrtest.c b/tools/qrtest.c index a42a917..ba2b64f 100644 --- a/tools/qrtest.c +++ b/tools/qrtest.c @@ -297,7 +297,7 @@ main(int argc, char **argv) const char *out = argc > 1 ? argv[1] : "build/qr.png"; const char *text = argc > 2 ? argv[2] : - "SCHUNIX PANIC\n" + "SCHOS PANIC\n" "build 8f2a91c4\n" "trap 14 err 4 cpu 0\n" "rip ffffffff80104e2a\n" diff --git a/tools/splashshot.ps1 b/tools/splashshot.ps1 index d30c3e7..5cd3543 100644 --- a/tools/splashshot.ps1 +++ b/tools/splashshot.ps1 @@ -29,7 +29,7 @@ Remove-Item -Recurse -Force $dir -ErrorAction SilentlyContinue New-Item -ItemType Directory -Force $dir | Out-Null Remove-Item -Force $log -ErrorAction SilentlyContinue -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = Join-Path $root 'build\fs.img' $monPort = 55556 # not crashshot's port, so the two can run back to back diff --git a/tools/textshot.ps1 b/tools/textshot.ps1 index f158bcc..c6aceb0 100644 --- a/tools/textshot.ps1 +++ b/tools/textshot.ps1 @@ -1,4 +1,4 @@ -# Boot Schunix, run the text-rendering self-test, and capture the result as an image. +# Boot SchOS, run the text-rendering self-test, and capture the result as an image. # # The display class cannot be checked without a display: the assertion is "did # the right pixels reach the screen", and the only instrument for that is a @@ -26,7 +26,7 @@ param( $ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = if ($SchFS) { Join-Path $root 'build\schfs.img' } else { Join-Path $root 'build\fs.img' } $log = Join-Path $root 'build\crashshot.log' $ppm = Join-Path $root $Out diff --git a/tools/ttyshot.ps1 b/tools/ttyshot.ps1 index 21ea092..f561b9a 100644 --- a/tools/ttyshot.ps1 +++ b/tools/ttyshot.ps1 @@ -17,7 +17,7 @@ param( $ErrorActionPreference = 'Stop' $root = Split-Path $PSScriptRoot -Parent -$hda = Join-Path $root 'schunix.img' +$hda = Join-Path $root 'schos.img' $hdb = Join-Path $root 'build\fs.img' $log = Join-Path $root 'build\ttyshot.log' $ppm = Join-Path $root $Out