Playing around with the Fuchsia operating system
blog.quarkslab.com
blog.quarkslab.com
Specifically, this product doesn't exist today:
- Desktop environment that matches or surpasses Mac OS in quality, performance and UX design.
- It includes seamless synchronization between devices.
- Apps are sandboxed, similarly to Android or iOS.
- There is a clearly defined platform / SDK, like in Android or iOS. If it works in your development environment, it's guaranteed to work everywhere.
- You can easily make a commercial product, like in Android or iOS.
- It has 10% on the market (or software creators believe it's on the trajectory to get there).
I don't understand why Google hasn't done this yet. Of course, the answer could be that such project just doesn't have the required ROI.
Here is a talk on verified boot - https://www.youtube.com/watch?v=kdpZC9jFzZA&feature=emb_logo
https://chromium.googlesource.com/chromiumos/platform/ All associated projects - "uboot", "update_engine" are there. Some are also in platform2/.
Let me guess ? You"ll come up with some other snark to put down how this OS is open source.
There is also Fedora Silverblue[2], which is an immutable desktop OS.
[1] https://support.google.com/chromebook/answer/9145439?hl=en
Where's the documentation for Chrome OS SDK (for native apps)?
The main benefits of Chrome OS are immutability and zero-maintenance.
If Chrome OS added a native support for flatpak[1], it would cover most of the desktop use cases without losing any of its benefits.
If Google or some similar company were to make a desktop OS, it would probably be packed with so many monetization "features" that the free software community wouldn't be very interested and may even see it as a threat. Chrome OS already demonstrated most of this pattern.
The elementary project has done some great work with their UI, but the limitations of a decentralized funding model mean that it just isn't as complete as the major OSes. Meanwhile the jousting between Red Hat and Canonical over control of the GNOME ecosystem alienates a lot of users. Meanwhile corporate control of Qt has limited KDE's popularity. In all three cases the organizational problems associated with developing a truly freedom-preserving OS in a profit-oriented world crop up in different ways. Google taking over doesn't sound like a solution to me.
Some kind of alliance between free software developers and hardware manufacturers has long been dreamt about but hasn't materialized over the last two decades. All too often, Linux OEMs attach a half-baked homegrown distribution and their hardware tries to rely on it. We've also hoped that democratic countries will decide that a free and open-source operating system would be good for national security and fund development. In practice, interest has mostly come from Russia and China, with user freedom off the priority list.
Google isn't a deity. They don't exist to serve humanity but rather their investors. The organization problem continues to be difficult.
Google is a web company; they want people to use the web. They made a laptop/desktop operating system built around their web browser, because they want everything to be on the web. It does most of the things you list, including synchronizing between devices since your data is all "in the Cloud".
As for market share, I'm not sure what power you think Google has, but getting 10% of the desktop OS market has got to be pretty difficult for anyone. I do not know what share of the market Chrome OS has.
One interesting example is that if I have a file I want to open, it doesn't matter if it's Chrome, Android, or Linux that has the executable to open it. I just click the file and it opens in the right app. I can also open it in any other apps via a dialogue that lists things I can open it with. The list shows all relevant Android and Linux apps.
The app launcher is similar -- all apps, regardless of how they are run, show up together.
I'm still not sure I could give up my Mac for my day job, but for personal use, I love it.
You don't need to turn developer mode on for this feature. That means you get verified boot , updates (including your Linux distro) as well as the security guarantees of Chrome OS. Crouton requires you to give up all of that. You can't get sync without signing in. Cloud sync is the foundation of the OS. It's what makes it stateless. If you don't like that it's not for you but stop spreading half truths about the product in bad faith.
Google says that ChromeOS has "simple setup" - but not the Linux parts. They say you can "search anything on your Chromebook" - but not Linux. They talk about "Chrome sync" - doesn't apply to Linux. Etc.
I think that ChromeOS has value as a web-browser host, and also as a development machine for vim-jockeys. What's missing is the middle part: a real desktop OS.
You can search linux files and apps as usual.
As for sync, feel free to look at open bugs and features and see the work being done.
What makes it work is that everything you could possibly want to run either runs in the browser or in a remote machine.
Chrome OS is not 100% open source and the bits that are not in Chromium OS are significant. It is also effectively tied to certain hardware. Users cannot easily install it on whatever hardware they choose.
The Chromium OS FAQ contains no link to download the source code and contains this little gem:
"Keep in mind that Chromium OS is not for general consumer use."
"The Chromium OS FAQ contains no link to download the source code" -
https://chromium.googlesource.com/chromiumos/docs/+/master/d...
LOL a whole guide "secretly hidden" on the Internet, to get and build the source code.
Right above that line -
"Where can I download Chromium OS? If you are the kind of developer who likes to build an open source operating system from scratch, you can follow the developer instructions to check out Chromium OS, build it and experiment with it. A number of sites have also posted pre-built binaries of Chromium OS. However, these downloads are not verified by Google, therefore please ensure you trust the site you are downloading these from."
The fact is that this FAQ on www.chromium.org gives no pointers into Google Git to find the files to which you refer. It does not even give a link to chromium.googlesource.org, aside from the BSD license. If the reader following the "For everyone" link is not a developer, not a "UI designer" and not a "Contributor", she does not want to be treated like those types of people, she just wants the source code. If she were a developer she would have followed the "For developers" link at www.chromium.org. Interestingly, there is no "For users" link at www.chromium.org.
Not everyone looking for source code is a "developer", or thinks like one, and even if they are a developer, they may not be one "who likes build an open source OS from scratch".
I am an end user, not a developer, and I have been building an open source OS from source code for over 15 years. This FAQ makes some bold assumptions about end users. I do not believe that calling this out is "disingenuous", a "put down", nor "snark", at least, not according to the definition of that term I found on FOLDOC. I have always run my customised systems in a configuration similar to what Google calls "developer mode" (in fact, I use a more flexible, simpler configuration), however I am not a developer. The name "developer mode" is suggestive and silly.
One does not need to be a "developer", or think like one, to read, edit, write or compile software. Google seems to prefer to pretend such users do not exist. A Chrome OS user who is not a developer, UI designer nor contributor who wants the source code gets funnelled to the Chromium OS website, and then is provided with the advice to "follow the developer instructions". No link to the source code, or even to the "For developers" section. Too add to this, the user is given the caveat that "Chromium OS is not for general consumer use". This "For everyone" page is a dead end for non-developer users who want source code.
Imagine you are a "general consumer", i.e., an end-user, who is told Chrome OS is "open source". You go looking for the source code tree and tarballs and you are directed to Chromium OS. Then you arrive at www.chromium.org and are told Chromium OS is "not intended for general consumer use" and "if you a developer who likes to build an open source operating system from scratch you can follow the developer instructions". This is extremely presumptuous.
Nor everyone who wants to see the source code wants to build Chromium OS. Building "modern" web browsers like Chrome from scratch is unreasonably resource intensive. Some people may not want to read through all the opinionated developer instructions whose primary audience appears to be Google staff. Some people just want the source code to Chrome OS. That's it.
Yes, people not working for Google can get it. I can get it (with some effort). I never said otherwise. However, as I pointed out, it is "Chromium OS" not "Chrome OS" and there is a lot of cult-like mumbo jumbo for non-Google staff to wade through in order to find what one is looking for. The "open source" OS is Chromium OS not Chrome OS. That is not a "half-truth" it is a fact. Is all this a deterrent for those interested in Chrome OS source code? That is for the reader to decide. I think it could be made easier but that is only my opinion.
.
Btw, people are already doing some interesting projects with Fuchsia like this desktop shell written in Flutter for a Fuchsia fork[2].
[1]https://abishekmuthian.com/reviewing-the-chromebook-google-s...
Unfortunately, I don't believe that relying on a for-profit third party entity like Google is a good idea due to the conflict of interest, even if their OS is FOSS. Just look at what Google has done throwing its weight around as the big-man in browsers, even though the browser engine is FOSS.
Incidentally, this might be of interest to you:
https://github.com/probonopd/hello
Not much there yet, but I believe Probonopd's intent is to gather a community of people like ourselves.
- It requires a massive centralized investment. Microsoft/Apple/Google can do that. But Linux is run by amateurs (not talking about skills but rather guys who are not on a payroll).
- Linux is for people who have rather weird setups. Apple uses limited hardware (ie: You have few Macbook Pros, etc...). Windows is supported by manufactures because it is the standard of Desktop computing for most of the world (and still can be a mess). Linux, on the other hand, has to do all that work alone.
- Linux professional and profitable market is still in servers/deployment where you don't need a desktop space.
Developers flat out rejected it because of the smartphone-like sandboxing.
Microsoft didn't help matters with the 99 dollars developer fee - not high per se but in an existing free for all operating, pushbacks would happen.
Microsoft basically said to use this shiny new crippled toy, you must use our store and pay money.
Microsoft also fanned the fire when they announced that only one metro browser was allowed. That is you could only use the metro browser of your default desktop browser. Others would be disabled
For me as a user I hated/hate, UWP, metro and all it's incarnations because:
UWP apps are slower than regular apps. In the early days they crashed a lot. They wasted desktop real estate with too much whitespace. Initially they were not resizable like normal windows application. Oh... The hidden settings menu sucked.
Microsoft also consistently undermined the new format by limiting UWP to the latest operating system. Metro apps couldn't run on Windows 7. Most Universal apps made for Windows 10 won't work on Windows 8.1 and lower. Some wouldn't even work on some Windows 10 versions.
For developers, having to maintain multiple versions written with different API's for "one operating system" is crazy.
UWP apps are basically unusable without mouse or touch screen. Almost all the shortcuts we know and love don't work.
This flat UI nonsense that makes it difficult for users to detect the active menu or even clickable items was started by Microsoft with windows 8. Google and Apple take the credit cos Microsoft failed with mobile.
In a couple of years every Win32 app will think it still owns the OS, while they are actually playing on their little virtualized OS, using the same pico process model as WSL.
Sandboxing also needs to come from the other direction.
Having programs be made to be sandboxed defeats the purpose. What is needed is the ability to do contain all of a program's files in one place and isolate the access to the file system with permissions for other resources.
Don't cry victory as you would be quite surprised how Windows will look like in 5 years or so.
I'm not saying the AppContainer sandbox is perfect, but I suspect it would have gone over a lot better if the early distribution story for UWP had been less of a disaster.
Is there any evidence google can pull this off or wants to? I’d think they would want you in a browser.
What would be the financial incentive?
Are iOS/Android SDKs good examples of stable platforms? They are just as much a moving target as anything else and the only thing certain about them is that they _will_ require maintenance.
Maps is a web project.
Chrome is a feeder for Google's web properties.
I've got Plasma setup to take advantage of a decade of Mac muscle memory, and think it does "macOS" better than macOS itself.
> Apps are sandboxed, similarly to Android or iOS
Install firejail, and its wrapper scripts. The wrapper will automatically wrap common commands and apps in a sandbox, and you can use the firejail CLI to launch apps that it doesn't wrap.
I agree with your other points, however I lament that BSD-style licensing will prevent a lot of cool things from having their sources see the light of day or be upstreamed.
Care to elaborate or share? I’ve recently moved from macOS to Linux.
Most of these are extensible or scriptable, and have actions that can be triggered with custom shortcuts. KRunner in particular is extensible. Plasma lets you change or set shortcuts for everything, so, for example, you can mimic the Mac screenshot shortcuts well, since KDE's Spectacle is comparable to the latest updates to screenshot functionality in macOS.
Oh, and symlink 'xdg-open' to 'open', or create an alias.
Linux really does miss an SDK though. Realistically if you target Ubuntu you'll reach the majority of Linux users but the community of power users (ugh, hate that phrase but can't think of a better one) and developers is scattered any number of desktops and Linux varients.
I am not sure what you are talking about.
Sandboxed apps are a no-go on a productive desktop. Have you tried using Snaps? They're sandboxed by default, and it's extremely annoying having barriers in the way sharing data between them. Sandboxing is the sworn enemy of composition. It's like keeping all the interior doors of your house locked.
Clearly defined platform / guaranteed to work: Linux-the-kernel provides a binary-compatible ABI. This is entirely sufficient, if you bundle everything including libc. If you don't want to do that, well glibc is backwards-compatible so you can just build against some reasonably old version of glibc and it'll work on any recent distro. This isn't some obscure method - lots of software is binary-distributed this way (Firefox, Blender).
Easily make a commercial product: well, I'm currently using Pointwise and Mathematica on Linux, so it doesn't appear to be that hard.
I remember hearing about it and immediately asking "what is the market for this?" and not being satisfied with the answer.
On the one side you have Samsung, who are unhappy enough with their dependence on Google that they'll not likely eat the cost of moving from Android to something else that has no strategic benefit to them (as far as I could tell, anyway).
So what does that leave? Google making its own devices. I don't know this to be the case but I strongly suspect the intent was for the Pixel line was (and may still be?) intended to be the spark for Google being a vertically integrated first-party seller of mobile devices. What I mean is these aren't just proof-of-concept or developer devices.
The problem there is by doing that they'll hurt their relationships with Android OEMs and it'd take a long time to fill that void, if that's even possible.
So where else? The obvious answer is... Chromecast. This is a hardware product Google has had a good amount of success with. It's already first-party.
A recently leaked report [1] seems to indicate that the next Chromecast will be Android TV. That is (IMHO) bad news for Fuchsia.
You have to also take into account that during the time Fuchsia has been around (which must be 4+ years by now?) there's been a change at the top with Sundar replacing Larry. That's always a dangerous time for high-profile and high-cost (literally $billions) projects with no customers. Sundar came from Chrome. Fuchsia didn't. You have to ask questions about who was the original (SVP+) cheerleader who got it off the ground and funded it? Was larry on board? Is Sundar/ Does that sponsor enjoy the same support under Sundar that they did under Larry?
I don't know the answer to these questions, just that they matter. marissa Mayer's departure from Google was largely a product of a change at the top as she enjoyed Eric's favour but all signs pointed to Larry not being as big as a fan.
Fuchsia probably should've been called Graphene. Graphene can do everything but leave the lab, after all.
[1]: https://arstechnica.com/gadgets/2020/06/googles-leaked-tv-do...
Fuchsia appears to be really close to Chrome/Chrome OS - they even share the build system and many components.
IoT devices have a big problem with software updates. The people who make them are primarily interested in selling hardware, not supporting it for the many years it will probably be in your home. (You might replace a smartphone every two years, but how often do you replace a light switch or thermostat?)
Google says Fuchsia is built to be easy to update. Different components are able to be upgraded independently. There is a stable binary API for drivers.
Imagine a world where IoT devices are built to some Fuchsia-based standard which allows them to continue to be updated even when the manufacturer inevitably abandons the devices and their users. You could get more out of the devices, and you could worry less about security.
It wouldn't solve 100% of the problem, though, because there would always be some device-specific code, including device drivers and any software that enables unique capabilities of the device.
[1] https://9to5google.com/2019/02/08/fuchsia-friday-home-hub-ma...
Like Google Brillo! Oh, wait. Android Things! Oh, wait. Weave? I give up.
> One person who has spoken to Fuchsia staff described the effort simply: "It’s a senior-engineer retention project."
https://www.bloomberg.com/news/articles/2018-07-19/google-te...
Fuchsia’s greatest value is letting senior devs solve fun puzzles without the burden of shipping anything customers want.
The reality is probably that companies are making a bet on some far fetched technology, so for example Fuschia or the developers behind it could lead to something insanely profitable, but there's only a 20% chance. If you're in a good year then the investment is worthwhile because the expected value is still positive. If you're in a bad year you can't afford to wait for the investment to pan out (not to mention your risk model goes totally out of whack; if the market is doing poorly consumers won't shell out cash for this new tech) so you have to cut costs in that area.
In this particular case, though, you're probably right. Android itself was one of those whacky ideas that no one expected to gain any traction. Google funds moonshot projects as a matter of company culture and self-identity and it seems to actually make them money. Of course, the possibility still exists to cut them for short-term gain and I doubt no one factors that into their equation at all.
And while that happens all the cream of the crop of the top talent already left or leaves because of the bullshit that comes with the pressure to show marketability for a research project.
Strange argument. Maybe they will move all their devices to their own superior OS Tizen. Or maybe they tried and it did not turn out very well.
So whichever side Samsung is it does not affect Google. There are many phone makers not that many phone OS makes. And with chinese manufacturers already pounding them they have no leverage on Google.
Google (via the Open Handset Alliance) managed to enforce the current status quo. Manufacturers can't simultaneously ship their own OS like forked versions of Android, or presumably Tizen, and still be allowed to use Google Play Services. It's all-Google or nothing. I don't know whether Tizen is superior or not but one could assume it isn't simply due to the lacking ecosystem. Windows Phone was a good OS. It was shot in the foot by a weak app ecosystem.
> So whichever side Samsung is it does not affect Google.
Samsung has 20% of the market and a lot more of the high end market. Going with "not Google" means a lot of users no longer using Google Play Store and services. It most certainly would "affect" Google.
It’s a game of chicken and one Samsung can’t win, but Google probably doesn’t want to inflict on them. Look at how well Huawei is doing outside China without google services (they’re dead in the water). Samsung doesn’t want that and can’t build an app ecosystem on their own. If Google pulls them and android and more importantly the android SDKs and dev tools toward Fuschia, I guarantee you that Samsung will follow.
At the same time I think Google would be foolish to intentionally antagonize one of their most successful partners. If Samsung’s bungled reaction was to try to go it alone with Tizen or hold out upgrading their phones to a new android, it only helps Apple and iOS, and that’s the last thing google wants.
Indeed, they most likely can't (easily) make Tizen a commercial success to rival Android, and even using an Android fork would still be far from ideal without Google's Play Services.
But Google probably can't legally sustain this position for long and hold OEMs hostage, especially with all the antitrust scrutiny they are facing now. Conditioning access to the Play Services on using exclusively Google on every device sounds like something that could be considered anti-competitive.
And Tizen will never be a successful software ecosystem on the order of android or iOS. Samsung is all thumbs when it comes to software. They don’t understand how to build and sustain a software platform and what third party devs need.
That will make Samsung phones very pretty door stops. Users do not care about phones. Users care about apps that run on those phones. Samsung has no apps that users care about ( IG/Facebook/TikTok/Snapchat/Banking/News/Tinder/etc ) without Google Play.
Samsung doesn't need to drop Android, they need to be able to sell phones with other OSes. Tizen probably fits the bill for low-end, cheap phones. With the exclusivity clause in place Samsung would have to bridge the canyon between the current Tizen ecosystem and where Samsung would want it in one step. Removing the limitation just gives them the chance to take it one step at a time with building their ecosystem (not a pleasant thought looking at the state of their software but hey...).
That's why the Windows Phone failed -- even though Microsoft offered shops with reasonably popular apps both money and placement to make them available in their store at the end the cost of supporting another platform was too high.
What was the market for php when it came out ? It was just a few helpers to write web pages, simpler to use than perl that already existed at the time
What was the market for go when it came out ? Yes, it did have a few modern things built-in, but there were already tons of widely deployed languages.
And yet here we are. I don't need to tell you how successful each of those is today. I don't mean to say that Fuchsia will definitely be useful or deployed in any large fashion; just that "there is no market" is not a valid counterpoint to the development of a new project.
> What was the market for php when it came out ? It was just a few helpers to write web pages, simpler to use than perl that already existed at the time
The markets were clearly there (and huge!) for a free Unix-like OS and for a better replacement for CGI scripts. The fact that some people didn't see the potential for Linux or PHP, is wholly separate from their market opportunities.
The question here remains: where is the market today for a new micro-kernel OS? The likely answer would have to be device-makers... but which ones can actually benefit from Fushcia?
Commercial Unix running on expensive hardware (and software) was the key opening for Linux, not the underpowered bit. Linux on X86 took a while to catch up performance wise.
Linux probably also had good timing while the Unix wars were fought.
In retrospect I really liked BSD for a lot of the ways it did things (more stable, excellent long-term backwards compatibility).
https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc.....
I'm wondering if it had a detrimental effect on adoption of *BSD, and thus increased Linux popularity at this early and critical time.
I think another issue is that linux added new features rapidly which probably helped adoption.
Linus has said as much[1]: "If 386BSD had been available when I started on Linux, Linux would probably never had happened."
However, core components such as graphics, file systems, hardware devices, etc. are moved into userland, so in that sense it follows the microkernel idea of putting as little as possible in the kernel itself.
Personally, I love the design, and hope it takes off. We really need to get away from letting kernels and devices have elevated privileges in an OS.
As far as I'm concerned, Tanenbaum won the monolith/microkernel debate — Minix 3 is a true microkernel, and is currently a popular niche OS — and the success of Linux does not diminish the argument. (The infamous failure of GNU Hurd doesn't, either.)
Isn't it the most widely deployed operating system in the world? It's embedded in basically every Intel CPU
The obvious thing for Google to do is to use this in Android, and this will solve a number of big problems for them (specifically, binary-only drivers and a better security model). They might even have some success in the server or desktop spaces as well.
I worry a bit that Linux will be the next Firefox.
If by this you're referring to their promises of a stable driver ABI, I can't understand what problem this is supposed to solve compared to Linux. There are plenty of binary drivers already shipped on Linux. IOT device vendors don't care about a stable ABI because they just pin to their kernel version. Android device vendors don't care because either way they will stop updating their kernels after a number of years. Enterprise users don't care because they also pin to a kernel version and backport what fixes they want.
It also does not seem to solve any problem for Google because they still have to make the same stability/support promises and deal with the same accumulation of legacy code either way. Yes, this is necessary to stop fragmentation but the problem is nothing really changes here compared to what they would do if they were going to take on the cost of backporting Linux kernel fixes. The only realistic cost saving for them I could see is if the greater stability came from reducing the total amount of hardware that is supported compared to Linux. Which makes sense for them but at the same time completely eliminates the possibility of them ever seriously touting this as a Linux replacement.
This one seems like a big problem to me. Maybe the handset manufacturer doesn’t care because they already made their profit, but this pushes the support burden onto app developers (including Google itself) who have to maintain support for these old Android devices that the manufacturers don’t care about.
This seems like a real issue to me, is there something I’m missing?
Back on topic though, I think it's just easier from an engineering perspective to maintain a stable ABI than it is to maintain a set of blessed kernel versions.
An ABI is something that can be reasonably well-defined and has a clear scope, whereas if you just say that you support kernel versions X, Y and Z, then who knows what weird undocumented behavior you'll need to maintain.
https://lwn.net/Articles/771974/
Also some vendors such as Sony have standardized kerbel versions across many devices & publish kernel major version updates for a range of devices (in Sonys case called the open device program).
Without a hate figure like Steve Ballmer net relative momentum will decline. It just happens that so many other big players joined the band wagon and contribute, that you don't notice that relative decline.
But in my opinion, the second most important feature of Linux is in fact its ability to change large parts of the kernel when and if needed. And do it very very quickly.
And this something microkernels cannot do. They are just slower when doing major changes that touch many parts of there OS.
Blackberry's QNX ( https://en.wikipedia.org/wiki/QNX ) is a microkernel architecture and was designed with this in mind - https://www.qnx.com/developers/docs/6.3.0SP3/neutrino/sys_ar... ...
> Traditional power management (PM) is aimed at conserving the power of computers that are usually left on. The general-purpose approach to PM for desktop PCs -- or even for "mobile" PCs, such as laptops -- doesn't take into account the specific demands of embedded systems, which can be off (or on standby) much of the time, yet must respond to external events in predictable ways.
I don't know if it's inherently more efficient to implement this type of thing with a microkernel but given the iBeacons and similar effectively "failed" ( https://venturebeat.com/2018/10/27/why-android-nearby-ibeaco...) due to power and sensitivity, this could be a big enough incentive to start a new OS
Not only that, but other older operating systems are always going to have an advantage here anyway: they'll have support, ecosystems, documentation, and people with years of experience with them.
Google isn't even a monopoly in search for heaven's sake! Only 87% of people use Google Search. If they can't get a monopoly there - and you really can't get a monopoly in almost any industry without government help - what makes you think they can get a near-monopoly in operating systems?
Note that some ostensible competitors like Startpage are still powered by Google under the hood.
[0]: https://www.justice.gov/atr/competition-and-monopoly-single-...
Furthermore, what about Google Search allows it to take advantage of a network effect? It's a product designed to be used by a single person - it's not a social network. You can switch without incurring network effect problems. The real reason nobody is switching is that Google Search really is better than the alternatives: Bing, DuckDuckGo, etc, all have a plethora of users complaining about worse searches, even here. If someone were to make a search engine algorithm that led to a genuinely better experience (not for ideological or moral reasons, but actually better at finding what you want on a regular basis in a way the average person would care about), and had equally good (or better) user interface design, do you really think it would be that hard to switch?
Face it, for the Average Joe, the experience of using Google is far better than any other option. That's why they're all using Google. They don't care so much about their data, they just want search results. In essence, they're paying for good search results by selling their search history.
What illegal business arrangements has Google used to "gut competitors"? Nothing that Google seems to have done, besides being well known - as far as I know - has prevented other players from entering the market. This is definitely [citation needed] in this case.
Furthermore, sure I made a hasty generalization, but the best way to keep competitors out of the market really is using the government. What else are you going to do? Buy every competitor that comes your way? That's not going to work for long, especially as you get worse in services (that's the whole point of monopoly power) so each competitor sees a bigger and bigger chance of reward in the amount of pent up demand (people who would really like to switch to something else).
In conclusion, Google Search has not made it impossible for a better product to win in the market, it has not to my knowledge used illegal businesses, has certainly not gutted competitors except through actual market competition, and can't take advantage of network effects. It does not have bad products (I love most of Google's products, everything else is basically sh!t) nor does it have terrible service - even moreso for the Average Joe, as I said, who doesn't have an ideological commitment to hate Google.
One could argue that monopoly can be kept by using network effects and "illegal business arrangments" (whatever that means) but that's not how a company gets big enough in the first place to do those things. The reason Google is big enough now to make everyone start freaking out is because their Search was that much better.
Due to their monopoly, businesses can't switch: You might hate Google. Google might be your direct competitor. No matter what, you have to give Google money, and Google gets to make all of your web design decisions, because if Google doesn't approve of you, you don't exist.
Google isn't good at this, it's just that you really can't leave. They have too much search data solely based on the fact everyone already uses them. Why does everyone already use them? They're the default. Through investing in web browsers and mobile OSes, Google is the default everywhere already. And the majority don't ever change the default. So no matter how bad they are at search, they remain in top.
The Supreme Court has noted the crucial role that defining the relevant market plays in section 2 monopolization and attempt cases. The market-definition requirement brings discipline and structure to the monopoly-power inquiry, thereby reducing the risks and costs of error. The relevant product market in a section 2 case, as elsewhere in antitrust, "is composed of products that have reasonable interchangeability for the purposes for which they are produced--price, use and qualities considered." Thus, the market is defined with regard to demand substitution, which focuses on buyers' views of which products are acceptable substitutes or alternatives.
For search advertising, they will likely find other forms of advertising such as Facebook as a good enough substitute and thus the market definition will include other forms of advertising and not just search. For app publishing, you can publish your app for android yourself which Fortnite did.
iOS distribution on the other hand can probably be argued for that and in fact they are getting sued for their "abusive monopoly in iOS app/in-app distribution services" [0].
[0] (PDF): https://www.hbsslaw.com/uploads/case_downloads/apple-dev/201...
Nope, they won't. because 92% of people search the web on google.
Do companies really care whether it's on Google Search or some other place, as long as they get eyes? And really, Google doesn't own 92% of the web, lol.
Maybe they're just making use of the existing C++ talent pool at Google.
I can't find the source, but for some reason I have it in my head that the percent of Redox kernel code that is unsafe sits at somewhere around 30%, which especially considering the actual LoC of the microkernel vs. a monolith, means much easier code coverage. Again, the exact number might be wrong, but I do know that the kernel is significantly less that 100% unsafe code.
It seems a microkernel architecture allows for the kernel to be as small as possible, with the scheduler and drivers and everything written in a safe language in user-space. In that case, it is anything other than vanity that says the kernel is better off being written in a "safe" language with all the safeties turned off, compared to a unsafe language?
2. You don't have to turn off safety checks in all of the code. Only having to audit the unsafe code is still a huge win. You're vastly overstating the amount of code that can't be safe.
3. Fuchsia has many components outside of the kernel that should have been written in safe languages but weren't.
4. It's funny that you use the word vanity. I think it perfectly describes the attitude that you're smart enough to write a nontrivial project in C/C++ without any of the many classes of preventable bugs that safe languages fix. Or that a few parts of your code requiring unsafe behavior somehow elevate the whole project into an elite class that doesn't need safety.
Or do you mean in terms of not using a "safer" language like Rust? I assume its because its not what the devs working on it know.
I don't think it made sense to use Rust back when they started. It wasn't mature enough for such a big project.
Edit: not a Rust fanboy by any means, hell, I've never even opened a Rust file.
Note that zircon itself is not allowed to contain any Rust [0]. It's not exactly specified what they mean by the kernel, but it seems that this includes not just the microkernel but also everything that lives in the zircon top level directory, which is enough to boot the system. tokei says there is not a single line of Rust in that entire directory (but about 1 million lines of C/C++).
[0]: https://fuchsia.googlesource.com/fuchsia/+/cb20372465f875ff4...
What do you think is Google's masterplan for Fuchsia?
The Android team doesn't seem fond of Dart/ Flutter, but that's not surprising. Who wants to voluntarily sign their death certificate, so to speak?
That's a form of public denial on their side. Why would they upstream Chromium, LLVM, Rust and Android ART support then? It has first class support for Flutter as a way of running all Flutter apps from day 0.
Don't be fooled too easily by that statement.
"Midori was a research/incubation project to explore ways of innovating throughout Microsoft’s software stack. This spanned all aspects, including the programming language, compilers, OS, its services, applications, and the overall programming models. We had a heavy bias towards cloud, concurrency, and safety. The project included novel “cultural” approaches too, being 100% developers and very code-focused, looking more like the Microsoft of today and hopefully tomorrow, than it did the Microsoft of 8 years ago when the project began." [1]
Later some of this ideas became core features on Windows.
For a great overview about Mindori project: [1] http://joeduffyblog.com/2015/11/03/blogging-about-midori/
Hopefully Fuchsia doesn't succumb to the same second-system effect.
It doesn't sound it was ever planned to be shipped? It was for experimentation, research and development. And some of that work made its way into Windows. Seems like a success to me.
edit:
> Midori was the code name for a managed code operating system being developed by Microsoft with joint effort of Microsoft Research. It had been reported[2][3] to be a possible commercial implementation of the Singularity operating system, a research project started in 2003 to build a highly dependable operating system in which the kernel, device drivers, and applications are all written in managed code. It was designed for concurrency, and could run a program spread across multiple nodes at once.[4] It also featured a security model that sandboxes applications for increased security.[5] Microsoft had mapped out several possible migration paths from Windows to Midori.[6] The operating system was discontinued some time in 2015, though many of its concepts were rolled into other Microsoft projects.
However async/await, span, ref returns, ref structs, safe stackalloc, .NET Native, TPL have their genesis on Midori
a) sell the product to their superiors and get their buy-in
b) drive their own resume for "being the guy who created X"
rather than any technological reasons or valid business reasons.
What Google says about their plans and what their plans actually are does not necessarily have to converge.
I think they made it pretty clear that Fuchsia is not "an experiment to test new OS ideas".
https://fuchsia.dev/fuchsia-src/concepts
Specifically:
> Fuchsia's goal is to power production devices and products used for business-critical applications. As such, Fuchsia is not a playground for experimental operating system concepts. Instead, the platform roadmap is driven by practical use cases arising from partner and product needs.
This totally contradicts what was said at Google IO's main keynote. Unless I'm remembering this wrong...
(e.g. I'm compiling for --release workstation.x64 --with-base ... the kitchen-sink)
I am sad to see WindowsNT, Linux and macOS be the only dominant operating systems.
My personal very perhaps unpopular view is that Windows NT has a better technial implentation than Linux.
Linux does most things well, form small devices to big iron. That is true now.
But when it started, it was as a learning experiment, and damn good one too. An amazing achievement. A lot of work my haorsd of people have since built on top of it, replaced things, epanded things, hardening things, adding drivers, etc. And it has come a long way, but to me as an operating system, technically it is not that inspiring.
I wish we had maybe 10 competitve opearing systems, some brand new off the presses.
I have run Linux in one form or another since the first Yggdrasil release at the end of 1992. (not very early).
It was amazing. Running it on my PC at home and it was faster than the terminals at school (well all shared a few servers so always a lot going on, I am sure if you had it all to yourself it would be faster. I guess that is why some people spent the nights there is they had demanding tasks to run, but htye were not a priority to get access to the better, newer and a lot more dedicated hardware. (It was a complicated process).
I could do 90% of what was needed at home, woot.
I was very happy when I get my paws on the first WindowsNT release back in 1994 I think. I had preordered it.
I cold not wait to install it.
processor-independent, multiprocessing and multi-user operating system the end of 1992.
After having suffered through the pain that was Widows that had a kinda sorts maybe a little multitasking. Finally an improvement. OF course, a lot of my software refused to run on it, or it refused to run it
The first Mac I had with macOS was also very cool, since then OpenBSD, I had NextStep when they released it for Intel. Very cool.
Anyways I have been waiting since to get a new operating system that levels up the game, as much as WindowsNT did for Windows 3.11, 95, 98, me.
I have not yet had that privilege.
I had good hopes for Plan9, QNX, a reimplementation fo BeOS that is still ongoing. (I might have the wrong name on that one. I remember a demo I had at the university of a BeBox with the BeOs and how well it multitasked what backed then seemed like very CPU intensive graphics manipulation while playing a video and some other stuff -at the time-... I never got a BeBox and havent run its OS)
There have been, and are some solid research OSs but they have never made it out into the real world.
WindowsNT, Linux and macOS cannot be all we are given. What replaces them?
Where is WindowsNTNT.
Will it take quantum computers to become the norm before we get it? Maybe Linux already runs on that too.
(if quantum computers ever become viable or even a good fit for everyday boring computer stuff).
Give me a new operating system, written from scratch, to implement every secure feature it should have, harden it, eliminate even the possibility of buffer overflows and assorted tasks, or create them so that the elements that are exposed can fail gracefully and non-destructbily and not leak data or allow inputting of data.
I forgot about Qubes OS, that is very interesting. Maybe that is it.
The reason we don't see new OSs is pretty simple: there is entirely too much hardware you have to accommodate to be usable. There are klocs of actual kernel code in Linux, and Mlocs of driver code.
Other times devices are just a thin PHY interface and all of the work is done in software inside the driver. There's nothing on the device to even run onboard firmware.
So many devices can't store their own drivers for the host to use, let alone store drivers for multiple operating systems.
For some things like HIDs this can be pretty workable. For more complicated peripherals it is far more challenging if not impractical.
That's not to say device drivers should be an insane Wild West of compatibility shims and edge cases but some blanket solution doesn't solve all problems.
Even for the big three I'd like to see some shared container runtime or something.
I actually don't think it's that uncommon to see people who think the NT kernel is a superior implementation than the Linux kernel. There does seem to be a sentiment that the Linux kernel has a history of adopting features later than other OSes, and often using a worse implementation (epoll is one of the more infamous cases).
>I'm a developer in Windows and contribute to the NT kernel. (Proof: the SHA1 hash of revision #102 of [Edit: filename redacted] is [Edit: hash redacted].) I'm posting through Tor for obvious reasons. > >Windows is indeed slower than other operating systems in many scenarios, and the gap is worsening. The cause of the problem is social. There's almost none of the improvement for its own sake, for the sake of glory, that you see in the Linux world. > >Granted, occasionally one sees naive people try to make things better. These people almost always fail. We can and do improve performance for specific scenarios that people with the ability to allocate resources believe impact business goals, but this work is Sisyphean. There's no formal or informal program of systemic performance improvement. We started caring about security because pre-SP3 Windows XP was an existential threat to the business. Our low performance is not an existential threat to the business. > >See, component owners are generally openly hostile to outside patches: if you're a dev, accepting an outside patch makes your lead angry (due to the need to maintain this patch and to justify in in shiproom the unplanned design change), makes test angry (because test is on the hook for making sure the change doesn't break anything, and you just made work for them), and PM is angry (due to the schedule implications of code churn). There's just no incentive to accept changes from outside your own team. You can always find a reason to say "no", and you have very little incentive to say "yes". > >There's also little incentive to create changes in the first place. On linux-kernel, if you improve the performance of directory traversal by a consistent 5%, you're praised and thanked. Here, if you do that and you're not on the object manager team, then even if you do get your code past the Ob owners and into the tree, your own management doesn't care. Yes, making a massive improvement will get you noticed by senior people and could be a boon for your career, but the improvement has to be very large to attract that kind of attention. Incremental improvements just annoy people and are, at best, neutral for your career. If you're unlucky and you tell your lead about how you improved performance of some other component on the system, he'll just ask you whether you can accelerate your bug glide. > >Is it any wonder that people stop trying to do unplanned work after a little while? > >Another reason for the quality gap is that that we've been having trouble keeping talented people. Google and other large Seattle-area companies keep poaching our best, most experienced developers, and we hire youths straight from college to replace them. You find SDEs and SDE IIs maintaining hugely import systems. These developers mean well and are usually adequately intelligent, but they don't understand why certain decisions were made, don't have a thorough understanding of the intricate details of how their systems work, and most importantly, don't want to change anything that already works. > >These junior developers also have a tendency to make improvements to the system by implementing brand-new features instead of improving old ones. Look at recent Microsoft releases: we don't fix old features, but accrete new ones. New features help much more at review time than improvements to old ones. > >(That's literally the explanation for PowerShell. Many of us wanted to improve cmd.exe, but couldn't.) > >More examples: > >* We can't touch named pipes. Let's add %INTERNAL_NOTIFICATION_SYSTEM%! And let's make it inconsistent with virtually every other named NT primitive. >* We can't expose %INTERNAL_NOTIFICATION_SYSTEM% to the rest of the world because we don't want to fill out paperwork and we're not losing sales because we only have 1990s-era Win32 APIs available publicly. >* We can't touch DCOM. So we create another %C#_REMOTING_FLAVOR_OF_THE_WEEK%! >* XNA. Need I say more? >* Why would anyone need an archive format that supports files larger than 2GB? >* Let's support symbolic links, but make sure that nobody can use them so we don't get blamed for security vulnerabilities (Great! Now we get to look sage and responsible!) >* We can't touch Source Depot, so let's hack together SDX! >* We can't touch SDX, so let's pretend for four releases that we're moving to TFS while not actually changing anything! >* Oh god, the NTFS code is a purple opium-fueled Victorian horror novel that uses global recursive locks and SEH for flow control. Let's write ReFs instead. (And hey, let's start by copying and pasting the NTFS source code and removing half the features! Then let's add checksums, because checksums are cool, right, and now with checksums we're just as good as ZFS? Right? And who needs quotas anyway?) >* We just can't be fucked to implement C11 support, and variadic templates were just too hard to implement in a year. (But ohmygosh we turned "^" into a reference-counted pointer operator. Oh, and what's a reference cycle?)
> I'm a developer in Windows and contribute to the NT kernel. (Proof: the SHA1 hash of revision #102 of [Edit: filename redacted] is [Edit: hash redacted].) I'm posting through Tor for obvious reasons.
> Windows is indeed slower than other operating systems in many scenarios, and the gap is worsening. The cause of the problem is social. There's almost none of the improvement for its own sake, for the sake of glory, that you see in the Linux world.
> Granted, occasionally one sees naive people try to make things better. These people almost always fail. We can and do improve performance for specific scenarios that people with the ability to allocate resources believe impact business goals, but this work is Sisyphean. There's no formal or informal program of systemic performance improvement. We started caring about security because pre-SP3 Windows XP was an existential threat to the business. Our low performance is not an existential threat to the business.
> See, component owners are generally openly hostile to outside patches: if you're a dev, accepting an outside patch makes your lead angry (due to the need to maintain this patch and to justify in in shiproom the unplanned design change), makes test angry (because test is on the hook for making sure the change doesn't break anything, and you just made work for them), and PM is angry (due to the schedule implications of code churn). There's just no incentive to accept changes from outside your own team. You can always find a reason to say "no", and you have very little incentive to say "yes".
> There's also little incentive to create changes in the first place. On linux-kernel, if you improve the performance of directory traversal by a consistent 5%, you're praised and thanked. Here, if you do that and you're not on the object manager team, then even if you do get your code past the Ob owners and into the tree, your own management doesn't care. Yes, making a massive improvement will get you noticed by senior people and could be a boon for your career, but the improvement has to be very large to attract that kind of attention. Incremental improvements just annoy people and are, at best, neutral for your career. If you're unlucky and you tell your lead about how you improved performance of some other component on the system, he'll just ask you whether you can accelerate your bug glide.
> Is it any wonder that people stop trying to do unplanned work after a little while?
> Another reason for the quality gap is that that we've been having trouble keeping talented people. Google and other large Seattle-area companies keep poaching our best, most experienced developers, and we hire youths straight from college to replace them. You find SDEs and SDE IIs maintaining hugely import systems. These developers mean well and are usually adequately intelligent, but they don't understand why certain decisions were made, don't have a thorough understanding of the intricate details of how their systems work, and most importantly, don't want to change anything that already works.
> These junior developers also have a tendency to make improvements to the system by implementing brand-new features instead of improving old ones. Look at recent Microsoft releases: we don't fix old features, but accrete new ones. New features help much more at review time than improvements to old ones.
> (That's literally the explanation for PowerShell. Many of us wanted to improve cmd.exe, but couldn't.)
> More examples:
> * We can't touch named pipes. Let's add %INTERNAL_NOTIFICATION_SYSTEM%! And let's make it inconsistent with virtually every other named NT primitive.
> * We can't expose %INTERNAL_NOTIFICATION_SYSTEM% to the rest of the world because we don't want to fill out paperwork and we're not losing sales because we only have 1990s-era Win32 APIs available publicly.
> * We can't touch DCOM. So we create another %C#_REMOTING_FLAVOR_OF_THE_WEEK%!
> * XNA. Need I say more?
> * Why would anyone need an archive format that supports files larger than 2GB?
> * Let's support symbolic links, but make sure that nobody can use them so we don't get blamed for security vulnerabilities (Great! Now we get to look sage and responsible!)
> * We can't touch Source Depot, so let's hack together SDX!
> * We can't touch SDX, so let's pretend for four releases that we're moving to TFS while not actually changing anything!
> * Oh god, the NTFS code is a purple opium-fueled Victorian horror novel that uses global recursive locks and SEH for flow control. Let's write ReFs instead. (And hey, let's start by copying and pasting the NTFS source code and removing half the features! Then let's add checksums, because checksums are cool, right, and now with checksums we're just as good as ZFS? Right? And who needs quotas anyway?)
> * We just can't be fucked to implement C11 support, and variadic templates were just too hard to implement in a year. (But ohmygosh we turned "^" into a reference-counted pointer operator. Oh, and what's a reference cycle?)
No matches.
I wonder how many people can look past the kernel when discussing what this is and how it’s different from Android?