What the hell is Docker? Docker why it's so hot! _docker

Source: Internet
Author: User
Tags data structures docker hub apple apps intel core i5 codewarrior oracle solaris

Xcode is an integrated development tool (IDE) running on the operating system Mac OS X, developed by Apple. Xcode is the quickest way to develop OS X and IOS applications. Xcode has a unified user interface design, coding, testing, debugging in a simple window to complete.

Background information

The predecessor of Xcode is the project Builder inherited from next.
The Xcode suite contains GNU Compiler collection Free software (GCC, apple-darwin9-gcc-4.0.1, and apple-darwin9-gcc-4.2.1, the default is the first) and supports the C language , C + +, Fortran, Objective-c, objective-c++, Java, AppleScript, Python, and Ruby, and also provide cocoa, carbon, and Java programming modes. The Third-party vendors also provide GNU Pascal,free Pascal, Ada, C #, Perl, Haskell and D languages. The Xcode Suite uses GDB as its background debugging tool.
Starting with Xcode 3.1, Xcode can also be used as an iphone OS development environment.
Xcode 4.0 was officially released on March 9, 2011. This version of non-Apple developer registered members can also be downloaded from the Mac App Store for us$4.99 charges.
Starting from Xcode 4.1, download free for OS X 10.6 and OS X 10.7 users from Mac App Store
The main version of Xcode is Xcode 5, which supports IOS7, which can be downloaded free of charge at the Mac App Store and also downloaded from the iOS developer program website.
The XCODE6 incorporates the new language Swift1.0 version that Apple publishes at the WWDC conference.
September 16, 2015, Apple released the official version of Xcode7 on the developer website and upgraded the Swift language to version 2.0 [1].
According to Snowden, U.S. government researchers have created a version of Apple software application development tool Xcode, hoping to embed the monitoring back door into apps released through the App Store in Apple apps.

Application editing

Xcode, which runs on Apple's Mac operating system, is an integrated development environment (not open source) provided by Apple to developers to develop Mac OS X,ios applications. [3]
Whether you're writing a program in C, C + +, objective-c, or Java, writing a script in AppleScript, or trying to transfer code from another wonderful tool, you'll find that Xcode compiles very quickly. Each operation is quick and easy.
Apple provides users with a full set of free Cocoa program development tools (Xcode), which is distributed with Mac OS X and downloaded on Apple's official website.

Free undo

The virtual model and design features of Xcode 4 make it easier for you to develop and maintain your applications. Just select the part of the application that you want to write, and then the model and design system will automatically create
Build a classification chart that will not only display code, but also allow you to browse. The Mac OS X Core data API helps your application create data structures. Even better, it automatically provides undo, redo, and save functionality without writing any encoding.

Reference Library

Xcode's Integrated Apple Reference Library provides a separate search and display interface for all Apple developer files, including online files from Apple's Web site and files stored on your computer. The new reference library can even help you download regular updates to your computer and keep the files up to date. Xcode will help you find the latest answer quickly.

Compiler

The compiler used by XCODE3 is the GCC compiler, and after Xcode4 and versions, the compiler used by Xcode has been replaced with the new LLVM compiler. The front end of the LLVM compiler is clang.
The core of Xcode 4 is Apple's next-generation industry-standard GCC compiler, GCC 4.0. The new compiler leverages many advanced optimization techniques to help you get more performance from existing coding. The automatic quantization (auto-vectorization) technology borrowed from the Supercomputing world can help you free up the power of the speed engine in each Intel system, without the need to write to the quantization code. Other optimization tools support the optimization of feedback orientation and the analysis of hidden modules.

Xcode shortcut keys

File

CMD + N: New file; cmd + SHIFT + N: New project; cmd + O: open;
CMD + s: Save; cmd + SHIFT + S: Save as;
CMD + w: Close window; cmd + SHIFT + w: Close file
Edit

CMD + [: Left indent; cmd +]: Right indent;
CMD + Ctrl + Left: Folding; cmd + ctrl + Right: Cancel folding;
CMD + CTRL + Top: Collapse all functions; cmd + CTRL + BOTTOM: Cancel all function folds;
CTRL + U: cancel all folding;
CMD + D: Add bookmark; cmd +/: annotate or uncomment;
CTRL +.: Parameter hints; ESC: Auto Prompt list
Debugging

CMD + \: Set or cancel breakpoints;
CMD + OPT + \: Allow or disable the current breakpoint;
CMD + OPT + B: View all breakpoints;
CMD + return: Compile and run (decide whether to enable breakpoints according to the settings);
CMD + R: Compile and run (without triggering breakpoints);
CMD + Y: Compile and debug (trigger breakpoint);
CMD + SHIFT + return: Stop running or debugging;
CMD + B: compiling;
CMD + SHIFT + K: clean;

Massive memory

Xcode will give you the ability to create applications such as computing and rendering engines that use a 64-bit memory addressable. This is ideal for applications in datasets that run faster than disk access by accessing data in memory. Xcode will provide you with the tools to build and debug 32 or 64-bit applications for Intel Core i5, i7, and Mac OS X Lion, and to create Fat Binaries with 32-bit and 64-bit execution capabilities.

Build

As we all know, the introduction of multiple processors in construction can improve speed, Xcode can help you achieve this obvious conclusion. With the distributed build capabilities that support rendezvous, it is easy to spread the compilation workload to idle computers, or to develop a dedicated Xserve build store on a separate computer to quickly handle time-consuming tasks.

Java

Xcode 4 has a number of features that give Java developers more development power. With the improved Code Sense index and Ant project templates, Java users can continue to use their standard Java packages and build tools with Xcode critical production capabilities. Java code padding provides you with class names, methods, variables, and other key information. Creating Java applications in Xcode is easier than ever.

Input

Because Xcode supports CodeWarrior style related project references, it is possible to ensure that CodeWarrior project files are quickly and conveniently transferred to Xcode. Because of the Xcode compatible CodeWarrior-style online encoding assembly, the reduced consumption of transitions from CodeWarrior to Xcode also allows developers to manually adjust the critical performance portion of the application.
Apple's Mac OS X development environment Xcode provides project editing, search and browsing, file editing, project building, and debugging equipment for various types of Mac OS X software projects.
Xcode can be used to assist in developing applications, tools, schemas, databases, embedded packages, core extensions, and device drivers. Xcode supports developers using C, C + +, objective C, AppleScript, and Java.
Xcode can collaborate with many other tools in Mac OS X, such as composite user interface architecture applications, compilers such as GCC, Javac, and Jikes, and debugging tools such as GDB.
In addition, you can add a Aqua interface to system and application scripts, command-line tools, and Web applications using the AppleScript Studio group. All three of these can be grouped into the most powerful scripting environments in any platform.

Remote debugging

Debugging a Full-screen application, such as a game, is a big challenge. Where do you put the debug window? With Xcode 2.0 's drawing remote debugging, all the powerful Xcode debugging features (such as data format programs, Fix, Continue) can be used on remote machines to debug applications. Using the encrypted connection with the remote debugging phase, Xcode can guarantee your data security.

Development

Xcode 4 allows you to develop iOS based ipad, IPhone, ipod touch device apps, so long as you have Mac OS X Snow Leopard 10.6 2 version of Mac OS OS, you can install the iOS SDK, if you have iOS devices, you Allows Xcode to deploy the application to your iOS device, or you can use the iphone emulator for debugging. Xcode provides a friendly and convenient application development environment so you can develop a good iOS application.

If you're a data center or a cloud-computing it community, you should have heard the usual containers, especially Docker, for more than a year, and the news about them has never been interrupted. After the release of Docker1.0 in June this year, the momentum has reached an unprecedented level.

The reason why the movement is so large is that many companies are using Docker at an alarming rate. At this July's Open source Conference (OSCon), I encountered countless businesses that had already moved server applications from virtual machines (VMS) to containers. Indeed, James Turnbull, vice president of Docker's executive services and support, told me at the meeting that three of the big banks have been using Docker's beta version and are now using Docker in the production environment. For any early technology, this is a big, confident move, knowing that it is almost unheard of in the safest financial world.

At the same time, Docker's Open-source technology is not just the darling of the Linux giants such as Red Hat and canonical. Proprietary software companies such as Microsoft are also embracing Docker warmly.

So why do we all chase containers and Docker? James Bottomley is parallels's chief technology officer for server virtualization and a well-known Linux kernel developer. He explained to me that virtual machine management programs such as Hyper-V, KVM, and Xen are "based on virtualized hardware emulation mechanisms." This means that they are highly demanding on the system. ”

However, the container uses a shared operating system. This means that they are much more efficient at using system resources than virtual machine management programs. Instead of virtualizing the hardware, the container resides on a single Linux instance. This, in turn, means that you can "discard the useless 99.9% of virtual machine garbage and leave a small, concise capsule container containing your application," Bottomley said.

As a result, Bottomley claims, with a fully tuned container system, you can have more than four to six times times more instances of server applications on the same hardware than the Xen virtual machines or the KVM virtual machines.

Do you think it sounds good? After all, you can make the server run a lot more applications. So why hasn't anyone done it before? Actually, someone had done it before. The container is actually an old concept.

Containers can be traced back to at least 2000 years and FreeBSD jails. Oracle Solaris also has a similar notion that companies such as Zones;parallels, Google and Docker have been working to develop open source projects such as OpenVZ and LXC (Linux containers) designed to make containers run smoothly and safely.

Indeed, few people know about containers, but most have been using containers for years. Google has its own open source container technology lmctfy (let me contain which for you, meaning "allow me to accommodate your program"). As long as you use one of Google's features: Search, Gmail, Google Docks, or whatever else, a new container is assigned.

However, Docker is built on the basis of LXC. As with any container technology, it has its own file system, storage system, processor, and memory components. The main difference between a container and a virtual machine is that the virtual Machine Manager abstracts the entire device, and the container simply abstracts the operating system kernel.

This, in turn, means that the hypervisor can do nothing with a container that uses a different operating system or kernel. So, for example, you can use Microsoft Azure, while running instances of Windows Server2012 and SUSE Linux Enterprise-class servers. As for Docker, all containers must use the same operating system and kernel.

On the other hand, if you just want to make as many server applications as possible run on as few hardware as possible, you may not be interested in running multiple operating system virtual machines. If multiple copies of the same application are exactly what you need, then you will love the container.

Switch to Docker this is expected to save tens of millions of of billions of dollars in power and hardware costs per year for data centers or cloud computing services providers. So it's no wonder they're using Docker as fast as they swarm.

Docker has brought several new features that were not previously in the technology. The first is that, compared to previous methods, Docker makes it easier and safer to deploy and use containers. In addition, Docker has collaborated with other container giants, including canonical, Google, Red Hat and parallels, to develop its key Open-source component Libcontainer, which has created an urgent need for the container to standardize.

At the same time, developers can use Docker to encapsulate, deliver, and run any application, and the application becomes a lightweight, portable, self-contained LXC container that can be run anywhere. As Bottomley told me, "The container gives you immediate access to application portability." ”

"Enterprise organizations strive to make applications and workloads easier to migrate and distribute, sometimes hard to do in an efficient, standardized, repeatable way," said Jay Lyman, a senior analyst at 451 Research, a market-study firm. Just as GitHub facilitates collaboration and innovation by sharing source code, Docker Hub, official repos, and business support are also helping many organizations address this challenge by improving the way they encapsulate, deploy, and manage applications. ”

Last but not least, the Docker container is easy to deploy to the cloud. As Ben Lloyd Pearson wrote on Opensource.com, "Docker takes a special approach so that it can be integrated into most devops (development operations) applications, including Puppet, Chef, Vagrant and ansible, or can be used alone to manage the development environment. The main selling point is that it simplifies many of the tasks that are typically performed by other applications. Specifically, with Docker, people can build a local development environment that is identical to the Active server, run multiple development environments from the same host (each development environment has unique software, operating system, and configuration), and test the project on new or different servers, and allow anyone to handle the same project in exactly the same way, regardless of the local host environment. ”

In short, what Docker can do for you is that it allows a larger number of applications to run on the same hardware compared to other technologies, making it easy for developers to quickly build a container-ready application that can be run at any time; it greatly simplifies the task of managing and deploying applications. All in all, I can understand why, as an enterprise-class technology, Docker is suddenly red. I just hope it doesn't live up to expectations, or there will be some worried CEOs and CIOs outside.

English: http://www.zdnet.com/what-is-docker-and-why-is-it-so-darn-popular-7000032269/

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.