Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "busybox"
-
This rant is particularly directed at web designers, front-end developers. If you match that, please do take a few minutes to read it, and read it once again.
Web 2.0. It's something that I hate. Particularly because the directive amongst webdesigners seems to be "client has plenty of resources anyway, and if they don't, they'll buy more anyway". I'd like to debunk that with an analogy that I've been thinking about for a while.
I've got one server in my home, with 8GB of RAM, 4 cores and ~4TB of storage. On it I'm running Proxmox, which is currently using about 4GB of RAM for about a dozen VM's and LXC containers. The VM's take the most RAM by far, while the LXC's are just glorified chroots (which nonetheless I find very intriguing due to their ability to run unprivileged). Average LXC takes just 60MB RAM, the amount for an init, the shell and the service(s) running in this LXC. Just like a chroot, but better.
On that host I expect to be able to run about 20-30 guests at this rate. On 4 cores and 8GB RAM. More extensive migration to LXC will improve this number over time. However, I'd like to go further. Once I've been able to build a Linux which was just a kernel and busybox, backed by the musl C library. The thing consumed only 13MB of RAM, which was a VM with its whole 13MB of RAM consumption being dedicated entirely to the kernel. I could probably optimize it further with modularization, but at the time I didn't due to its experimental nature. On a chroot, the kernel of the host is used, meaning that said setup in a chroot would border near the kB's of RAM consumption. The busybox shell would be its most important RAM consumer, which is negligible.
I don't want to settle with 20-30 VM's. I want to settle with hundreds or even thousands of LXC's on 8GB of RAM, as I've seen first-hand with my own builds that it's possible. That's something that's very important in webdesign. Browsers aren't all that different. More often than not, your website will share its resources with about 50-100 other tabs, because users forget to close their old tabs, are power users, looking things up on Stack Overflow, or whatever. Therefore that 8GB of RAM now reduces itself to about 80MB only. And then you've got modern web browsers which allocate their own process for each tab (at a certain amount, it seems to be limited at about 20-30 processes, but still).. and all of its memory required to render yours is duplicated into your designated 80MB. Let's say that 10MB is available for the website at most. This is a very liberal amount for a webserver to deal with per request, so let's stick with that, although in reality it'd probably be less.
10MB, the available RAM for the website you're trying to show. Of course, the total RAM of the user is comparatively huge, but your own chunk is much smaller than that. Optimization is key. Does your website really need that amount? In third-world countries where the internet bandwidth is still in the order of kB/s, 10MB is *very* liberal. Back in 2014 when I got into technology and webdesign, there was this rule of thumb that 7 seconds is usually when visitors click away. That'd translate into.. let's say, 10kB/s for third-world countries? 7 seconds makes that 70kB of available network bandwidth.
Web 2.0, taking 30+ seconds to load a web page, even on a broadband connection? Totally ridiculous. Make your website as fast as it can be, after all you're playing along with 50-100 other tabs. The faster, the better. The more lightweight, the better. If at all possible, please pursue this goal and make the Web a better place. Efficiency matters.9 -
I'm the only one working on this anymore and every toolchain supporting the system (remember, we're using an ARM9 [initial strap CPU] AND an ARM11 (give or take an ARM7 slaved to the ARM9 that we don't have support for yet), all in tandem, and the only toolchain that remotely works is for ARM6 for some reason) hates the Linux kernel. Current goals: SD R/W support (currently RO), X, GNUTools, maybe a better fucking softkey driver (i'll have to find whoever made this one and fucking beat him), and a working joy2mouse/touch2mouse driver. Oh, and figure out if Swap would work either with the New 2DS/3DS' Bonus Drive (unused 64MB partition on NAND) without killing the NAND as the SD access is max. 1.2 MB/s read/write speed or so, which isn't fast enough for swap AND other things.
Currently working:
Busybox
Read-only SD support
Weston (term only, can't click)
Standard 3DS/Standard 2DS/New 3DS (Models before 2017, the non-foldables, rebranded standard 2DSes) features only, not yet New 3DS/New 2DS-enhanced
Currently failing final compile because toolchain:
Preliminary custom R/W SD support4 -
Installs Ubuntu 16.04
Try to put my favorite software installed.
Reboot failed, drops to BusyBox shell.
Me thinking : I fucked up.
Friend walks by, couldn't read shit.
Friend: Look at his kid, he's trying to hack into someone's computer.
Me: (Agrees just for reputation) Yeah, damn teachers been giving me bad grades.
Friend: Could you help me too?
Me: (Don't have hacking experience, making shit up) NO, because your not my best friend. And school security is hard to crack.
Got away safely1 -
TIL you can make the smallest implementation of Debian:
Use only busybox and APT
Remove sysd and use busybox init
Holy fucking shit, let's make this an actual distro and call it debsmol5 -
So last night I ran out of space on my root partition, apparently 30GB isn't enough for `/` besides `/home` and `/data` because both `/var` and `/usr` used around 14GB each so I decided to create partitions for them, had 500GB unallocated disk space on my SSD for if I wanted to install windows on my machine besides Arch Linux.
I edited the fstab file and sure enough, the partitions were mounted on boot, everything went fine. Then U realised the data wasn't actually removed from the first partition so I decided to mount the drive again and remove the files, the system still worked fine.
Untill I rebooted. Apparently the bit scripts require files in the`/usr` folder which wasn't mounted at boot, but right after. F*ck, system won't boot and now I'm in a recovery shell in busybox. After googling and reading the arch wiki I noticed a small message saying what you should do if you want to have `/usr` on another partition. I didn't do any of that.
After a couple of hours and a lot of reboots and chroots from a live USB to the broken installation it was fixed without losing any data! I did learn to read the manual or wiki to see any specifics when using more partitions. 😂2 -
Last week, i discovered the android shell. I hated it, cause I was used to do bash stuff.
Then I saw busybox on my /system/bin.
It saved the day. -
Bruce Perens. exceptional out-of-the-box thinking (busybox, electric fence) and a great advocate for the open source movement.
-
A while a go I bricked my wireless harddrive by symbolic linking busybox what would the best way of recovering it be?1
-
So yeah I just had Ubuntu show me two errors directly after startup, then claiming that there is a programming error in aptdaemon and then IntelliJ crashing because of a read-only FS.
After rebooting my VM im faced with a BusyBox prompt saying my disk is corrupted. Fuck VMWare. This is not the first time the disk in my VM got corrupted.