WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Difference between tce (extensions) and other distros' packages?  (Read 4006 times)

Offline MX372

  • Newbie
  • *
  • Posts: 20
Hello all, relatively new to TCL. I've just finished reading the Corebook, and I have some questions. Keep in mind that I am also relatively new to Linux, but I am pretty computer-literate, so I am what I would call an above-average user. I know what the terminal is and I can follow directions, but I by no means am a CL expert (I'm learning). The CL actually reminds me of using DOS back in the day...... :o

Ok, so TCL uses extensions to load software (applications) from what I gather, and other distros use some form of package management system (for example, apt) to install software, so my questions about this are:

1) how is an extension different from a package?
2) am I limited to the extensions available, or can a new extension be created from an existing package from another distro?

Since TCL runs entirely in RAM, is their any advantage to running it over another distro, or can other distros be made to run entirely in RAM? I guess I'm trying to understand how TCL operates in comparison to other "normal" distros, from a resource-use standpoint. This interests me because I want to run an OS on an older (32 bit) system that uses the least amount of resources needed to accomplish the tasks I need, and I'm trying to decide if TCL is the one to focus on.

The constraints I have on this laptop are that the max RAM is 1GB, the processor is a Pentium M @ 1.1ghz, and it's a non-PAE processor. And this machine will not boot from USB. Currently I'm using LXLE (Lubuntu version) on this machine. I use this computer for:

1. surfing the web with FF (it has wireless)
2. watching YT videos and DVD's (it has a DVD drive)
3. general office tasks (I use Libreoffice currently) with wireless printing/scanning (HP all-in-one)
4. Arduino IDE and python
5. burning the occasional CD/DVD
6. email & FTP
7. pictures and music

My goal is for the OS to be light on resources and run the applications I need to do those things, with an eye towards usability and everything working properly (I don't like buggy software). I would like a system that boots in under 30 seconds, and is responsive. Any suggestions or words of wisdom are appreciated. I like LXLE, it's very polished and everything seems to work almost 100% - every once in a while there is an issue, but for the most part it's stable and functions as expected. There are a few things that don't work yet (function keys, special multimedia keys), and sometimes if I'm multitasking or have multiple browser tabs open it bogs down with 100% CPU usage, but so far I don't seem to have hit the max memory usage yet. I'm sure that the CPU usage is to be expected given what I'm asking this single-core 32-bit CPU to do. Thoughts? And please don't reply with "get a new computer".

Thanks!

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
Re: Difference between tce (extensions) and other distros' packages?
« Reply #1 on: July 16, 2015, 01:37:21 PM »
Well, a good introduction is the book: http://tinycorelinux.net/book.html
along with the other links on the top of the tinycore home page.

Most didtributions install to hard drive and mount their root filesystem on the hard drive.
Packages install to a scattered group of directories on the hard drive.

Core loads the kernel and root filesystem from a drive/flash/CD to RAM.
Extensions are store on the hard drive in the tce directory, but mount to a specific directory in the RAM root filesystem.
Symbolic links are then used to link the mounted extensions to the proper RAM based directories.
The system boots clean every time.

For those with limited RAM ( 512M or less ) the home and opt directories ( which can become quite large ) can be placed on a hard/flash drive.

Offline nitram

  • Hero Member
  • *****
  • Posts: 1054
Re: Difference between tce (extensions) and other distros' packages?
« Reply #2 on: July 16, 2015, 03:07:36 PM »
Welcome Hi MX372.

The response from gerald_clark is very good, he's technical.

Long post, lots of queries, will do best to reply to stuff i'm familiar with:
-Corebook very good, search old forum posts, don't forget the wiki
-never hurts to keep learning more CLI
-TC calls them extensions, Debian calls them packages
-extensions are like squashed packages containing the binary plus extras, linked into the base filesystem when loaded
-the advantage is once the extension is deleted, upon reboot no cruft left in the system
-extensions are limited, nothing near close to what Debian provides
...but users are encouraged to create and submit their own to the repository
...and developers provide assistance if requested for additional extensions
-TC philosophy is just use what you need, nothing more, so if nobody needs it it's irrelevant
-dCore allows using packages from Debian or Ubuntu but it's still in very active development
-some simple binaries (eg. minimal dependencies) just work in TC but recompiling for TC is best
-lots of other distros run from RAM
-TC has lots of advantages but it depends what you're looking for:
   -tiny installation footprint
   -extremely customizable
   -most extensions compiled to be extra lean
   -extremely easy system backup and restore
   -community focused and driven
-more RAM is best, but you can operate on old systems (eg 512MB)
-at boot TC will also look for an existing swap partition to utilize (maybe from other Linux install)
-believe TC can also be setup to utilize a swap file, if no swap partition available
-trying to decide on TC is hard, pros and cons
   -if you want to learn more Linux, TC is great
   -if you have time/energy you'll never get a more customized install
   -if you expect 30,000 software packages available, not so much
   -if you prefer window managers, great
   -in my experience pretty good for old hardware, always workarounds
   -depends on what you mean by 'accomplish the tasks you need'
-your hardware specs are decent
-my system doesn't boot from USB either but if you already have another distro installed:
   -create another partition for tinycore extensions
   -modify Grub/boot loader to point to TC core.gz and vmlinuz
-software
   -Firefox and Flash no problem
   -wireless drivers available
   -youtube no problem
   -VLC works great
   -not sure about watching purchased DVDs/codec and stuff
   -Libreoffice in repository, leaner stuff too
   -not sure about wireless printing, can't see why not, CUPS available
   -not sure about Arduino IDE
   -python stuff in repository
   -flburn and brasero in repository
   -claws mail and thunderbird in repository
   -pictures, choose from eye of gnome, ephoto, flpicsee, viewnior, xfi, xzgv, probably others
   -music no problem (choose from OSS, Alsa, pulse), xmms, VLC, others
   -see here: http://tinycorelinux.net/6.x/x86/tcz/
-everything working properly, yes but can take some tweaking, especially with hardware limitations
-if something is buggy, report the issue or recompile for yourself
-boot time is hardware and setup dependent:
   -TC boots to CLI prompt before reaching coffee cup
   -Xorg vs Xvesa takes more time
   -adding lots of software to onboot.lst takes more time
   -you get to customize however you want, no distribution developer to dictate how it works
-responsive....oh yes...if you set it up right
-if you already like LXLE then why bother, it's probably much more integrated, depends on what you want
-it's good to max memory, that's what it's there for
-i use 32-bit 800MHz single core, 512MB RAM, i'm happy, most users probably would want more
-bottom line comes down to your expectations, willing to put in the time/effort you won't get a cooler system with TC
-if you just want something that boots, immediately works, tons of software available, expect someone else to polish/integrate/work out bugs, maybe stick with LXLE
-i would never tell you to get a new computer :)

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
Re: Difference between tce (extensions) and other distros' packages?
« Reply #3 on: July 16, 2015, 03:21:02 PM »
If you are already running another Linux on the machine, do as nitram suggests, and create another bootloader paragraph to load vmlinuz and core.gz.
You don't really need to create a new partition, though.  Just create a /tce directory on your hard drive.
You can also optionally use the existing /home and /opt directories.

A customary place to put the vmlinuz and core.gz files is in your other Linux's /tce/boot directory.

Offline MX372

  • Newbie
  • *
  • Posts: 20
Re: Difference between tce (extensions) and other distros' packages?
« Reply #4 on: July 16, 2015, 11:07:35 PM »
Thanks for the replies everyone.

For the record (I think I stated in my original post), I've already read the Corebook; it didn't answer the question about an extension vs. a package (to my recollection; if I'm wrong, please point me to the chapter I missed). But from the responses, I understand it as such: an extension is a compressed binary file similar to a package in another distro, but not compatible. Other packages can be converted into an extension, but that takes some work. Not sure exactly the process for that or how one would attempt to do it, and I'm interested in that process, so if anyone cares to steer me to some references, then cool.

I happen to actually have 2 of the same laptop (I'm currently modifying one to run a CF card as the boot HDD - successful with that and I had CorePlus 6.3 on it, but right now it has Lubuntu 12.04 so I could benchmark the CF card and some other stuff - and I'm installing a 3 port USB hub inside to be able to run some 32gb USB thumb drives as storage - the CF card is only 4gb, and the original 1.8" HDD was only 40gb. I'm also installing a USB SD card reader as well.), so I can experiment with TCL on one and use LXLE on the other for now. Eventually, if I'm successful with my hardware mods on the first machine I will duplicate on the second one, except I'll put a 128gb thumb drive in the second one. Both machines will have the max RAM supported - 1gb.

So besides the Corebook (and the wiki and forums), is there any other place I can get more detailed info on TCL? Obviously, I can keep googling for stuff too. I don't mind fiddling with configurations and solving problems, it is an opportunity to learn, but of course it's nice when things work out of the box.

I do not know how to recompile software, but willing to learn. Ditto for coding and such. Trying to learn CLI at this time, Linux OS in general. Other than googling for stuff, and reading some books I have either bought or downloaded, not really sure where else good resources are. I suppose I'll have to start looking at the wiki and searching in the forums. I have multiple computers (and projects too!), so sometimes I'm just looking for an answer to a question quickly due to limited time. Mostly I want to learn, and customize my systems to make them the way I want them, not the way someone else thinks they should be. Originally I thought TCL would be a good candidate to allow me to accomplish that. Sounds like it can, I just need to gain more knowledge.

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11586
Re: Difference between tce (extensions) and other distros' packages?
« Reply #5 on: July 17, 2015, 12:49:50 AM »
Hi MX372
With a standard Linux distribution when a package gets installed the files are copied to the file system. Libraries to /usr/lib/
or  /usr/local/lib/, executables to /usr/bin/ or /usr/local/bin and so on. The /usr/ directory on a standard Linux system resides
on the hard drive.

In Core an extension (package) is compressed into a squash file which actually contains a directory structure. In Core the
/usr/ directory is in RAM and gets rebuilt every time you boot, as do most of the directories. On startup, extensions get
mounted under /tmp/tcloop/. Then links are created from the files in the extension to the appropriate locations in /usr/.
For example, if you look at the contents of grabber.tcz you'll see:
Code: [Select]
tc@box:~/guilib/picedit/x$ unsquashfs -l grabber.tcz
Parallel unsquashfs: Using 1 processor
6 inodes (9 blocks) to write

squashfs-root
squashfs-root/usr
squashfs-root/usr/local
squashfs-root/usr/local/bin
squashfs-root/usr/local/bin/grabber
squashfs-root/usr/local/etc
squashfs-root/usr/local/etc/grabber.conf
squashfs-root/usr/local/share
squashfs-root/usr/local/share/applications
squashfs-root/usr/local/share/applications/grabber.desktop
squashfs-root/usr/local/share/doc
squashfs-root/usr/local/share/doc/License
squashfs-root/usr/local/share/doc/License/grabber-License.txt
squashfs-root/usr/local/share/pixmaps
squashfs-root/usr/local/share/pixmaps/grabber.png
squashfs-root/usr/local/tce.installed
squashfs-root/usr/local/tce.installed/grabber
tc@box:~/guilib/picedit/x$
The extension will get mounted as /tmp/tcloop/grabber. Then the files get linked to the main file system,
/tmp/tcloop/grabber/usr/local/bin/grabber to /usr/local/bin/grabber and so on. When you start grabber the system will find the
link /usr/local/bin/grabber, follow it to /tmp/tcloop/grabber/usr/local/bin/grabber, and load the program. If you decide you don't
like the program, remove it from tce/onboot.lst and it will be gone next time you reboot.

For information on how extensions are built:
http://wiki.tinycorelinux.net/wiki:creating_extensions
For info on file system layout and boot process see:
http://distro.ibiblio.org/tinycorelinux/architecture.html
and this:
http://wiki.tinycorelinux.net/wiki:the_boot_process

Offline jls

  • Hero Member
  • *****
  • Posts: 2135
Re: Difference between tce (extensions) and other distros' packages?
« Reply #6 on: July 17, 2015, 03:49:49 AM »
-dCore allows using packages from Debian or Ubuntu but it's still in very active development
dCore is released
dCore user

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: Difference between tce (extensions) and other distros' packages?
« Reply #7 on: July 17, 2015, 04:24:13 AM »
I would recommend getting a bigger CF card over the usb solution. Much better performance and reliability that way.
The only barriers that can stop you are the ones you create yourself.

Offline MX372

  • Newbie
  • *
  • Posts: 20
Re: Difference between tce (extensions) and other distros' packages?
« Reply #8 on: July 17, 2015, 09:12:21 AM »
Thanks all, I will continue reading and learning!

@curaga - why do you say that about the CF card vs. USB? My understanding is that solid-state storage only has limited write cycles, but unlimited read cycles, so I can read data from the USB all I want and it does not affect the USB drive life. i understand that the CF card likely has a built -in wear-leveling algorithm, and maybe the USB drive does not, but my research indicates that it will take many years of write cycles before I have issues, and I do back-up my data. It would be super-easy to pop a new USB drive in there (likely higher capacity and cheap to boot - CF cards are expensive on a per-GB basis, and really, older technology too with limited uses - I can use a USB drive on any computer easily). My plan is to use the USB thumb drive as my storage medium, as most of my files don't change and are just read from the storage medium.

If you are indicating that the CF card will be faster, well so far, my testing has concluded that the USB drive is comparable to the CF card as far as read speeds go - about 23-25mb/s avg. I'm using an industrial CF card, not some super-high speed 600x CF card (too expensive, might as well buy an SSD), and in comparison to the 1.8" HDD that it replaces, it's faster (1.5ms avg. access time vs. 19.5ms, and 23mb/s avg. read time vs. 15mb/s for the HDD). The USB drives are comparable in access time/read speed to the CF card. I made this comparison with the USB drive connected to a hub connected to one of the USB 2.0 ports on the laptop - exactly as it will be installed (minus the removal of the USB port from the motherboard and direct wiring of the hub to that port's connection on the MB). So my testing indicates that my performance will improve over the factory HDD, and I believe reliability will be a non-issue (keep in mind the original HDD is 10 years old as well, so it could die any day now). My understanding is that USB 2.0 has an effective maximum throughput of about 35mb/s, and to get that speed from a CF card I'd need a 266x card, and currently they are running about $1.20 per gb (for a 16gb CF card), and I can get a 128gb 1.8" SSD for about $94, or $0.75 per gb, and it has a much higher read/write speed (85mb/s). Depending on how my first laptop "experiment" goes, I may actually do that for the second one.

Offline mocore

  • Hero Member
  • *****
  • Posts: 633
  • ~.~
Re: Difference between tce (extensions) and other distros' packages?
« Reply #9 on: July 17, 2015, 06:20:39 PM »
The constraints I have on this laptop are ...... And this machine will not boot from USB.

FYI  Plop Boot Manager 
says it supports
Quote
USB boot without BIOS support (UHCI, OHCI and EHCI)
...

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: Difference between tce (extensions) and other distros' packages?
« Reply #10 on: July 18, 2015, 05:24:54 AM »
USB is really not a reliable bus. New devices take seconds to register, and they may randomly drop out. Fine for an usb stick to occasionally move data, not so fine for a permanent installation that should always be accessible.

CF is a SSD really, for all intents and purposes. Though I wasn't aware they're making IDE SSDs still.
The only barriers that can stop you are the ones you create yourself.

Offline MX372

  • Newbie
  • *
  • Posts: 20
Re: Difference between tce (extensions) and other distros' packages?
« Reply #11 on: July 18, 2015, 10:01:40 AM »
USB is not reliable? I have yet to see any indication of USB being an unreliable bus in my uses. I'm not saying you're wrong, but it doesn't seem to be the case in my experience. Then again, I'm not transferring hundreds of gb's worth of data to/from USB devices daily (maybe you are) so I'd hardly call myself an "expert" on USB. Maybe there is some type of ECC being applied so it's not something that you notice, even though it's going on in the background (ultimately, if this were the case, it would just slow the transfer rate down).

That's why I called this an "experiment" - it's not like any of the data I have is super critical; I do frequently back up my important data across multiple external devices, so I'm really not worried about it (data loss). As far as speed on the USB bus goes, theoretically USB 2.0 can be faster than the internal HDD due to the drive's limitations (not the PATA/IDE bus), and my testing has proven that out as I indicated. In addition, the USB drives maintain a pretty linear data transfer rate, whereas the HDD starts off slightly faster (2-4mb/s faster) but then drops off quickly as more data is transferred, ultimately to a lower throughput and lower average. Plus, there is a significant difference in access time as well (19.5ms vs 1.5ms). 18ms may not be a lot, but it does make a difference. And USB thumb drives are also basically SSD's as well, it's just a different form-factor and interface; the technology is the same.

These laptops use a 1.8" form-factor, 50-pin (CF interface) HDD, so a CF card fits directly to the HDD cable. The SSD's I've been looking at are the same 50-pin interface, as this is a popular drive size/interface package for iPods and other small devices/mp3 players. I suspect that is why they are still available.

Perhaps I'll try a 16gb 400x CF card (about $25) and see what it specs out to for transfer speeds. The 4gb card I'm using was one I just had lying around and thought I'd see if it would work, which it does. Didn't want to spend money on something and then have it not work.

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: Difference between tce (extensions) and other distros' packages?
« Reply #12 on: July 18, 2015, 12:46:58 PM »
I don't do much heavy transfers, just normal use. Occasionally a hub will just drop out, dmesg filling with errors until it's unplugged and replugged. Same happens with devices occasionally, both storage and input (mice), with or without a hub. Sometimes the kernel manages a reset on its own, sometimes an unplug-replug cycle is needed. That cycle would be quite hard if the hub/device was internal, meaning a reboot would be needed to get it back online.
The only barriers that can stop you are the ones you create yourself.

Offline MX372

  • Newbie
  • *
  • Posts: 20
Re: Difference between tce (extensions) and other distros' packages?
« Reply #13 on: July 19, 2015, 06:00:55 PM »
Hmmm.....never had that problem personally, but good point. Maybe a reset switch of some sort is a good idea.....to reset the hub. All I'd have to do is interrupt power to the hub, that's easy enough to do with a NC momentary micro-switch, question is, where to install and keep it safe from "accidental" use........ maybe a small hole drilled in the case with the switch mounted internally, like the reset switch on a router..... ???

Thanks!

Offline sm8ps

  • Sr. Member
  • ****
  • Posts: 338
Re: Difference between tce (extensions) and other distros' packages?
« Reply #14 on: July 20, 2015, 04:36:46 AM »
Hi MX327,

you asked about the nature of extensions as compared to packages and it sounds like you are looking for a more performant alternative to Lubuntu. I have had similar objectives and have reached a very satisfactory state by using dCore. I believe I have quite fully covered most of what you need in the Wiki.

I think you could profit from ...
. the beginner's track with two tutorials for basic installations; you may want to skim over the 101 as your laptop does not support booting from USB.
. how to set up a fully functional LXDE desktop.
. how to handle extensions.

The section explaining the file format is not very satisfactory yet but I think you should get a fair understanding from what is explained about their usage.

Regarding performance, I have written about the machines I am using. Generally speaking, I am over-whelmed! I had tried Lubuntu before but have never had as snappy a system like dCore on these machines.

If you decide on using dCore, it would be great if you told us about your experience and added missing pieces to the wiki.

Cheers!