Что лучший способ состоит в том, чтобы узнать Linux или внутренности ядра BSD? [закрытый]

В наши дни это, вероятно, лучше всего разрешено с рабочими пространствами [ 1 , 2 ].

Структура каталогов выглядит следующим образом:

project-root
├── Cargo.lock
├── Cargo.toml
├── yourlibary
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
├── src
│   └── main.rs
└── target

Файл верхнего уровня Cargo.toml:

[package]
name = "yourprogram"
version = "0.1.0"
authors = ["You "]

[workspace]

[dependencies]
yourlibrary = { path = "yourlibrary" }

yourlibrary Cargo.toml файл:

[package]
name = "yourlibrary"
version = "0.1.0"
authors = ["You "]

[dependencies]

Файл Cargo.lock поскольку каталог target находится в корневом каталоге проекта и разделяется всеми компонентами в рабочей области. Компоненты рабочей области выводятся автоматически из зависимостей с locak path, но также могут быть указаны вручную.

Каждый компонент с файлом Cargo.toml может быть опубликован отдельно на crates.io

21
задан Michał Piaskowski 22 August 2009 в 13:41
поделиться

11 ответов

В колледже у меня был класс операционных систем, где мы использовали книга Tanenbaum. В классе мы реализовали драйвер устройства в операционная система Minix . Это была большая забава, и мы изучили много.

Одна вещь отметить, хотя при выборе Minix она разработана для изучения. Это - микроядро, в то время как Linux и BSD являются монолитным ядром, поэтому что Вы изучаете, может не быть на 100% переводимо, чтобы быть в состоянии работать с Linux или BSD, но можно все еще получить много из него, не имея необходимость обрабатывать вполне столько же информации.

, Поскольку примечание стороны, если Вы читали Только для Забавы , Linus на самом деле, играло с Minix, прежде чем он записал Linux, но это просто не было достаточно в его целях.

12
ответ дан 29 November 2019 в 20:36
поделиться

Я не попробовал его сам, но можно перейти к Linux С нуля и начать создавать собственный дистрибутив Linux. Походит на что-то, что это возьмет junkload времени, но приведет к глубоким знаниям кишок ядра Linux и как каждая часть работает. Конечно, можно добавить это изучение следующим любая из других подсказок здесь.

0
ответ дан 29 November 2019 в 20:36
поделиться

Когда я был в uni, я провел семестр, изучая операционные системы, и поскольку часть этого имела присвоение, где мы должны были реализовать основанную на RAM файловую систему в Linux.

Это был фантастический способ добраться, чтобы понять внутренности Linux keurnel и надеть схватывание, как все совмещается - И чертовски много забавы, играющей вокруг с тем, как это взаимодействует со стандартными инструментами также.

0
ответ дан 29 November 2019 в 20:36
поделиться

Послушайте совет Mike Stone и запуститесь с Minix. Это - то, что сделал Linus! Учебник действительно правильно написан, и Tannenbaum делает отличную работу по показу, как различные опции реализованы в реальной системе.

1
ответ дан 29 November 2019 в 20:36
поделиться

Нет никакой замены для дайвинга в код. Попытайтесь найти драйвер или подсистему, что Вы интересуетесь и вводите по абсолютному адресу вокруг с нею. С инструментами как VMware Workstation супер легко внести независимо от того, что изменения, которые Вы хотите, создают снимки VM и выполняют Ваше измененное ядро. Если ядро паникует на начальной загрузке, кто заботится? Просто перейдите назад к снимку и решите проблему.

Для книг, я настоятельно рекомендую Разработка Ядра Linux Robert Love. Это - замечательно записанная книга - большая информация, организованная нормально и юмористическая... не сухое чтение вообще.

1
ответ дан 29 November 2019 в 20:36
поделиться

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

1
ответ дан 29 November 2019 в 20:36
поделиться

Отмечая отсутствие BSDs здесь, я полагал, что войду в долю:

я не взял ни одного из курсов сам, но я услышал, что Marshall Kirk McKusick говорит о других случаях, и он действительно хорош в том, что он делает.

И конечно страницы справочника BSD, которые являются превосходным ресурсом, поскольку они сохраняются до намного большей степени, чем Ваша средняя страница справочника Linux. Возьмите, например, uvm (9) страница справочника, описав интерфейс виртуальной памяти в OpenBSD.

Не совсем связанный, но я также рекомендую видео История Дистрибутивов Berkeley Software , поскольку это дает хорошее введение в части BSD истории UNIX и культуры, а также большого количества веселых anectodes от спины когда.

4
ответ дан 29 November 2019 в 20:36
поделиться

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

5
ответ дан 29 November 2019 в 20:36
поделиться

Кроме хороших книг, уже упомянутых (Разработка системы Opeating & Реализация особенно хороша), овладейте 1.x, выпускают Ядро Linux, загружают его в VMware или VirtualBox и начинают играть вокруг оттуда.

необходимо будет провести много времени, просматривая исходный код. Для этого проверьте http://lxr.linux.no/ , который является доступной для просмотра связанной версией источника и делает жизнь намного легче. Для самой первой версии Linux (0.01) выезд http://lxr.linux.no/linux-old+v0.01/ . Забава начинается в http://lxr.linux.no/linux-old+v0.01/boot/boot.s . В то время как Вы прогрессируете от версии до версии, проверяете ChangeLog и роете в те части, которые изменились для сохранения Вас перечитывающий все это снова.

, Как только Вы овладели понятиями, посмотрите 2.0, тогда 2.2, и т.д. готовы снизить МНОГО времени в процесс.

6
ответ дан 29 November 2019 в 20:36
поделиться

Как пользователь Linux я сказал бы, что Linux имеет великое сообщество для людей для приобретения знаний о ядре. http://kernelnewbies.org является великолепным местом, чтобы начать задавать вопросы и узнавать о том, как ядро работает. Я не могу сделать книгу reccomendation, но как только Вы считали стартовый материал по kernelnewbies, источник очень хорошо документируется.

7
ответ дан 29 November 2019 в 20:36
поделиться

Я рекомендую вам ядра BSD! У ядер BSD гораздо меньше хакеров, поэтому следить за их развитием проще. Либо ядра BSD, либо Linux имеют отличных хакеров, но некоторые люди утверждают, что меньшая известность BSD отфильтровывает новичков. Также легче принимать дизайнерские решения, когда исходники не обновляются 100 раз в день.

Среди вариантов BSD мне больше всего нравится NetBSD.Возможно, это не самый простой выбор для своего рабочего стола, но, поскольку он ориентирован на мобильность, качество довольно хорошее. Я думаю, эта часть говорит сама за себя:

Некоторые системы, похоже, придерживаются философии «Если это работает, то это правильно». В этом свете философию NetBSD можно описать так: «Она не работает, если она не правильная»

. Если вы проработали достаточно долго, вы знаете, что NetBSD доставляет большое удовольствие изучать хорошее кодирование. Хотя профессионально вы найдете больше шансов с Linux

Какой бы выбор вы ни выбрали, начните присоединяться к их спискам рассылки, следите за обсуждениями. Изучите некоторые патчи и, наконец, попробуйте исправить ошибки самостоятельно. Что касается книг, поищите статьи Диомидиса Спинеллиса и его книгу . Это не совсем книга по ядру, но в ней есть примеры NetBSD, и она очень помогает при работе с большим программным обеспечением.

3
ответ дан 29 November 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: