1. Куча / Говнокод #27836

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    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 но уже очень давно. Хотя текстовый редактор думаю написать можно будет, если не удастся обуздать этот линукс.

    Если кому-то пиздец как не лень, вот dd родной флешки
    https://disk.yandex.ru/d/L08isezHHoZCOQ

    Буду крайне рад, если кто-то поглядит что там вообще в целом.

    Завтра если кто-то отзовётся поскидываю ещё скринов и содержимое скриптов.

    Запостил: vistefan, 23 Ноября 2021

    Комментарии (106) RSS

    • Там что, внутри спрятана обычная SD-карта в картридерном креплении?
      Ответить
      • Меня кстати неимоверно бесит, что в картридерах жмотятся сделать механизм-эжектор.
        Ответить
        • Его делают только если флешка целиком утапливается в слот, емнип.
          Ответить
          • А я и не против, мне бы чтобы одной рукой удобно было, а как конкретно они реализуют - всё равно.
            Ответить
          • Если хвост флешки торчит наружу, то на эжекторе можно сэкономить.
            Ответить
      • Совершенно верно! А внешней не предусмотрено.
        Ответить
    • Попробуй на маленькую флешку скопировать, возможно эта хреновина SDHC не понимает.
      Ответить
      • Возможно, Вы имели в виду SDXC?

        16 гигов — это уже SDHC как минимум.

        Даже на 4 гига SD без HC приходится разыскивать с собаками. Четырёхгиговые карточки без HC ещё остались на складах, но их продают втридорога.
        Ответить
        • Ну судя по лейауту там гига 4 и стояло изначально.
          Ответить
          • Я вспомнил, как нашёл четырёхгиговую SD для фотоаппарата, потому что по инструкции SDHC не поддерживается. Потом случайно вставил 16-гиговую SDHC... и она заработала.

            Полез гуглить. На официальном форуме производителя один чувак спросил, как же так, SDHC с этой моделью работает, а в инструкции написано другое. Производитель ответил, да, работает, но мы всё равно не рекомендуем использовать, мы рекомендуем купить новый фотоаппарат.
            Ответить
            • > не рекомендуем использовать

              Ну что логично. Они на момент выхода фотика не тестировали такие карты, поэтому ты юзаешь на свой страх и риск. В целом оно работает, но на каких-то нюансах запросто может заглючить. Например памяти на список файлов не хватит, лол. Вот и отмазываются.
              Ответить
              • Кстати, четырёхгиговые бывают SDHC и без HC. В той модели обе работают, но производитель не рекомендует использовать SDHC, потому что совместимость не тестировал. Длина списка файлов одинаковая, как понимаешь.
                Ответить
                • Ну ты писал, что ты пихал 16...

                  А так то да, если драйвер SD'шек понимает SDHC, то при том же объёме никаких проблем не должно вылезти. При большем объёме софт и скрипты могут просто охуеть, тут никаких гарантий.
                  Ответить
                  • Да, пихал и 16... Может охуеть счётчик фотографий. На экране счётчик свободного места показывает четырёхзначное число. Начиная с определённого размера носителя (как раз с 16 гигов), он показывает, что есть свободное место для 9999 фотографий, хотя на самом деле места больше.

                    Хорошо, что переполнения переменных при этом не происходит...

                    Гипотетически после 10-тысячной фотографии счётчик в имени файла может перейти через ноль, и начнут затираться старые фотографии или он перестанет снимать.
                    Ответить
                    • По идее, там новую папку создают, когда переходишь через 10к.
                      Мне кажется, алгоритм 9999 все используют один и тот же, только префикс/постфикс добавляют индивидуальный. Я помню, где-то сделали пять цифр, но ноль просто вшили в префикс. 09999 переходило в 00000 или 00001.
                      Ответить
                      • Конкретно на том аппарате сделали проще: там имена файлов типа 100_0000.JPG. Просто после 100_9999.JPG создастся 101_0000.JPG. Фактически всего шесть цифр, а не четыре.

                        Я не знаю, может ли меняться первая цифра.
                        Ответить
      • Не, флеха которая там изначально внутри на 4гб, тоже помечена как sdhc
        Ответить
      • Попробую, чтобы отсечь проблему с размером флешки, если вдруг заработает.
        Хоть и не в HC дело.
        Ответить
      • Ещё одна, кстати, разница между родной флешкой и копией кроме размера в классе скорости, у родной 4, у копии 10. Насколько вероятно, что в этом причина?
        Ответить
        • Да вряд ли, у тебя же лучше карта... И это больше для фотиков важно, чем для книжек.
          Ответить
    • Раздел sdc3 наложен поверх других разделов? А как это вообще работает? Разделы же должны портить друг друга, если они не ридонли. Или там определённые кластеры помечены как зарезервированные?
      Ответить
      • Это же extended partition из времен MBR, не дядя том.
        Ответить
        • Да, туплю. Это пакет с пакетами.
          Ответить
        • А почему тогда fdisk ругается, если всё нормально?
          Ответить
          • В прыщах принято размечать primary разделами с очень давних времен, может даже с самого начала.
            Ответить
          • fdisk как раз не ругается, показывает себе спокойно список разделов. А ругается parted, которым я хочу один из разделов ресайзнуть. Ну или чем-то ещё
            Ответить
      • Но ведь он реально пересекается с sdc1... Походу чуваки на 1 сектор накосячили когда образ генерили.
        Ответить
        • А, там не [Start, End), а [Start, End].
          Ответить
          • Не ебу, если честно... лет 10 фдиск не юзала.

            Но судя по остальным разделам включительно.
            Ответить
        • Чо можно с этим сделать?
          Ответить
          • Хрен знает, уменьшить sdc3 на 1 сектор чтобы оно больше не слипалось с sdc1?

            Бекап только полный сделай, раз с копии не грузится и есть шанс закирпичить нахуй... Ну и почитай что именно показывает fdisk перед тем как лезть.
            Ответить
            • Ну оригинальную флешку-то мне трогать резона нет, я как раз с копией работаю, и надо добиться, чтобы с неё грузилось.
              Ответить
              • Нету готовых статеек, где чуваки уже изучали процесс загрузки этой байды или ей подобных?

                А то вдруг там от SD карты юзается её "secure" часть и ты соснул с заменой.
                Ответить
                • Интегрируем

                  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
                  Ответить
                • А что такое "secure" часть у sd-карты?
                  Ответить
                  • Какой-то кусок, доступный только копирастам. Не знаю как это работает, в официальной публичной спеке он не описан.
                    Ответить
                • Судя по всему юзается некий U-Boot, всё датировано говном мамонта, но если пойму что это вообще такое, попробую что-то собрать

                  https://linux-sunxi.org/PocketBook_Touch_Lux_2_(626)#Images
                  Вот здесь есть какие-то наводки, модель другая, но на таком же процессоре sunxi A13
                  Ответить
                  • > sunxi

                    Лол, тут даже говнокоды про этот SoC были.

                    Ну вот u-boot загрузить было бы прикольно, если ему будет куда консольку показать.

                    > что это

                    Да обычный embedded загрузчик, считай что grub без наворотов и с уклоном в инициализацию железа (т.к. bios/uefi который за тебя все сделает нету).
                    Ответить
                    • Понятно. Судя по этой вики коммьюнити sunxi, моя модель (она называется правильно PocketBook 515 Mini) есть как раз в списке поддерживаемых этим u-boot, вероятно взлетит. Пока что понятия не имею, что делать дальше, для начала попробую купить флешку с классом скорости 4 и всё же попытаться получить рабочий клон оригинальной прошивки, иначе будет слишком много неизвестных почему ничего не взлетело.
                      Ответить
      • Ну какие-то там внутри устройства явно как ro монтируюся.
        Вот его внутренний fstab
        none			/proc		  proc	  defaults  0 0
        none			/dev/pts	  devpts  mode=0622 0 0
        tmpfs			/dev/shm	  tmpfs	  defaults  0 0
        /dev/mmcblk0p8          /ebrmain          auto    ro        0 0
        /dev/mmcblk0p9          /mnt/secure       auto    defaults  0 0
        /ebrmain/cramfs.img	/ebrmain/cramfs	  auto	  defaults,loop 0 0
        Ответить
        • А вот в init.d лежит rcS
          #! /bin/sh
          
          PATH=/sbin:/bin:/usr/bin:
          runlevel=S
          prevlevel=N
          umask 022
          export PATH runlevel prevlevel
          
          trap ":" INT QUIT TSTP
          
          /bin/mount -o remount,ro rootfs /
          /bin/mount -t proc  none  /proc
          /bin/mount -t tmpfs none  /var -o size=48M
          /bin/mount -t sysfs none  /sys
          
          /bin/mkdir -p /var/dev /var/lib /var/run /var/log /var/tmp /var/lock
          chmod 1777 /var/tmp
          
          tar xf /usr/dev.tar -C /dev
          
          echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
          echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
          
          mount -o ro,noatime,dirsync,noexec,uid=0,gid=0,umask=022 /dev/mmcblk0p2 /boot
          insmod /lib/modules/epdc.ko
          
          #temporary link pvi_ioc to /dev/zero
          mv /dev/pvi_ioc /dev/pvi_ioc.prev
          ln -s /dev/zero /dev/pvi_ioc
          
          /bin/hostname pocketbook
          
          /bin/hwclock -w
          
          mount -a
          
          #RUNNING AP
          if [ -f /ebrmain/pocketbook ]; then
          	cd /ebrmain
          	export QT_QPA_PLATFORM=pocketbook
          	./pocketbook
          	cd /
          else
          	echo "no ebrmain executable - starting automatic update"
          	/bin/swupdate -u -y &
          fi
          Ответить
          • И действительно, все файлы устройств для /dev/ лежат в тар-мячике
            Ответить
            • >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. В старых Линуксах такие файлы создавали вручную.

                Вроде ничего не напутал?
                Ответить
                • > демоном udev

                  Не systemd?
                  Ответить
                  • systemd конечно, если Иканус не про devuan или slackware.
                    https://man.archlinux.org/man/systemd-udevd.service.8
                    Ответить
                    • Скоро будет ядро, systemd и прикладной софт. Ничего лишнего.
                      Ответить
                      • прикладного софта не будет. Будет systemd-appd
                        Ответить
                        • В контейнерах которого исполняется софт со всеми его зависимостями, примерно как сейчас в докере или снапе.
                          Ответить
                      • У меня в контроллерах ничего этого не будет.
                        Ответить
                        • Контроллеры с жабаскриптом же сделали? И с системд сделают.
                          Ответить
                          • А есть ли контроллеры с "PHP"?
                            Ответить
                            • конечно
                              <?php
                              class Controller
                              {
                                  private $model;
                                  public function __construct($model) {
                                      $this->model = $model;
                                  }
                              }
                              Ответить
                          • > контроллеры с systemd

                            Raspberry Pi и её клоны во всю юзают... По крайней мере для прототипов и поделок.

                            В общем-то даже в пылесосах линукс.
                            Ответить
                            • > Raspberry Pi и её клоны

                              У меня более суровые контроллеры, без MMU.
                              Ответить
                            • Да и даже если взять мой wifi роутер с MIPS, перепрошитый на OpenWRT - там хоть и есть MMU и ядро Linux, никакого systemd нет.

                              А если взять те контроллеры, с которыми я сталкиваюсь - на некоторые думаю можно поставить Linux ценой долгого пердолинга, но зачем? Ядро Linux дает какие-то там абстракции, типа у меня будут какие-то процессы, какие-то сигналы, файловая система, какие-то пайпы, какая-то хуйня в /dev/ и какие-то системные вызовы... нахуя мне это, если можно делать всё намного более напрямую? И вообще, надо чтоб "история одного байта".
                              Ответить
                              • > зачем

                                Time to market.

                                Мозги того же пылесоса, разумеется, можно впердолить в какую-нибудь stm'ку с внешней dram. Но конкуренты в это время хуяк-хуяк и выпустят на прыщах с готовыми либами...
                                Ответить
                                • http://www.delphikingdom.com/asp/viewitem.asp?catalogid=254

                                  > Ценный конечный продукт (ЦКП) – это параметр, по которому (в частности) судят об эффективности любого специалиста. ЦКП программиста – это качественная и эффективная программа. ЦКП менеджера – это прибыль. Фича в том, что менеджер нанимает программиста, а не наоборот. И мы получаем приоритет прибыли над качеством. И мы жрем это дерьмо с кончика лопаты. И будем продолжать жрать, пока будет существовать этот приоритет.

                                  Поэтому я за пет-проекты и опенсорс без всяких говноменеджеров со всякими там "time to market".
                                  Ответить
                                  • вы так говорите, как будто в опенсорсе важно качество
                                    Ответить
                                  • > ЦКП программиста – это качественная и эффективная программа.
                                    Внимание, вопрос. У кого будет качественнее и эффективнее,
                                    * у программиста, который пердолится под микроко-ко-контроллер, для каждой новой модели пишет новый код , создавая дорогие неподдерживаемые модели, которые мало кто хочет купить,
                                    * у программиста, который имеет поддерживаемый код на ЯВУ с использованием стандартных модулей, который может легко переиспользоваться в новых версиях устройств или обновляться сразу для всей линейки устройств?

                                    Обычный пользователь с бОльшим удовольствием купит девайс, на который могут прийти обновления вроде нейропитушни для распознавания узоров ковра, ведь для производителя это импорт библиотечки и выставление минималок.

                                    Энтузиаст с бОльшим удовольствием купит девайс, в который можно будет впаять побольше памяти/флешку, переустановить луникс, прихреначить дисплей и играть на нём в Тетрис.
                                    Ответить
                                    • >Обычный пользователь с бОльшим удовольствием купит девайс, на который могут прийти обновления в

                                      Тогда почему все пользователи постоянно ищут "как отключить обновления в винде" и ноют, что nokia 3310 грузилась и работала быстрее и батарейку меньше ела, чем айфон?
                                      Ответить
                                      • Потому, что вместо ожидаемых обновлений по сути (новые быстрые программы, функция караоке, расширение объёма диска в 2 раза, питушня для обмена лиц на фотографиях) приходит всякая ерунда (обновления безопасности, новые нескучные обои и кнопка пуск посередине экрана), а ифоны и правда тормозят и много жрут.
                                        Однако это наиболее оптимальная питушня. Другие варианты мы ругали бы больше.
                                        Ответить
                                        • Иногда еще приходит исправление правописания для казахского языка, исправление ошибки при проигрывании DVD "белоснежка и семь гномов" и обновление безопасности для флеш плеера.

                                          потом надо сорок три минуты ждать после перезагрузки пока установится
                                          Ответить
                                          • > перезагрузки

                                            Виндобляди соснули! Вот в линуксе проги сходу обновляются.

                                            Правда фф вечно от этого охуевает, разваливается и хочет рестарт (не системы конечно). Но это реально быстрее и меньше бесит, чем полный ребут и ждать процентики.
                                            Ответить
                                • >на прыщах с готовыми либами...
                                  с веб инитерфейсом на пхп который будет зависать, глючить, и через который поломают твой пылесос в итоге
                                  Ответить
                                  • Ну собственно так на него кастомная прошивка и заливается...

                                    Причем там не то чтобы дыра какая-то в протоколе или скриптах, просто "ключ" для "подписи" заливаемой прошивки захардкожен.

                                    У чуваков на борту была убунта с openssl, gpg и чем угодно ещё, но они замутили какое-то самодельное говнище.

                                    З.Ы. Такое ощущение, что эти дыры сознательно оставляют для моддеров.
                                    Ответить
                                    • Инженер: Это превосходный пылесос! Отличная проходимость, много памяти, взаимодействие с ПК, куча датчиков... Не могу дождаться, когда на ютубе появятся ролики с демонстрацией кастомных прошивок. Да на его базе самодельщики будут своих роботов клепать!
                                      CEO: «нужно сделать чтобы он принимал только наши лицензионные прошивки.»
                                      Инженер: «... ОК ...»
                                      Ответить
                                    • Анскилябры могли не уметь в TLS.

                                      Я видел как питушок реально тужился и высирал свой способ "шифрования" (примерно на шифре цезаря) чтобы его хакир не заснифил.
                                      Ответить
                                      • > TLS

                                        Имхо, пакеты лучше локально проверять перед установкой.

                                        Я бы не стала полагаться на TLS.
                                        Ответить
                                        • В моем кейсе он шифровал траффик.

                                          В случае с установкой пакетов и их подпиской конечно нужно пилить PKI: в устройство вшиваешь публичные ключи какого-то своего CA.

                                          Перед запуском проверяешь CRL этого CA.
                                          Потом проверяешь подпись пакета.

                                          Не факт, что нужно именно опенссл, но PKI точно нужен
                                          Ответить
                                          • Просто мне при слове "проверить подпись по-быстрому" почему-то приходят в голову openssl или gpg, а не кривожопый недо-hmac на базе md5, как этим ребятам...
                                            Ответить
                                            • наколенное говно не нужно, угу
                                              Ответить
                                              • Да его и писать дольше, чем засунуть в скриптик gpg --verify... Ну реально.
                                                Ответить
                                                • сколько вообще квадратно колёсного говна понаписано питухами чисто по причине анскилябрности?
                                                  Ответить
                              • >Да и даже если взять мой wifi роутер с MIPS, перепрошитый на OpenWRT - там хоть и есть MMU и ядро Linux, никакого systemd нет.


                                да, в бизибокс и alpine еще не насрали, но уже скоро
                                Ответить
                • В целом да.

                  В классическом юниксе у 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, и стало можно делать так:
                  devfs_handle_t devfs_mk_dir (devfs_handle_t dir,
                    const char *name, void *info);

                  Тут уже name это устройство в /dev/, то есть драйвер стал сам создавать устройство (примерно как в винде), причем ебаться с номерами стало не нужно: их назначали автоматически.

                  (продолжение ниже)
                  Ответить
                  • Тут набижали питухи, и сказали, что им не нравится как устройства называются в devfs, и они хотят сами их называть как удобно, чтобы например карточка с таким-то макадресом всегда была ``eth_wan`` а не ethN, где N зависит от количества других карточек.

                    Кроме того хотелось уметь загружать/удалять модули при вставке нужных устройств.

                    стало понятно, что харкдодить такую сложную логику в ядро не нужно.

                    Тогда запилили udev: ядро стало сообщать про устройства через специальный инетфейс юзердемону, а уже он стал создавать устройства и называть их как настроит пользователь, а также загружать нужные им драйверы динамически (почти как в винде)

                    Потом пришел поцтеринг и унес udev в systemd-udev.
                    Потом пришел Девуан и форкнул udev.
                    Ответить
                    • > Тут набижали питухи, и сказали, что им не нравится как устройства называются в devfs, и они хотят сами их называть как удобно, чтобы например карточка с таким-то макадресом всегда была ``eth_wan`` а не ethN, где N зависит от количества других карточек.

                      Молодцы питухи. Скорее бы добрались до винды и сделали что-то адекватное вместо/поверх c:, d:, e:.
                      Ответить
                      • А в NT все эти C:, D:, E: не нужны. Их держат только для совместимости с досовскими программами и с программами для Win95, Win3.x.

                        В NT любое устройство можно смонтировать в любой путь.
                        Ответить
                        • > Их держат только для совместимости с досовскими программами и с программами для Win95, Win3.x.

                          Их еще держат для совместимости с пользователями винды, которые привыкли, что есть какие-то диски C: D: E:
                          и для совместимости со всяким скриптоговном, написанным васянами(не имеющим отношения ни к Win95, ни к Win3.x), в которое захардкожены какие-то говнопути к диску C: и которое никто переписывать не будет.
                          Ответить
                          • > для совместимости со всяким скриптоговном, написанным васянами(не имеющим отношения ни к Win95, ни к Win3.x), в которое захардкожены какие-то говнопути к диску C: и которое никто переписывать не будет.

                            Справедливости ради, в Линуксе ты тоже имена системных каталогов просто так не поменяешь по этой же причине.
                            Ответить
                          • Я кстати недавно выяснил что замечательный способ троллить людей - это спрашивать зачем им вообще что-то кроме С:
                            Ответить
                          • да, по этой причине они не могут переименовать system32

                            оно уже не 32, но миллард бат файлов не могут ошибаться
                            Ответить
                        • Верно

                          Имена дисков тянутся из тех времен, когда они были частью API прерываний BIOS.

                          У NT они ссылки на \Device\HarddiskVolume1, которые насрал менеджер томов
                          Ответить
                          • Эм, в прерываниях они же просто циферками были... Диск 0, диск 1, дискета 128 (или наоборот?)... Какие ещё буквы?
                            Ответить
                            • Разве в документации не было сказано, какая буква соответствует какому диску? Даже в некоторых биосах (в смысле setup) упоминались C: и A: в boot order
                              Ответить
                            • ладно, ты прав

                              http://bitsavers.trailing-edge.com/pdf/ibm/pc/ps2/PS2_and_PC_BIOS_Interface_Technical_Reference_Apr87.pdf


                              тут дествительно нет понятия "C:", а только лишь fixed disk и diskette


                              А вот в гайде по досу уже есть
                              http://www.bitsavers.org/pdf/nec/APC/NEC_APC_MS-DOS_System_Programmers_Guide_Sep83.pdf


                              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 ему автоматически прописывается тип "устройство"? Чтобы все последующие открытия файла уже относились не к данным файла, в которые записаны при первом обращении мажор-минор, а к драйверу?
                    Ответить
                    • Ну точно так же делает mknod. Видимо фиксированных major/minor им тут хватает, никакая динамика не нужна.
                      Ответить
                    • [ванишд]

                      я думал, ты про архивирование файлов
                      Ответить
                    • Запакуй таром файл в /dev, и распакуй его в домшнюю папку

                      ты увидишь там мажорный и минорный номера и тип файла и ошибку
                      ```
                      ar: mem: Cannot mknod: Operation not permitted
                      tar: Exiting with failure status due to previous errors
                      ```

                      так что при созданеии файла со спец типом само ядро делает mknod
                      Ответить
                      • Боюсь что хрен он их распакует без рута...
                        Ответить
                        • верно, mknod упадет

                          зато теперь в домашней папке у меня есть файл устройства)
                          Ответить
                      • > ядро

                        Да не ядро, а сам tar вроде правильные аргументы передает в правильный сисколл? Вряд ли он это через creat делает.

                        Просто вот такой вот архиватор, знающий про особенности системы. Zip так не умеет, емнип.
                        Ответить
                        • да, ты прав
                          mknodat(AT_FDCWD, "mem", S_IFCHR|0600, makedev(0x1, 0x1))
                          Ответить
              • Дополню, что /dev в большинстве дистрибов -- это просто tmpfs.

                В отличие от /sys, /proc и т.п. куда реально монтируется волшебная файлуха с интерфейсами ядра.
                Ответить
                • Я с помощью команды mknod в обычных файлухах создавал волшебные ноды. Прикольно, когда у тебя файл с именем pituh, из которого читаются случайные байты.
                  Ответить
                  • HO9I6PbCKuu_qpauJIyx
                    Ответить
                  • Надо будет попробовать открыть /dev/urandom нотепадом.
                    Ответить
                    • > ноутпадом

                      Он файлики метров на 10 еле-еле открывает, а ты ему бесконечность подсунуть хочешь...
                      Ответить
                    • Ну давай, загрузи весь urandom в память.
                      Ответить
                • а пмонишь devfs?
                  Ответить
    • Бамп обсосу прыщеблядей!
      Ответить

    Добавить комментарий