Я хотел бы знать, какие команды были переписаны для Linux, а какие остались от Unix?
Я хотел бы знать, какие команды были переписаны для Linux, а какие остались от Unix?
Ответы:
Похоже, вы путаете две совершенно разные части ОС. Это понятно, потому что их часто называют взаимозаменяемыми, но это технически неверно, поэтому ваш вопрос основан на ошибочной предпосылке. Чтобы в полной мере изучить и, надеюсь, ответить на вопрос, который вы, вероятно, захотите задать, необходим короткий урок истории.
Во-первых, был UNIX. По сути, в те времена под UNIX подразумевалась система AT & T UNIX , которая появилась первой. Но AT & T UNIX стала несвободной, поэтому Ричард Столлман начал проект GNU, чтобы написать систему Unix, которая была бы бесплатной . Следовательно, имя Gnu - это не Unix , сокращенно GNU. Планы GNU были обнародованы в 1983 году, а разработка началась в 1984 году .
К началу 1990-х годов GNU переопределил большинство утилит UNIX с нуля. В Википедии перечислены некоторые компоненты всей системы, которые не были переписаны (TeX, X Window System и микроядро Mach упоминаются в качестве примеров компонентов, которые не были переписаны), но в основном инструменты пользовательского интерфейса были переписаны с нуля, чтобы соответствовать цель избежать повторного использования любого AT & T (или, скорее, несвободного) кода, а также расширить их возможности путем добавления параметров командной строки. В результате утилиты GNU регулярно оказывались более мощными, чем инструменты, из которых они черпали свое первоначальное вдохновение.
В тот момент, GNU еще отсутствует один из важнейших компонентов: письмо на ядро операционной системы , которая позволила бы все вместе работать над фактической компьютер не работает какой - либо другой ОС. В 1991 году Линус Торвальдс начал работать над игрушечным проектом, который в итоге стал известен как Linux. По сути, это был школьный проект, посвященный изучению нового 32-разрядного процессора Intel 80386 , который изначально был очень простым, но в итоге начал превращаться в реально используемое ядро операционной системы. Но у него не было никакого пользовательского программного обеспечения; Linux сам по себе не предоставляет ни оболочки, ни средств запуска системы, кроме инициализации ядра, ни текстового редактора, ни графического интерфейса, ничего, Ядро похоже на автомобильный двигатель; необходимо сделать полезный автомобиль, но сам по себе бесполезен (для полезного автомобиля вам нужны такие вещи, как колеса, трансмиссия, рулевое управление, место для сидения водителя, топливный бак или другой запас энергии и т. д.). Ядро Linux в конечном итоге было распространено по Стандартной общественной лицензии GNU, так же, как и программное обеспечение GNU .
Таким образом, люди начали соединять два. Вы получите Unix-подобную пользовательскую среду вместе с ядром, основанным на идеях Unix (включая близкое сходство с POSIX ), в комплекте с исходным кодом, который вы можете взломать сколько угодно, и это ничего не стоит , Особенно до того, как дистрибутивы Linux стали обычным явлением, потребовалось немало усилий , чтобы заставить их работать, но он был достаточно закончен, чтобы его могли использовать те, кто хотел потратить на это некоторое время.
В наши дни GNU предоставляет собственное ядро. Вы, вероятно, не слышали об этом, но это называется GNU Hurd . Но Херда не было в начале 1990-х, когда Linux начал набирать популярность среди любителей и тинкеров, поэтому наибольшее внимание среди разработчиков привлекло сочетание ядра Linux и пользовательской среды, в основном GNU.
Кроме того, в наши дни многие системы Unix устанавливают или позволяют администратору легко устанавливать части пользовательского пространства GNU. Вы можете увидеть такие вещи, как GNU bash, Коллекция компиляторов GNU, библиотека GNU C (ванильная или исправленная) и т. Д. В системе, не являющейся GNU.
Что еще хуже, некоторые системы используют ядро Linux, но вообще не имеют пользовательского пространства GNU. Для широко используемого примера рассмотрим ОС Android , которая в основном представляет собой ядро Linux в сочетании с пользовательским пользовательским пространством.
Это важно, потому что это значительно стирает грань между GNU, Linux и различными Unixes ( есть только одна UNIX , но есть много Unixes и все же больше Unix-подобных ОС ). Когда вы спрашиваете о Linux, вы действительно очень часто спрашиваете о системе GNU / Linux. Но рассмотрим Debian GNU / kFreeBSD , который запускает пользовательское пространство GNU поверх ядра FreeBSD, а не использует Linux вообще. Или, например, Solaris, на котором вы можете легко установить различные пакеты GNU, включая, например, coreutils . Я думаю, что Mac OS X также поставляется с частями пользовательского пространства GNU. Или рассмотрите вышеупомянутый Android.
В конце концов, используемая система GNU может выполнять код не-GNU, а система не-GNU может выполнять код GNU, но утилиты GNU не содержат код не-GNU.