mailing list of musl libc
 help / color / mirror / code / Atom feed
* embedded newbies site.
@ 2013-07-16  2:03 Rob Landley
  2013-07-16  3:18 ` Strake
  2013-07-16 11:50 ` LM
  0 siblings, 2 replies; 21+ messages in thread
From: Rob Landley @ 2013-07-16  2:03 UTC (permalink / raw)
  To: musl

As I was ruminating on IRC:

Once upon a time the busybox/uClibc community provided a condensation  
nuclei for most embedded Linux development: website, mailing list, and  
#uclibc irc channel here on freenode. But that fell apart in 2005  
(buildroot was one project too many, openwrt was separate and based on  
the horrible linksys build system, various corporate efforts like Maemo  
and Moblin and OpenMoko did their own thing...)

A lot of the stuff I learned about embedded development would be hard  
to replicate today because there's no community aimed at bringing  
newbies up to speed on this stuff. I know we've got a wiki page  
collecting other interesting packages that work with musl, but there's  
more to it than that.

My path to embedded development went like something this:

1) remove unnecessary packages from existing distros
2) copy files into an empty directory to make a working chroot that  
runs my app
3) build Linux From Scratch from source
4) swap in busybox and uClibc in LFS, remove unnecessary stuff,  
customize result

It would be nice to have a site walking people through these steps, and  
hosting an "Embedded Linux From Scratch" as a wiki, and with associated  
mailing list and IRC channel. (It was sort of #edev for a while, but  
now #musl is more active but half the discussion on it is off topic...)

I'd like an explicit a place to collect and preserve information about  
this sort of thing, and a place we can send newbies to ask all the  
stupid questions. The main page should teach somebody what embedded  
development _is_ and how to do it, starting with how to build and  
install the simplest Linux system that boots to a shell prompt (three  
packages: linux, musl, and toybox).

Then there should be additional modules people can pick and choose from:
   - analyzing an existing system
     - creating a chroot with ldd
     - your friend strace
     - why PID 1 is special, init via shell script, classic system V  
init.
     - what's in /etc, /var, /usr, /bin, /lib, /tmp
   - intro to relevant standards
     - what/where are posix, lsb, fhs, elf... plus a ~3 paragraph  
summary of each.
     - a tour of libc
       - readelf -a, static vs dynamic, the dynamic linker
       - man 2 vs man 3, stdio subsystem, -lpthread
     - a tour of the kernel
       - yeah yeah, can 'o worms, but  
http://kernel.org/doc/single/lki-single.html
         needs a brand new version for 3.x.
     - a tour of compiler toolchains
       - the six paths, why a docbook->pdf converter and toolchain  
aren't different.
   - creating a development environment (building binutils, gcc,  
make...)
     - requirements for self-hosting
     - requirements for natively building Linux From Scratch
     - cross vs native compiling
       - bootstrapping to native compiling under emulation.
   - cross compiling for non-x86 systems (with qemu)
     - bootloaders, jtags,
   - booting a simple gui
     - fishing the x11 stuff out of BLFS, booting fvwm or dwm or  
something.
   - getting client-side networking working
     - ifconfig, route, iwlist, iwconfig, maybe wpa-supplicant...
   - setting up a server
     - iptables
     - apache, postfix, samba
   - reproducing android userspace
   - root vs non-root
     - processes, files, suid, sgid, sticky bit
   - security nuttiness
     - selinux, extended attributes, apparmor, capability bits
     - containers: not doing any of that
       - why "users" and "groups" wasn't good enough.

- efficient (elegant) programming
   - Why C and scritpting languages, why NOT C++ and autoconf
   - tradeoffs
     - code reuse
     - transaction granularity
     - taking advantage of SMP without going crazy

Yeah yeah, a lot of this is listing stuff I could write, but the point  
is there's lots of stuff I can't write and don't know, and there should  
be other people who can answer questions...

I bump into stuff like suckless and hope it'll turn into this, but so  
far it hasn't...

Rob

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-08-03 16:52 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-16  2:03 embedded newbies site Rob Landley
2013-07-16  3:18 ` Strake
2013-07-17 12:07   ` LM
2013-07-17 13:58     ` Rich Felker
2013-07-20 15:17   ` James B
2013-07-22 12:27     ` Andrew Bradford
2013-07-22  4:40   ` Rob Landley
2013-07-23  0:12     ` Strake
2013-07-27  0:58       ` Rob Landley
2013-07-27  2:01         ` Strake
2013-07-27  2:50           ` Rich Felker
2013-07-29 20:01             ` Rob Landley
2013-07-29 19:54           ` Rob Landley
2013-07-30  1:35             ` Strake
2013-08-01  6:20               ` Rob Landley
2013-08-03 16:52                 ` Strake
2013-07-16 11:50 ` LM
2013-07-16 13:56   ` Szabolcs Nagy
2013-07-16 14:00   ` Rich Felker
2013-07-16 17:49   ` Strake
2013-07-22  6:00   ` Rob Landley

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).