Cygwin as native 64-bit in the future? [closed] - cygwin

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Does anyone know if there will ever be a true 64-bit version of Cygwin? The FAQ says "as far as we know nobody is working on a 64-bit version" or something like that. Is cygwin forever to be a 32-bit application (or family of apps if you prefer)?
A 64-bit version would be nice. For the most part I can do what I need with the 32-bit version of cygwin on 64-bit windows. But every now and then a 64-bit program I launch from cygwin will recognize the fact that it was launched by a 32-bit parent and behave incorrectly, or not run at all. I must open a cmd.exe or powershell session to run these few commands. One example you can reproduce for yourelf on Windows 2003 64-bit with IIS installed is to run the following command from cygwin then from a cmd.exe that was not opened from within cygwin. (Double backslashes obviously aren't necessary in cmd.exe, but they work ok in both shells.)
cscript c:\\windows\\system32\\iisApp.vbs
So, I can live with opening a cmd.exe session when I need to run something that behaves this way. But being a huge fan of Cygwin I would really like to see an indication that someday someone will produce a 64-bit version.

Probably coincidence, but shortly after this question was posted, there was a large thread with the Cygwin developers discussing 64-bit here:
http://thread.gmane.org/gmane.os.cygwin.devel/233/focus=247
TL;DR - They are in fact thinking about 64-bit Cygwin, but the porting issues are complex...

You'll need to see a clairvoyant to get a defininitive answer to your question, but here goes anyway.
A 64-bit Cygwin is certainly possible, but it would require a lot of work. That involves not only adapting the Cygwin DLL, which probably contains many 32-bit assumptions, but also the porting of all the packages in the distro. My guess is that this will happen when 64-bit Windows becomes so widespread that developing the 32-bit version is no longer worthwhile, so as to avoid splitting the Cygwin project's rather limited resources.

Related

What is cygwin and what does it do [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
after searching about it i found some info (yet confusing for me)
Cygwin is a Unix-like environment and command-line interface for Microsoft Windows.
i found the above line in wikipedia but what does that mean?
i'm not getting a clear idea about MinGW and cygwin and msys, please help
Because it keeps confusing people:
Cygwin: think of it as an OS. It provides a POSIX C runtime built on top of Windows so you can compile most Unix software to run on top of it. It comes with GCC, and to some extent, you can call the Win32 API from within Cygwin, although I'm not sure that is meant to happen or work at all.
MSYS(2): a fork of Cygwin which has path translation magic to make native Windows programs work nicely with it. Its main goal is to provide a shell so you can run autotools configure scripts. You are not meant to build MSYS applications at all. Note that MSYS2 strives for much more and contains a full-blown package management system so you can easily install MinGW-w64 libraries and tools.
MinGW(-w64): A native Windows port of the GCC compiler, including Win32 API headers and libs. It contains a tiny POSIX compatibility layer (through e.g. winpthreads, the unistd.h headers and some other bits), but you cannot compile POSIX software with this. This is best compared to MSVC, which also produces native code using the Win32 API.
Note that there are MinGW-w64 cross-compilers that run on Cygwin. With MSYS2, I frankly don't see a good reason to do that. Might as well run a VM with Linux if you're going to use Cygwin for that.
More or less from its web page
cygwin is
a POSIX compatibility layer on top of windows API. This is mainly encapsulated in a cygwin1.dll
a distribution system and repository of open source software compiled with this dll.
In a nutshell, if you have a linux source, you can try to recompile for cygwin and be able to run it on windows...
This enables to have accessible many of the typical unix commands (shells, gcc/g++, find....)
Alternatives are:
MSYS: are a set of typical unix command implemented in windows.
mingw: A gcc/g++ target able to produce win32 programs (note that cygwin gcc/g++ programs will have a dependency on cygwin1.dll that mingw programs will not have).

Can i code Assambly for x86 Windows from x64 Linux ? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
i have 64bit Ubuntu but i need to code ASM code for Intel 8086 Windows... Is there any software or IDE or emulator you can suggest?
I know that there is different instructions for each kind of processor...
At first, you always can compile your program in 32bit Windows PE executable, using the proper compiler. I don't know for other assemblers, but, for example, FASM can do it in easy.
The big problem is with the testing - i.e. how to run and debug the compiled program?
The only IDE I know that is able to compile, run and debug Windows and Linux applications in the same time, from Linux is Fresh IDE (it is based on FASM compiler). Fresh IDE is windows application, so you will need WINE installed in order to use it (and it uses Wine in order to be able to run Windows applications from Linux).
As far as I know, WINE can run on 64bit Linux, but I never used it, so can't give any guides for installing it.
After installing WINE, install and configure Fresh IDE as described in the setup guide.
NOTE: Fresh IDE is my product and I am possibly little bit biased. But it has the features described in this answer (and many more useful features as well). :)
Specific assembly syntax is compiler specific. You will need to investigate this for whichever compiler you're planning to use. I am unaware of any specific IDE/emulator for this purpose in Linux, however you can use any editor of your choice (vi, emacs, eclipse, nano, textedit, etc) to write the text document which contains your code. You could then transfer this to a windows machine with the appropriate compiler. Unless you lack regular access to the compilation machine, however, it's likely more in your interest to work in the environment which you're going to compile to.
You can write code on whatever machine you want. Testing it is another story entirely. In your case, you'll at least want to get a cross-assembler to build Windows binaries on your Linux machine, and then probably a VM running windows of some kind to test your program. If you're going to the effort of setting up the VM, you can probably just use a native assembler there too.

How and how hard would it be to create DirectX vendor drivers for Linux? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
As seen on this thread, it seems that the missing part to be able to run DirectX on Linux natively are vendor drivers.
What exactly are vendor driver? Are they drivers interfacing a specific model of a component, or a family, or even any of them? What are they coded in? ASM and C most likely?
How would someone (or a team) create these drivers for Linux? How would it be integrated into Linux? Would the games or applications in general made for Windows and using DirectX need any tweak for Linux? Would companies making games build their games for Linux knowing they can be used without or with only a few tweaks needed?
How hard would it be to make these drivers? How long would it take? Would it require any specific knowledge?
I know this makes a lot of questions, but I'm very curious about that and why no big groups have ever worked on that seriously (even though there must be a good reason).
Thank you a lot in advance for your answers!
EDIT: This is by no means an incitation to a debate of, for example, OpenGL vs DirectX, or Windows vs Linux. By reading the FAQ, I can't really see why this thread isn't constructive as it asks for pretty well-aimed questions which should be answerable quickly.
IMHO the main reason no one really bothers into dealing with directX is based on the fact that there already is a graphics library (mesa in the special case of Linux) available that fully supports any desired graphics operation also available with DirectX.
In contrast to following DirectX, which is a specification based on so called intellectual property owned by a single corparation the API used by this library called openGL is an open standard agreed upon by a consortium of hardware manufacturers.
Different from the philosophy of constraining it's use to just one operating system possibly trying to shackle its users to the one and only platform openGL was intended as a platform independent API right from the beginning.
Following this principle in contrast to DirectX being available just on one single platform openGL is available on any computing platform ranging from android based systems, Mac and numerous other UNIXoid systems including Linux even to Windows machines.
Using any other API than openGL would break this platform independence, which probably wouldn't be received as a progress but rather as a regression.
To sum it up possibly the main reasons to favor openGL over DirectX are the following:
openGL is an open standard while DirectX is proprietary
openGL is available on any platform DirectX is only available on a single platform
any operation supported by DirectX is supported by openGL as well
if they are really needed DirectX calls can be provided by a wrapper library pushing operations down to openGL as for example done in WINE
Mere availablity of a DirectX library implementation alone wouldn't enable any binary code designed for the Windows platform to run at all as the whole set of system libraries and infrastructure still would not be available at all. As a matter of fact even the binary format in use PE/COFF on Windows ELF on Linux is different.
An effort to supply a whole compatibility layer including needed system libraries is already on the way. As already mentioned above it goes by the name of WINE. (see: http://www.winehq.org/)
I hope I gave you some good reasons why no one ever tried (or will try) as you requested.

Linux device driver development: what does it look like in 2012? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am running Ubuntu 12.04 and I assume that all the items I see listed when I run ls /dev are actually the device drivers for all the devices/hardware components connected to (or able to connect to) my machine. Is this correct? If not, where does Linux store all the device drivers?
What are drivers written in, C? C++? Assembler? What modern IDE/tech stack do device driver developers use?
No, you are not correct. /dev is a folder full of special device files, which represent device drivers. So when I do something to /dev/sda I am not working with the file of the SATA driver, but rather an interface to whatever SATA driver happens to be loaded. Device files are how drivers expose their devices to userspace (along with system calls that call drivers).
Usually drivers are stored in /lib/modules.
Drivers are written in C, unless you want to tripple your workload and write in assembly. There isn't a single line of C++ in the entire Linux kernel, for technical and political reasons (Linus Torvalds hates the sight of it).
IDE? I doubt any kernel developers use IDEs. Most of them just use Vim or EMACS. Then git to commit to the kernel source, and GDB/KDB for debugging. And whatever other command line tools are needed (eg. diff).

A Development Machine in VirtualBox - (Debian-min vs ArchLinux vs recommend-one) [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have few years of exp on linux, mainly ubuntu (dual-boot). Now i am shifting to windows, and installing linux in VirtualBox (PUEL). I am looking for a light-weight distro for development machine setup. Thought of using debian-unstable-minimum, and installing build-essentials, openbox(or a little more feature light-WM, ps recommend), ssh-server, ethereal, iptables, nmap(maybe), vim, python3. That is all what i can think of now mainly.
Options I can think of --
Debian-unstable minimum, and then using apt-get to do the rest. Is there also recommended version of ubuntu-lite. I read Ulite is not good, some-others are also not that good.
ArchLinux, reading a great deal about it. Wikipedia says it is mainly a binary-based distro, but everywhere on net/community only talk about its source-based approach. If it is binary I think I can have a quick setup. (For guest-OS-ArchLinux guys in VBox ) is your guest-additions working fine in archLinux.
FreeBSD 8, is it possible for minimum install. And recommended.
Recommendations for other i686 optimized linux, if any, or lets say i386 is also fine, as will only use it for coding.
For system admins -
I would like to know if ArchLinux keeps the potential to penetrate companies for production systems, and replace redhat/debian/bsd in servers for hosting apps/portals.
Addition: Just a thought- is there any distro which helps you to be a better programmer/developer/analyst, in terms of the way things should be done. I dont know if I am over-generalizing it :).
some-others
Checked crunchbang? If you are not particular about needing the power of apt-get, you can also check-out zenWalk or Vector.
My work machine is a 3Ghz 4G Windows 7 box, on which I am running a 1G Debian VM under VirtualBox, it is a bit slower when accessing the HD but it is perfectly usable. I installed off the usual ISO image, and used apt-get to get the rest. Basically, I don't think on even semi-modern hardware you will need to go for a cut-down install to get a good user experience, (unless you particularly want to) to run just one VM. It runs the full GNOME desktop, Emacs, half a dozen terminals, Iceweasel web browser and the OCaml and Haskell compilers just fine. Make sure you install the VirtualBox extensions, they make a big difference to the interactive experience.
FWIW I have never gotten FreeBSD to work properly under VirtualBox, perhaps if you need that you would be better off with VMware, which does.

Resources