Gentoo kernel x86_64 или же x86 (что из этого правда?)
Модератор: /dev/random
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Gentoo kernel x86_64 или же x86
Не знаю сколько смысла в моем посте, но очень давно меня этот момент заинтересовал.
Система стоит 64-битная, multilib ествественно.
Компилируется ядро как обычно, а потом из папки
/usr/src/linux/arch/x86_64/boot/
копируется файл bzImage, который по сути является ссылкой на файл
/usr/src/linux/arch/x86/boot/bzImage.
Вот сижу и думаю это разработчики недоделали нормальный путь помещения результирующего ядра, или же действительно ядро x86 компилится???
Система стоит 64-битная, multilib ествественно.
Компилируется ядро как обычно, а потом из папки
/usr/src/linux/arch/x86_64/boot/
копируется файл bzImage, который по сути является ссылкой на файл
/usr/src/linux/arch/x86/boot/bzImage.
Вот сижу и думаю это разработчики недоделали нормальный путь помещения результирующего ядра, или же действительно ядро x86 компилится???
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Gentoo kernel x86_64 или же x86
uname -a
не?
не?
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
такой способ известен мне уже не один год=)
интересно, чем же так невзлюбили x86_64, что в этой директории вообще ничего нет?
Зачем тогда она нужна?
вот в директории x86 набито файлов и диркторий под завязку.
интересно, чем же так невзлюбили x86_64, что в этой директории вообще ничего нет?
Зачем тогда она нужна?
вот в директории x86 набито файлов и диркторий под завязку.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
другое название amd64, каковое используется на сайте Gentoo повсеместно.
Вот что мне и не понятно -- неужто на уровня ядра в них почти нет различий?
В то время как для запуска приложений 32битных под системой 64битной требуются соответствующие 32битные библиотеки.
Ну, в этом вопросе видимо придется курить мат.часть по устройству ядра, и его зависимость от архитектуры.
Вот что мне и не понятно -- неужто на уровня ядра в них почти нет различий?
В то время как для запуска приложений 32битных под системой 64битной требуются соответствующие 32битные библиотеки.
Ну, в этом вопросе видимо придется курить мат.часть по устройству ядра, и его зависимость от архитектуры.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
тогда зачем выделять x86_64 в отдельную ветвь архитектур?
посмотрел в папки других архитектур, так там внутри есть несколько директорий отвечающим различным версиям данной архитектуры.
А с x86 и x86_64 получается, что последняя является совершенно новой архитектурой, раз ее выделили в отдельную "внешнюю" директорию (хотя и присутствует в ней только один единственный путь к ссылке на бинарник ядра в папке x86).
Вопрос: если между x86 и x86_64 настолько мало различий, то почему для выполнения 32битных программ в 64битной среде необходимы дополнительные библиотеки?
посмотрел в папки других архитектур, так там внутри есть несколько директорий отвечающим различным версиям данной архитектуры.
А с x86 и x86_64 получается, что последняя является совершенно новой архитектурой, раз ее выделили в отдельную "внешнюю" директорию (хотя и присутствует в ней только один единственный путь к ссылке на бинарник ядра в папке x86).
Вопрос: если между x86 и x86_64 настолько мало различий, то почему для выполнения 32битных программ в 64битной среде необходимы дополнительные библиотеки?
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Gentoo kernel x86_64 или же x86
Это не _совершенно_ новая архитектура. Это патч к x86 (таким же патчем/костылём, каким, в своё время, был 80386, по отношению к 80286).
Потому что разная длина регистров и разная длина адресов, а также на x86_64 слегка расширен набор команд.
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
Я говорил это утрированно. Просто по причине выделения в arch/ отдельного каталога
Что же такого в нем костыльного? Я думал PAE на 32битной системе это костыль.
Если регистры увеличены, длина адресов увеличена и расширен набор команд, то почему 32битные программы не могут работать внутри 64 бит?
Примеры:
- новый артист использует 10 веревочек, а старый использовал только 5. Значит если висят 10 веревочек, то и старый может использовав 5 из 10 делать свое выступление.
- маленький кубик/матрешка влезет в большой кубик/матрешку.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
/dev/random
- Администратор
- Сообщения: 5435
- ОС: Gentoo
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
можно об этом где-нибудь более подробно почитать?/dev/random писал(а): ↑01.02.2011 15:59Бинарное представление ассемблерных команд разное. На увеличенный адрес нужно выделять больше битов внутри команды, и т.п.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
/dev/random
- Администратор
- Сообщения: 5435
- ОС: Gentoo
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
Спасибо, буду просвящаться.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
про разные размеры я понял.
Почему тогда не дополнять 32 битные указатели до размеров 64 битных, символами не значащими ничего, кроме как то, что данная программа 32-х битная? Или это получается костыль, которого захотели избежать в чистых 64-х битных системах?
Можно ведь было небольшими потерями организовать "адаптер" -- как для случая SD и microSD
Почему тогда не дополнять 32 битные указатели до размеров 64 битных, символами не значащими ничего, кроме как то, что данная программа 32-х битная? Или это получается костыль, которого захотели избежать в чистых 64-х битных системах?
Можно ведь было небольшими потерями организовать "адаптер" -- как для случая SD и microSD
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
/dev/random
- Администратор
- Сообщения: 5435
- ОС: Gentoo
Re: Gentoo kernel x86_64 или же x86
Где дополнять? В 32-битных программах? Так набор инструкций в них существует уже десятки лет, и если внести такие изменения, то несовместимость между "старыми" и "новыми" 32-битными программами будет такая же, как сейчас между 32- и 64-битными. По сути, "новые" 32-битные программы станут 64-битными, просто использующими не всё адресное пространство. Но "старые" 32-битные программы от этого не исчезнут. И не смогут пользоваться этим костылём, т.к. они уже есть такие, какие они есть. Без этого костыля. Десятки лет.
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
одно ясно точно -- в этом деле надо более подробно разбираться.
насколько я понял из разговора - в 32-х бытный программах в бинарном файле содержутся указатели малого размера, в рассчете на то, что в системе только такой размер и используется.
При попытке выполнения 32-х битной (скомпиллированной) программы в 64-х битной среде первая пытается оперировать с указателями малого размера, в то время как в системе есть только указатели большого размера. В следствие чего по первому же запросу через указатель программа нарывается на неверный набор данных -- кусок от указателя, стандартного в системе. В результате чего возникает ошибка или же программа делает неизвестно что.
Я правильно понял ваши общие слова применительно к практике?
насколько я понял из разговора - в 32-х бытный программах в бинарном файле содержутся указатели малого размера, в рассчете на то, что в системе только такой размер и используется.
При попытке выполнения 32-х битной (скомпиллированной) программы в 64-х битной среде первая пытается оперировать с указателями малого размера, в то время как в системе есть только указатели большого размера. В следствие чего по первому же запросу через указатель программа нарывается на неверный набор данных -- кусок от указателя, стандартного в системе. В результате чего возникает ошибка или же программа делает неизвестно что.
Я правильно понял ваши общие слова применительно к практике?
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
-
/dev/random
- Администратор
- Сообщения: 5435
- ОС: Gentoo
Re: Gentoo kernel x86_64 или же x86
Почти. Программа нарывается на неверную инструкцию.
Код: Выделить всё
1AAAA2BBBB
1AAAAAAAA2BBBBBBBBВот это разумная мысль. Почитайте об ассемблере, и все вопросы сразу отпадут.
-
Dreamer77
- Сообщения: 202
- ОС: Debian, openSUSE, Mac OS X
Re: Gentoo kernel x86_64 или же x86
примерно это я и хотел сказать. Не хватило терминологических знаний =)/dev/random писал(а): ↑01.02.2011 18:30Сверху - последовательность байтов (или меньших порций битов, неважно) в программе. "1", "2" - коды асм. операций, AAAA, BBBB - аргументы. Процессор же будет ждать нижнюю последовательность. Даже если аргумент AAAAAAAA будет "реалистичным", дальше всё равно в качестве следующего кода операции будет прочитан байт аргумента (последняя из четырёх B). И начнётся хаос.
Обязательно почитаю. Жаль в школе его не преподавали. Лучше бы ассемблер вместо LOGO WRITER преподавали./dev/random писал(а): ↑01.02.2011 18:30Вот это разумная мысль. Почитайте об ассемблере, и все вопросы сразу отпадут.
Спасибо за терпение в объяснение непонимающему мне!
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X