Skip to main content
LibreTexts - Ukrayinska

1.1: Все є файлом!

  • Page ID
    34567
    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Все є файлом!

    Часто цитується принцип Unix-подібних систем, таких як Linux або BSD - це все, що є файлом.

    Уявіть собі файл в контексті чогось знайомого на зразок текстового процесора. Є дві основні операції, які ми могли б використовувати на цьому уявному файлі обробки текстів:

    1. Прочитайте його (існуючі збережені дані з текстового процесора).
    2. Напишіть в нього (нові дані від користувача).

    Розглянемо деякі загальні речі, прикріплені до комп'ютера, і те, як вони пов'язані з нашими основними файловими операціями:

    1. Екран
    2. Клавіатура
    3. Принтер
    4. КОМПАКТ-ДИСК

    Екран і принтер схожі на файл лише для запису, але замість того, щоб зберігатися як біти на диску, інформація відображається у вигляді крапок на екрані або рядків на сторінці. Клавіатура схожа на файл лише для читання, з даними, що надходять від натискань клавіш, наданих користувачем. CD-ROM схожий, але замість того, щоб випадково надходити від користувача дані зберігаються безпосередньо на диску.

    Таким чином, концепція файлу є гарною абстракцією або раковини для або джерела даних. Таким чином, це відмінна абстракція всіх пристроїв, які можна прикріпити до комп'ютера. Ця реалізація є великою силою UNIX і очевидна у всьому дизайні всієї платформи. Це одна з фундаментальних ролей операційної системи, щоб забезпечити цю абстракцію апаратного забезпечення програмісту.

    Це, мабуть, не надто багато, щоб сказати, що абстракція є основною концепцією, яка лежить в основі всіх сучасних обчислень. Ніхто не може зрозуміти все, починаючи від проектування сучасного призначеного для користувача інтерфейсу і закінчуючи внутрішньою роботою сучасного процесора, а тим більше будувати все це самі. Для програмістів абстракції - це загальна мова, яка дозволяє нам співпрацювати та винаходити.

    Навчання орієнтуватися по абстракціях дає більше розуміння того, як використовувати абстракції найкращими та найбільш інноваційними способами. У цій книзі ми стурбовані абстракціями на найнижчих шарах; між додатками та операційною системою та операційною системою та обладнанням. Над цим лежать ще багато шарів, кожен гідний своїх книг. У міру просування цих розділів ви, сподіваємось, отримаєте деяке розуміння абстракцій, представлених сучасною операційною системою.

    Чи можете ви помітити різницю між компакт-диском та клавіатурою? Як прикладний програміст, ви не повинні вміти.
    Малюнок 1. 1 Абстракція