User Tools

Site Tools


projects

This is an old revision of the document!


Small projects

  • Make individual syscalls or groups of syscalls optional. See the syscalls page for a list of syscalls that can't currently be compiled out. (Note that in most cases you'll want to compile out the underlying kernel functionality exposed by those syscalls; if that functionality is not already optional, this will likely turn into a large project.)
  • Turn contig_page_data into .bss since it needs so little of itself initialized.
  • Configure out writing time to the hardware clock (and in the process, compile out RTC_LIB)
  • Compile out kernel/time/ntp.c, along with adjtimex and similar syscalls.
  • Compile out arch/x86/boot/early_serial_console
  • Remove runtime extable sorting logic if CONFIG_BUILDTIME_EXTABLE_SORT
  • Rip out the rest of kernel/smpboot.c if !CONFIG_SMP
  • Make SRCU optional; make portions of the kernel that define an srcu_struct depend on the resulting new Kconfig symbol.

Large projects

  • Make ptrace optional.
  • Modify GCC's __attribute__((section(...))) to support specifying different sections for initialized (.data) and uninitialized (.bss) data. Use that to put uninitialized __initdata or per-CPU data into .bss. (This will require very detailed exploration of the toolchain, Linux's linker scripts, and similar.)
  • Rip out more of the per-CPU infrastructure when CONFIG_SMP=n
  • Support configuring out kswapd.
  • Make the kernel's entire random number infrastructure optional.
  • Compile out mm/vmstat (need to stub out bits that obtain statistics used by other bits of the kernel)
  • Compile out signal handling.
  • Compile out support for capabilities; make capable always return true for root and false for non-root.
  • Compile out support for "personalities".
  • Compile out support for non-root users. When disabled, UID and GID effectively always equal 0, and all the syscalls involving UIDs and GIDs go away.
  • Compile out support for xattrs, and all the corresponding syscalls.
  • Compile out support for sockets and all the socket-related syscalls.
  • Support nommu on x86.
projects.1408430557.txt.gz · Last modified: 2014-08-19 06:42 by joshtriplett