ubuntu?
ну что же, удачи тебе в борьбе с ветряными мельницами^w^w марксизмом!
Модератор: Модераторы разделов
ubuntu?
ну что же, удачи тебе в борьбе с ветряными мельницами^w^w марксизмом!
и как выражается эта точка зрения?
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
спасибо!
не следует, согласен·QUOTE писал(а):Если из этого нечта мы выкинем элементы описанного в POSIX интерфейса, оно перестанет быть UNIX-like системой, OK. Но из этого не следует, что оно перестаёт быть операционной системой вообще.
совершенно верно!QUOTE писал(а):то, что обеспечивает POSIX-интерфейс, может являться UNIX-like операционной системой, а может - лишь её частью, если напрямую не взаимодействует с железом.
вот скомпилирую я классический hello world:
Код: Выделить всё
/* Hello World program */
#include<stdio.h>
main()
{
printf("Hello World");
}
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
ага! т.е., интерфейс к функции printf всё-таки будет!
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
э, нееет! так мы каши не сварим!Bizdelnick писал(а): ↑09.05.2012 14:02Не часть linux'а, конечно, а любая реализация стандартной библиотеки. Примеры приводились выше. В случае GNU/Linux это glibc.
Bizdelnick писал(а): ↑09.05.2012 12:40из этого нечта мы выкинем элементы описанного в POSIX интерфейса
sash-kan писал(а): ↑09.05.2012 13:28не знаю уж, как у меня это получится, пользуясь тем обрубком, который «не обязательно перестаёт быть операционной системой вообще», но, допустим, как-то получилось (gcc каким-то чудесным образом запустился и даже выполнил компиляцию)·
и пытаюсь его запустить (тоже не знаю, как у меня это получится — шелла нет, загрузчика нет, ну да ладно, может, как-нибудь и запустится)·
что я получу в результате? какая сущность предоставит мне интерфейс функции printf, не-описанный в stdio.h (ибо его нет в нашей воображаемой «не обязательно переставшей быть операционной системе вообще»)?
Код: Выделить всё
[diesel@localhost ~]$ strace ./a.out
execve("./a.out", ["./a.out"], [/* 81 vars */]) = 0
brk(0) = 0x10d8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe0a7cf2000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=112748, ...}) = 0
mmap(NULL, 112748, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe0a7cd6000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\22\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1837659, ...}) = 0
mmap(NULL, 3717944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe0a774b000
mprotect(0x7fe0a78cd000, 2097152, PROT_NONE) = 0
mmap(0x7fe0a7acd000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x182000) = 0x7fe0a7acd000
mmap(0x7fe0a7ad2000, 19256, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe0a7ad2000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe0a7cd5000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe0a7cd4000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe0a7cd3000
arch_prctl(ARCH_SET_FS, 0x7fe0a7cd4700) = 0
mprotect(0x7fe0a7acd000, 16384, PROT_READ) = 0
mprotect(0x7fe0a7cf3000, 4096, PROT_READ) = 0
munmap(0x7fe0a7cd6000, 112748) = 0
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe0a7cf1000
write(1, "Hello World", 11Hello World) = 11
exit_group(11) = ?
Явление, именуемое GNU/Linux.
спасибо, кэп!
на этом месте мы получаем ошибку — libc нет в нашей иллюзорной «не обязательно переставшей быть операционной системе вообще» linux·
я лишь хотел сказать, что не понял, что именно ты подразумевал под
теперь ясно:
пчёлы против мёда·
Код: Выделить всё
[diesel@localhost ~]$ cat helloworld.pas
program HelloWorld;
begin
writeln('Hello World');
end.
Код: Выделить всё
[diesel@localhost ~]$ strace ./helloworld
execve("./helloworld", ["./helloworld"], [/* 81 vars */]) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGFPE, {0x41e1a8, [], SA_RESTORER|SA_SIGINFO, 0x4008c0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSEGV, {0x41e1a8, [], SA_RESTORER|SA_SIGINFO, 0x4008c0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGBUS, {0x41e1a8, [], SA_RESTORER|SA_SIGINFO, 0x4008c0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGILL, {0x41e1a8, [], SA_RESTORER|SA_SIGINFO, 0x4008c0}, {SIG_DFL, [], 0}, 8) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
readlink("/proc/self/exe", "/home/diesel/helloworld", 255) = 23
write(1, "Hello World\n", 12Hello World
) = 12
exit_group(0)
даже в lsb написано, что это должна выполнять базовая библиотека libc·
т.е., наша иллюзорная «не обязательно переставшая быть операционной системой вообще» linux перестала быть «посредником между приложениями, утилитами и пользователями, с одной стороны, и аппаратным обеспечением — с другой» © Столлингс
ты в здравом уме и твёрдой памяти считаешь, что printf в нашей иллюзорной «не обязательно переставшей быть операционной системе вообще» linux придётся заменить на writeln?
эту функцию мы тоже выкинули: http://pubs.opengroup.org/onlinepubs/96999...tions/exec.html
эту функцию мы тоже выкинули: http://pubs.opengroup.org/onlinepubs/96999.../getrlimit.html
эту функцию мы тоже выкинули: http://pubs.opengroup.org/onlinepubs/96999...ions/ioctl.htmldiesel писал(а): ↑09.05.2012 14:58ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
эту функцию мы тоже выкинули: http://pubs.opengroup.org/onlinepubs/96999...s/readlink.html
эту функцию мы тоже выкинули: http://pubs.opengroup.org/onlinepubs/96999...ties/write.html
и даже эту функцию мы выкинули: http://pubs.opengroup.org/onlinepubs/96999...ilities/sh.html
совершенно верно, операционная система в лице какой-то из реализаций libc·
такую энергию, да в мирных бы целях! (улыбка)
sash-kan писал(а): ↑09.05.2012 15:32эту функцию мы тоже выкинули: http://pubs.opengroup.org/onlinepubs/96999...tions/exec.html
...skipped...
конечно·
выходные данные я указал, правда, увы, без страниц·
«часто назыают», «рассматривают как» — сравни это с чёткой формулировкой предыдущей цитаты·diesel писал(а): ↑09.05.2012 15:58"Операционную систему часто называют системным ядром или просто ядром, чтобы подчеркнуть ее изолированность от пользователя и приложений. Именно эта часть системы UNIX будет предоставлять для нас интерес в данной книге. Однако UNIX снабжается различными пользовательскими сервисами, которые рассматривают как часть этой системы. Их можно сгруппировать в оболочку, интерфейс и компоненты компилятора С(компилятор, ассемблер, загрузщик)."
я скопировал чёткое определение, размышления автора о том, что кто-то там чего-то якобы, — копировать постеснялся·
извини, не нашёл сходу интерфейс к функции write в коде linux-а·
из операционной системы gnu/linux в, например, /dev/null
он много чего показывает·
я реально думаю, что для запуска скомпилированной программы helloworld (текст приведён мною выше) наличия операционной системы gnu/linux _более_ чем достаточно·
о, слона-то я и не заметил·
Код: Выделить всё
init=/home/troll/helloworld
какому же стандарту, по-вашему, может соответствовать «операционная система linux»?
да, остроумно·
если она скомпилирована с интерфейсом shell-а, то не катит — по условию задачи всё, что реализует описанные в posix интерфейсы, следует убрать·
sash-kan писал(а): ↑09.05.2012 21:072. «операционная система linux» является unix-подобной (unix-like)? пожалуйста, ответь «да» или «нет»·
3. «операционная система linux» является в основном posix-совместимой (mostly posix-compliant)? пожалуйста, ответь «да» или «нет»·
4. «операционная система linux» является совместимой с секцией core стандарта linux standard base? пожалуйста, ответь «да» или «нет»·
к счастью, моё представление об операционной системе сложилось задолго до появления на свет этой книги (и, да, я её полностю прочёл лет десять назад)·