-
Хорошо. Итак, в этот прекрасный весенний день, здесь, на территории кампуса. Я буду делать запись
-
снаружи, здесь в кампусе Стенфорда. Выглядит солнечно, как парк. Там где
-
студенты только что (бормочет). Итак, тема этого раздела: Что такое
-
программное обеспечение? Что такое код? Как это работает на компьютере? Затем мы
-
поговорим об аппаратном обеспечении компьютера, мы поговорим о процессоре, это мозги
-
компьютера. Процессор действительно работает, и процессор реализует то, что
-
называется? Инструкции машинного кода. Инструкции машинного кода очень
-
просты. Одна инструкция машинного кода может сложить два числа, другая инструкция может
-
сравнить два числа, что бы увидеть какое больше. Поэтому. Для кода который мы видели,
-
что-то вроде пиксель точка установить красный десять. Это гораздо сложнее, чем
-
отдельные инструкции машинного кода. Таким образом
-
пиксель точка установить красный десять. Будет в конечном итоге разложен на серии, возможно пяти или десяти
-
этих очень простых машинных инструкций. Таких, что когда эти десять
-
инструкций выполняются, одна за другой, эта сортировка дает эффект установки красного
-
значения пикселя в десять. Хорошо, я углублюсь в это позже,
-
Так как, как происходит это разложение. Так что, я думаю первый хороший вопрос для запуска
-
программы это, что такое программа? Так что я буду смотреть на правую сторону этой
-
диаграммы. Таким образом, программа, и я буду, я буду как бы, использовать его как мой работающий пример
-
Firefox. Таким образом, программа сделана всего лишь, как огромная последовательность этих очень
-
простых машинных инструкций. Итак, когда Firefox работает на твоём
-
компьютере, это значит где-то в оперативной памяти, находится блок этих инструкций.
-
Таких, что выполняя их, как вы знаете, выполняется то, что делает Firefox. Таким образом, он
-
мигает курсором, принимает url, рисует, получает интернет страницы и всё такое.
-
Отдельные инструкции действительно тривиальны, правильно. Просто добавьте две цифры. Так
-
как получить из этого мигающий курсор? И лучшее, что я могу сказать, что это
-
возможно что-то вроде отношений между песком и скульптурой. Когда каждая
-
инструкция это песчинка. Как само по себе - бессмысленно и вроде
-
выглядит как все остальные. Но если вы сложите их вместе нужным образом, вы
-
сможете построить эту завершенную общую структуру. Именно так,
-
Firefox и построен из этих, этих простых инструкций. Как это работает
-
процессор, здесь слева, выполняет, что называется выполнить цикл. И
-
всё это значит, что процессор начнет, скажем, здесь, с Инструкции один,
-
и он загрузит инструкцию и запустит её. Или иногда мы скажем, что он выполняет
-
эту инструкцию. Так что, он добавляет два числа, или делает то, что
-
говорит инструкция. И когда Инструкция один выполнена, он просто переходит вниз
-
по списку. Он переходит к Инструкции два, и выполняет её как первую. Инструкции для вас, это
-
то, что просто работает, просто работает в последовательности. Итак, когда мы говорим,
-
что процессор работает на двух гигагерцах, два миллиарда операций в секунду, это и есть
-
эти маленькие инструкции. Здесь, очевидно, большое
-
разнообразие инструкций. Но я укажу пару специальных типов. Так
-
первый тип инструкций имеет эффект изменения порядка инструкции.
-
Обычно процессор выполняет инструкции вниз по списку и делает их по порядку. Но давайте скажем
-
инструкция четыре может сказать, вернись обратно и начни выполнять снова инструкцию
-
один. И подумаем о том, что процессор будет делать. Он будет выполнять инструкции...
-
Первая, вторая, третья, четвертая. И когда дойдет до четвертой, он вернется обратно, и
-
выполнит инструкции один, два, три снова. И затем один, два, три снова, и снова. Вы
-
можете видеть, как реализованы циклы. Просто упорядочивая
-
инструкции так, что некоторую часть кода мы можем выполнять 500.000 раз. Хорошо,
-
вы можете установить инструкцию в цикл, вернуться и делать так эти инструкции снова
-
и снова. Другой вид инструкций. Наша [бормочет] идея это инструкция,
-
хорошо, та же инструкция два здесь, которая тестирует некоторое условие и если условие
-
верно, возможно, оно пропускает вперед, где будет инструкция 5. Вот
-
как реализован условный оператор. У вас есть инструкция, которая должна посмотреть на
-
некоторое условие, и если оно, если условие верно, оно скажет
-
процессору начать здесь. И если это будет ложь, оно будет запущенно в каком-то другом месте.
-
Так, расположением инструкций просто так, вы можете получить эффект, приблизительно как
-
мы, как, в нашем коде, выглядит как условный оператор. [звук]. Правильно. Хорошо, так
-
как, как программа запускается, и как мы получаем, как мы получаем эту
-
вещь. Я изображу, что вы получили, Firefox на вашем флеш накопителе, вы знаете,
-
файл. Так на вашем флеш диске, или на вашем жестком диске. Здесь, я сохранил, на длительный
-
срок, вы знаете, постоянная память здесь. Здесь оперативная память, здесь процессор.
-
Итак, когда у вас есть Firefox на вашем жестком диске. По существу это файл, и
-
называется Firefox exe, это всего лишь традиция windows, как
-
назвать файл, являющийся программой, но это, это помогает "держать вещи чище", так что я буду
-
следовать этому. Так firefox.exe, этот файл, имеет много байт в себе, и для многих
-
частей, эти байты, всего лишь инструкции, которые делают программу,
-
плюс некоторые иконки. [бормочет] и другие составляющие. Итак о чем я хочу подумать,
-
хорошо, что происходит, когда вы делаете двойной щелчок на Firefox.exc? Как оно начинает выполняться?
-
И что происходит, по существу, в эти два шага. Первое, что происходит, это
-
байты для инструкций, наименьшее достаточное для инструкций, чтобы начать,
-
скопировать в оперативную память. Это все лишь копии, поместите инструкции в оперативную память, откуда процессор
-
сможет их получить. И на втором шаге, просто скажите процессору: 'Ок, хорошо, здесь
-
инструкция один. Начать выполнять здесь.' Итак, когда процессор просто начнет рваться
-
вниз по списку инструкций, и сейчас запустится Firefox. Так я думаю это
-
приведет к вопросу, хорошо, кто делает это, правильно? Как, чьи руки
-
сделали двойной щелчок? Кто запускает Firefox? И что есть что в оперативной
-
системе. Так операционная система это набор контролирующих и
-
администрирующих программ, что как вы знаете, организовывает, организовывает всю систему.
-
Так, в частности, операционная система обслуживает составные программы, запускает
-
и, завершает программы. Так современные компьютеры могут запускать составные программы в тоже
-
время и операционная система организует их. Она делает
-
начало старта программы, дает ей использовать некоторое количество оперативной памяти, и, возможно, даёт
-
окно для изображения. Так же, операционные системы стараются держать программы изолированными от
-
других. Так каждая программа имеет свою оперативную память, но она не обязательно перемешивается с
-
оперативной памятью других программ. Так что же помогает, если программа имеет ошибки. Будем надеяться, это будет
-
просто беспорядок в этой программе, но не путаница с другими программами, которые вы запустили. Или
-
умышленно, если я - программа, пытался сделать что-то плохое другой программе то,
-
операционная система старается держать их отдельно. Так, операционная система
-
действительно первое, что выполняется, когда включается ваш компьютер. Так это то, что будет
-
помещено в его первые окна, и, возможно, покажет вам, что на жестком диске. И затем,
-
отсюда, вы можете сделать двойной щелчок, или сделать что-то ещё, и операционная система
-
запустит эти программы для вас. Так что же действительно вы
-
видите, когда вы включаете свой лэптоп. Цифровая камера, это, вы не думаете о ней
-
обязательно как о компьютере, но это действительно он. когда цифровая камера
-
включается впервые, там, вероятно, есть пара программ. Там, возможно, программа, которая
-
получает снимки, и программа, которая позволяет вам просматривать снимки, которые
-
вы уже сделали. И так, когда камера впервые включается, там есть немного
-
административных, вроде получения, получения, программ работающих чтобы показать вам
-
интерфейс, и тогда это просто позволяет вам действовать. И последняя вещь здесь,
-
это термины boot (загрузка) и reboot (перезагрузка), я всегда считаю, что это
-
вроде забавно. Откуда это пришло? И я, ссылаюсь на что-то вроде
-
проблемы куриного яйца, аналогично, хорошо, когда компьютер впервые включен, когда он впервые
-
запускается, как это. Как получается его самоорганизация? Как начинает
-
работать программа? И эта терминология, как ни странно пришла из старой шутки,
-
о том, что если вы хотите перейти через забор, вы должны просто наклониться к
-
к петелькам на заднике ваших ботинок, и дернуть вверх, и просто как бы поднять себя над забором в этом
-
направлении. Это очевидно смешно. Но оно, оно имеет такие же качества как,
-
хорошо подождите, что программа делает, что бы компьютер работал, для того, что бы включить компьютер, чтобы запускать
-
программы. Это как бы проблема курицы и яйца. Итак, чтобы это работало
-
аппаратное обеспечение, процессор, должен распознавать, что он был выключен,
-
и что он, он запущен. И так здесь специальная маленькая программа, которая
-
"зашита" в компьютер запускаться, в этот момент. И эта программа может, возможно,
-
проверять, проверять область аппаратного обеспечения, вы знаете, делать некоторые основные функции начала запуска.
-
И затем очень мило осматривает жесткий диск или флеш диск или что-либо
-
что содержит операционную систему. И затем может запустить операционную
-
систему и затем, затем компьютер может запускаться. Итак, вот почему это
-
называется загрузкой (boot up). Это связанно с этой старой идеей загрузки ремнём. И затем, что такое перезагрузка.
-
Итак перезагрузка значит просто, что мы хотим получить чистую программу, это ведёт к
-
выключению и свежему запуску. Всё правильно. Теперь вы знаете.