페이지

2022년 5월 14일 토요일

1.1 Artificial Intelligence in Action

 Information technology is the third industrial revolution in human history. The popularity of computers, the Internet, and smart home technology has greatly facilitated people's daily lives. Through programming, humans can hand over the interaction logic designed in advance to the machine to execute repeatedly and quickly, thereby freeing humans from simple and tedious repetitive labor. However, for tasks that require a high level of intelligence, such as face recognition, chart robots, and autonomous driving, it is difficult to design clear logic rules. Therefore, traditional programming methods are powerless to those kinds of tasks, whereas artificial intelligence(AI), as the key technology to solve this kind of problem, is very promising.

Wigh the rise of deep learning algorithms, AI has achieved or even surpassed hymanlike intelligence on some tasks. For example, the AlphaGo program has defeated Ke Jie, one of the stongest human Go players, and OpenAI Five has beaten the champion team OG on the Dota2 game. In the meantime, practical technologies such as face recognition, intelligent speech, and machine translation have entered people's daily lives. Now our lives are actully surrounded by AI. Although the current level of intelligence that can be reached is still a long way from artificial general intelligence(AGI), we still firmly believe that the era of AI has arrived.

Next, we will introduce the concepts of AI, machine learning, and deep learning, as well as the connecctions and differences between them.


CHAPTER 1 Introduction to Artificial Intelligence

 What we want is a machine that can learn from experience. -Alan Turing

2022년 5월 7일 토요일

1.11.6 Open-Source Systems as Learning Tools

 The free-software movement is driving legions of programmers to create thousands of open-source projects, including operating systems. Sites like http://freshmeat.net/ and http://distrowatch.com/ provide portals to many of these projects. As we started earlier, open-source projects enable students to use source code as a learning tool. They can modify programs and test them, help find and fix bugs, and otherwise explore mature, full-featured operating systems, compilers, tools, user interfaces, and other types of programs. The availability of source code for historic projects, such as Multics, can help students to understand those projects and to build knowledge that will help in the implementation of new projects.

Another advantage of working with open-source operating systems is their diversity. GNU/Linux and BSD UNIX are both open-source operating systems, for instance, but each has its own goals, utility, licensing, and purpose. Sometimes, licenses are not mutually exclusive and cross-pollination occurs, allowing rapid improvements in operating-system projects. For example, several major components of OpenSolaris have been ported to BSD UNIX. The advantages of free software and open sourcing are likely to increase the number and quality of open-source projects, leading to an increase in the number of individual and companies that use these projectgs.


1.11.5 Solaris

 Solaris is the commercial UNIX-based operating system of Sun Microsystems. Iriuginally, Sun's SunOS operating sysstem was based on BSD UNIX. Sun moved to AT&T's System V UNIX as its base in 1991. In 2005, Sun open-sourced most of the Solaris code as the OpenSolaris project. The purchase of Sun by Oracle in 2009, however, left the state of this project unclear.

Several groups interested in using OpenSolaris have expanded its features, and their working set is Project Illumos, which has expanded from the Open-Solaris base to include more features and to be the basis for several products. Illumos is available at http://wiki.illumos.org.

THE STUDY OF OPERATING SYSTEMS

 There has never been a more interesting time to study operating systems, and it has never been easier. The open-source movement has overtaken operating system, causing many of them to be made available in both source and binary (executable) format. The list of operating systems available in both formats includes Linux. BSD UNIX, Solaris, and part of macOS. The availability of source code allows us to study operating systems from the inside out. Questions that we could once answer only by looking at documentation or the behavior of an operating system we can now answer by examining the code itself.

Operating systems that are no longer commerically viable have been open-souced as well, enabling us to study how systems operated in a time of fewer CPU, memory, and storage resources. An extensive but incomplete list of open-soiurce operating-system projects is available from http://dmoz.org/Computers/Software/Operating.Systems/Oepn.Sources/. computer function makes it possible to run many operating systems on top of one core system. For example, VMware (http://www.virtualbox.com) provides a free, open-source virtual machine manager on many operating systems. Using such tools, students can try out hundreds of operating systems without dedicated hardware.

In some cases, simulators of specific hardware are also available, allowing the operating system to run on "native" hardware, all within the confines of a modern computer and modern operating system. For example, a DECSYSTEM-20 simulator running ono macOS can boot TOPS-20, load the source topes, and modify and comile a new TOPS-20 kernel. An interested student can search the Internet to find the original papers that describe the operating system, as well as the original manuals.

The advent of open-source operating systems has also made it easier to make the move from student to operating-system distribution. Not so many years ago, it was difficult or impossible to get access to source code. Now, such access is limited only by how much interest, time, and disk space a student has.


1.11.4 BSD UNIX

 BSD UNIX has a longer and more complicated history than Linux. It started in 1978 as a derivative of AT&T's UNIX. Releases from the University of California at Berkeley (UCB) came in source and binary from, but they were not open source because alicense from AT&T was required. BSD UNIX's development was slowed by a lawsuit by AT&T, but eventually a fully functional, open-source version, 4.4BSD-lite, was released in 1994.

Just as with Linux, there are many distributions of BSD UNIX, including FreeBSD, NetBSD, OpenBSD, and DragonflyBSD. To explore the source code of ReeBSD, simply download the virtual machine image of the version of interest and boot it within Virtualbox, as described above for Linux. The source code comes with the distribution and is stored in /usr/src/. The kernel source code is in /usr/src/sys. For example, to examine the virtual memory implementation code in the FreeBSD kernel, see the files in /usr/src/sys/vm. Alternatively, you can simple view the source code online at https://svnweb.freebsd.org.

As with amnyu open-source projects, this source code is contained in and controlled by a version control system-in this case, "subversion" (https://subversion.apache.org/source-code). Version control systems allow a user to "pull" an entire source code tree to his computer and "push" any changes back into the repository for others to then pull. These systems also provide other features, including an entire history of each file and a conflict resolution feature in case the same file is changed concurrently. Another version control system is git, which is used for GNU/Linux, as well as other programs (https://www.git-scm.com).

Darwin, the core kernel component of macOS, is based on BSD UNIX and is open-sourced as well. That source code is available from http://www.opensource.apple.com/. Every macOS release has its open-source components posted at that site. The name of the package that contains the kernel begins with "xnu". Apple also provides extensive developer tools, documentation, and support at http://developer.apple.com.


1.11.3 GNU/Linux

 As an Example of a free and open-source operating system, consider GNU/Linux. By 1991, the GNU operating system was nearly complete. The GNU Project had developed compilers, editors, utilities, libraries, and games - whatever parts it could not find dlsewhere. However, the GNU kernel never became ready for prime time. In 1991, a student in Finland, Linus Torvalds, released a rudimentary UNIX-like kernel using the GNU compilers and tools and invited contributions worldwide. The advent of the Internet meant that anyone interested could download the source code, modify it, and submit changes to Torvalds. REleasing updates once a week allowed this so-called "Linux" operating system to grow rapidly, enhanced by several thousand programmers. In 1991, Linux was not free software, as its license permitted only noncommercial redistribution. In 1992, however, Torvalds rereleased Linux under th GPL, making it free software (and also, to use a term coined later, "open source")

The resulting GNU/Linux operating system (with the kernel properly called Linux but the full operating system including GNU tools called GNU/Linux) has spawned hundreds of unique distributions, or cutom builds, of the system. Major distributions include Red Hat, SUSE, Fedora, Devian, Slackware, and Ubuntu. Distributions vary in function, utility, installed applications, hardware support, user interface, and purpose. For example, Red Hat Enterprise Linux is geared to large commercial use. PCLinuxOS-called PCLinuxOS Supergamer DVD - is a live DVD that includes graphics drivers and games. A gamer can run it on any compatible system simply by booting from the DVD. When the gamer is finished, a reboot of the system resets it to its installed operating system.

You can run Linux on a Windows(or other) system using the following simple, fre approach:

1. Downlaod the free Virtualbox VMM tool from

https://www.virtualbox.org/

and install it on your system.

2. Choose to install an operating system from scratch, based on an installation image like a CD, or choose pre-built operating-system images that can be installed and run more quickly from a site liek

http://virtualboxes.org/images/

These image are preinstalled with operating system and application and include many flavors of GNU/Linux.

3. Boot the virtual machine within Virtuallbox.

An alternative to using Virtualbox is to use the free program Qemu(http://wiki.qumu.org/Download/), which includes the qemu-img command for converting Virtaulbox images to Qemu images to easily import them.

With this text, we provide a virtual machine image of GNU/Linux running the Ubuntu release. This iamge contains the GNU/Linux source code as well as tools for software developement. We cover examples involving the GNU/Linux image throughout this text, as well as in a detailed case study in Chapter 20.