Bash on Ubuntu on Windows
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
In most computer nowadays you cannot code (tables and smartphones), are computers doomed to be an expensive tool for few "nerd" ? What will be the impact on computer literacy ?
http://boingboing.net/2012/08/23/civilwar.html
http://boingboing.net/2012/01/10/lockdown.html
...and RMS predicted this almost 20 years ago:
http://www.gnu.org/philosophy/right-to-read.en.html
I think the rise of P2P, file sharing, and the openness of the Internet in the last decade significantly narrowed the developer-user gap; and it's been growing since then, motivated by corporations' desire to maintain control over their users.
I think that's only one factor, and not a majority one.
Most users don't want to have to deal with "how it works". They want a simple, easy to use tool that works reliably... And they want to call someone to "fix it" when it "breaks". That's how it works with plumbing, cars, landline phones, stereo components, televisions, and all the electronics they've ever used.
The exceptions are computers and some smartphones, which can present cryptic error messages, have weird things in their settings, and generally make a "dumb user" feel out of their element. Think about the confusion users feel when confronted with a funny noise in their car. "I'm not a mechanic, what does that noise mean?" is no different from "I'm not a computer person, what does that error mean?" What's more, the meaning of the question is not "what, mechanically/electrically, is at fault?" It is "how much time/money will it cost to get it fixed?"
It's not just a small preference, either - the height of luxury are "push button" services that "just work". Go to a high end hotel, and your room phone has just one button. Top end consumer products of all sorts struggle to be an easy-to-use "appliance". A dumbed down user interface without developer tools is user preference, it's status, it's customer comfort and pride, all tied into one.
So 99% of companies end up designing their interfaces like that hotel phone: http://salestores.com/stores/images/images_747/IPN330091.jpg
IMO the most impressive thing about OSX is how well it supports both audiences: it feels like a push-button, high luxury, comfortable, easy device to my mother. But under the hood there are great logs and a solid BSD-based operating system model. It comes prepackaged with a lot of developer tools, hidden in a place where I would look right away, but my mother would never notice.
Sure, some companies use software to limit and control their customers (cough cough Sony), usually with sharp legal/lobbyist teeth to enforce that control. But 99% of companies out there just want to make their users feel comfortable, high status, and competent to use their device.
While I agree with RMS that this split is inevitable, I don't believe it's about control. It's about two distinct market segments: auto enthusiasts who want control over the torque settings in their high end car, and people who just want a car that fucking works. Chefs who want sector-by-sector control over their oven's heating profile, and people who just want to be able to cook a fucking roast without burning it.
Tablets and phones are consumption. You can't do any serious work on them - development included.
This is why laptops and computers have stuck around in spite of the proliferation of cheap, tiny, elegant consumption devices.
So no, I don't think laptops and computers will go away for non-nerds, just for people who don't produce anything.
And a lot of music creation apps exist for tablets/phones.
This production/consumption divide is too rigid.
Now don't get me wrong - while I only use the two a little, I think they're fine. It's communication, an important part of human experience. But, at least in my mind, Instagram and Snapchat fall firmly into the same group as browsing Facebook or 9gag, as opposed to e.g. making a let's play video or a comic strip.
Yes, there are ways to take photos and create music on tablets and phones. You can do some basic editing on them, even. But the "professional" tools for photography and music, with all the bells and whistles you can think of, are still dominated by laptop / desktop computer programs. (The dominant programs being Photoshop for images, and DAWs like Logic, Ableton Live, and Pro Tools for music.)
The distinction between "production" and "consumption" devices is indeed kind of too rigid in a sense that, of course, professionals will utilize the creative tools that come on tablets and phones, even if the desktop / laptop programs are the primary tool. Tablets also can shine as an extended interface for desktop programs. (EG: Logic Pro (and others) have apps that turns an iPad into a remote controller for the main DAW. There are programs like Astropad that turn your iPad into a Wacom-like tablet for Photoshop, etc.)
The obstacle is interface. The fine-tuned control of a tablet or (especially) a phone is much poorer than using a mouse and keyboard with a large screen. Until that gets resolved, I doubt desktops / laptops will go anywhere.
Development isn't done on tablets because the input devices we have to make code are limited to a keyboard, and most people think text files are code, rather than a serialisation/deserialisation format for an AST.
You could easily build an AST with gestures and speech rather than tapping buttons, and I think in 10-20 years time that's how we'll make software.
I doubt it. Perhaps we'll be making ASTs by writing (i.e. drawing symbols with styli or pens), but I don't think we'll be doing it via gestures and speech. There's a reason that we don't teach math via interpretive dance.
I will bet you £100 that we won't be programming by speech and gestures in even 25 years time as the disadvantages are enormous.
No. Because of the Glorious PC Master Race - mods, trainers, hacks, overlays etc - these all need dev and root access.
Btw- game modding, cracking, save game editing etc - are the best gateway drugs towards full blown IT career.
http://www.ubuntu.com/tablet/developers https://plus.google.com/u/0/105864202742705090915/posts/jNvZ...
Hell, even lack of window management in iOS/Android systems is making UX much more easier to understand for majority of users I know. My granddad, who was an excellent mechanical engineer, have been using computers for the last 20 years, and he still struggles with click/double-click distinction.
Have you tried teaching him that? I highly doubt an old person, especially one with engineering background, will have trouble with understanding the distinction if someone bothers explaining it to them.
Or in general - it's surprising how much non-tech people can understand about technology if someone bothers to sit down with them and explain the concepts to them. Usually the reason they don't learn this stuff themselves is the typical human impulse of "if I haven't figured it out in 3 seconds flat, it's too difficult and I won't understand it".
Only if you want to keep them illiterate, which companies are more than happy to do since it means they can be more easily persuaded and dependent consumers.
You sound like a guy who teaches his kid to swim by throwing him in the stormy sea.
I don't think anyone ever has.
So here's just a few ways you can code on Android:
QPython: https://play.google.com/store/apps/details?id=com.hipipal.qp...
AIDE (Java): https://play.google.com/store/apps/details?id=com.aide.ui&hl...
Terminal IDE: https://play.google.com/store/apps/details?id=com.spartacusr...
If all else fails, just deploy debian with Linux Deploy: https://play.google.com/store/apps/details?id=ru.meefik.linu...
If desktops become more expensive, it'll just mean people are more motivated to make tools like this. Android phones and tablets are basically treated as cheap commodities and there's an extremely competitive market for them, if anything, the entry price has gone down.
Now, admittedly I'm not sure how this situation is on iOS, but maybe someone could link similar tools on there?
For one thing, a Raspberry Pi is more powerful than the Sinclair ZX-81, Apple IIe, or Atari 400/800 I had access to back then, and much cheaper.
The tablet I currently own cost me $80 and came with a C# compiler preinstalled! (Maybe that's an extreme example: It is a Windows tablet, and Android or iOS only come with JavaScript JIT compilers preinstalled.)
While being able to play around with Project Euler can be fun, it amounts to "I can run a Turing-machine simulator" and doesn't represent anything more than a tiny fraction of what people want to do with computers when they say they want to "code". You may as well be playing one of the numerous puzzle games that involve much of the same concepts.
To use your iPod Touch as an example, if it were more like a traditional desktop computer, you would also be able to do things like write an app to manage your music playlists.
The tablet I currently own cost me $80 and came with a C# compiler preinstalled! (Maybe that's an extreme example: It is a Windows tablet, and Android or iOS only come with JavaScript JIT compilers preinstalled.)
Not surprising if it's a Windows tablet based on the PC architecture - those are far closer to the traditional desktop than iDevices and Androids. If by C# compiler you're referring to the one that comes with the .NET framework, that's been there since the first versions; pity it's not so well known with MS trying to push VS as hard as possible...
Yes, you can. See https://play.google.com/store/apps/details?id=com.aide.ui
During one weekend in which my only options were android devices, I was pleasantly surprised by the packages available in termux. With tmux, git, and ssh installed, I mounted the tablet at the right height and connected a quality keyboard via usb. I actually forgot that I was coding on a tablet!
The phone experience was far more sensitive to maintaining good posture throughout, but being strongly incentivized to keep good posture actually made the experience more pleasant in a way. However, this particular phone was around 1280x720 I believe - seeing individual pixels again, and being pixel-limited (not physical size limited) in the use of panes in tmux were the only facets I found truly unpleasant.
I'm eager to try coding with a high res VR headset.
It seems like a vast majority of software developers, consciously or not, do not wish for software development to improve beyond a certain point as they fear it would become too accessible and therefore lower the value of their skills. The truth is that we actively make programming as difficult as possible, and everybody loses. I can understand that writing code as text would make sense 50 years ago, but there is no excuse for this today.
Consumer UI is now reaching the 3rd dimension with AR and VR, while software development is stuck in the 1st dimension. A long linear piece of string. It is difficult to believe that those who have the power to create great consumer UX are completely blind to improving their own. Software development has some of the worst UX ever.
The solution to all of those issues has been known for a while, and is dead simple to understand. We need to create a new communication platform, powered by ideas from logic programming and the semantic web. Think of it as 2 huge semantic knowledge graphs, the first describing the real state of the world, the second describing the ideal state of the world. Build a UI on top of it (which should feel more like a graph-oriented Excel than RDF/Prolog) to let people, agents and IoT devices communicate "what is" and "what should be". Then, all it takes is an inference algorithm that can match providers with seekers, get them to commit to some set of world changes (through some sort of contract), and let people manage and track the commitments/tasks they're expected to get done. That's it, that replaces 80% of software needs. Thank you very much.
Knowledge Graph -> Semantic Marketplace -> Smart Contracts -> Task Management
Perhaps I should take this opportunity to make that happen.
Given that Microsoft supported Oracle's view that the structure, sequence, and organization of the Java programming interfaces were covered by copyright law, then surely they would also agree that the same holds true for the Linux kernel system call interfaces.
I don't like the APIs-are-copyrightable decision, but given that's the current state, why aren't we talking about how this is a violation of the Linux kernel copyright license -- the GPL?
One legal thing that I'm also wondering about is the "Linux" trademark. I thought the Linux Foundation kept close tabs on how you were allowed to use the trademark, and one requirement was that the Linux kernel was actually involved?
This probably explains why they never talk about Linux (at least I never saw it), but always about Ubuntu. I guess they have an agreement with Canonical.
The whole "they're a big company...don't you think they've thought of this!" argument (and its many "do you really think they'll lose?" variations) is always a fallacy. That doesn't make the argument about the copyright of ABIs valid, but at the same time the notion that Microsoft is big therefore they must be right is absurd.
Microsoft's lawyers likely decided that the move is "worth the risk". But they wouldn't be able to be 100% sure that it's either legal or illegal anyway. You can only be 100% sure after someone challenges you in Court, and then judges decide a certain way.
but legally speaking, they seem to have adopted that culture.
Not sure your understanding is correct, but in any case is that not precisely what Wine does on Linux when running Windows apps? Are you worried about Windows copyright violations with Wine? From Wine webpage, "Wine translates Windows API calls into POSIX calls on-the-fly. . ." [1]
Linux, on the other hand, provides exactly that, and this wrapper makes it so that you can actually run "movl $1, %eax; movl $0, %ebx; int $0x80" and it will actually call the equivalent of exit(0).
Would be very interesting to see a Wine based on this concept instead...
What's interesting to me right now is whether or not Microsoft is saying it's OK in one context (linux interfaces on windows), and not the other (java interfaces on android), and why are they different?
A system call is a function entry point. The code executed when those functions are called is GPL licensed, and Microsoft wrote that from scratch.
This is not going to happen. And this is not a too bad news, because this might give us leverage (by estoppel) if MS ever wants to litigate against free software on the theory that reimplementing API propagates copyright.
The GPL is not that expansive, it only extends to programs built upon GPL-licensed stuff, not for programs that just happen to have a GPL application running on them.
A compilation of a covered work with other separate and independent works,
which are not by their nature extensions of the covered work, and which
are not combined with it such as to form a larger program, in or on a
volume of a storage or distribution medium, is called an “aggregate”
if the compilation and its resulting copyright are not used to limit
the access or legal rights of the compilation's users beyond what the
individual works permit. Inclusion of a covered work in an aggregate
does not cause this License to apply to the other parts of the aggregate./s
The option to run unmodified executables is nice if you have closed-source linux binaries, but they are rare, and this is directed towards developers and not deployment anyway (where this might be a useful feature).
When I heard "Linux subsystem", I was hoping for a fuller integration. Mapping Linux users to Windows users, Linux processes to Windows processes etc.. I want to do "top" in a cmd.exe window and see windows and linux processes. Or for a more useful example, I want to use bash scripts to automate windows tools, e.g. hairy VC++ builds. And I thought it would be possible to throw a dlopen in a Linux program and load Windows DLLs. Since I don't need to run unmodified Linux binaries, I don't see what this brings to me over cygwin.
I am hoping though that this might be a bit more stable (due to ubuntu packages) and faster than Cygwin, and that it might push improvements of the native Windows "console" window.
* https://news.ycombinator.com/item?id=11416392
... would you, too, agree with a call for its resurrection?
Most Linux programmers I know aren't Windows devs as much as the MS shill team would like everyone on social media to believe.
You don't have to be part of the FOSS crowd to support FOSS. I'd wager the majority of the programmers you know would be ecstatic for Windows or OS X to go open source, and if they use OS X/iOS they probably do care about their privacy.
I don't know a single developer that uses a windows phone or a Windows workstation purely out of choice, most devs I know that are ingrained in Windows are using it because they have to.
Stack overflow statistics show that programmers disproportionately choose OS X and Linux over Windows when compared to typical desktop usage (Linux use skyrockets among programmers compared to desktop).
These "Linux programmers who want Windows" only exist on the internet as far as I can tell. No one actually wants to use Windows.
The few coders that I know that are part of the FOSS crowd, have their ThinkPads or Dell XPS Developer Editions with Gentoo,Ubuntu or Arch. This isn't for them, its for the ones already on Windows or OSX.
OS X and Linux with X11 or even Wayland are easily 20 years behind windows in terms of UI responsiveness and snappiness. The constant input lag of unix desktops always drives me back to windows for my workstations, although I am a fullheart windows server hater and despite everything that comes with it. It's stable, extremely fast and when edited/hacked right also privacy aware.
Mapping the users is possible and "SFU" did this, with a couple of caveats (Windows requires group and user names to be different, while UNIX systems often have groups with the same name as users).
I don't think this is a Linux or GNOME killer, but it might put a dent in Cygwin and git-bash.
I think Microsoft can do something similar.
Performs the default action as if it were a Linux process. Mostly terminate or ignore.
What about more basic things, like moving files around, etc.?
I'd be happy if I never had to write a (Windows) batch script again...
No. Execution mode incompatible - see e.g. https://github.com/wishstudio/flinux/wiki/Difference-between... for details.
What would really interest me: how was fork() implemented by MS here? The same method as http://stackoverflow.com/questions/985281/what-is-the-closes... or have different interfaces been created?
can you check what happens after you wake from sleep/hibernation? are those apps still fully functioning?
glxinfo reports
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
OpenGL version string: 2.1 Mesa 10.1.3
OpenGL shading language version string: 1.30
glxgears works for about a second, then crashes: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server "localhost:0.0"
after 732 requests (732 known processed) with 0 events remaining.
When i run it from strace, it keeps running.What's illustrative for the dominance of *NIXes in development are the number of projects on Github that contain only +NIX installation instructions and no Windows instructions (again, anecdata).
So if Windows wants to remain competitive, they need to retain developers. And as the +nix way of developing seems to be dominant now in quite a number of fields, Microsoft needs to adapt.
Why, you're asking, do I think that the +NIX way of development is dominant today? In a nutshell, Web -> Unix Servers -> POSIX shells -> Languages that work best with POSIX -> OSs that are POSIX-compliant.
Edit: Asterisks don't work as expected here. At least not in a Markdown-compatible way.
That being said, I'm typing this comment my workstation running Linux and I for one am getting very tired of this year of the Linux desktop joke.
What OS you run is an individual choice, stop trying to declare a single winner.
Realistically linux did hit it big, but on a phone OS. It's now one of the most installed kernels in the world, but its brand is hidden. Linux is also incredibly important in the server space, and everyone knows this.
Linux will never have its year on the desktop in my opinion, but it will still be all over the place in the server/phone space. It just won out in other areas than the desktop.
They were not actually, this is a myth. A few tech "journalists" wrote such articles which people started making fun of. But no, regular Linux users never claimed that, or at least not in any significant number that I know of.
You != masses.
There might not be a clear single winner, but there is a clear single loser. Statistically speaking.
Myself and a lot of other people are using GNU/Linux and other libre operating systems with great pleasure and, finally, growing hardware support. I could not care less if 90% of desktops are Windows systems or if an additional 9% are OS X machines or whatever.
tl;dr: Just use what works for you. If it supports your ethical values, itäs even better!
They lost me with all the rewriteritis and monodaemonisation that followed. I switched to MacOS (hackintosh) and was very happy for a while, since it could run all the Unix stuff, most of the productivity stuff (MS Office), and many games. It was for a long time the most plain, conservative OS (while Windows was going crazy with 8).
But recently, I've found Windows to be the OS that "just works" and gets out of my way - which was pretty surprising to me.
If anybody killed alternative desktops, it is not MS, but the desktops themselves.
I've had the opposite experience. Windows does not "just work" and it certainly does not "stay out of the way".
I have USB headphones I can't use in Windows because they connect but Windows doesn't let me switch to them. When I plug in an external monitor my OS comes to a crawl and it doesn't speed back up until I restart the whole thing. When I unplug a monitor it loses my windows.
And did you hear the story about the guy who lost his job because Windows decided to update the .NET framework right before he was scheduled to do a presentation at a business meeting? Doesn't sound like Windows stays out of the way to me.
I wish Windows "just worked" but it doesn't. It breaks all the time unless you're a power user. Giving my parents Linux was the best thing I ever did for them because it turned their laptops from a source of constant frustration to an always-on communication machine. We went from hundreds of ads and dozens of toolbars on windows to a Linux machine that just works.
Now I'm just trying to get my dad to switch to Linux for work so he doesn't have to install his printer drivers again every time he wants to print something. All he uses for work is Chrome any way.
For most people, this would be a problem with the USB headphones, not with Windows. On the other hand, if the USB headphones work well in Windows but not in Ubuntu, then it's a problem with Ubuntu, not the USB headphones.
This is why it's impossible to have a rational debate about the state of the "Linux desktop".
All hail Winux though. (That's the name for this mix I came up with.)
Before you downvote this without thinking ... consider, for example, KDE is severely understaffed and this will deplete them further. Who will bother with X.org bugs and drivers now? What's the point? Who is your target audience? You need to drink a real big dose of Stallman kool-aid to continue with Linux if this thing on Windows works as promised.
I have been using Linux solely on my laptop since 2004. I am sick of the constant driver problems. Yes, yes, you can connect to your home router or the router in the cafe. Now go and try and connect to an enterprise network. Perhaps with VPN.
But it has been improving all the time with every single release. The problem is that you (and millions of people who were looking for Linux desktop to "win") are just not excited anymore since new form factors (phones, tablets) arrived.
But I actually think Linux desktop is a winner. There are several high quality desktop enviroments suitable for all kinds of use cases.
Yeah we are not dominating the world. That was a short naive dream in the early 2000. But we have awesome desktops and thats what matters.
Disclaimer: minor KDE contributor but these were my thoughts not KDE's.
Btw, give KDE a try its so good these days :)
It becomes even more approachable by "Winux". Let people learn the basic of the CLI and get comfy with more open source tools -- then reinstall your computer to a Linux distro (and put your Win-only apps in a VM or on Wine) is a small move.
I've deemed it "Frankenstein OS" because they've sewn a whole bunch of parts together to make an unwieldy monster that doesn't quite work as good as the individual pieces did on their own.
The main advantage over a VM is no resource partitioning: on a 4GB RAM tablet with 64GB eMMC, you can't allocate more than 2GB RAM to a VM without trouble, and putting 20GB of disk aside for it is also a pain., and much improved power efficiency (even an idle VM drastically reduces battery life, while Ubuntu for Windows doesn't).
Compared to Cygwin: a lot more packages are available, a lot more just works out of the box, and you can painlessly use online tutorials for Linux, which often assume Ubuntu and don't consider Cygwin a target platform.
Don't get me wrong, I've been fine using a "remote" VM machine locally for linux, and a lot of my work the past few years has been that way (CIFS in the VM, to run a gui editor on the desktop), but to be able to run closer to native is a good thing imho... hopefully it stays well supported.
The native Windows versions of git and CMake can be awfully slow [1].
[1]: https://gist.github.com/jibsen/7ebeddde3bc2bfd421b96ae53a824...
I got tired of running Linux directly on my desktop. Compiz crashes (worked in 14.04, not working in 14.10, started working again in 15.04, not working in 15.10...), can't keep my select sound output, terrible font rendering, awful HiDPI support, graphics drivers are a mess, and on and on...
Since I basically just need the non-graphical parts of Linux (Bash + Tmux + Vim) I'm very happy with this setup.
PS: Forgot to say that I have a very beefy machine (Skylake Core i7 4Ghz, 32GB DDR4, fastest consumer NVMe SSD from Samsung) but I've found that this setup works well on basically any machine.
For this use case, "Ubuntu on Windows" seems to be a nice improvement.
It's a very convenient arrangement for developing web apps/servers. I have the servers running on FBSD which can be accessed from a browser on the Windows host. This perfectly replicates connecting to a remote server, so when the app is working properly and committed to the repo on the remote host, it's almost guaranteed to work as intended!
When I acquired the SP2 I originally thought I'd dual boot. Turns out that's difficult to accomplish, but in a way using Hyper-V is better because I have Windows and FBSD running at the same time. Of course the VM imposes limits so not optimum for every purpose but good enough for my uses.
I should mention that Cygwin is installed as well. Runs Bash nicely in a terminal, and a good way to ssh to remote servers as well as FBSD in Hyper-V.
msysGit is also handy when using a Windows host.
Rsync is straightforward and has fewer permissions issues to work out when sharing with Windows, but is uni-directional. NFS is a true share rather than a sync, but restricts what you can do to the directories on the guest in terms of permissions. There are other options too, like bindfs and unison, but I haven't personally explored those in depth.
I sound like a Vagrant fanboy or shareholder but I'm just a very happy dev since I started using this setup.
edit: Specifically, I want to understand to what extent - if any - will it allow some of the horror problems you have working with certain Python libraries (compiling Numpy on Windows is like pulling teeth) to be a thing of the past. I'd be more than happy to work in WinBash for Python if it means having the easy Linux install processes available for some of the more scientific packages.
Python on Windows is painful mostly because of the amount of binary packages that have to be compiled since distributing binary packages hasn't been in vogue until only recently with Python. You can save a ton of trouble using something like Anaconda, or honestly just run a Linux VM. If you're compiling numpy you're doing something wrong IMHO--use a prebuilt version that's optimized for your processor (ideally using Intel's commercial compiler with full SSE, etc. optimizations).
Moreover, getting stuff like OpenCV to work is a pain, and I find that the deep learning packages (e.g.: theano) get even worse.
You might need http://www.straightrunning.com/XmingNotes/ for GUI.
> No new system calls are added for cgroups - all support for querying and modifying cgroups is via this cgroup file system.
Per https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.t...
function directory-summary($dir=".") {
get-childitem $dir |
% { $f = $_ ;
get-childitem -r $_.FullName |
measure-object -property length -sum |
select @{Name="Name";Expression={$f}},Sum}
}
I could get a shorter non exact version if I was on windows.New-Alias -Name "du" -Value "Directory-Summary"
> Get-ChildItem C:\windows | Measure-Object -property length -sum
Count : 28
Average :
Sum : 6407920
Maximum :
Minimum :
Property : length
For 'df': > get-WmiObject win32_logicaldisk
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 21796540416
Size : 31685865472
VolumeName :
DeviceID : D:
DriveType : 5
ProviderName :
FreeSpace :
Size :
VolumeName :
DeviceID : Z:
DriveType : 4
ProviderName : \\veertu\share
FreeSpace : 44674220032
Size : 399999991808
VolumeName : VeertuFSFor du:
ls C:\Windows\ | measure length -sum
For df: gwmi win32_logicaldiskThey have neglected the CLI for years and powershell while I guess it has its uses for scripting is light years behind *nix stuff as an interactive shell.
You can -accepteula from the command line and the "installation" is downloading and extracting a zip file. If there's an internet connection, you could even run it straight off of Micrsoft's servers via SMB.
[1] https://en.wikipedia.org/wiki/Architecture_of_Windows_NT
It's heavily marketed as "bash on Windows", and that "bash" is a GNU Bourne Again Shell, a part of GNU Operating System, developed under GNU Project.
Please invest some time to understand what it's about technically.
If you like Ubuntu/Linux more, then just install Ubuntu/Linux on the computer without Windows. Why go through the additional layer of Windows?
Perhaps the use case is limited to people who need to run Windows/Mac-only software like AutoCAD or some Adobe software.
This is exactly the type of thing that many people want.
I used KDE 3 and Gnome 2 for many years (Windows also). and switched to LXDE/OpenBox after KDE 4 and Gnome 3 turned out to be unusable.
Although my current desktop is very simple it has become one of my best desktops ever because it can be configured to the extreme. It is very suitable for developers who want a clean workspace which doesn't get in their way like all the other modern desktops (Win 8+ also) which focus more on eye candy than usability.
For this project, I could choose the programming environment. Well, my tool of choice, for the past 10 years, has been Rails. I prototyped the application on my MBP within 10 hours, but needed to be able to work on the site with my corporate laptop, so I setup a Linux VM, and setup 2 networks (one host-only to share files, and one NAT'd to get through the corporate firewall), configured the folder shares, and got everything going the "VirtualBox" way. It's a pain.
Like a lot of Fortune 500's, the IT resources are locked down to the point of being combative. There's no way I can take my MBP to the office and work on the company LAN. (You can get an exception, but you have to ask for special permission every single day.) This project SUPPOSES to allow me to open a shell, install RVM, install Ruby and git, download my sources, bundle install, and do `rails -s` to do development. (The application is just using sqlite for the database, so I don't even need to mess with MySQL for now.) If everything works like it should, I can just use Sublime Text 3 as my editor to work on the files, and host on the Linux subsystem. When it's time, I can `git push` my sources to the TFS server, and deploy them on the Linux VM running in Azure.
So that was kind of long, but this is how I see it working and fitting into my world. Against my better judgement, I'm letting my gaming rig (re)upgrade to 10 to try this out. I don't know when my company's IT department will standardize on Windows 10; we just got 8 last year. I just want to see if this can really fill the niche it supposes.
Or many, many games.
Having people in the company run different OSes cost a lot of money because of the duplicate tools that has to be adapted or created for different OSes.
If yes then...well...same can happen to any kind of software / project
I'm not worried though. This is a neat hack, and may be useful for some people who for whatever personal reason won't switch to Linux proper, but it will not gain anything like the dominance required to push through incompatibilities. Unix applications already deal with a heterogenous environment, to say the least, and Winux will just be one more participant; not a particularly important one at that.
Everyone migrates, draining valuable developer resources from projects like cygwin, mingw and colinux and others. When Microsoft kills it, they will have killed off not only their project, but also the community projects that could replace it.
Meanwhile, because the NT kernel has vastly different performance characteristics (e.g., bad forking performance), we're going to see an increase of "Linux/NT" optimized software that will perform poorly on native Linux kernels, pressuring more developers (and ops) to buy into Microsoft's effectively proprietary solution, completing a vendor lock-in that will continue to bleed the industry long after it stopped being beneficial (see also, every other instance of vendor lock-in ever).
A commenter here mentioned having difficulties installing java, however:
> if you go the apt-get route you get a sha256sum mismatch on both java7 & java8. If you try to be clever and manually download it and throw it in the cache, same story. If you try to be really really clever and manually download it and try to manually extract the tar it throws a bunch of cannot create symlink: invalid argument errors. I spent a good 2+ hours trying to force it to install in various ways. For now at least it seems java is not meant to be on Windows Bash.
I guess this bash on ubuntu on windows won't be available for Windows 7?
Use preview builds at your own risk, though.
Has anyone come up with a solution for that yet? I wonder if you can install something like xterm, and get that running outside of Command Prompt...
Currently updates postpone temporary license expiration, but I can't find an answer how licensing work actually. I only run Windows in VM and I don't want to mess my 8.1 system with genuine license.
It works if I try as a local user on the same machine. Also Windows Store otherwise works fine for that domain user.
- Find with exec , xargs is supported?
1125899906857921 -rwxrwxrwx 1 root root 21 Apr 7 07:56 test2.txt
562949953436608 -rwxrwxrwx 1 root root 13 Apr 7 07:56 test.txt
Two files created seconds apart. Some sort of internal NTFS construct, maybe?(1) https://developer.microsoft.com/en-us/microsoft-edge/tools/v...
https://msdn.microsoft.com/en-us/virtualization/windowsconta...
Too bad, that would really be a game changer for me. Running bash itself though... yeah, ok, whatever. But maybe I'm not the target audience.
Why is that? Because the containers are running in Hyper-V? From a user standpoint I doubt you'd notice any difference, especially once Hyper-V is supported in Windows 10:
https://blogs.technet.microsoft.com/windowsserver/2016/04/04...
Does it have all the same issues as gitbash/cygwin/mingw/winpty (garbling, bad resizing, etc) or is there finally a decent local terminal on Windows?
The ability to do 'curl some-site.com | bash' or ssh <hostname> 'curl some-site.com | bash' without having to worry about platform compatibility would be amazing.
Microsoft went to great lengths to disallow these kind of one-liners in PowerShell (you need to explicitly add -executionpolicy bypass to even run a script), so apparently they are concerned about users executing random scripts off the net.
OTOH, yes, being able to assume bash on a user's installation would be amazing of course...
Yes and I fucking hate it, way to cut of useful functionality at the knees.
powershell.exe -ExecutionPolicy RemoteSigned -File whatever.ps1There's little practical distinction between piping a shell script from a random site or downloading a binary from it.
Installing a package manually vetted by distribution maintainers, signed and verified with GPG, is the same as blindly running a random script off the internet?
I don't think you appreciate how much effort Linux distributions invested into creating safe ways of distributing software.
`/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in...
`\curl -sSL https://get.rvm.io | bash`
https://www.npmjs.com/package/nodejs-oneline/tutorial
`curl -sL https://deb.nodesource.com/setup | sudo -E bash -z`
It is a trend. I can find more examples, the above is just places I remember seeing this behaviour.
Not worth it if you're just wanting to try it out, but if you want to test it and feed back, then knock yourself out!
Will surely be installed automatically like the November Update.
I think you will still then have to enable dev mode and install it as a feature as per the OP link.
I have Win 7, so I was thinking of running a VM with Win 10 to try it out (once it is officially released).
It sounds like it runs X/Windows which is fantastic!
The initial "bash" command freezes and doesn't download anything.
From: Alien
To: SomeWindowsBashUser
Attachment: naked.jpg
naked.jpg
------------------------
#!/bin/bash
rm -rf /
------------------------
-MSFT
The chromebook pixel has been my only laptop for three years, and it's been rock solid. I never spend time troubleshooting. Setup upon upgrading from the 2013 to the 2015 pixel took about two minutes.
At this point, I'd prefer to use a chromebook rather than loading ubuntu on a laptop, because the stability of the pixel has saved me so much time.
I'm aware not all reviews is equal, so pointing out errors or adding better resources would be appreciated.
[0]: http://www.techradar.com/reviews/pc-mac/laptops-portable-pcs...
[1]: http://www.trustedreviews.com/12-inch-macbook-2015-review-ba...
[2]: http://www.notebookcheck.net/Apple-MacBook-Air-13-2015-Noteb...
I'd rather hold out for the next iteration.