TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: How would you design a Modern Operating System in 2022?

48 点作者 Decabytes超过 2 年前
Disclaimer: Thought Experiment. Does not need to be &quot;practical&quot;. Let your NIH flow and your imagination run wild<p>We&#x27;ve learned a lot about computers in the decades we&#x27;ve been producing. A lot of software assumes that computers work a certain way. See Go lang and how it handles file permissions. In the Linux Kernel drivers exist that supports the IBM 3270 Display System which at this point is over 50 years old. Terminal Emulators mimic the VT100. All of this makes sense given the context in which they were developed and created. But if you were developing an OS in 2022 without these constraints what would you remove and or change? Would you keep 32bit support? Arm, Risc and or x86?, monolithic or microkernel?, C, Rust, Zig, D, C++, or something else?, how would it talk to hardware?, what would your executable format look like?<p>Also if anyone has any interesting links to cutting edge research into Modern Operating Systems I&#x27;d love to browse them!

25 条评论

Wowfunhappy超过 2 年前
This is more on the UX side than the technical side, but: I&#x27;d like to see an OS with a really robust plugin system. One which prioritized plugins over new apps.<p>Right now, if an important feature is missing from e.g. the built-in calendar app, your only option is to throw away the <i>entire app</i> and replace it with something new. This new app is probably less integrated into the rest of the system, or may be missing some other feature you use, or may come <i>packed</i> with features but also a cluttered and confusing interface.<p>This causes OS vendors to pack too many features into their default app suites. Today&#x27;s default apps are at once too barebones for advanced users (like most people who read Hacker News) and too complicated for e.g. my grandmother, who keeps accidentally recording iPhone videos with slow motion enabled.<p>I want an OS with a base feature set similar to early versions of iOS or the original Macintosh, but which can be easily extended by third party software. Need to batch rename calendar events, or send an email at a specific time of day? There is <i>not</i> an app for that—but there is a plugin!
评论 #32816465 未加载
评论 #32815602 未加载
评论 #32824169 未加载
didgetmaster超过 2 年前
The OS should operate on top of an &#x27;object store&#x27; instead of a file system. Just like OOP which uses inheritance, these persistent storage objects would inherit traits from higher up in their class hierarchy.<p>Normal files would just contain a &#x27;bag of bits&#x27; like current file systems treat files. Objects would have attributes and methods that make them different than the other objects used by the system.<p>For example, the &#x27;boot object&#x27; would just point to the &#x27;loader object&#x27; which contained the IDs of all the operating system modules that are needed to get the OS up and running. You could have multiple loader objects (one for each OS or version of the OS you wanted to boot) within the same container. Imagine being able to have every Windows or Linux version installed within the same volume and be able to boot up any one of them! Files that are shared between OS versions would just have their IDs within both loader objects.<p>Configuration objects, logging objects, folder objects, policy objects, and other types of objects would be used by the OS for particular behaviors. Objects could also have attributes to distinguish between ones downloaded off the internet and ones the user created. (Why backup all those cat videos you could easily re-download?) Be able to easily distinguish all the photos from the documents even when there are millions of each and without having to memorize all their file extensions for various formats.<p>This is the system I have been building. <a href="https:&#x2F;&#x2F;www.Didgets.com" rel="nofollow">https:&#x2F;&#x2F;www.Didgets.com</a>
vaughan超过 2 年前
Priority one would be debuggability.<p>Imagine being able to easily step through the entire execution from user to kernel space. And also step backwards. And also record replay.<p>And then make instant changes during dev to any layer of the stack.<p>Think about how much time is spent across so many different tools trying to figure out perf bottlenecks.<p>Then think about if you wanted to patch something or write a driver, how difficult it is.<p>Then you would also want the entire system visualizable.<p>Imagine if the entire data flow and data structure of the system were automatically visualizable by instrumenting the source code. Why do we draw diagrams on whiteboards if they are not the best way to understand code.<p>Do this first and the rest becomes easy.
lxpz超过 2 年前
For back-end systems and distributed systems, I&#x27;d love to work on a new OS based on a microkernel and capabilities. Ditch Linux+Docker+Kubernetes, replace that with a microkernel that has a minimal set of modules to multiplex storage and networking, build an orchestrator directly on that that schedules processes as micro-VMs. In those VMs, we could run a stripped-down Linux kernel to handle legacy applications, but probaly we would want to design a few standardized abstractions for accessing other components of the system (storage, databases, queues, RPCs, the scheduler itself) as network services which we would use to implement more modern services. In many cases we could just leverage existing protocols that are built over HTTP (e.g. S3 for object storage). The scheduler would be aware of the dependencies of each services (i.e. the other services that it needs to call to function) and could have the task of directly connecting those things together. To contact one of its dependent services, a service or application would no longer use a hostname+port (resolving the hostname using DNS), it would just directly have a file descriptor to a socket or pipe or whatever kind of RPC interface that the OS directly maps to the corresponding service, either locally or on another node of the distributed system.<p>If you are aware of anyone working on something like this, please let me know!
zamalek超过 2 年前
I think that the &#x27;everything is a file&#x27; approach used by POSIX is partially flawed. There are certain fds that you can&#x27;t interact with in the shell (I forget which, but it think it was container related). Ultimately these feel like cargo-culting and show the limitations of the POSIX model. However, a namespaced system (directories) containing endpoints (files) <i>is</i> a good idea.<p>I think that dbus does a much better job of this (and it should be possible to have a tool that interacts with the system bus on the CLI). I would definitely take more inspiration from dbus than POSIX for a modern OS.
评论 #32814837 未加载
arghnoname超过 2 年前
Academic research on this topic is limited, but ongoing. You&#x27;d want to look at OSDI and SOSP conferences--they&#x27;re both OS conferences, even if only a few papers each year are actually about OS design. Lots of ideas there though.<p>HotOS is a workshop, but tends to be more creative and daring since it&#x27;s just top researchers sharing their thoughts on OS design.<p>Off the top of my head in recent years you&#x27;ve had unikernels (e.g., mirageOS), barrel fish (multikernel), omnix (for dealing with lots of asics and other accelerators), and lots of modifications to existing OS design, like a ring-io like asynchronous system call mechanism (flexSC), systems for adding new abstractions off of modern hardware, like Dune, and of course ongoing work on microkernels, most significantly (and commercially), seL4.<p>Older research is still relevant. Capability systems and exokernels influence the above work and the original well-spring is still worth visiting.<p>Basically though, what you want to address are some of the following:<p>* Higher security requirements. Multitenancy is a given. Giant code blobs running without restriction in the same security domain (i.e., monolithic kernels) is a bad idea.<p>* Greater hardware support for differing security modes (virtualization, enclaves, trust zones, CHERI)<p>* Advances in compiler&#x2F;language research and techniques for low-cost policy enforcement at the language level (to at least some degree), allowing for &#x27;uploading&#x27; code into ring0 . Rust is the most popular example, but even just the eBPF trend is an example of this.<p>* Heterogenous hardware. How does the kernel handle differing cores with different performance characteristics, power requirements, capabilities, and even different ISAs? This is happening. Should the OS expose better primitives for ASICS and other accelerators?<p>* Cloud computing. Many big money work loads run under someone else&#x27;s control with a hypervisor. This brings up attestation, but also raises the question if you&#x27;re running a single application under a hypervisor (itself basically a microkernel), what do you need a full fledged kernel for? Similar to userland duplication with containers. Unikernels are one such response, but it&#x27;s something that should be addressed.<p>All in all, pretty much anything I see in industry (conceptually) is trialed out in one form or another in academia many years in advance. Industry is theoretically where the really hard work of making it practical happens, but sadly this seems to very rarely happens.
评论 #32814854 未加载
评论 #32816244 未加载
hoosieree超过 2 年前
I&#x27;d like to see an OS where &quot;your profile&quot; is entirely in the cloud and every device you register becomes just another node. Your laptop, phone, desktop, smart watch, and homeserver are all just nodes with different capabilities. Some have touchscreens, some have GPUs, some have lots of memory, some are always-on, others are ephemeral.<p>I&#x27;d like to play a game on my phone but have my desktop&#x27;s GPU render frames for me like Stadia.<p>I want my server to pick the next song in the playlist on my phone to match the tempo of the heart rate it hears from my watch.<p>I&#x27;d like to type &quot;make -j&quot; and have it transparently use every core ...on every device I own.<p>These things can be done today with ad-hoc hacks, but an OS designed around these ideas would mean you could write lots of programs very differently.
评论 #32816811 未加载
评论 #32824063 未加载
michaelwww超过 2 年前
This would be a good place to start:<p>USENIX ATC &#x27;21&#x2F;OSDI &#x27;21 Joint Keynote Address-It&#x27;s Time for Operating Systems to Rediscover Hardware<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=36myc8wQhLo" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=36myc8wQhLo</a>
rapjr9超过 2 年前
Start with security in the MCU chip design and work your way up from there. If we can&#x27;t secure computers they are very soon going to become useless. They are already starting to feel like they are more trouble than they are worth (ransomware and other attacks are destroying the functioning of health care, government, the military, and more), and I say that as someone who has spent their whole life working with them and likes them. I worked on computer security research over the last decade and there was a lot of hand waving (&quot;APT&#x27;s are too difficult to protect against, so we won&#x27;t consider that, it&#x27;s out of scope&quot;). Now the chickens are coming home to roost and APT&#x27;s are indeed a concern at every level. It only takes one person to turn an APT into a scripted hack that anyone can use (witness what has been happening with the CIA&#x27;s revealed attacks). Supply chain security is a new concern when it should have been obvious for decades.<p>The alternative is to build a world where everyone is nice. This is the preferred solution but it seems more difficult to create than a secure system for computing. Maybe one approach to secure computing would be to invent a new paradigm for non-networked computing that does everything we can do now, but is just slower to use.
slater超过 2 年前
A full-on retreat from EVERYTHING MUST BE BRANDED.<p>Your spreadsheets aren&#x27;t in numbers.app or excel.exe. They&#x27;re spreadsheets, and get opened in, guess what, the spreadsheets app. It shouldn&#x27;t matter to the end user what&#x27;s behind the spreadsheets app.<p>Your web browser? It&#x27;s not chrome.exe, firefox.app, or Safari. It&#x27;s just &quot;the web&quot; app.<p>And while we&#x27;re at it re: branding. No, you don&#x27;t have Excel files. Or Word files. They&#x27;re spreadsheets, and documents.<p>And another thing:<p>Places where files go. Guess where your spreadsheets are? That&#x27;s right, <i>&#x2F;files&#x2F;spreadsheets&#x2F;</i> -- and you&#x27;ll <i>never</i> guess where your documents are saved!<p>Guess where your browser&#x27;s preferences are saved?<p>No, not in <i>opt&#x2F;var&#x2F;something&#x2F;whatevz&#x2F;users&#x2F;your-name&#x2F;lib&#x2F;etc&#x2F;browser&#x2F;endless-UUID&#x2F;prefs</i><p>It&#x27;s in <i>&#x2F;preferences&#x2F;browser&#x2F;</i><p>This comment brought to you by someone who spent the better part of two days trying to figure out where his built-in apache2 installation, as well as the homebrew port, saved their prefs. Oh, and same with PHP.<p>E.O.R.
8jef超过 2 年前
The ideal OS should be centered around the Owner of a machine, be it a pc, a phone, a tablet, a smart-anything, or else. As the Owner would own many machines, these could be pooled together, or not.<p>A machine would be equipped with a 3 layer object system: one layer for core objects (any reusable part, locally and&#x2F;or remotely stored), a personal and impenetrable by default layer (for any and all private data, personal config, tweaks, metadata - anything made and&#x2F;or generated by the Owner&#x27;s actions), and a third layer for deliberately shared data (open to anyone with the right key).<p>Modular core object interpreters could be added for Owners to access any code and&#x2F;or stacks or packages, written in any language. Imagine a Windows interpreter, able to interact with compatible apps, at a cost for the Owner, should she&#x2F;he choose to acquire such capabilities. Same for Mac or Linux or Android or any other interpreters.<p>The inter-connecting links between machines would also be designed around Owner&#x27;s best interest, using differentiated air-gapped communication pipeline for each layer. The Owner would either choose to locally keep its own data, or store it in a Data Bank (and get some revenues from sharing it in part or in totality).<p>As for the OS interface, to each its own: from CLI to window based to personal assistants to _Her_ movie style interactions.<p>The thing is, between layers, hardware, data handling, core objects and interfaces - and the prerequisite for Owners to really own their data and dispose of it as they wish - it would be very hard for any one company to serve the market vertically without lots of public scrutiny. As a paying customer, I&#x27;d be incentivized to buy hardware and services from the most reputable sellers: best machines, best data bank or broker, best inter-connecting, best storage, best interfaces, best software environment, etc. Privacy, modularity and compatibility, backed by solid legislative guarantees globally.
scrubs超过 2 年前
A modern o&#x2F;s might start around a better take on hw. For example non von Neumann memory. Put compute and data more side by side. Second, more orientation towards unikernels as a deployment unit. That&#x27;d change the roles and responsibilities of the kernel, development languages and DevOps too but maybe in a good way.
SenHeng超过 2 年前
I’ve always wanted an OS that supported multiplayers. So I can connect multiple keyboards and mice and there would be a corresponding cursor for each set. It feels like such an obvious feature but no one has it.
评论 #32816553 未加载
评论 #32820777 未加载
评论 #32816518 未加载
guidoism超过 2 年前
If it’s at all going to be used as something used in real time by humans it absolutely <i>has to</i> be real time. Who cares if your compile takes 12ms longer if the screen doesn’t immediately react to your input.
TowerTall超过 2 年前
I would take inspiration in Microsoft Midori<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Midori_(operating_system)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Midori_(operating_system)</a> <a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20210216182214&#x2F;http:&#x2F;&#x2F;joeduffyblog.com&#x2F;2015&#x2F;11&#x2F;03&#x2F;blogging-about-midori&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20210216182214&#x2F;http:&#x2F;&#x2F;joeduffybl...</a>
throwaway0asd超过 2 年前
A modern OS should be a distributed system allowing for the interconnection of multiple devices into a single shared unit. For example I have a desktop, laptop, and phone. These devices should comprise a single encrypted file system privately available over the internet without use of any server. I should be able to execute applications on any of these devices from any other device I own and message between them in a many to many relationship. Remote Desktop is not good enough.
评论 #32822160 未加载
HereIGoAgain超过 2 年前
For a desktop OS? I&#x27;d start by looking at windows pre-8, and then look into everything MS has done since as a helpful guide of things to avoid. While completely ignoring Linux outside of purely technical details and pretend apple and mobile don&#x27;t exist. I would also remember that since i&#x27;m creating a system&#x27;s OS, I should treat the internet as an after thought in the core concepts of my designs. That would be a good start.
WorldMaker超过 2 年前
I think it&#x27;s past time that we started working on hardware machines that more closely resemble higher level languages than C&#x2F;C++.<p>It&#x27;s sometimes said that C&#x2F;C++ are so performant because they are close to the metal, but I think often at this point we&#x27;re seeing the reverse causal arrow: C&#x2F;C++ remain so performant because that&#x27;s still the &quot;virtual machine&quot; most modern processor&#x2F;computer architectures are targeting. C&#x2F;C++ ideas of memory management. C&#x2F;C++ ideas of process&#x2F;thread concurrency. No current processor architect would dare to break that model and do something in a new &quot;modern&quot; mold at the risk of sabotaging the performance of C&#x2F;C++ apps that don&#x27;t&#x2F;can&#x27;t&#x2F;won&#x27;t migrate to new paradigms&#x2F;abstractions.<p>(Arguably that&#x27;s part of the &quot;betrayal&quot; of the Meltdown and Spectre CPU timing bugs&#x2F;hacks: the CPU doing too many things to mimic a C&#x2F;C++ &quot;machine&quot; even though the raw details of the underlying concurrency model at the hardware have needed to vastly change and that abstraction break bleeding into a vulnerability. What if the hardware didn&#x27;t have to work so hard to pretend to be a very fast C&#x2F;C++ &quot;strictly in order&quot; machine? Could it be a faster machine if the abstractions it was targeting themselves were more concurrent and more secure?)<p>Lisp machines in the 70s had hardware memory garbage collectors. We&#x27;ve advanced the state of the art of memory garbage collectors quite a bit in the decades after, but few since have thought to again try to express that in hardware.<p>There have been dalliances with chipsets designed to more closely mimic the JVM (Java Virtual Machine) or CLR (Common Language Runtime; .NET&#x27;s VM) that got some play in embedded design spaces, but the common echo was that they ran C&#x2F;C++ code too slowly and were themselves labeled as &quot;slow&quot; and &quot;not very useful for general purposes&quot; (because we&#x27;ve tautologically defined C&#x2F;C++ as &quot;for general purposes&quot;).<p>It&#x27;s easy to wonder if we could escape this trap of building our hardware machines to resemble our least capable, lowest common denominator &quot;virtual machine&quot; like the C&#x2F;C++ model and push towards higher level concepts deep in hardware.<p>Lisp machines and JVM&#x2F;CLR machines all have more interesting reflectivity over live objects than C&#x2F;C++ machines. There&#x27;s at the very least component model benefits to being able to get general information about the live object states. There&#x27;s roads to more &quot;Actor&quot; based types of designs. More &quot;object-oriented&quot; possibility spaces than &quot;files&quot;.<p>If you are talking about true, &quot;clean slate&quot;, no concerns about backwards compatibility whatsoever, no concerns that interoperating with older software might need to be truly emulated and might possibly be slower in trade-off for better software design of new, non-emulated stuff, I think you might start at basic hardware assumptions and architectures. There&#x27;s so much more to experiment there that we don&#x27;t have the budget to explore if we have to continue to keep up the illusion that &quot;C&#x2F;C++ apps are fast and close to the hardware&quot; for backwards compatibility&#x27;s sake.
评论 #32823645 未加载
fsflover超过 2 年前
Here is what I think a modern OS should look like: <a href="https:&#x2F;&#x2F;qubes-os.org" rel="nofollow">https:&#x2F;&#x2F;qubes-os.org</a>. It&#x27;s security-oriented and based on VMs running other, existing operating systems, with a transparent interface.
yuppie_scum超过 2 年前
From a UX perspective I’d like to throw away the numpad on the keyboard and make it into a window management interface. One hand control of window placement and switching between them in an intuitive way would be vastly more valuable to productivity
forgotmypw17超过 2 年前
I want the interface to remain stable between different versions.
skyde超过 2 年前
definitely micro-kernel (something like L4 OS). Also we should be able to isolate process from each other as if they are running inside a true VM.<p>For example: one process trying to use all the memory on the machine should evict its own memory page from memory and try to swap them to disk but not evict memory page of other process.
eternityforest超过 2 年前
I would start with a clone of Android, and redesign anything that got in the way of ultra low latency work, and make it less locked down. The storage access framework would go away.<p>I would add scripting and such to make it a better platform for servers.<p>I would have SSH, but I&#x27;d probably get rid of Bash completely in favor of one of the new modern shells. Or perhaps I&#x27;d have a pure logicless command prompt.<p>Most likely since we can do unlimited NIH here, I would aim for Dart as the system scripting language and add some JIT and caching to make it fast to compile, if I didn&#x27;t just go with Python.<p>I&#x27;d have Ansible included natively, modified so that playbooks were a locally executable type like a shell script, so that random oneoff backup scripts and the like could be totally declarative.<p>Then I&#x27;d make a point to have a strong focus on not needing separate images for different hardware.<p>I would probably focus on RiscV on the assumption it will get big by the time that it was all finished, but I&#x27;d be sure to have strong ARM support.<p>I would probably get rid of &quot;Everything is a file&quot; completely. I&#x27;d have a stripped down dbus like thing for talking to devices. Everything is an object.<p>I would very aggressively hunt down and destroy anything that requires imperative modifications.<p>There would be a standard format for config files, where they go, and how different files override each other. Program defaults, os specific tweaks, and ram runtime values supported.<p>In fact, my package management would probably be based on a list of files describing what was wanted. Add a file that says I want apache, with this config setup, and the manager detects it and knows to install the package.<p>If you need to edit a system file, rather than add a layered override, there&#x27;s a problem. If you need to ever swap out a core package, there&#x27;s a problem.<p>This would be an extreme cattle not pets OS, designed for zero tinkering, just copy some files over and you&#x27;re running.<p>Packages would always have everything they need to clean reinstall stored on disk.<p>Offline installing packages is done by copying a package file to the cache dir, then adding its config to the wanted list. You can do it in a disk image. All needed actual setup will happen at next boot.<p>No true containers. Instead you have apps like Android. You have API levels with everything you need, that is your standard base to build on.<p>Since servers need real databases sometimes, &quot;make me a postgresql database&quot; would be part of the OS API.<p>Networking would be fully mesh-first. You&#x27;d get a Yggdrasil-like IP address, with a built in firewall that blocks incoming connections. All software would be aware that these addresses are secure even without HTTPS.<p>And nothing would ever unnecessarily write to disk. There would be support for battery backed ram, and if available logfiles, nonsense like saving the last position of a window or what the browser was doing, would go there. It gets snapshot when you shut down.<p>Nothing would ever touch disk except stuff that the user actually would be upset to lose.<p>Everything would be Rust rather than C, aside from existing legacy stuff. Nothing else in its class seems to have that level of dedication to safety above everything else. Crap software is easy, unbuggy software is what&#x27;s hard, so we should use a language that focuses on the hard part, not on banging out random MVPs, you can do that in just about any language already.<p>Everything should just work. Everything should be standard and consistent. And it should protect the hardware and be able to run for 30 years on a cheap eMMC.
ghla超过 2 年前
Mac OS X 10.6 Snow Leopard
zzo38computer超过 2 年前
I have many idea about operating system design. Some are inspired from other designs, including TRON, Plan9, Amiga, Hurd, TempleOS, BeOS, and others.<p>Here are some of my ideas (although there are a lot more that I have not listed here, but I may write about in future):<p>- Real-time capabilities (which can be ignored if not needed). Some applications have this as useful.<p>- Entirely non-Unicode. International text is supported, but it isn&#x27;t based on Unicode nor requiring any unified character encoding.<p>- The system call interface proxy. This can be used for such things as providing file permissions, system call tracing, maintaining some parts of a process state, and other capabilities, rather than all of them being a part of the kernel. The definition of the system call interface is independent of the instruction set as much as possible; this way, it makes writing them simpler. (The way that the interface corresponds to actual features of the computer does depend on the instruction set, though.)<p>- Hypertext file system. Any file can contain links to other files (inherently, rather than being considered as byte sequences like other data (although of course they are still stored on disk as byte sequences)), whether a normal link (which links to whatever version is current at the time of access), or to a specific version of the file (resulting in a copy-on-write object), or to a part of a file.<p>- It has its own programming language (which can be used as REPL as well as full compiled programs), but C can also be used, and assembly language is also possible. (If using C, then partial compatibility with POSIX and TRON may also be possible.)<p>- &quot;Objects&quot; are &quot;files&quot; (they are essentially the same things), and have a &quot;object&#x2F;file descriptor&quot; to access them. This can be used for disk files as well as for other dynamic features such as a devices, process data, dynamically translated files upon access, etc. (Devices are not a separate object type like POSIX is; they are same like anything else.) Like any file, they may contain links, which may allow you to obtain access to them.<p>- A common file format for most (although not quite all) purposes, similar to TRON Application Databus, but with many differences. This would also be used for the command-line interface, too. It is also possible for data shown in both command-line and GUI (e.g. if a data table or graph is shown, you can easily apply your own filters, import&#x2F;export, etc, with any other program; if it is formatted text, you can easily use it with other programs too; if it is numbers using some units of measurement, to be able to convert them; etc).<p>- Files can have multiple streams, numbered by 32-bit numbers (which need not be consecutively assigned). Stream numbers 0 to 255 have a standardized use, and other numbers do not have a standardized use.<p>- You can run a program with any instruction set on any computer, whether or not it uses that instruction set; if it isn&#x27;t, then it will be emulated. (Whether the program is x86 or ARM or RISC-V, it will run on any of them.) Also if it is mainly one instruction set but uses some extensions (of a newer version of that instruction set) that this computer does not have, then those instructions are emulated.<p>- Message bus for higher level interfaces (these can be proxied like other interfaces, too, mainly by writing your own translator). Types are required, in order that programs written using different instruction sets with differnt endianness can communicate with each other without being confused, and so that the message passing can also include links.<p>I have many more ideas than only these above things, though!!!
评论 #32821104 未加载
评论 #32818274 未加载