Новые книги

Автор сообщает интересные, зачастую уникальные сведения об организационной структуре Apple, режиме секретности, стратегии и тактике компании, личности и стиле руководства ее основателя Стива Джобса. Рассказывает, как рождаются «яблочные» шедевры. Анализирует, каким образом небольшая фирма, пренебрегающая традиционными методами управления, сумела стать технологическим гигантом и при этом сохранить дух стартапа. Рассуждает, какое будущее ждет Apple без Стива Джобса. Книга адресована поклонникам Apple, бизнесменам, всем, кто мечтает найти свою «формулу успеха».
Книги, подобные этой, редко появляются на прилавках магазинов, поскольку за ними стоит многолетний опыт работы их авторов. Здесь описывается хороший стиль Unix- программирования, многообразие доступных языков программирования, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор анализирует философию Unix, культуру и основные традиции сформированного вокруг нее сообщества. В книге объясняются наилучшие практические приемы проектирования и разработки программ в Unix. Вместе с тем описанные в книге модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix-программ и инструменты для их разработки. Отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации.

Книга будет полезной для широкой категории пользователей ПК и программистов.

Специальные файлы




Специальные файлы

В Unix помимо обычных файлов и каталогов существуют еще и специальные файлы. Они используются для обозначения физических устройств компьютера. (Железок). В сущности, что такое файл? Это "нечто", куда можно записывать данные, как последовательность байтов, и считывать их оттуда. И значит, вполне естественным выглядит, например, файл /dev/console - соответствующий консольному терминалу. Все, что выводится в файл /dev/console, будет просто появляться на экране терминала. При попытке чтения из файла /dev/console, вы будете получать (внимание!), не то, что нарисовано в данный момент на экране, а то, что вводится с клавиатуры. Попробуйте выполнить команды

  su
  echo Привет > /dev/console
  cat /dev/console
  Ctrl-C

Для каждого терминала unix-машины существует соответствующий ему файл. Обычным терминалам соответствуют файлы, которые называются примерно так:

  /dev/contty01 или /dev/tty02 или /dev/ttyFD02 или /dev/ttyS0
  (и т.д., возможны варианты)

Псевдо-терминалам (они эмулируются, когда вы входите в систему по сети, посредством команд типа telnet, rlogin), соответствуют специальные файлы

  /dev/pty*, или /dev/pty/*

Команда who, или who am i сообщит вам, как называется ваш собственный терминал.

Существуют специальные файлы, соответствующие жесткому диску в целом (/dev/rdsk/m197_c0d0s7), и всем его разделам (/dev/dsk/m197_c0d0s*). Если вы будете читать из этих файлов, то получите все байтики, как они лежат на жестком диске, с нулевого цилиндра и до последнего... А если вы в этот файл что-нибудь запишете, то получите (потом) богатый опыт по переформатированию и разметке жесткого диска.

/dev/mem - файл, изображающий оперативную память.
/dev/audio - если "закатить" в него файл звукового формата (*.wav, *.au, ...?) - то он будет озвучен динамиком компьютера, а команда cat /dev/audio будет принимать все, что произносится в микрофон. Впрочем я отвлекся, у нас ведь не PC, не Silicon Graphic и не SPARCstation.
/dev/zero - из него можно считать сколько угодно нулевых байтов
/dev/null - а в него можно писать и читать из него тоже, в неограниченных количествах, и с неизменным результатом: NULL - он и есть null. А в MSDOS его аналог называется NUL ).

Специальные файлы бывают двух типов:

  1. блочные - запись и чтение допускаются только блоками. Например, разделы дисков с файловой системой являются таковыми.
      ls -al /dev/fd*
    brw-rw----  1 root floppy    2,  28 Jul 18  1994 /dev/fd0H1440
    brw-rw----  1 root floppy    2,  32 Jul 18  1994 /dev/fd0H2880
    brw-rw----  1 root floppy    2,  12 Jul 18  1994 /dev/fd0H360
    
  2. символьные(бесструктурные, сырые, row) - можно читать и писать отдельными байтами. К ним относятся терминалы, маг- нитные ленты, неформатированные диски и разделы дис- ков без файловой системы.
      ls -al /dev/tty*
    crw--w--w-   1 moshkow  sys        4,   1 Jan 15 22:00 /dev/tty1
    crw--w--w-   1 root     root       4,   2 Jan 15 20:37 /dev/tty2
    crw--w--w-   1 root     root       4,   2 Jan 15 20:37 /dev/tty2
    

Различие - первая буква в листинге команды ls -l

Понятия "размер" у специального файла не существует. Ведь этот файл обозначает физическое устройство. Фактически, это ссылка на соответствующий драйвер. Вместо длины, команда ls показывает для таких файлов два числа: "мажорный" и "минорный" номера устройств. Будем считать для ясности, что "мажор" это порядковый номер драйвера устройства, а "минор" - внутренний номер устройства в таблице обслуживающего его драйвера.

[Назад] [Содержание] [Вперед]