README 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # s^2 Web Stuff
  2. s^2 is -- so far -- a personal project to write secure and sandboxed software
  3. for doing things on the web. E.g. a web server and mail server and client.
  4. In contrast to seemingly wide-held opinion, except perhaps by Intel,
  5. it doesn't view speculative execution as an evil (*).
  6. (*)
  7. Except Meltdown and perhaps some others ... The model of Spectre I
  8. address is: all branches may temporarily be ignored or falsily taken and all
  9. indirect branch must be retpolined. Checking the page bits may be speculated.
  10. s^2 should be safe against Speculative Store Bypass, Bounds Check Bypass,
  11. Branch Target Injection. Foreshadow is not relevant. Lazy FP State Restore
  12. is a bug of the kernel.
  13. As an extension to what nginx supports, s^2 will allow migration to
  14. different versions and machines. The source code is intended to be readable.
  15. There is some architecture-specific code for Spectre mitigation.
  16. Linux is supported, and the BSDs will be. W32 might be possible.
  17. Do `autoreconf` && `./configure` && `make` to compile.
  18. ## Stuff
  19. - [ ] apps/website.md: for static web sites, may be extended
  20. - [ ] apps/torrent.md (TODO: bittorrent, webtorrent, Dat, IPFS, gnunet?)
  21. - [ ] apps/mail.md: e-mail client and server, encrypted, signed, image support)
  22. - [ ] apps/blog.md (TODO)
  23. - [ ] apps/git.md (TODO)
  24. - [ ] apps/ci.md (TODO)
  25. ## Some design details
  26. OO is used, except that inheritance isn't really used. Nothing is overridden.
  27. Generics may be used sparely. SMP may be used for efficiency (power-efficiency
  28. according to Intel?), but is not mandatory. Tasks of the same type are batched
  29. to reduce cache pressure and branch misprediction.
  30. ## Contact
  31. Send a mail to Ariadne Devos <m-m@mailoo.org> or open a bug at
  32. <https://notabug.org/ariadne/shttpd>. Patches, ideas and general discussion
  33. are welcome.
  34. ## Legal stuff
  35. Copyright (C) 2018 Ariadne Devos
  36. This program is free software: you can redistribute it and/or modify
  37. it under the terms of the GNU General Public License as published by
  38. the Free Software Foundation, either version 3 of the License, or
  39. (at your option) any later version.
  40. This program is distributed in the hope that it will be useful,
  41. but WITHOUT ANY WARRANTY; without even the implied warranty of
  42. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  43. GNU General Public License for more details.
  44. You should have received a copy of the GNU General Public License
  45. along with this program. If not, see <http://www.gnu.org/licenses/>. */