README 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. .. SPDX-License-Identifier: GPL-2.0 or GPL-3.0
  2. .. Copyright © 2018-2019 Ariadne Devos
  3. # s^2 Web Stuff
  4. s^2 is -- so far -- a personal project to write secure and sandboxed software
  5. for doing things on the web. E.g. a web server and mail server and client.
  6. In contrast to seemingly wide-held opinion, except perhaps by Intel,
  7. it doesn't view speculative execution as an evil (*).
  8. (*)
  9. Except Meltdown and perhaps some others ... The model of Spectre I
  10. address is: all branches may temporarily be ignored or falsily taken and all
  11. indirect branch must be retpolined. Checking the page bits may be speculated.
  12. s^2 should be safe against Speculative Store Bypass, Bounds Check Bypass,
  13. Branch Target Injection. Foreshadow is not relevant. Lazy FP State Restore
  14. is a bug of the kernel.
  15. As an extension to what nginx supports, s^2 will allow migration to
  16. different versions and machines. The source code is intended to be readable.
  17. There is some architecture-specific code for Spectre mitigation.
  18. Linux is supported, and the BSDs will be. W32 might be possible.
  19. Do `autoreconf` && `./configure` && `make` to compile.
  20. A CFLAGS argument of "$(sed '/^[*/#]/d' CFLAGS |tr '\n' ' ')"
  21. is recommended, although compiler support may vary.
  22. ## Stuff
  23. - [ ] apps/website.md: for static web sites, may be extended
  24. - [ ] apps/torrent.md (TODO: bittorrent, webtorrent, Dat, IPFS, gnunet?)
  25. - [ ] apps/mail.md: e-mail client and server, encrypted, signed, image support)
  26. - [ ] apps/blog.md (TODO)
  27. - [ ] apps/git.md (TODO)
  28. - [ ] apps/ci.md (TODO)
  29. ## Some design details
  30. OO is used, except that inheritance isn't really used. Nothing is overridden.
  31. Generics may be used sparely. SMP may be used for efficiency (power-efficiency
  32. according to Intel?), but is not mandatory. Tasks of the same type are batched
  33. to reduce cache pressure and branch misprediction.
  34. ## Contact
  35. Do NOT send a mail to Ariadne Devos <m-m@mailoo.org>, as I can't login anymore.
  36. Instead, open a bug at <https://notabug.org/ariadne/shttpd>. Patches, ideas and
  37. general discussion are welcome.
  38. ## Licensing
  39. The license is GPL-2.0 and GPL-3.0, see `doc/people/license-copyright.rst`
  40. for details. The texts are respectively in `doc/people/gpl-2.rst` and
  41. `doc/people/gpl-3.rst`.