从Windows转向* nix编程平台 [英] shifting from windows to *nix programming platform

查看:80
本文介绍了从Windows转向* nix编程平台的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Windows上花费超过10年后,如何迁移到* nix平台?哪种口味很容易处理,使我更舒适,然后也许我可以改用标准的* nix口味了? 我已经推迟了一段时间.额外的帮助可以帮助我.

解决方案

Linux是最易访问的,并且具有最成熟的桌面功能. BSD ( 口味)具有较少的用户空间负担,并且更易于使用从根本上理解.在这方面,它更像是传统的Unix,而不是现代的Linux发行版.有些人可能认为这是一件好事(从某些角度来看是不错的),但对于熟悉Windows的人来说却会更加陌生.

主要的桌面发行版是 Ubuntu 这些都是功能强大的系统,但是它们的用户空间体系结构有所不同.桌面环境的工具和系统安全性的默认配置在Ubuntu上的工作方式与大多数其他Linux上的有所不同.或Unix风格,但这与开发无关.从用户的角度来看,这两个都是一个好的开始.

从开发人员的角度来看,Unix和Linux的所有现代风格都非常相似,并且实质上共享相同的开发人员工具链.如果要从程序员的角度了解系统,则几乎没有什么选择.

大多数Unix编程都可以通过程序员的编辑器(例如 vim 这篇文章讨论其他几种编辑器,这些编辑器提供与普通Windows工具更接近的用户体验.

有几种IDE,例如 Eclipse ,对于那些退出Windows/Visual Studio的人可能更感兴趣

Stackoverflow上一些讨论linux/unix资源的帖子是:

如果您有时间想真正了解一下细节,请 Linux From Scratch 是一个手工完成Linux安装的教程.这是深入学习的好方法.

对于编程,请从K& R和上面链接的问题中提到的一些资源中了解C/unix. W理查德·史蒂文斯(W Richard Stevens)的 Unix网络编程卷. 1 和2.

如果您还不熟悉诸如Perl或Python之类的动态语言,这也是一件有用的事情.作为奖励,您可以从 Activestate 获得以上两个方面的良好Windows端口,这意味着这些技能对这两个平台.

如果您使用C ++,请查看 QT.可以说这是最好的跨平台市场上(再次)的GUI工具包具有可转移回Windows的技能和工具链的优势.还有几个 关于该主题的书,并且(作为奖励)它也 Cygwin 是在Windows上运行的Unix仿真层,并提供了与Unix大致相同的环境.在结构上,Cygwin是glibc的移植,而crt(GNU工具链的基础库)是Win32之上的适配器.此仿真层使将Unix/Linux应用程序轻松移植到Cygwin上很容易.该平台附带了一套非常完整的软件-本质上是在Windows内核上托管的完整linux发行版.它使您可以在Windows上以类似Unix的方式工作,而不必维护单独的操作系统安装.如果您不想运行VM,多台引导程序或多台PC,这可能是放松到Unix的一种方式.

How to migrate to *nix platform after spending more than 10 years on windows? Which flavor will be easy to handle to make me more comfortable and then maybe I can switch over to more stadard *nix flavors? I have been postponing for a while now. Help me with the extra push.

解决方案

Linux is the most accessible and has the most mature desktop functionality. BSD (in its various flavours) has less userspace baggage and would be easier to understand at a fundamental level. In this regard it is more like a traditional Unix than a modern Linux distribution. Some might view this as a good thing (and from certain perspectives it is) but will be more alien to someone familiar with Windows.

The main desktop distributions are Ubuntu and Fedora. These are both capable systems but differ somewhat in their userspace architecture The tooling for the desktop environment and default configuration for system security works a bit differently on Ubuntu than it does on most other Linux or Unix flavours but this is of little relevance to development. From a user perspective either of these would be a good start.

From a the perspective of a developer, all modern flavours of Unix and Linux are very similar and share essentially the same developer tool chain. If you want to learn about the system from a programmer's perspective there is relatively little to choose.

Most unix programming can be accomplished quite effectively with a programmer's editor such as vim or emacs, both of which come in text mode and windowing flavours. These editors are very powerful and have rather quirky user interfaces - the user interfaces are ususual but contribute significantly to the power of the tools. If you are not comfortable with these tools, this posting discusses several other editors that offer a user experience closer to common Windows tooling.

There are several IDEs such as Eclipse that might be of more interest to someone coming off Windows/Visual Studio.

Some postings on Stackoverflow that discuss linux/unix resources are:

If you have the time and want to do a real tour of the nuts and bolts Linux From Scratch is a tutorial that goes through building a linux installation by hand. This is quite a good way to learn in depth.

For programming, get a feel for C/unix from K&R and some of the resources mentioned in the questions linked above. The equivalent of Petzold, Prosise and Richter in the Unix world are W Richard Stevens' Advanced Programming in the Unix Environment and Unix Network Programming vol. 1 and 2.

Learning one of the dynamic languages such as Perl or Python if you are not already familiar with these is also a useful thing to do. As a bonus you can get good Windows ports of both the above from Activestate which means that these skills are useful on both platforms.

If you're into C++ take a look at QT. This is arguably the best cross-platform GUI toolkit on the market and (again) has the benefit of a skill set and tool chain that is transferrable back into Windows. There are also several good books on the subject and (as a bonus) it also works well with Python.

Finally, Cygwin is a unix emulation layer that runs on Windows and gives substantially unix-like environment. Architecturally, Cygwin is a port of glibc and the crt (the GNU tool chain's base libraries) as an adaptor on top of Win32. This emulation layer makes it easy to port unix/linux apps onto Cygwin. The platform comes with a pretty complete set of software - essentially a full linux distribution hosted on a Windows kernel. It allows you to work in a unix-like way on Windows without having to maintain a separate operating system installations. If you don't want to run VMs, multiple boots or multiple PCs it may be a way of easing into unix.

这篇关于从Windows转向* nix编程平台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆