Date
1 - 7 of 7
What happened to Linux-Tiny ?
Holger Schurig <holgerschurig@...>
On http://elinux.org/Linux_Tiny I see that there's no public
release of Linux-Tiny-Patches since Kernel 2.6.23. Is this right? I have a bunch of local tiny-patches for 2.6.32: tiny-scsi-ioctl.patch Get rid of unconditional compiled scsi_ioctl.o add/remove: 0/8 grow/shrink: 0/0 up/down: 0/-3596 (-3596) tiny-fb.patch Shrink modedb, get rid of fb-related sysfs, removes misc other functions that I don't need in an environment where the framebuffer never changes it's mode add/remove: 0/29 grow/shrink: 0/6 up/down: 0/-4876 (-4876) tiny-config-net-small.patch Adds CONFIG_NET_SMALL add/remove: 0/0 grow/shrink: 7/4 up/down: 28/-2756 (-2728) tiny-namei-inlines.patch Uninline various namei.c functions add/remove: 2/0 grow/shrink: 0/8 up/down: 584/-2024 (-1440) tiny-crc.patch Calculate CRC32 without tables add/remove: 2/0 grow/shrink: 0/10 up/down: 584/-2356 (-1772) tiny-ldiscs.patch Configurable no. of TTY line disciplines (I use 4 instead of 16) add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-64 (-64) tiny-max-user-rt-prio.patch Configurable no. of realtime priority levels (I use 5 instead of 100) add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-840 (-840) ... but would be grateful for a source of more stuff like this ! Best regards, Holger -- http://www.holgerschurig.de |
|
Michael Opdenacker <michael@...>
Hi Holger,
On 01/12/2010 10:19 AM, Holger Schurig wrote: On http://elinux.org/Linux_Tiny I see that there's no publicThat's right. We stopped releasing patches after realizing that we were spending more time updating old patches than getting them merged. Thanks to this, we managed to merge some of these patches (see http://free-electrons.com/community/contributions/kernel-contributions/), but it's true that some patches / ideas haven't been merged yet. Would you have time to submit these patches to the LKML? This would be very useful, and if you CC the linux-embedded mailing list, you should get support from our 3 embedded maintainers. Otherwise, if you don't have enough time, please send them to me and I will upload them on the Linux-Tiny page, and will take care of them as soon as I have time. Thanks, Michael. -- Michael Opdenacker, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com + 33 621 604 642 |
|
Rob Landley
On Tuesday 12 January 2010 08:13:03 Michael Opdenacker wrote:
Hi Holger,Back when Matt Mackall gave up on the first linux-tiny tree, I realized that the fundamental problem with linux-tiny is it's going about it all wrong. Think about embedded development in userspace. People who put together their first headless box tend to start by grabbing a desktop distro and uninstalling stuff they don't need. But after a while you have to approach the problem from the other end, starting with an empty root filesystem and adding just what you need. Whether you do so with cp and ldd, or whether you build stuff from source, is a side issue. The point is instead of starting with buckets of stuff and chopping it down, you start from zero and build _up_. The linux kernel's "allnoconfig" produces a kernel that's over a megabyte. The linux-tiny patches are finding ways to disable more of that stuff, but it's still the "start with a distro and remove stuff" approach. That's a Red Queen's Race, you're running at full speed to avoid _losing_ ground. What's needed is a "hello world" Linux kernel, that makes the smallest bootable binary you can actually see do something. Start with Linux, grab whatever setup.S code you need to get the processor ready to run C code, plus the early_printk stuff to print "hello world" out to a simple console device, and then halt the CPU. Make that work on each target. Then once you've got your zero state, then add the compression wrapper. Then work your way through init/main and start adding stuff a bit at a time, with stub versions of everything (possibly copied from linux 0.95 or thereabouts). The world's crappiest in-kernel memory allocator. A mindless round-robin scheduler. Sad interrupt handling that just _does_ it without even bottom halves. A single mount point vfs. The posix system calls, and so on. Figure out what they ARE. Look at linux 0.0.1 to see the minimum you can get away with. Disentangle each of these chunks from each other and try to figure out if there's any possible use you could put the system to without this one. Note that kernels are potentially actually useful even in the absence of userspace. Back in the 2.2 days there was as trick where you'd set up your ipchains so everything was routing and masquerading how you wanted, and then intentionally have init exit (panicing the kernel). The machine would still handle interrupts and thus still route packets, but there was no userspace. (Try running your rootkit on _that_ box.) I don't think it still works on modern systems, but you see my point. Imagine a kernel that does nothing but parse a device tree, probe a little bit of described hardware and early_printk some information about it, and then halt. That's a tool on the order of memtest86 that's conceivably useful as an early smoketest, and the fact it _can't_ currently be built from the Linux source is _sad_. The thing is, making such a "hello world" kernel is a HUGE amount of work, and then breaking out other pieces of code from Linux so they're independent of each other and can be added one at a time would be an enormous undertaking. Right now it's all one big huge tangled mess. But working from the top down does not scale, you have to take the bottom up approach at some point, or else accept that the kernel will continue to bloat and that linux-tiny and friends are at best a holding action. (I blathered about this a bit in that OLS compiler BOF Michael recorded in 2008. Haven't found time to mess with it much since. Not really my area, I'm afraid.) Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds |
|
Ian Stirling
Rob Landley wrote:
<snip> The thing is, making such a "hello world" kernel is a HUGE amount of work, and then breaking out other pieces of code from Linux so they're independent of each other and can be added one at a time would be an enormous undertaking. Right now it's all one big huge tangled mess. But working from the top down does not scale, you have to take the bottom up approach at some point, or else accept that the kernel will continue to bloat and that linux-tiny and friends are at best a holding action.Such an effort would have many, many applications, especially as devices that can run linux slowly move into the $10 or so bracket. It would be a very useful project, but as you say is huge. |
|
Rob Landley
On Saturday 16 January 2010 09:10:04 Ian Stirling wrote:
Rob Landley wrote:I had a second round of projects to propose to CELF after I thought about it a bit. (I have such a long todo list I don't even remember things like this unless I dig a bit.) Another one was getting uClibc on a regular release schedule again, and uClibc NPTL ported to all supported hardware targets in an actual _release_ version. Or perhaps getting android's bionic (bsd licensed libc) and toolbox (their bsd-licensed busybox clone) properly documented and mirrored (with an actual mailing list instead of a google group) so people interested in poking at them don't need to agree to a deeply stupid (very much not open source) SDK license before playing with 'em. But somebody said the deadline had gone past. *shrug* Maybe next year. Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds |
|
Bill Traynor <wmat@...>
On Sat, Jan 16, 2010 at 12:12, Rob Landley <rob@...> wrote:
Rob, you should submit them anyway so they can be added to the elinux.org wiki. That way there's a record of useful projects.
|
|
Rob Landley
On Saturday 16 January 2010 11:28:13 Bill Traynor wrote:
On Sat, Jan 16, 2010 at 12:12, Rob Landley <rob@...> wrote:There's a shortage of todo items?But somebody said the deadline had gone past. *shrug* Maybe next year.Rob, you should submit them anyway so they can be added to the Somebody needs to make a kernel filesystem that can read-only loopback mount a zip file. (Yay squashfs, but we've had a compressed archive format you can easily get individual files out of for 20 years now, and the Linux kernel never learned to loopback mount it. Sad.) Somebody needs to genericize kconfig, as discussed years ago at http://lkml.indiana.edu/hypermail/linux/kernel/0707.1/2803.html so the code that's currently copied by uClibc and busybox and buildroot and such can be _shared_ rather than just copied from the Linux kernel. (But I can't even get the Kernel guys to take my perl removal patches.) Somebody needs to help the http://www.kernelpodcast.org/ guy catch up (possibly reading some of his old entries that haven't got MP3's out loud and sending him the recordings, and maybe trying to summarize the gaps, ala http://www.kernelpodcast.org/2010/01/14/ ). Speaking of which, I need to dig up http://landley.net/qemu and start that up again. Maybe I should even dredge up http://kernel.org/doc and do something with that. It would be nice if the OLS people inherited http://kernel.org/doc/ols and my script to generate http://kernel.org/doc/htmldocs/ broke when they introduced subdirectories. (Easy to fix, I just haven't yet. And I need to get the cron job set back up to update it regularly again.) I need to dig up my old project to build a genext2fs program that works like an archiver (I.E. so you can pipe its output directly into gzip or through ssh, without it having to mmap a big file and work on that). I should probably also do a btrfs one while I'm at it. Somebody somewhere needs to teach qemu to emulate a 3D chip. (Doesn't matter which one, something simple you can translate to opengl. Software render it in 2D on the host for the first pass if need be, just put _support_ in there.) And while we're fiddling with qemu, why does the -kernel mode _not_ parse ELF vmlinux files on every single target? The code's generic, it's just not _enabled_... I need to properly write up my rant about why autoconf and make need to die and what to replace them with, random examples of material at: http://lkml.indiana.edu/hypermail/linux/kernel/0901.2/00434.html http://lkml.indiana.edu/hypermail/linux/kernel/0901.2/00720.html I need to dig up my miniconfig stuff and make kconfig do it automatically in C: http://lwn.net/Articles/161086/ http://landley.net/hg/firmware/file/tip/sources/toys/miniconfig.sh I need to finally write the book on the history of open source I've been collecting research for (http://landley.net/history/mirror) for ages. And no, http://landley.net/notes-2009.html#11-05-2009 and http://landley.net/notes-2009.html#23-05-2009 (and for that matter, http://landley.net/code/firmware/history.html) don't count. I also need to write up how to actually run a convention. (Again, http://landley.livejournal.com/41393.html doesn't count.) And I need to do a PROPER write-up on the old Three Waves stuff I wrote articles on ten years ago (Cutting and pasting from the last time I mentioned it, <a href=http://www.fool.com/news/foth/2000/foth000731.htm>one</a>, <a href=http://www.fool.com/news/foth/2000/foth000913.htm>two</a>, <a href=http://www.fool.com/news/foth/2000/foth000905.htm>three</a>, <a href=http://www.fool.com/news/foth/2000/foth000918.htm>four</a>, <a href=http://www.fool.com/news/foth/2000/foth000925.htm>five</a>, <a href=http://www.fool.com/portfolios/rulemaker/2000/rulemaker000928.htm>six</a>, <a href=http://www.fool.com/news/foth/2000/foth001002.htm>seven</a>, and some <a href=http://firstmonday.org/htbin/cgiwrap/bin/ojs/index.php/fm/article/view/839/748>third party reaction</a>). That was a DECADE ago, I hadn't even come up with decent names for the stages yet (Cringely's names are ok, but Hobbyist, Employee, and Bureaucrat are much more descriptive)... (And I need to write a proper book on embedded development, explaining all the stuff I've written scattered around http://busybox.net/FAQ.html#tips and http://landley.net/code/toybox/design.html and so on. And to do so I need to LEARN so much stuff, such has how to set up JTAGS properly which is an AMAZING pain.) Today I'm halfway through a write-up on what's actually WRONG with the Android project (from a 10,000 foot view, not actually looking at the code yet), and my long-term hobby project (stalled while I find a real job) is getting my Firmware Linux project working on every target QEMU supports (producing a prebuilt binary cross compiler, native compiler, root filesystem tarball, and a bootable system image containing a native development environment, plus prebuilt static binaries for dropbear and strace, ala http://impactlinux.com/fwl/downloads/binaries/ ). I also need to get it building nightly snapshots using the -git versions of uClibc, busybox, and the Linux kernel, and automatically doing a "git bisect" for any build break or test break to determine what commit broke it and automatically emailing a build log to that person. I'm sorry, I'm confused by the CONCEPT of having a shortage of TODO items. This is just the top of my head _Linux_ stuff, and doesn't include purely-me items like learning LUA. I want to get a mac and learn THAT stuff. I want to get my master's degree so I can become a full-time college professor when I'm ready to retire from programming. I want to write multiple books. I want to start a third convention so I have an excuse to wave the Cartoon Guide to Federal Spectrum Policy at people (http://www.newamerica.net/files/archive/Pub_File_1555_1.pdf). I want to learn to draw so I can start a webcomic. I have enormous stacks of books to read. I need to watch the rest of Mythbusters, catch up on the new Dr. Who, and play Dragon Age. I want to garden and cook and bike and swim. I want to get rich and start the world's largest nudist resort. I want to dig up the recording of the time I got Neil Gaiman to say "By Grabthar's hammer, you shall be avenged" into a microphone (after his reading of Crazy Hair at Penguicon 2) and also get Ralph Nader to say "Luke, I am your Father" into another microphone. I need to completely redo my website (and make a "random cool stuff" page listing http://sidhefaer.livejournal.com/87839.html and http://theglen.livejournal.com/16735.html and so on...) Theres... a shortage of stuff to do somewhere? Really? How does that work? Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds |
|