Not sure who was first(as the article linked isn't dated), but remember seeing something a few years back that someone else created as a business Linux card
Edit: somehow I duplicate posted when I edited my last comment, qchris beat me to posting this (and was on HN in 2019, I think I probably saw it on hackaday at the time)
I'm the author of the first article. I'm very pleased to see a trend of this theme!
Of course, the software on this card is perhaps more impressive than mine. All I did was patch the kernel and make an image. This card does all that and emulate a processor.
I was greatly entertained by the description of the DMA. I am unsure why DMA always ends up being the boogeyman, but I don't disagree.
"My business card emulates a long-obsolete MIPS-based DEC computer, which then runs Linux" is a more accurate, and certainly significantly more impressive, description :)
Just you wait, i am working on booting ULTRIX on it, and then hopefully emulating JAZZ system and booting windows NT (video provided over virtual vnc over virtual ethernet over usb)
I wish I still had my old DECStation 3100. I know there's an oil refinery near me that runs VAXStation 3100s to control SCADA systems still, in mint condition in glass-fronted racks in the control outstation buildings, with the protective plastic film still on the badges. I *want* those when they get decommed!
Fun story: since the kernel is kept in a FAT partition that Linux can (and does) mount on /boot, and since gcc works, one of these cards is currently sitting on my desk compiling its own kernel, so that i can then "cp vmlinux /boot; reboot" and have it boot a kernel built on it.
Trying to write optimized Huffman decompression code for the PlayStation 1 (which by total coincidence happens to be MIPS R3000-based) taught me this. C can go very far if you know how to optimize it, but at some point you are going to run into roadblocks anyway since the compiler will not generate the exact code you want it to generate. It will generate code that _looks_ compact and fast, but can't hold a candle to properly hand-rolled assembly that takes pipelining and asynchronous behavior into account.
And of course this gets worse with CPUs that were not designed to be a target for compiled code in the first place, i.e. the vast majority of 8-bit architectures which for better or worse still dominate the low-end microcontroller market.
Contrary to modern knowledge, C compilers were quite crappy back in those days, it was the increasing tricks used by C optmizisers, specially regarding the nowadays so beloved UB, that really improved it.
There is a reason why Michael Abrash books are all about Assembly.
I was so excited for the ATSAMD21 series when I first came across it maybe five or six years ago, because on paper it had most of everything I was looking for while remaining approachable for single-man dev teams and home(lab) assembly. Like OP, I found it extremely difficult to successfully use in practice, and have since then migrated to STMicroelectronics' offerings (STM32 MCUs, available in a huge range that includes Cortex-M0, M3, M4, M7, and now M33 for ARMv8-M). They're much more intimidating on paper, but they actually work like it says on the sticker.
I have a fondness for MIPS as I first learned CPU architecture and more advanced compiler design against it, but I'm surprised OP didn't go with ARMv7 support. The bi-endianness is almost a non-issue as it's effectively a Little Endian architecture with a Big Endian toggle for backwards compatibility - I can't say I'm positive, but my gut instinct would be that it's been forever since ARMv3 shipped defaulting to Little Endian, and most (if not all) of the kernel code has been migrated to Little Endian since then to unify with the most popular targets.
I've thinked about this one for the longest one, but I do not know anything about working on this kind of stuff. The only thing I know is that HDMI doesn't provide enough energy to power something like this, which would have been the most elegant solution
I wonder how simple I could make a business card with a microcontroller on it that only had a serial UART with copper pads to solder wires to, or some kind of pins.
People will be paranoid about inserting a USB device into their PC, but maybe a business card thing clearly labeled like "I am a 96008N1 RS232 terminal" would encourage people to wire it up and take a look.
0.6mm is too loose in most cables. It works but is jiggly. 0.7 would be ideal. But my board house doesn’t do that thickness. 0.8 works very well and fits snugly.
It doesn't fix the software side, but I wonder if projects like this are a reasonable solution to hardware-based trusting trust worries. The real hardware is unlikely to know what it's being used for, and Linux is running in a custom VM that's tiny enough to audit.
What, just based off of the custom-ness of the device? I think the endgame of this type of security-by-obscurity is like a randomized FPGA computer trying to fool a hypervisor in the same chip.
I was contemplating something like this as I’ve been thinking about a modern business card. I don’t need to run Linux, but I do like some degree of interactivity and uniqueness associated with something I could hand out.
Very creative and original, but I don't think I want to plug any complete machine into mine, let alone over USB haha. This is sort of like passing out flash drives, and plugging it in hoping there's no malicious content.
I'm not a computer scientist, but can someone explain to me how this can be a computer without all the other bits you normally associate with it other than the CPU. I.e. a chip for interfaces, the mmu/fpu (I don't understand how you can get the cpu to cover this role?). I can see it doesn't have/need sound/gpu. Just would have thought more would be needed!
Given no graphics output and all I/O is via serial port... not directly. You could try SLiRP to get proper TCP/IP and use that to connect to an X server somewhere else, and ... I suppose I can't see any reason why that wouldn't work, actually. No promises about it fitting (you're not exactly drowning in free storage or RAM here), it'd be hilariously slow (like, I'd bet below 1 frame per second), but... maybe?
[+] [-] sergers|3 years ago|reply
Tracked it down: https://hackaday.com/2019/12/24/now-even-your-business-card-...
https://www.thirtythreeforty.net/posts/2019/12/my-business-c...
This design looks better.
Both creative
Edit: somehow I duplicate posted when I edited my last comment, qchris beat me to posting this (and was on HN in 2019, I think I probably saw it on hackaday at the time)
[+] [-] thrtythreeforty|3 years ago|reply
Of course, the software on this card is perhaps more impressive than mine. All I did was patch the kernel and make an image. This card does all that and emulate a processor.
I was greatly entertained by the description of the DMA. I am unsure why DMA always ends up being the boogeyman, but I don't disagree.
[+] [-] abirch|3 years ago|reply
[+] [-] soco|3 years ago|reply
[+] [-] camtarn|3 years ago|reply
[+] [-] dmitrygr|3 years ago|reply
[+] [-] Gordonjcp|3 years ago|reply
[+] [-] qchris|3 years ago|reply
https://news.ycombinator.com/item?id=21871026
[+] [-] phreack|3 years ago|reply
[+] [-] generalizations|3 years ago|reply
[+] [-] dmitrygr|3 years ago|reply
[+] [-] yjftsjthsd-h|3 years ago|reply
[+] [-] JetAlone|3 years ago|reply
-American Psycho
[+] [-] atemerev|3 years ago|reply
[+] [-] Aeolun|3 years ago|reply
Never expected to hear this one.
[+] [-] spicyjpeg|3 years ago|reply
And of course this gets worse with CPUs that were not designed to be a target for compiled code in the first place, i.e. the vast majority of 8-bit architectures which for better or worse still dominate the low-end microcontroller market.
[+] [-] pjmlp|3 years ago|reply
Contrary to modern knowledge, C compilers were quite crappy back in those days, it was the increasing tricks used by C optmizisers, specially regarding the nowadays so beloved UB, that really improved it.
There is a reason why Michael Abrash books are all about Assembly.
[+] [-] _tom_|3 years ago|reply
Fantastic!
[+] [-] 28304283409234|3 years ago|reply
http://damnsmalllinux.org/cd.html
[+] [-] ComputerGuru|3 years ago|reply
I have a fondness for MIPS as I first learned CPU architecture and more advanced compiler design against it, but I'm surprised OP didn't go with ARMv7 support. The bi-endianness is almost a non-issue as it's effectively a Little Endian architecture with a Big Endian toggle for backwards compatibility - I can't say I'm positive, but my gut instinct would be that it's been forever since ARMv3 shipped defaulting to Little Endian, and most (if not all) of the kernel code has been migrated to Little Endian since then to unify with the most popular targets.
[+] [-] dmitrygr|3 years ago|reply
http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit
[+] [-] hbossy|3 years ago|reply
[+] [-] taneliv|3 years ago|reply
[+] [-] niklasrde|3 years ago|reply
[+] [-] jhonatn|3 years ago|reply
[+] [-] walrus01|3 years ago|reply
People will be paranoid about inserting a USB device into their PC, but maybe a business card thing clearly labeled like "I am a 96008N1 RS232 terminal" would encourage people to wire it up and take a look.
[+] [-] dmitrygr|3 years ago|reply
[+] [-] nigrioid|3 years ago|reply
[+] [-] jsiaajdsdaa|3 years ago|reply
[+] [-] jefftk|3 years ago|reply
Clicking through to https://github.com/Pinuct/Eagle_PCB_USB_connectors, it seems like it actually needs to be 0.6mm?
[+] [-] dmitrygr|3 years ago|reply
[+] [-] yjftsjthsd-h|3 years ago|reply
[+] [-] cowtools|3 years ago|reply
[+] [-] sircastor|3 years ago|reply
[+] [-] testmasterflex|3 years ago|reply
Looks cool, has NFC and flashing LEDs and fits in your wallet.
The NFC chip can be reprogrammed with an app from your phone.
[+] [-] racl101|3 years ago|reply
[+] [-] fvold|3 years ago|reply
[+] [-] nigrioid|3 years ago|reply
[+] [-] sandGorgon|3 years ago|reply
[+] [-] bjd2385|3 years ago|reply
[+] [-] dm319|3 years ago|reply
[+] [-] dmitrygr|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] krobbn|3 years ago|reply
[+] [-] yjftsjthsd-h|3 years ago|reply
[+] [-] dmitrygr|3 years ago|reply