1,114 karma · joined March 31, 2014
I think the user experience of cli debuggers is generally somewhat dreadful when compared to their gui cousins -- they seem to display a much narrower view of what's going on. Could the big blinkenlights debugger view be useful outside of blink itself?
If you do want to do x86_64, off the top of my head by rough order where you will encounter things:
0. bootstrapping the kernel either gets more complicated or easier based on whether you start in 32 bit mode or 64 bit mode with UEFI. Just start from UEFI and save yourself the headache.
1. The gdt (segmentation table) format changes
2. The tss (another segmentation table) format changes
3. The idt (interrupt table) format changes
4. The ABI (application binary interface, calling convention mostly) changes, leading to a ton of subtle changes to the asm, much deeper than just the register width
5. The page table format changes.
6. Modern processors kick off sibling cores slightly differently. That's not really a 32->64 bit thing but is good to keep in mind.
7. I didn't look to see how they implement their syscall path, but you want to have your kernel ABI be the sysenter instruction, and not say int 0x80. It will simplify your life
Anyone who entered the tech industry in past decade+ has never experienced layoffs at this scale before. Young techies have experienced good times and high salaries. And the transition was quick -- just two quarters ago big companies were hiring techies by the hundred, now they're laying them off by the thousands. A lot of posters here assumed that in the worst case if their current gig failed they could go work on boring software for a year or so before finding something new, but now there's a lot more competition for that plan B job. And heaven help you if you're on a visa, have a health problem, or have a family -- could you be laid off next, and if so where do you go?
There is probably an opportunity here to do interesting work around authenticating and validating computations from remote clients.
A word of caution -- javascript engines routinely get hacked, and once attackers can execute native code in the engine process they can call syscalls and have all of the rights of the underlying process. It may be useful to have some form of sandboxing of the language runtime for clients exposed to the internet or intranet. Additionally, Java & Ruby web servers routinely suffer from code injection when deserializing objects, which it seems like your language may be prone to as well.
Despite lots and lots of POCs, I haven't seen attackers use spectre in the wild yet. Maybe sophisticated actors are using it but they haven't been caught yet, or more likely they just use more traditional and reliable ways to get info leaks. But if traditional info leaks dwindle, they may turn to speculative execution attacks.
There are lots of different chips ranging from slow, energy efficient, and cheap microcontrollers, to fast, energy hungry, and expensive high performance computing clusters. Intel makes the fast ones, and had the fastest chips from the late 1990s to the mid 2010s. Since then, a Taiwanese company has had the fastest chips which go into iPhones, Nvidia graphics cards, and AMD cpus.
Building a fab (manufacturing plant) to make the fastest chips which require features shorter than 7nm (billionths of a meter!) requires billions of dollars in up front investment. It's mass scale manufacturing at some of the lowest levels anything has ever been created at.
The US gov't is afraid that company which makes the fastest chips in Taiwan (which is not recognized as an independent country, but is effectively self governing, but China claims is theirs, it's complicated yes), could be under Chinese control some day. The Military Industrial Complex don't want the US tech sector or US defense tech to be beholden to China, and US companies (Intel) want government funding to build expensive factories. Thus the CHIPS act.
https://en.wikipedia.org/wiki/Government_of_the_Islamic_Repu...
So when the author links to a confused HN thread about whether the v8 runtime is a security boundary and says "looks like there's debate", it makes the article look like a joke.
Node process is determined by the physical manufacturing. Architecture is determined by the design templated on during manufacturing. You could make an arm core on an intel process (which I think even happens in some of their testing phases). So yes.
Also, many large organizations like MS don't have many QA teams, preferring to push QA tasks onto developers, but still need specialized security teams. If you dig into the deep history of morse, they barely escaped being sacked when MS laid off the QA org circa 2017.
(I used to work on that team, but now work at another company doing a similar job)
However: arm arch 32 has 14 general purpose registers (including the link register). arm arch 64 has 31 general purpose registers (also including the link register).
I also doubt there are real power savings in modern out of order processors. The few transistors saved in the register file and ALUs are just dwarfed by everything else. Heck, look at how much of a modern soc like the M1 is used by the compute complex compared to everything else.
Encrypted memory isn't part of arm yet, I was holding out hope with armv9 "realms" but not so.
It's a confusing name.
Killing members of a group is not necessary for something to be genocide. I realize the legal meaning of genocide is different than how some people generally use the word, but I don't think your objection holds up to scrutiny.
https://www.un.org/en/genocideprevention/documents/atrocity-... https://en.wikipedia.org/wiki/Genocide_Convention#Definition...