Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Disk /dev/sdc: 14,46 GiB, 15523119104 bytes, 30318592 sectors
Disk model: Storage Device
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdc1 1009664 7802879 6793216 3,2G b W95 FAT32
/dev/sdc2 * 73728 139263 65536 32M 6 FAT16
/dev/sdc3 1 1009664 1009664 493M 85 Linux extended
/dev/sdc5 139264 172031 32768 16M 83 Linux
/dev/sdc6 172032 204799 32768 16M 83 Linux
/dev/sdc7 204800 275455 70656 34,5M 83 Linux
/dev/sdc8 275456 776191 500736 244,5M 83 Linux
/dev/sdc9 776192 976895 200704 98M 83 Linux
/dev/sdc10 976896 1009663 32768 16M 83 Linux
Изначально хотел запихнуть в старый PocketBook515 флешку побольше. Она там хитрая, с линуксом, просто так поменять нельзя. Столкнулся с тем, что не могу parted подвинуть границы раздела, потому что overlapping partitions запрещены. Что делать? вот
fdisk -l
Хочу пореверсинжинирить это всё, извлек изнутри sd-карту, покопировал dd на другую флешку. Пока со своей загрузиться не могу, устройство виснет без объяснений. Возможно где-то прописаны гуиды флешки или что-то такое. Но при прямом чтении вижу всякие разделы с кишками кастрированного линукса. Конечная цель -- запустить на этой фигне vim с подключенной клавой. В целом прошивка закрытая, есть блобы. Но много и конфигов и шелл-скриптов в чистом виде, так что поменять можно многое. Плюс раньше был для них ещё какой-то дохлый sdk но уже очень давно. Хотя текстовый редактор думаю написать можно будет, если не удастся обуздать этот линукс.
Я вспомнил, как нашёл четырёхгиговую SD для фотоаппарата, потому что по инструкции SDHC не поддерживается. Потом случайно вставил 16-гиговую SDHC... и она заработала.
Полез гуглить. На официальном форуме производителя один чувак спросил, как же так, SDHC с этой моделью работает, а в инструкции написано другое. Производитель ответил, да, работает, но мы всё равно не рекомендуем использовать, мы рекомендуем купить новый фотоаппарат.
Ну что логично. Они на момент выхода фотика не тестировали такие карты, поэтому ты юзаешь на свой страх и риск. В целом оно работает, но на каких-то нюансах запросто может заглючить. Например памяти на список файлов не хватит, лол. Вот и отмазываются.
Кстати, четырёхгиговые бывают SDHC и без HC. В той модели обе работают, но производитель не рекомендует использовать SDHC, потому что совместимость не тестировал. Длина списка файлов одинаковая, как понимаешь.
А так то да, если драйвер SD'шек понимает SDHC, то при том же объёме никаких проблем не должно вылезти. При большем объёме софт и скрипты могут просто охуеть, тут никаких гарантий.
Да, пихал и 16... Может охуеть счётчик фотографий. На экране счётчик свободного места показывает четырёхзначное число. Начиная с определённого размера носителя (как раз с 16 гигов), он показывает, что есть свободное место для 9999 фотографий, хотя на самом деле места больше.
Хорошо, что переполнения переменных при этом не происходит...
Гипотетически после 10-тысячной фотографии счётчик в имени файла может перейти через ноль, и начнут затираться старые фотографии или он перестанет снимать.
По идее, там новую папку создают, когда переходишь через 10к.
Мне кажется, алгоритм 9999 все используют один и тот же, только префикс/постфикс добавляют индивидуальный. Я помню, где-то сделали пять цифр, но ноль просто вшили в префикс. 09999 переходило в 00000 или 00001.
Конкретно на том аппарате сделали проще: там имена файлов типа 100_0000.JPG. Просто после 100_9999.JPG создастся 101_0000.JPG. Фактически всего шесть цифр, а не четыре.
Ещё одна, кстати, разница между родной флешкой и копией кроме размера в классе скорости, у родной 4, у копии 10. Насколько вероятно, что в этом причина?
Раздел sdc3 наложен поверх других разделов? А как это вообще работает? Разделы же должны портить друг друга, если они не ридонли. Или там определённые кластеры помечены как зарезервированные?
Понятно. Судя по этой вики коммьюнити sunxi, моя модель (она называется правильно PocketBook 515 Mini) есть как раз в списке поддерживаемых этим u-boot, вероятно взлетит. Пока что понятия не имею, что делать дальше, для начала попробую купить флешку с классом скорости 4 и всё же попытаться получить рабочий клон оригинальной прошивки, иначе будет слишком много неизвестных почему ничего не взлетело.
>tar xf /usr/dev.tar -C /dev
> mv /dev/pvi_ioc /dev/pvi_ioc.prev
> ln -s /dev/zero /dev/pvi_ioc
А что, так можно? Я думал, /dev/zero это какбэ виртуальне фс, файлы в которой создают система и драйвера...
> #temporary link pvi_ioc to /dev/zero
> #temporary А обратно вернуть забыли
/dev/zero — это просто специальный файл (inode) с атрибутом «символьное устройство», в котором хранится пара цифр, указывающая на то, с каким драйвером он связан. В Линуксе, например, это пара (1, 5), которая означает, что ввод-вывод в этот файл будет направляться не в ту файловую систему, в которой он лежит, а в драйвер «zero».
Можно самому создать inode с теми же (1, 5), тогда из него будут читаться нули.
В новых Линуксах inode в директории /dev создаются демоном udev. В старых Линуксах такие файлы создавали вручную.
Да и даже если взять мой wifi роутер с MIPS, перепрошитый на OpenWRT - там хоть и есть MMU и ядро Linux, никакого systemd нет.
А если взять те контроллеры, с которыми я сталкиваюсь - на некоторые думаю можно поставить Linux ценой долгого пердолинга, но зачем? Ядро Linux дает какие-то там абстракции, типа у меня будут какие-то процессы, какие-то сигналы, файловая система, какие-то пайпы, какая-то хуйня в /dev/ и какие-то системные вызовы... нахуя мне это, если можно делать всё намного более напрямую? И вообще, надо чтоб "история одного байта".
Мозги того же пылесоса, разумеется, можно впердолить в какую-нибудь stm'ку с внешней dram. Но конкуренты в это время хуяк-хуяк и выпустят на прыщах с готовыми либами...
> Ценный конечный продукт (ЦКП) – это параметр, по которому (в частности) судят об эффективности любого специалиста. ЦКП программиста – это качественная и эффективная программа. ЦКП менеджера – это прибыль. Фича в том, что менеджер нанимает программиста, а не наоборот. И мы получаем приоритет прибыли над качеством. И мы жрем это дерьмо с кончика лопаты. И будем продолжать жрать, пока будет существовать этот приоритет.
Поэтому я за пет-проекты и опенсорс без всяких говноменеджеров со всякими там "time to market".
> ЦКП программиста – это качественная и эффективная программа.
Внимание, вопрос. У кого будет качественнее и эффективнее,
* у программиста, который пердолится под микроко-ко-контроллер, для каждой новой модели пишет новый код , создавая дорогие неподдерживаемые модели, которые мало кто хочет купить,
* у программиста, который имеет поддерживаемый код на ЯВУ с использованием стандартных модулей, который может легко переиспользоваться в новых версиях устройств или обновляться сразу для всей линейки устройств?
Обычный пользователь с бОльшим удовольствием купит девайс, на который могут прийти обновления вроде нейропитушни для распознавания узоров ковра, ведь для производителя это импорт библиотечки и выставление минималок.
Энтузиаст с бОльшим удовольствием купит девайс, в который можно будет впаять побольше памяти/флешку, переустановить луникс, прихреначить дисплей и играть на нём в Тетрис.
>Обычный пользователь с бОльшим удовольствием купит девайс, на который могут прийти обновления в
Тогда почему все пользователи постоянно ищут "как отключить обновления в винде" и ноют, что nokia 3310 грузилась и работала быстрее и батарейку меньше ела, чем айфон?
Потому, что вместо ожидаемых обновлений по сути (новые быстрые программы, функция караоке, расширение объёма диска в 2 раза, питушня для обмена лиц на фотографиях) приходит всякая ерунда (обновления безопасности, новые нескучные обои и кнопка пуск посередине экрана), а ифоны и правда тормозят и много жрут.
Однако это наиболее оптимальная питушня. Другие варианты мы ругали бы больше.
Иногда еще приходит исправление правописания для казахского языка, исправление ошибки при проигрывании DVD "белоснежка и семь гномов" и обновление безопасности для флеш плеера.
потом надо сорок три минуты ждать после перезагрузки пока установится
Виндобляди соснули! Вот в линуксе проги сходу обновляются.
Правда фф вечно от этого охуевает, разваливается и хочет рестарт (не системы конечно). Но это реально быстрее и меньше бесит, чем полный ребут и ждать процентики.
Инженер: Это превосходный пылесос! Отличная проходимость, много памяти, взаимодействие с ПК, куча датчиков... Не могу дождаться, когда на ютубе появятся ролики с демонстрацией кастомных прошивок. Да на его базе самодельщики будут своих роботов клепать!
CEO: «нужно сделать чтобы он принимал только наши лицензионные прошивки.»
Инженер: «... ОК ...»
Просто мне при слове "проверить подпись по-быстрому" почему-то приходят в голову openssl или gpg, а не кривожопый недо-hmac на базе md5, как этим ребятам...
В классическом юниксе у inode был тип (файл, папка, устройство или fifo pipe).
У устройства был мажорный номер, минорный номер и тип "блочное" или "символьное" (в блочное устройство писали блоками по 512 и через буфер, но разделение на блочные и символьные уже частично устарело, в некоторых OS его совсем нет)
Драйвер связявался с мажорным номером, сообщая ядру что вызывать при посылке в это устройство ioctl и всяких write, open итд.
на прыще это делалось так
int register_chrdev(unsigned int major, const char *name,
struct file_operations *fops);
name это имя устройства в /proc/devices.
Это идеология everything is file.
Создавать файлы устройств (записи в тапблице файлов) можно было через mknod, а на линуксе еще был скрипт ``MAKEDEV`` который большинство устройств умел создавать.
С ядра 2.4 появился devfs, и стало можно делать так:
Тут уже name это устройство в /dev/, то есть драйвер стал сам создавать устройство (примерно как в винде), причем ебаться с номерами стало не нужно: их назначали автоматически.
Тут набижали питухи, и сказали, что им не нравится как устройства называются в devfs, и они хотят сами их называть как удобно, чтобы например карточка с таким-то макадресом всегда была ``eth_wan`` а не ethN, где N зависит от количества других карточек.
Кроме того хотелось уметь загружать/удалять модули при вставке нужных устройств.
стало понятно, что харкдодить такую сложную логику в ядро не нужно.
Тогда запилили udev: ядро стало сообщать про устройства через специальный инетфейс юзердемону, а уже он стал создавать устройства и называть их как настроит пользователь, а также загружать нужные им драйверы динамически (почти как в винде)
Потом пришел поцтеринг и унес udev в systemd-udev.
Потом пришел Девуан и форкнул udev.
> Тут набижали питухи, и сказали, что им не нравится как устройства называются в devfs, и они хотят сами их называть как удобно, чтобы например карточка с таким-то макадресом всегда была ``eth_wan`` а не ethN, где N зависит от количества других карточек.
Молодцы питухи. Скорее бы добрались до винды и сделали что-то адекватное вместо/поверх c:, d:, e:.
> Их держат только для совместимости с досовскими программами и с программами для Win95, Win3.x.
Их еще держат для совместимости с пользователями винды, которые привыкли, что есть какие-то диски C: D: E:
и для совместимости со всяким скриптоговном, написанным васянами(не имеющим отношения ни к Win95, ни к Win3.x), в которое захардкожены какие-то говнопути к диску C: и которое никто переписывать не будет.
> для совместимости со всяким скриптоговном, написанным васянами(не имеющим отношения ни к Win95, ни к Win3.x), в которое захардкожены какие-то говнопути к диску C: и которое никто переписывать не будет.
Справедливости ради, в Линуксе ты тоже имена системных каталогов просто так не поменяешь по этой же причине.
Разве в документации не было сказано, какая буква соответствует какому диску? Даже в некоторых биосах (в смысле setup) упоминались C: и A: в boot order
MS-LIB strips the drive designation and the extensionfrom the
object file specification, leaving only the filename. For example, if the object file to be appended as a module to a library is B:CURSOR.OBJ
causes MS-LIB to strip off the B: and the .OBJ, leaving only
CURSOR, which becomes a module named CURSOR in the
library.
Здорово, спасибо.
Но как же работает tar -x ... -С /dev ? Или при создании файла в /dev ему автоматически прописывается тип "устройство"? Чтобы все последующие открытия файла уже относились не к данным файла, в которые записаны при первом обращении мажор-минор, а к драйверу?
Запакуй таром файл в /dev, и распакуй его в домшнюю папку
ты увидишь там мажорный и минорный номера и тип файла и ошибку
```
ar: mem: Cannot mknod: Operation not permitted
tar: Exiting with failure status due to previous errors
```
так что при созданеии файла со спец типом само ядро делает mknod
Я с помощью команды mknod в обычных файлухах создавал волшебные ноды. Прикольно, когда у тебя файл с именем pituh, из которого читаются случайные байты.
Steve_Brown # 0
ObeseYoung # 0 ⇈
bormand # 0 ⇈
ObeseYoung # 0 ⇈
Steve_Brown # 0 ⇈
bormand # 0 ⇈
Kozel # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
vistefan # 0 ⇈
bormand # 0
HO9I6PbCKuu_neTyx # 0 ⇈
16 гигов — это уже SDHC как минимум.
Даже на 4 гига SD без HC приходится разыскивать с собаками. Четырёхгиговые карточки без HC ещё остались на складах, но их продают втридорога.
bormand # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
Полез гуглить. На официальном форуме производителя один чувак спросил, как же так, SDHC с этой моделью работает, а в инструкции написано другое. Производитель ответил, да, работает, но мы всё равно не рекомендуем использовать, мы рекомендуем купить новый фотоаппарат.
bormand # 0 ⇈
Ну что логично. Они на момент выхода фотика не тестировали такие карты, поэтому ты юзаешь на свой страх и риск. В целом оно работает, но на каких-то нюансах запросто может заглючить. Например памяти на список файлов не хватит, лол. Вот и отмазываются.
HO9I6PbCKuu_neTyx # 0 ⇈
bormand # 0 ⇈
А так то да, если драйвер SD'шек понимает SDHC, то при том же объёме никаких проблем не должно вылезти. При большем объёме софт и скрипты могут просто охуеть, тут никаких гарантий.
HO9I6PbCKuu_neTyx # 0 ⇈
Хорошо, что переполнения переменных при этом не происходит...
Гипотетически после 10-тысячной фотографии счётчик в имени файла может перейти через ноль, и начнут затираться старые фотографии или он перестанет снимать.
1024-- # 0 ⇈
Мне кажется, алгоритм 9999 все используют один и тот же, только префикс/постфикс добавляют индивидуальный. Я помню, где-то сделали пять цифр, но ноль просто вшили в префикс. 09999 переходило в 00000 или 00001.
HO9I6PbCKuu_neTyx # 0 ⇈
Я не знаю, может ли меняться первая цифра.
vistefan # 0 ⇈
vistefan # 0 ⇈
Хоть и не в HC дело.
vistefan # 0 ⇈
bormand # 0 ⇈
HO9I6PbCKuu_neTyx # 0
ObeseYoung # 0 ⇈
HO9I6PbCKuu_neTyx # 0 ⇈
Steve_Brown # 0 ⇈
ObeseYoung # 0 ⇈
vistefan # 0 ⇈
bormand # 0 ⇈
Steve_Brown # 0 ⇈
bormand # 0 ⇈
Но судя по остальным разделам включительно.
vistefan # 0 ⇈
bormand # 0 ⇈
Бекап только полный сделай, раз с копии не грузится и есть шанс закирпичить нахуй... Ну и почитай что именно показывает fdisk перед тем как лезть.
vistefan # 0 ⇈
bormand # 0 ⇈
А то вдруг там от SD карты юзается её "secure" часть и ты соснул с заменой.
guest # 0 ⇈
f(-1) = 1
f(0) = !f(x-1) = 0
f(1) = !f(x-1) = 1
f(x) = x mod 2 != 0
lim x->inf fx = 1 && 0 = 0
vistefan # 0 ⇈
bormand # 0 ⇈
vistefan # 0 ⇈
https://linux-sunxi.org/PocketBook_Touch_Lux_2_(626)#Images
Вот здесь есть какие-то наводки, модель другая, но на таком же процессоре sunxi A13
bormand # 0 ⇈
Лол, тут даже говнокоды про этот SoC были.
Ну вот u-boot загрузить было бы прикольно, если ему будет куда консольку показать.
> что это
Да обычный embedded загрузчик, считай что grub без наворотов и с уклоном в инициализацию железа (т.к. bios/uefi который за тебя все сделает нету).
vistefan # 0 ⇈
vistefan # 0 ⇈
Вот его внутренний fstab
vistefan # 0 ⇈
vistefan # 0 ⇈
Steve_Brown # 0 ⇈
> mv /dev/pvi_ioc /dev/pvi_ioc.prev
> ln -s /dev/zero /dev/pvi_ioc
А что, так можно? Я думал, /dev/zero это какбэ виртуальне фс, файлы в которой создают система и драйвера...
> #temporary link pvi_ioc to /dev/zero
> #temporary
А обратно вернуть забыли
HO9I6PbCKuu_neTyx # 0 ⇈
Можно самому создать inode с теми же (1, 5), тогда из него будут читаться нули.
В новых Линуксах inode в директории /dev создаются демоном udev. В старых Линуксах такие файлы создавали вручную.
Вроде ничего не напутал?
bormand # 0 ⇈
Не systemd?
guest # 0 ⇈
https://man.archlinux.org/man/systemd-udevd.service.8
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
j123123 # 0 ⇈
[email protected] # 0 ⇈
j123123 # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Raspberry Pi и её клоны во всю юзают... По крайней мере для прототипов и поделок.
В общем-то даже в пылесосах линукс.
j123123 # 0 ⇈
У меня более суровые контроллеры, без MMU.
j123123 # 0 ⇈
А если взять те контроллеры, с которыми я сталкиваюсь - на некоторые думаю можно поставить Linux ценой долгого пердолинга, но зачем? Ядро Linux дает какие-то там абстракции, типа у меня будут какие-то процессы, какие-то сигналы, файловая система, какие-то пайпы, какая-то хуйня в /dev/ и какие-то системные вызовы... нахуя мне это, если можно делать всё намного более напрямую? И вообще, надо чтоб "история одного байта".
bormand # 0 ⇈
Time to market.
Мозги того же пылесоса, разумеется, можно впердолить в какую-нибудь stm'ку с внешней dram. Но конкуренты в это время хуяк-хуяк и выпустят на прыщах с готовыми либами...
j123123 # 0 ⇈
> Ценный конечный продукт (ЦКП) – это параметр, по которому (в частности) судят об эффективности любого специалиста. ЦКП программиста – это качественная и эффективная программа. ЦКП менеджера – это прибыль. Фича в том, что менеджер нанимает программиста, а не наоборот. И мы получаем приоритет прибыли над качеством. И мы жрем это дерьмо с кончика лопаты. И будем продолжать жрать, пока будет существовать этот приоритет.
Поэтому я за пет-проекты и опенсорс без всяких говноменеджеров со всякими там "time to market".
guest # 0 ⇈
1024-- # 0 ⇈
Внимание, вопрос. У кого будет качественнее и эффективнее,
* у программиста, который пердолится под микроко-ко-контроллер, для каждой новой модели пишет новый код , создавая дорогие неподдерживаемые модели, которые мало кто хочет купить,
* у программиста, который имеет поддерживаемый код на ЯВУ с использованием стандартных модулей, который может легко переиспользоваться в новых версиях устройств или обновляться сразу для всей линейки устройств?
Обычный пользователь с бОльшим удовольствием купит девайс, на который могут прийти обновления вроде нейропитушни для распознавания узоров ковра, ведь для производителя это импорт библиотечки и выставление минималок.
Энтузиаст с бОльшим удовольствием купит девайс, в который можно будет впаять побольше памяти/флешку, переустановить луникс, прихреначить дисплей и играть на нём в Тетрис.
guest # 0 ⇈
Тогда почему все пользователи постоянно ищут "как отключить обновления в винде" и ноют, что nokia 3310 грузилась и работала быстрее и батарейку меньше ела, чем айфон?
1024-- # 0 ⇈
Однако это наиболее оптимальная питушня. Другие варианты мы ругали бы больше.
guest # 0 ⇈
потом надо сорок три минуты ждать после перезагрузки пока установится
bormand # 0 ⇈
Виндобляди соснули! Вот в линуксе проги сходу обновляются.
Правда фф вечно от этого охуевает, разваливается и хочет рестарт (не системы конечно). Но это реально быстрее и меньше бесит, чем полный ребут и ждать процентики.
guest # 0 ⇈
с веб инитерфейсом на пхп который будет зависать, глючить, и через который поломают твой пылесос в итоге
bormand # 0 ⇈
Причем там не то чтобы дыра какая-то в протоколе или скриптах, просто "ключ" для "подписи" заливаемой прошивки захардкожен.
У чуваков на борту была убунта с openssl, gpg и чем угодно ещё, но они замутили какое-то самодельное говнище.
З.Ы. Такое ощущение, что эти дыры сознательно оставляют для моддеров.
[email protected] # 0 ⇈
CEO: «нужно сделать чтобы он принимал только наши лицензионные прошивки.»
Инженер: «... ОК ...»
guest # 0 ⇈
Я видел как питушок реально тужился и высирал свой способ "шифрования" (примерно на шифре цезаря) чтобы его хакир не заснифил.
bormand # 0 ⇈
Имхо, пакеты лучше локально проверять перед установкой.
Я бы не стала полагаться на TLS.
guest # 0 ⇈
В случае с установкой пакетов и их подпиской конечно нужно пилить PKI: в устройство вшиваешь публичные ключи какого-то своего CA.
Перед запуском проверяешь CRL этого CA.
Потом проверяешь подпись пакета.
Не факт, что нужно именно опенссл, но PKI точно нужен
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
да, в бизибокс и alpine еще не насрали, но уже скоро
guest # 0 ⇈
В классическом юниксе у inode был тип (файл, папка, устройство или fifo pipe).
У устройства был мажорный номер, минорный номер и тип "блочное" или "символьное" (в блочное устройство писали блоками по 512 и через буфер, но разделение на блочные и символьные уже частично устарело, в некоторых OS его совсем нет)
Драйвер связявался с мажорным номером, сообщая ядру что вызывать при посылке в это устройство ioctl и всяких write, open итд.
на прыще это делалось так
name это имя устройства в /proc/devices.
Это идеология everything is file.
Создавать файлы устройств (записи в тапблице файлов) можно было через mknod, а на линуксе еще был скрипт ``MAKEDEV`` который большинство устройств умел создавать.
С ядра 2.4 появился devfs, и стало можно делать так:
Тут уже name это устройство в /dev/, то есть драйвер стал сам создавать устройство (примерно как в винде), причем ебаться с номерами стало не нужно: их назначали автоматически.
(продолжение ниже)
guest # 0 ⇈
Кроме того хотелось уметь загружать/удалять модули при вставке нужных устройств.
стало понятно, что харкдодить такую сложную логику в ядро не нужно.
Тогда запилили udev: ядро стало сообщать про устройства через специальный инетфейс юзердемону, а уже он стал создавать устройства и называть их как настроит пользователь, а также загружать нужные им драйверы динамически (почти как в винде)
Потом пришел поцтеринг и унес udev в systemd-udev.
Потом пришел Девуан и форкнул udev.
1024-- # 0 ⇈
Молодцы питухи. Скорее бы добрались до винды и сделали что-то адекватное вместо/поверх c:, d:, e:.
HO9I6PbCKuu_neTyx # 0 ⇈
В NT любое устройство можно смонтировать в любой путь.
j123123 # 0 ⇈
Их еще держат для совместимости с пользователями винды, которые привыкли, что есть какие-то диски C: D: E:
и для совместимости со всяким скриптоговном, написанным васянами(не имеющим отношения ни к Win95, ни к Win3.x), в которое захардкожены какие-то говнопути к диску C: и которое никто переписывать не будет.
[email protected] # 0 ⇈
Справедливости ради, в Линуксе ты тоже имена системных каталогов просто так не поменяешь по этой же причине.
Fike # 0 ⇈
guest # 0 ⇈
оно уже не 32, но миллард бат файлов не могут ошибаться
guest # 0 ⇈
Имена дисков тянутся из тех времен, когда они были частью API прерываний BIOS.
У NT они ссылки на \Device\HarddiskVolume1, которые насрал менеджер томов
bormand # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
тут дествительно нет понятия "C:", а только лишь fixed disk и diskette
А вот в гайде по досу уже есть
MS-LIB strips the drive designation and the extensionfrom the
object file specification, leaving only the filename. For example, if the object file to be appended as a module to a library is
B:CURSOR.OBJ
causes MS-LIB to strip off the B: and the .OBJ, leaving only
CURSOR, which becomes a module named CURSOR in the
library.
Steve_Brown # 0 ⇈
Но как же работает tar -x ... -С /dev ? Или при создании файла в /dev ему автоматически прописывается тип "устройство"? Чтобы все последующие открытия файла уже относились не к данным файла, в которые записаны при первом обращении мажор-минор, а к драйверу?
bormand # 0 ⇈
guest # 0 ⇈
я думал, ты про архивирование файлов
guest # 0 ⇈
ты увидишь там мажорный и минорный номера и тип файла и ошибку
```
ar: mem: Cannot mknod: Operation not permitted
tar: Exiting with failure status due to previous errors
```
так что при созданеии файла со спец типом само ядро делает mknod
bormand # 0 ⇈
guest # 0 ⇈
зато теперь в домашней папке у меня есть файл устройства)
bormand # 0 ⇈
Да не ядро, а сам tar вроде правильные аргументы передает в правильный сисколл? Вряд ли он это через creat делает.
Просто вот такой вот архиватор, знающий про особенности системы. Zip так не умеет, емнип.
guest # 0 ⇈
bormand # 0 ⇈
В отличие от /sys, /proc и т.п. куда реально монтируется волшебная файлуха с интерфейсами ядра.
HO9I6PbCKuu_neTyx # 0 ⇈
guest # 0 ⇈
Steve_Brown # 0 ⇈
bormand # 0 ⇈
Он файлики метров на 10 еле-еле открывает, а ты ему бесконечность подсунуть хочешь...
[email protected] # 0 ⇈
guest # 0 ⇈
guest # 0