Вам будет нужна минимальная рабочая система, вероятно, от другого дистрибутива, для "загружения" собственного дистрибутива с достаточно, чтобы, по крайней мере, получить gcc или другое выполнение компилятора C. Затем необходимо запустить путем решения того, какие оперативные библиотеки (включая libc) и программное обеспечение включает основу, "no-packages-installed" состояние системы. Затем получите источник к этим библиотекам и программному обеспечению и скомпилируйте их, удостоверьтесь, что все программное обеспечение может найти библиотеки, в которых это нуждается, и начните создавать свою основную среду низкого уровня.
В основном Ваша среда начальной загрузки будет не чем иным как рабочим ядром и абсолютным минимумом, как который необходимо получить основную оболочку, компилятор C и основные вещи rm
, cp
, tar
и материал как эта работа. Следующей вещью, которую необходимо разбудить и работающий после этого, является Perl. После того как Вам создали Вашу основную систему, необходимо сохранить ее и создать некоторые сценарии начальной загрузки, который берет систему от начальной начальной загрузки до применимой оболочки с компилятором.
Затем необходимо разрабатывать/писать систему пакета и формат, и загрузить исходный код на программное обеспечение, Вы хотите упаковать, скомпилировать и упаковать его и разработать устойчивую систему распределения для Ваших пакетов. Ни одно из этого не тривиально.Удачи.
Добавить к другим ответам:
Традиционные полномочия Unix сломаны на:
r
)w
)x
)Каждый из тех хранится как немного, где 1 средство разрешило и 0 средств, не разрешенных.
Например, доступ только для чтения, обычно записанный r--
, хранится как двоичный файл 100
, или восьмеричный 4
.
Существует 3 набора тех полномочий, который определяет предоставленный доступ для:
Они все хранятся вместе в той же переменной, например. rw-r-----
, значение чтения-записи для владельца, только для чтения для группы и никакого доступа для других, хранится как 110100000
двоичный файл, 640
восьмеричный.
Таким образом, это делает 9 битов.
Затем существует 3 других специальных бита:
Посмотрите man 1 chmod
для деталей тех.
И наконец, тип файла хранится с помощью 4 битов, например, является ли это регулярным файлом, или каталогом, или каналом или устройством, или что бы то ни было.
Они все хранятся вместе в inode, и вместе он делает 16 битов.
Какие полномочия? Основные полномочия помещаются в 16 битов; ext2 использует 32 бита плюс еще 32 бита для флагов файла (chattr(1)
); затем POSIX ACLs использует переменное пространство, кроме того. Посмотрите /usr/include/linux/ext2_fs.h
для деталей. (ext3 и ext4 основываются на ext2 и главным образом используют ту же структуру.)
Информация о файлах хранится в структуре данных, названной inode. Существует поле в этой структуре для режима, который содержит полномочия. Это поле в моей системе является коротким целым без знака, которое составляет 2 байта и 16 битов.
Смотрите на fs.h в источнике Linux, чтобы лично убедиться.