README 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. Oberon Microsystems BlackBox Component Builder (http://www.oberon.ch/)
  2. Port for OpenBSD/i386, Linux/i386
  3. Some significant parts taken from OpenBUGS (http://www.openbugs.info/)
  4. How to build:
  5. compile loader executable (BlackBox itself and simple interpreter):
  6. `uname -s`/libBB*.so must be present (can be built from Windows)
  7. cd BlackBox/`uname -s`/Lin/Rsrc/loader; make
  8. compile self:
  9. cd BlackBox; ./switch-os `uname -s`; ./clean; ./build-lindev; ./build
  10. Files:
  11. original:
  12. BlackBox:
  13. Dev/Mod/*
  14. all except ElfLinker16
  15. Dev/Rsrc/*
  16. Docu/BB-License.odc
  17. Docu/BB-Licensing-Policy.odc
  18. Docu/BB-Open-Source-License.odc
  19. Obx/*
  20. Std/*
  21. System/Mod/
  22. all except Console
  23. System/Rsrc/*
  24. Text/*
  25. OpenBUGS:
  26. Dev/Mod/ElfLinker16.odc
  27. Dev/Docu/ElfLinker.odc
  28. System/Mod/Console.odc
  29. Docu/OpenBUGS-License.odc
  30. http://forum.oberoncore.ru/viewtopic.php?f=34&t=1159&sid=3e82517160caa46c64331178c1b61e95:
  31. {Linux,OpenBSD}/Lin/Mod/Kernel_so_init.odc
  32. modified:
  33. OpenBSD/Lin/Mod/Kernel.odc:
  34. 1.6-rc6 System/Mod/Kernel.odc, OpenBUGS Lin/Mod/linKernel.odc:
  35. OpenBSD specific:
  36. Memory management rewritten (based on mmap)
  37. Kernel.TrapHandler
  38. OpenBSD sigcontext-specific
  39. Kernel.Time
  40. CLOCKS_PER_SEC related
  41. Kernel.InitModule
  42. mprotect call added
  43. Kernel.InstallSignals:
  44. use alternate stack on which signals are to be processed (to catch stack overflow)
  45. do not install signal handler for SIGTHR (when executable linked with -pthread)
  46. Kernel.cmdLine support:
  47. Kernel.INIT (SetCmdLine2)
  48. Linux/Lin/Mod/Kernel.odc:
  49. OpenBSD/Lin/Mod/Kernel.odc modified for Linux:
  50. Time*
  51. TrapHandler
  52. mmap: use "/dev/zero" device instead of -1
  53. mprotect addresses must be page-aligned
  54. do not show warning message if signal install failed
  55. sigStkSize increased, because SIGSTKSZ=8192 on Linux is too low
  56. OpenBSD/Lin/Mod/linHostFiles.odc:
  57. OpenBUGS Lin/Mod/linHostFiles.odc:
  58. OpenBSD-specific:
  59. size_t
  60. __xstat -> stat
  61. Kernel.cmdLine support:
  62. str := "" -> str := Kernel.cmdLine$
  63. Linux/Lin/Mod/linHostFiles.odc:
  64. OpenBUGS Lin/Mod/linHostFiles.odc:
  65. Kernel.cmdLine support:
  66. str := "" -> str := Kernel.cmdLine$
  67. OpenBSD/Lin/Mod/Console.odc:
  68. OpenBUGS Lin/Mod/Console.odc:
  69. stdin -> SYSTEM.ADR(__sF[0])
  70. Linux/Lin/Mod/Console.odc:
  71. OpenBUGS Lin/Mod/Console.odc
  72. OpenBSD/Lin/Mod/Libc.txt:
  73. OpenBUGS Lin/Mod/Libc.odc:
  74. OpenBSD-specific
  75. Linux/Lin/Mod/Libc.odc:
  76. OpenBUGS Lin/Mod/Libc.odc:
  77. PROT_*, MAP_*, O_*, _SC_PAGESIZE, SIGSTKSZ CONSTs added
  78. open, close, read, write, mmap, munmap, mprotect, getenv, sysconf, sigaltstack functions added
  79. Linux/Lin/Mod/Dl.odc:
  80. OpenBUGS Lin/Mod/Dl.odc
  81. OpenBSD/Lin/Mod/Dates.odc:
  82. HostDates, from http://oberoncore.ru/:
  83. OpenBSD-specific
  84. Linux/Lin/Mod/Dates.odc:
  85. HostDates, from http://oberoncore.ru/
  86. Lindev/Mod
  87. CP*
  88. BlackBox 1.6-rc6 Dev CP* modified to not depend on Dates, Texts etc.
  89. Compiler.odc:
  90. modified original BlackBox Dev/Mod/Compiler.odc
  91. ElfLinker16.odc:
  92. modified OpenBUGS Dev/Mod/ElfLinker16.odc
  93. new:
  94. Cons/Mod
  95. Interp.odc: console interpreter
  96. Compiler.odc: console interface to Dev compiler
  97. {OpenBSD,Linux}/libBB.so: compiled and linked shared library to run BlackBox
  98. {OpenBSD,Linux}/libBB0.so: compiled and linked shared library to run simple development interpreter
  99. Views.odc: minimal Views implementation required to compile StdInterpreter
  100. StdLog.odc: alternative StdLog implementation to not depend on GUI
  101. HostFonts.odc, HostDialog.odc, HostWindows.odc: simple Hosts implementation
  102. Notes:
  103. Lindev:
  104. I will not remove Lindev because I can not link .so library based on ConsInterp and Dev
  105. Kernel_so_init.SetKernelBaseStack:
  106. required only in case of .so shared library dynamic loading
  107. (at run-time via dlopen, not on link-time)
  108. A. V. Shiryaev, 2012